--- a/telephonyserverplugins/common_tsy/test/component/src/cctsymbmscontextfu.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsymbmscontextfu.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,3363 +1,3363 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-/**
- @file The TEFUnit test suite for MBMS Context in the Common TSY.
-*/
-
-#include "cctsymbmscontextfu.h"
-#include "cctsyactiveretriever.h"
-#include <etel.h>
-#include <etelmm.h>
-#include <et_clsvr.h>
-#include <ctsy/mmtsy_names.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#include "tmockltsydata.h"
-#include <ctsy/serviceapi/gsmerror.h>
-
-#include <pcktcs.h>
-#include <pcktlist.h>
-#include "pcktretrieve.h"
-#include "CMmCommonStaticUtility.h"
-#include <ctsy/serviceapi/mmtsy_defaults.h>
-
-
-
-CTestSuite* CCTsyMbmsContextFU::CreateSuiteL(const TDesC& aName)
- {
- SUB_SUITE;
-
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestOpenNewContext0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDelete0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDelete0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDelete0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestClose0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetConfig0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetConfig0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetConfig0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetStatus0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetLastErrorCause0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyStatusChange0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyStatusChange0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyStatusChange0003L);
-
- END_SUITE;
- }
-
-
-//
-// Actual test cases
-//
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PONC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::OpenNewContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::OpenNewContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-
-void CCTsyMbmsContextFU::TestOpenNewContext0001L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RPacketService packetService;
-
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- //-------------------------------------------------------------------------
- // TEST create
- //-------------------------------------------------------------------------
-
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- TInt retCode;
-
- // memory leak check
- __UHEAP_MARK;
-
- retCode = packetMbmsContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, retCode);
-
- _LIT(KContextName, "MBMS_Context_0");
-
- ASSERT_FALSE(contextId.Compare(KContextName));
- packetMbmsContext.Close();
-
- __UHEAP_MARKEND;
- // end memory leak check
-
- // test maximum number of contexts allowed
- TInt count(0);
- TInt maxAllowed(0);
-
- TRequestStatus requestStatus;
- packetService.EnumerateMbmsActiveServiceList(requestStatus, count, maxAllowed);
- User::WaitForRequest( requestStatus );
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- TInt err = 0;
- TInt status = 0;
- for (TInt i = 0; i < maxAllowed; i++)
- {
- RPacketMbmsContext newPacketMbmsContext;
- TInfoName contextId;
-
- err = newPacketMbmsContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(newPacketMbmsContext);
-
- // check the context can be initialised
- status = InitMbmsContextL(newPacketMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- CleanupStack::Pop();
- }
-
- RPacketMbmsContext OneMorePacketContext;
- TInfoName contextId1;
-
- err = OneMorePacketContext.OpenNewContext(packetService, contextId1);
- ASSERT_EQUALS(KErrOverflow, err);
-
- OneMorePacketContext.Close();
- packetService.Close();
- CleanupStack::PopAndDestroy(2, this); // packetService, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PIC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::InitialiseContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::InitialiseContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestInitialiseContext0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
- TMockLtsyData1<TInfoName> ltsyExpect(contextId);
- ltsyExpect.SerialiseL(expectData);
-
- // data for initialisation of the context
- TRequestStatus requestStatus;
- iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData, KErrNotSupported);
-
- //initialisation of the context
- RPacketContext::TDataChannelV2 dataCh;
- TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
- packetContext.InitialiseContext(requestStatus, pckgInit);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
-
- RPacketContext::TDataChannelV2 retDataCh;
-
- _LIT(KDataChannelName, "DataChannel_1");
- retDataCh.iChannelId.Copy(KDataChannelName);
-
- iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TMockLtsyData2<TInfoName, RPacketContext::TDataChannelV2> ltsyData(contextId,retDataCh);
- data.Close();
- ltsyData.SerialiseL(data);
-
- iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrGeneral, data);
-
- //initialisation of the context
- packetContext.InitialiseContext(requestStatus, pckgInit);
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::InitialiseContext when result is not cached.
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
- iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data);
-
- //initialisation of the context
- packetContext.InitialiseContext(requestStatus, pckgInit);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- RPacketContext::TDataChannelV2 dataChannel = pckgInit();
-
- // check this
- ASSERT_TRUE(contextId.Compare(KDataChannelName));
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::InitialiseContext
- // from LTSY.
- //-------------------------------------------------------------------------
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(5, this); // expectData, data, this, packetService, packetContext
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PIC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::InitialiseContext
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketMbmsContext::InitialiseContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestInitialiseContext0002L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::InitialiseContext when result is not cached.
- //-------------------------------------------------------------------------
-
- // data for initialisation of the context
- TRequestStatus requestStatus;
- RPacketContext::TDataChannelV2 dataCh;
- TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- TMockLtsyData1< TInfoName> ltsyInit(contextId);
- ltsyInit.SerialiseL(data);
- iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, data);
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RPacketContext::TDataChannelV2 retDataCh;
- TMockLtsyData2< TInfoName, RPacketContext::TDataChannelV2 > ltsyData(contextId, retDataCh);
- data.Close();
- ltsyData.SerialiseL(data);
- iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data, 10);
-
- // initialisation of the context
- packetMbmsContext.InitialiseContext(requestStatus, pckgInit);
-
- // cancel request
- packetMbmsContext.CancelAsyncRequest(EPacketContextInitialiseContext);
-
- User::WaitForRequest(requestStatus);
- // CTSY has started a request and it is not possible to then cancel
- // this request. The best thing for the TSY to do in this case is to
- // proceed as though the Cancel never happened.
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(3); // expectData, data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PIC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::InitialiseContext with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::InitialiseContext with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestInitialiseContext0003L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketMbmsContext::InitialiseContext
- //-------------------------------------------------------------------------
- // data for initialisation of the context
-
- TRequestStatus requestStatus;
- RCall::TCommPort dataCh; // wrong type of data package
- TPckg<RCall::TCommPort> pckgInit( dataCh );
-
- //initialisation of the context
- packetMbmsContext.InitialiseContext( requestStatus, pckgInit );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrArgument, requestStatus.Int() );
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy( 2 ); // packetMbmsContext, packetService
- CleanupStack::PopAndDestroy( 3, this ); // expectData, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PIC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::InitialiseContext
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::InitialiseContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestInitialiseContext0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext packetContext2;
- packetContext2.OpenNewContext(packetService, contextId2);
- CleanupClosePushL(packetContext2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketMbmsContext::InitialiseContext
- //-------------------------------------------------------------------------
-
- // for the first request
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- TMockLtsyData1<TInfoName> ltsyExpect(contextId);
- ltsyExpect.SerialiseL(expectData);
- iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketContext::TDataChannelV2 dataCh;
- TMockLtsyData2<TInfoName, RPacketContext::TDataChannelV2> ltsyData(contextId, dataCh);
- ltsyData.SerialiseL(data);
- iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data);
-
- // for the first request
- RBuf8 expectData2;
- CleanupClosePushL(expectData2);
-
- TMockLtsyData1<TInfoName> ltsyExpect2(contextId2);
- ltsyExpect2.SerialiseL(expectData2);
- iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData2);
-
- RBuf8 data2;
- CleanupClosePushL(data2);
-
- RPacketContext::TDataChannelV2 dataCh2;
- TMockLtsyData2<TInfoName, RPacketContext::TDataChannelV2> ltsyData2(contextId2, dataCh2);
- ltsyData2.SerialiseL(data2);
- iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data2);
-
- //first request
- TRequestStatus requestStatus;
- RPacketContext::TDataChannelV2 dataChannel1;
- TPckg<RPacketContext::TDataChannelV2> pckgInit1(dataChannel1);
- packetContext.InitialiseContext(requestStatus, pckgInit1);
-
- //second request
- TRequestStatus requestStatus2;
- RPacketContext::TDataChannelV2 dataChannel2;
- TPckg<RPacketContext::TDataChannelV2> pckgInit2(dataChannel2);
- packetContext2.InitialiseContext(requestStatus2, pckgInit2);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(8, this); //packetContext2, packetContext, packetService, expectData, expectData2, data, data2, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PIC-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::InitialiseContext with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::InitialiseContext and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestInitialiseContext0005L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetMbmsContext);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::InitialiseContext
- //-------------------------------------------------------------------------
- TMockLtsyData1<TInfoName> ltsyExpect(contextId);
- ltsyExpect.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
-
- TRequestStatus requestStatus;
- RPacketContext::TDataChannelV2 dataCh;
- TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
- packetMbmsContext.InitialiseContext(requestStatus, pckgInit);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); //packetService, packetContext, expectData, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PSC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::SetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::SetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestSetConfig0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- // initialisation of the context
- TInt status = InitMbmsContextL(mbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // data for SetContext
- RPacketMbmsContext::TContextConfigMbmsV1 setConfig;
- TTmgi ttmgi;
- ttmgi.SetServiceId(KMmConfigTMGI1);
- ttmgi.SetMCC(KMmConfigTmgiMMC1);
- ttmgi.SetMNC(KMmConfigTmgiMNC1);
- setConfig.iTmgi = ttmgi;
- setConfig.iMbmsAccessBearer = E2GBearer;
- setConfig.iMbmsServicePriority = EMbmsMediumServicePriority;
- setConfig.iMbmsServiceMode = KBroadcast;
- setConfig.iMbmsSessionFlag = EFalse;
-
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(setConfig);
-
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(setConfig, contextId);
- expExpect.SerialiseL(expectData);
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
-
- TRequestStatus requestStatus;
- mbmsContext.SetConfig(requestStatus, pckgConfig);
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
-
- TMockLtsyData1<TInfoName > contexName(contextId);
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, data);
-
- mbmsContext.SetConfig(requestStatus, pckgConfig);
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::SetConfig when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- mbmsContext.SetConfig(requestStatus, pckgConfig);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- RPacketMbmsContext::TContextConfigMbmsV1 retData = pckgConfig();
- ASSERT_EQUALS(setConfig.iMbmsAccessBearer, retData.iMbmsAccessBearer);
- ASSERT_EQUALS(setConfig.iMbmsServicePriority, retData.iMbmsServicePriority);
- ASSERT_EQUALS(setConfig.iMbmsServiceMode, retData.iMbmsServiceMode);
- ASSERT_EQUALS(setConfig.iMbmsSessionFlag, retData.iMbmsSessionFlag);
-
- AssertMockLtsyStatusL();
-
- //--------------------------------------------
- // failure to dispatch request for config
- //--------------------------------------------
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
-
- mbmsContext.SetConfig(requestStatus, pckgConfig);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::SetConfig
- // from LTSY.
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
-
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(2); //packetContext, packetService
- CleanupStack::PopAndDestroy(3, this); // data, expectData, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PSC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::SetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketMbmsContext::SetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestSetConfig0002L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- // initialisation of the context
- TInt status = InitMbmsContextL(mbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- TRequestStatus requestStatus;
- RPacketMbmsContext::TContextConfigMbmsV1 setConfig;
-
- //-------------------------------------------------------------------------
- // TEST C: Cancel completion request of
- // RPacketContext::SetConfig when result is not cached.
- //-------------------------------------------------------------------------
- TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(setConfig, contextId);
- expExpect.SerialiseL(expectData);
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
-
- // TODO : KHURAM FIX
- //data for CompleteL
- TMockLtsyData1<TInfoName > contexName(contextId);
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 10);
-
-
- // data for SetContext
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(setConfig);
- mbmsContext.SetConfig(requestStatus, pckgConfig);
- mbmsContext.CancelAsyncRequest(EPacketContextSetConfig);
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(2); //packetContext, packetService
- CleanupStack::PopAndDestroy(3, this); // data, expectData, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PSC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::SetConfig with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::SetConfig with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestSetConfig0003L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- TInfoName hostCid;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- TRequestStatus requestStatus;
-
- //------------------------------------------------
- //set config for context that was not initialised
- //------------------------------------------------
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
-
- mbmsContext.SetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(2); //packetContext packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PSC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::SetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::SetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestSetConfig0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 data2;
- CleanupClosePushL(data2);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 expectData2;
- CleanupClosePushL(expectData2);
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(telServer2,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- // Open first context
- TInfoName contextId;
- TInfoName hostCid;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext mbmsContext2;
- mbmsContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(mbmsContext2);
-
-
- // initialisation of the first context
- TInt status = InitMbmsContextL(mbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // initialisation of the second context
- status = InitMbmsContextL(mbmsContext2, contextId2);
- ASSERT_EQUALS(KErrNone, status);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::SetConfig
- //-------------------------------------------------------------------------
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- TTmgi ttmgi;
- ttmgi.SetServiceId(KMmConfigTMGI1);
- ttmgi.SetMCC(KMmConfigTmgiMMC1);
- ttmgi.SetMCC(KMmConfigTmgiMNC1);
- contextConfig.iTmgi = ttmgi;
- contextConfig.iMbmsAccessBearer = E2GBearer;
- contextConfig.iMbmsServicePriority = EMbmsMediumServicePriority;
- contextConfig.iMbmsServiceMode = KBroadcast;
- contextConfig.iMbmsSessionFlag = EFalse;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
- // for the first ExpectL
- TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(contextConfig, contextId);
- expExpect.SerialiseL(expectData);
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
- TTmgi ttmgi2;
- ttmgi2.SetServiceId(KMmConfigTMGI2);
- ttmgi2.SetMCC(KMmConfigTmgiMMC2);
- ttmgi2.SetMCC(KMmConfigTmgiMNC2);
- contextConfig2.iTmgi = ttmgi;
- contextConfig2.iMbmsAccessBearer = E3GBearer;
- contextConfig2.iMbmsServicePriority = EMbmsHighServicePriority;
- contextConfig2.iMbmsServiceMode = KSelectedBroadcast;
- contextConfig2.iMbmsSessionFlag = ETrue;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig2(contextConfig2);
- // for the second ExpectL
- TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect2(contextConfig2, contextId2);
- expExpect2.SerialiseL(expectData2);
-
- // for the first CompleteL
- TMockLtsyData1< TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
-
- // for the second CompleteL
- TMockLtsyData1< TInfoName > ltsyData2(contextId2);
- ltsyData2.SerialiseL(data2);
-
- TRequestStatus requestStatus;
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 10);
-
- TRequestStatus requestStatus2;
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData2);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data2, 10);
-
- mbmsContext.SetConfig(requestStatus, pckgConfig);
- mbmsContext2.SetConfig(requestStatus2, pckgConfig2);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- RPacketMbmsContext::TContextConfigMbmsV1 ret1 = pckgConfig();
- RPacketMbmsContext::TContextConfigMbmsV1 ret2 = pckgConfig2();
-
- ASSERT_EQUALS(ret1.iMbmsAccessBearer, contextConfig.iMbmsAccessBearer);
- ASSERT_EQUALS(ret1.iMbmsServicePriority, contextConfig.iMbmsServicePriority);
- ASSERT_EQUALS(ret1.iMbmsServiceMode, contextConfig.iMbmsServiceMode);
- ASSERT_EQUALS(ret1.iMbmsSessionFlag, contextConfig.iMbmsSessionFlag);
-
- ASSERT_EQUALS(ret2.iMbmsAccessBearer, contextConfig2.iMbmsAccessBearer);
- ASSERT_EQUALS(ret2.iMbmsServicePriority, contextConfig2.iMbmsServicePriority);
- ASSERT_EQUALS(ret2.iMbmsServiceMode, contextConfig2.iMbmsServiceMode);
- ASSERT_EQUALS(ret2.iMbmsSessionFlag, contextConfig2.iMbmsSessionFlag);
-
- User::WaitForRequest(mockLtsyStatus);
-
- // packetContext, packetService, packetContext2, packetService2
- //one2, telServer2, data2,
- CleanupStack::PopAndDestroy(2); //expectData2, expectData
- CleanupStack::PopAndDestroy(9, this); // data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PSC-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::SetConfig with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::SetConfig and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestSetConfig0005L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::SetConfig
- //-------------------------------------------------------------------------
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- // initialisation of the first context
- TInt status = InitMbmsContextL(mbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
- TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(contextConfig, contextId);
- expExpect.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
-
- TMockLtsyData1<TInfoName > contexName(contextId);
- contexName.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
-
- mbmsContext.SetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
- AssertMockLtsyStatusL();
-
-
- CleanupStack::PopAndDestroy(2); //packetContext packetService,
- CleanupStack::PopAndDestroy(3, this); // data, expectData, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PA-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Activate
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::Activate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestActivate0001L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 data2;
- CleanupClosePushL( data2 );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RBuf8 expectData2;
- CleanupClosePushL( expectData2 );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- //-------------------------------------------------------------------------
- // TEST create
- //-------------------------------------------------------------------------
-
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // TEST initialise
- //-------------------------------------------------------------------------
-
- // initialisation of the context
- TInt status = InitMbmsContextL( packetMbmsContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
-
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
-
- TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1(contextId, contextConfig);
- ltsyData1.SerialiseL(data);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EPacketContextActivate, expectData, KErrNotSupported);
-
- packetMbmsContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData2(contextId);
- expData2.SerialiseL(expectData2);
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
- TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData2(contextId, contextConfig2);
- ltsyData2.SerialiseL(data2);
-
- iMockLTSY.ExpectL(EPacketContextActivate, expectData2);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrGeneral, data2);
-
- packetMbmsContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of activate context
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
-
- packetMbmsContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::Activate
- // from LTSY.
- //-------------------------------------------------------------------------
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy( 4 ); // data, data2, expectData
- CleanupStack::PopAndDestroy( 3, this ); // packetMbmsContext, packetService, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PA-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::Activate
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketMbmsContext::Activate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestActivate0002L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- // initialisation of the context
- TInt status = InitMbmsContextL(mbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(mbmsContext, contextId, contextConfig);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::Activate
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
- TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1(contextId, contextConfig);
- ltsyData1.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data, 10);
-
- mbmsContext.Activate(requestStatus);
- mbmsContext.CancelAsyncRequest(EPacketContextActivate);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- // TSY has started a request and it is not possible to then cancel
- // this request. The best thing for the TSY to do in this case is to
- // proceed as though the Cancel never happened.
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(3); // this, expectData, data
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PA-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Activate with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::Activate with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestActivate0003L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // -----------------------------------------------------------------------
- // call Activate without initialisation of the context
- // -----------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- packetMbmsContext.Activate( requestStatus );
- User::WaitForRequest( requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrArgument, requestStatus.Int() );
-
- CleanupStack::PopAndDestroy( 3, this ); //packetMbmsContext, packetService, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PA-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::Activate
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::Activate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestActivate0004L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RBuf8 data2;
- CleanupClosePushL( data2 );
-
- RBuf8 expectData2;
- CleanupClosePushL( expectData2 );
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( telServer2 );
-
- RMobilePhone phone2;
- ret = phone2.Open( telServer2, KMmTsyPhoneName );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( phone2 );
-
- // Open PacketService for the first client
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open PacketService for the second client
- RPacketService packetService2;
- packetService2.Open( phone2 );
- CleanupClosePushL( packetService2 );
-
- // Open first context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // initialisation of the first context
- TInt status = InitMbmsContextL( packetMbmsContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
- AssertMockLtsyStatusL();
-
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
- AssertMockLtsyStatusL();
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext packetMbmsContext2;
- packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
- CleanupClosePushL( packetMbmsContext2 );
- AssertMockLtsyStatusL();
-
- // initialisation of the second context
- status = InitMbmsContextL( packetMbmsContext2, contextId2 );
- ASSERT_EQUALS( KErrNone, status );
- AssertMockLtsyStatusL();
-
- // Configure context2
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
- status = SetMbmsConfigL(packetMbmsContext2, contextId2, contextConfig2);
- ASSERT_EQUALS( KErrNone, status );
- AssertMockLtsyStatusL();
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketMbmsContext::Activate
- //-------------------------------------------------------------------------
-
- // data for ExpectL for first client
- TMockLtsyData1 <TInfoName> expData( contextId );
- expData.SerialiseL( expectData );
-
- // data for CompleteL for first client
- TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1( contextId, contextConfig );
- ltsyData1.SerialiseL( data );
-
- // data for ExpectL for second client
- TMockLtsyData1 <TInfoName> expData2( contextId2 );
- expData2.SerialiseL( expectData2 );
-
- // data for CompleteL for second client
- TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData2( contextId2, contextConfig2 );
- ltsyData2.SerialiseL( data2 );
-
- // first request
- TRequestStatus requestStatus;
- iMockLTSY.ExpectL( EPacketContextActivate, expectData );
- iMockLTSY.CompleteL( EPacketContextActivate, KErrNone, data );
- packetMbmsContext.Activate( requestStatus );
-
- // second request
- TRequestStatus requestStatus2;
- iMockLTSY.ExpectL( EPacketContextActivate, expectData2 );
- iMockLTSY.CompleteL( EPacketContextActivate, KErrNone, data2 );
- packetMbmsContext2.Activate( requestStatus2 );
-
- // wait for first answer
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrNone, requestStatus.Int() );
-
- // wait for the second answer
- User::WaitForRequest( requestStatus2 );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
-
- CleanupStack::PopAndDestroy( 11, this ); // ... phone2, telServer2, expectData, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PA-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Activate with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::Activate and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestActivate0005L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // initialisation of the context
- TInt status = InitMbmsContextL( packetMbmsContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketMbmsContext::Activate
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData( contextId );
- expData.SerialiseL( expectData );
-
- iMockLTSY.ExpectL( EPacketContextActivate, expectData );
-
- TRequestStatus requestStatus;
- packetMbmsContext.Activate( requestStatus );
- User::WaitForRequest( requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrTimedOut, requestStatus.Int() );
-
- CleanupStack::PopAndDestroy( 5, this ); // data, expectData, packetMbmsContext, packetService, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PD-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Deactivate
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::Deactivate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestDeactivate0001L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // initialisation of the context
- TInt status = InitMbmsContextL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
- CleanupStack::PushL(aSession);
-
- CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
- CleanupStack::PushL(aSessionlist);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever retriever(*aSessionlist);
-
- scheduler.AddRetrieverL(retriever);
-
- aSessionlist->Start( retriever.Status() );
- retriever.Activate();
- scheduler.StartScheduler();
-
- TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession*> ltsyData( contextId, aSession);
- ltsyData.SerialiseL( data );
- iMockLTSY.ExpectL( EPacketContextDeactivate, data, KErrNotFound );
-
- TRequestStatus requestStatus;
- packetMbmsContext.Deactivate(requestStatus);
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrNotFound, requestStatus.Int());
-
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- TMockLtsyData1 <TInfoName> ltsyData1( contextId);
- ltsyData1.SerialiseL(expectData);
-
- iMockLTSY.ExpectL( EPacketContextDeactivate, data );
- iMockLTSY.CompleteL( EPacketContextDeactivate, KErrGeneral, expectData );
-
- packetMbmsContext.Deactivate( requestStatus );
- User::WaitForRequest( requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrGeneral, requestStatus.Int() );
-
-
- iMockLTSY.ExpectL( EPacketContextDeactivate, data );
- iMockLTSY.CompleteL( EPacketContextDeactivate, KErrMbmsImpreciseServiceEntries, data );
-
- packetMbmsContext.Deactivate( requestStatus );
- User::WaitForRequest( requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrMbmsImpreciseServiceEntries, requestStatus.Int() );
-
-
-
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketMbmsContext::Deactivate when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL( EPacketContextDeactivate, data );
- iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData );
-
- packetMbmsContext.Deactivate( requestStatus );
- User::WaitForRequest( requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrNone, requestStatus.Int() );
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketMbmsContext::Deactivate
- // from LTSY.
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
- iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData );
- User::WaitForRequest( mockLtsyStatus );
- ASSERT_EQUALS( KErrNone, mockLtsyStatus.Int() );
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy( 4 ); // packetMbmsContext, packetService
- CleanupStack::PopAndDestroy( 3, this ); // data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PD-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::Deactivate
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketMbmsContext::Deactivate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestDeactivate0002L()
- {
- // This test should test cancellation of Deactivate
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- // initialisation of the context
- TInt status = InitMbmsContextL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketMbmsContext::Deactivate
- //-------------------------------------------------------------------------
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
- CleanupStack::PushL(aSession);
-
- CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
- CleanupStack::PushL(aSessionlist);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever retriever(*aSessionlist);
-
- scheduler.AddRetrieverL(retriever);
-
- aSessionlist->Start( retriever.Status() );
- retriever.Activate();
- scheduler.StartScheduler();
-
-
- TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData( contextId, aSession);
- ltsyData.SerialiseL( data );
-
- TMockLtsyData1 <TInfoName> ltsyData1(contextId);
- ltsyData1.SerialiseL(expectData);
-
- iMockLTSY.ExpectL( EPacketContextDeactivate, data );
- iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData, 10 );
-
- TRequestStatus requestStatus;
-
- packetMbmsContext.Deactivate( requestStatus );
- packetMbmsContext.CancelAsyncRequest( EPacketContextDeactivate );
- User::WaitForRequest( requestStatus );
-
- // CTSY has started a request and it is not possible to then cancel
- // this request. The best thing for the TSY to do in this case is to
- // proceed as though the Cancel never happened.
- ASSERT_EQUALS( KErrNone, requestStatus.Int() );
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy( 4 ); // packetMbmsContext, packetService
- CleanupStack::PopAndDestroy( 3 ); // data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PD-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::Deactivate
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::Deactivate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestDeactivate0004L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 data2;
- CleanupClosePushL( data2 );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RBuf8 expectData2;
- CleanupClosePushL( expectData2 );
-
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( telServer2 );
-
- RMobilePhone phone2;
- ret = phone2.Open( iTelServer, KMmTsyPhoneName );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( phone2 );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- RPacketService packetService2;
- ret = packetService2.Open( phone2 );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( packetService2 );
-
- // Open first context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext packetMbmsContext2;
- packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
- CleanupClosePushL( packetMbmsContext2 );
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketMbmsContext::Deactivate
- //-------------------------------------------------------------------------
-
- // initialisation of the context
- TInt status = InitMbmsContextL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // initialisation of the context
- status = InitMbmsContextL(packetMbmsContext2, contextId2);
- ASSERT_EQUALS(KErrNone, status);
-
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- status = SetMbmsConfigL(packetMbmsContext2, contextId2, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- status = SetMbmsActiveL(packetMbmsContext2, contextConfig, contextId2);
- ASSERT_EQUALS(KErrNone, status);
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
- CleanupStack::PushL(aSession);
-
- CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
- CleanupStack::PushL(aSessionlist);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever retriever(*aSessionlist);
-
- scheduler.AddRetrieverL(retriever);
-
- aSessionlist->Start( retriever.Status() );
- retriever.Activate();
- scheduler.StartScheduler();
- TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData( contextId, aSession);
- ltsyData.SerialiseL( data );
-
-
- RPacketMbmsContext::CMbmsSession* aSession2 = RPacketMbmsContext::CMbmsSession::NewL();
- CleanupStack::PushL(aSession2);
-
- CRetrievePcktMbmsSessionList* aSessionlist2 = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext2, *aSession2);
- CleanupStack::PushL(aSessionlist2);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever retriever1(*aSessionlist2);
-
- scheduler.AddRetrieverL(retriever1);
-
- aSessionlist->Start( retriever1.Status() );
- retriever1.Activate();
- scheduler.StartScheduler();
-
- TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData2( contextId2, aSession2);
- ltsyData2.SerialiseL( data2 );
-
- iMockLTSY.ExpectL( EPacketContextDeactivate, data );
-
- TMockLtsyData1 <TInfoName> ltsyData3(contextId);
- ltsyData3.SerialiseL(expectData);
-
- iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData, 5 );
-
- iMockLTSY.ExpectL( EPacketContextDeactivate, data2 );
-
- TMockLtsyData1 <TInfoName> ltsyData4(contextId2);
- ltsyData4.SerialiseL(expectData2);
-
- iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData2, 5 );
-
- TRequestStatus requestStatus;
- packetMbmsContext.Deactivate( requestStatus );
-
- TRequestStatus requestStatus2;
- packetMbmsContext2.Deactivate( requestStatus2 );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS(KErrNone, requestStatus.Int() );
- User::WaitForRequest( requestStatus2 );
- ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
-
- CleanupStack::PopAndDestroy(15, this); // phone2, telServer2, data, data2, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PD-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Deactivate with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::Deactivate and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestDeactivate0005L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketMbmsContext::Deactivate
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
- CleanupStack::PushL(aSession);
-
- CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
- CleanupStack::PushL(aSessionlist);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever retriever(*aSessionlist);
-
- scheduler.AddRetrieverL(retriever);
-
- aSessionlist->Start( retriever.Status() );
- retriever.Activate();
- scheduler.StartScheduler();
-
- TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData( contextId, aSession);
- ltsyData.SerialiseL( data );
-
- // initialisation of the context
- TInt status = InitMbmsContextL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- iMockLTSY.ExpectL( EPacketContextDeactivate, data );
- packetMbmsContext.Deactivate( requestStatus );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrTimedOut, requestStatus.Int() );
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy( 4 ); // packetMbmsContext, packetService
- CleanupStack::PopAndDestroy( 2, this ); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PDE-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestDelete0001L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 outData;
- CleanupClosePushL( outData );
-
- RBuf8 servData;
- CleanupClosePushL( servData );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- TRequestStatus requestStatus;
- TMockLtsyData1<TInfoName > ltsyData( contextId );
- ltsyData.SerialiseL( data );
-
- //-------------------------------------------------------------------------
- // Send Delete request when ContextStatus is Unknown
- //-------------------------------------------------------------------------
-
- packetMbmsContext.Delete( requestStatus );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrNotReady, requestStatus.Int() );
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // activate context properly
- //-------------------------------------------------------------------------
-
- // initialisation of the context
- TInt status = InitMbmsContextL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // deactivate
- status = SetMbmsDeactiveL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketMbmsContext::Delete
- // from LTSY.
- //-------------------------------------------------------------------------
-
- TRequestStatus mockLtsyStatus;
-
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
- // send completion
- iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data );
- // wait for completion
- User::WaitForRequest( mockLtsyStatus );
- ASSERT_EQUALS( KErrNone, mockLtsyStatus.Int() );
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- TMockLtsyData1<TInfoName> expData( contextId );
- expData.SerialiseL( expectData );
-
- iMockLTSY.ExpectL( EPacketContextDelete, expectData, KErrNotSupported );
-
- packetMbmsContext.Delete( requestStatus );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrNotSupported, requestStatus.Int() );
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL ( EPacketContextDelete, expectData );
- iMockLTSY.CompleteL( EPacketContextDelete, KErrGeneral, data );
-
- packetMbmsContext.Delete( requestStatus );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int() );
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketMbmsContext::Delete when result is not cached.
- //-------------------------------------------------------------------------
-
- // remove context succefully
- iMockLTSY.ExpectL( EPacketContextDelete, data );
- iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data );
- packetMbmsContext.Delete( requestStatus );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrNone, requestStatus.Int() );
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy( 7, this ); //packetMbmsContext, packetService, expectData, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PDE-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestDelete0004L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 data2;
- CleanupClosePushL( data2 );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RBuf8 expectData2;
- CleanupClosePushL( expectData2 );
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( telServer2 );
-
- RMobilePhone phone2;
- ret = phone2.Open( iTelServer, KMmTsyPhoneName );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( phone2 );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- RPacketService packetService2;
- ret = packetService2.Open( phone2 );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( packetService2 );
-
- // Open first context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext packetMbmsContext2;
- packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
- CleanupClosePushL( packetMbmsContext2 );
-
- // initialise context's first
- TInt status = InitMbmsContextL( packetMbmsContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- TInt status2 = InitMbmsContextL( packetMbmsContext2, contextId2 );
- ASSERT_EQUALS( KErrNone, status2 );
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // Configure context 2
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
- status = SetMbmsConfigL(packetMbmsContext2, contextId2, contextConfig2);
- ASSERT_EQUALS( KErrNone, status );
-
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // activate context
- status2 = SetMbmsActiveL(packetMbmsContext2, contextConfig2, contextId2);
- ASSERT_EQUALS(KErrNone, status2);
-
- // deactivate
- status = SetMbmsDeactiveL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- status2 = SetMbmsDeactiveL(packetMbmsContext2, contextId2);
- ASSERT_EQUALS(KErrNone, status2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketMbmsContext::Delete
- //-------------------------------------------------------------------------
-
- // data for first CompleteL
- TMockLtsyData1<TInfoName> ltsyData( contextId );
- ltsyData.SerialiseL( data );
-
- // data for second CompleteL
- TMockLtsyData1<TInfoName> ltsyData2( contextId2 );
- ltsyData2.SerialiseL( data2 );
-
- // for the first request
- TRequestStatus requestStatus;
- TMockLtsyData1<TInfoName> expData( contextId );
- expData.SerialiseL( expectData );
-
- // for the second request
- TRequestStatus requestStatus2;
- TMockLtsyData1<TInfoName> expData2( contextId2 );
- expData2.SerialiseL( expectData2 );
-
- iMockLTSY.ExpectL( EPacketContextDelete, expectData );
- iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data );
- iMockLTSY.ExpectL( EPacketContextDelete, expectData2 );
- iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data2 );
-
- // send first request
- packetMbmsContext.Delete( requestStatus );
-
- // send second request
- packetMbmsContext2.Delete( requestStatus2 );
-
- // wait for first answer
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrNone, requestStatus.Int() );
-
- // wait for second answer
- User::WaitForRequest( requestStatus2 );
- ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
-
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy( 2 ); // expectData2, expectData
- CleanupStack::PopAndDestroy( 9, this ); //packetMbmsContext2, packetMbmsContext, packetService2, packetService, phone2, telServer2, data, data2, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PDE-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Delete with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::Delete and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestDelete0005L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup,this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // initialise context
- TInt status = InitMbmsContextL( packetMbmsContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // deactivate
- status = SetMbmsDeactiveL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketMbmsContext::Delete
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TMockLtsyData1<TInfoName> expData( contextId );
- expData.SerialiseL( expectData );
- iMockLTSY.ExpectL( EPacketContextDelete, expectData );
-
- packetMbmsContext.Delete( requestStatus );
-
- User::WaitForRequest( requestStatus );
- ASSERT_EQUALS( KErrTimedOut, requestStatus.Int() );
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy( 5, this ); //packetMbmsContext, packetService, data, expectData, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Close
-@SYMTestPriority
-@SYMTestActions Invokes RPacketMbmsContext::Close
-@SYMTestExpectedResults Pass
-@SYMTestType
-*/
-void CCTsyMbmsContextFU::TestClose0001L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup,this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // initialise context
- TInt status = InitMbmsContextL( packetMbmsContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // deactivate
- status = SetMbmsDeactiveL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // delete context
- status = SetMbmsDeleteL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // and finally close context
- TRequestStatus requestStatus;
-
- packetMbmsContext.Close( );
-
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, KErrNone);
-
- CleanupStack::PopAndDestroy( 5, this );
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PGC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::GetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestGetConfig0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
-
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
-
- TTmgi ttmgi;
- ttmgi.SetServiceId(KMmConfigTMGI1);
- ttmgi.SetMCC(KMmConfigTmgiMMC1);
- ttmgi.SetMCC(KMmConfigTmgiMNC1);
-
- contextConfig.iTmgi = ttmgi;
- contextConfig.iMbmsAccessBearer = E2GBearer;
- contextConfig.iMbmsServicePriority = EMbmsMediumServicePriority;
- contextConfig.iMbmsServiceMode = KBroadcast;
- contextConfig.iMbmsSessionFlag = EFalse;
-
- TInt status = InitMbmsContextL( packetContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- status = SetMbmsConfigL(packetContext, contextId, contextConfig);
-
- RPacketMbmsContext::TContextConfigMbmsV1 retContextConfig;
-
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> retPckgConfig(retContextConfig);
-
- packetContext.GetConfig(requestStatus, retPckgConfig);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- ASSERT_EQUALS( contextConfig.iTmgi.GetServiceId(), contextConfig.iTmgi.GetServiceId());
- ASSERT_EQUALS( contextConfig.iTmgi.GetMCC(), contextConfig.iTmgi.GetMCC());
- ASSERT_EQUALS( contextConfig.iTmgi.GetMNC(), contextConfig.iTmgi.GetMNC());
- ASSERT_EQUALS( contextConfig.iMbmsAccessBearer, contextConfig.iMbmsAccessBearer);
- ASSERT_EQUALS( contextConfig.iMbmsServicePriority, retContextConfig.iMbmsServicePriority);
- ASSERT_EQUALS( contextConfig.iMbmsServiceMode, retContextConfig.iMbmsServiceMode);
- ASSERT_EQUALS( contextConfig.iMbmsSessionFlag, retContextConfig.iMbmsSessionFlag);
-
- CleanupStack::PopAndDestroy(5, this); // packetService1, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PGC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::GetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::GetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestGetConfig0002L()
- {
-
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 data2;
- CleanupClosePushL( data2 );
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( telServer2 );
-
- RMobilePhone phone2;
- ret = phone2.Open( iTelServer, KMmTsyPhoneName );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( phone2 );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- RPacketService packetService2;
- ret = packetService2.Open( phone2 );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( packetService2 );
-
- // Open first context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext packetMbmsContext2;
- packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
- CleanupClosePushL( packetMbmsContext2 );
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketMbmsContext::GetConfig
- //-------------------------------------------------------------------------
-
- // If this API is flow controlled by Etel or if this API is
- // synchronous, remove this test completely.
-
- TRequestStatus requestStatus;
- TMockLtsyData1<TInfoName > ltsyData( contextId );
- ltsyData.SerialiseL( data );
-
- // data for second context
- TRequestStatus requestStatus2;
- TMockLtsyData1<TInfoName > ltsyData2( contextId2 );
- ltsyData2.SerialiseL( data2 );
-
- // initialisation of the context
- TInt status = InitMbmsContextL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- TInt status2 = InitMbmsContextL(packetMbmsContext2, contextId2);
- ASSERT_EQUALS(KErrNone, status2);
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- // activate context
- status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
- // activate context
- status2 = SetMbmsActiveL(packetMbmsContext2, contextConfig2, contextId2);
- ASSERT_EQUALS(KErrNone, status2);
-
- // -----------------------------------------------------------------------
- // initialise parameters
- // -----------------------------------------------------------------------
-
- // first context is selected and high priority
- TTmgi ttmgi;
- ttmgi.SetServiceId(KMmConfigTMGI1);
- ttmgi.SetMCC(KMmConfigTmgiMMC1);
- ttmgi.SetMCC(KMmConfigTmgiMNC1);
-
- contextConfig.iTmgi = ttmgi;
- contextConfig.iMbmsSessionFlag = ETrue;
- contextConfig.iMbmsServicePriority = EMbmsHighServicePriority;
- contextConfig.iMbmsServiceMode = KSelectedBroadcast;
- contextConfig.iMbmsAccessBearer = E3GBearer;
-
- // second context
-
- TTmgi ttmgi2;
- ttmgi2.SetServiceId(KMmConfigTMGI2);
- ttmgi2.SetMCC(KMmConfigTmgiMMC2);
- ttmgi2.SetMCC(KMmConfigTmgiMNC2);
-
- contextConfig2.iTmgi = ttmgi2;
- contextConfig2.iMbmsSessionFlag = EFalse;
- contextConfig2.iMbmsServicePriority = EMbmsLowServicePriority;
- contextConfig2.iMbmsServiceMode = KBroadcast;
- contextConfig2.iMbmsAccessBearer = E3GBearer;
-
- status = SetMbmsConfigL( packetMbmsContext, contextId, contextConfig );
- ASSERT_EQUALS(KErrNone, status);
-
- status2 = SetMbmsConfigL( packetMbmsContext2, contextId2, contextConfig2 );
- ASSERT_EQUALS(KErrNone, status2);
-
- // -----------------------------------------------------------------------
- // get parameters
- // -----------------------------------------------------------------------
- RPacketMbmsContext::TContextConfigMbmsV1 getConfig;
- RPacketMbmsContext::TContextConfigMbmsV1 getConfig2;
-
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(getConfig);
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig2(getConfig2);
-
- // send first request
- packetMbmsContext.GetConfig(requestStatus, pckgConfig);
- // send second request
- packetMbmsContext2.GetConfig(requestStatus2, pckgConfig2);
-
-
- // wait for the both answers
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- User::WaitForRequest( requestStatus2 );
- ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
-
- ASSERT_EQUALS(KMmConfigTMGI1, getConfig.iTmgi.GetServiceId());
- ASSERT_TRUE(getConfig.iMbmsSessionFlag);
- ASSERT_EQUALS(EMbmsHighServicePriority, getConfig.iMbmsServicePriority );
- ASSERT_EQUALS(KSelectedBroadcast, getConfig.iMbmsServiceMode);
- ASSERT_EQUALS(E3GBearer, getConfig.iMbmsAccessBearer);
-
- ASSERT_EQUALS(KMmConfigTMGI2, getConfig2.iTmgi.GetServiceId());
- ASSERT_TRUE(!getConfig2.iMbmsSessionFlag);
- ASSERT_EQUALS(EMbmsLowServicePriority, getConfig2.iMbmsServicePriority);
- ASSERT_EQUALS(KBroadcast, getConfig2.iMbmsServiceMode);
- ASSERT_EQUALS(E3GBearer, getConfig2.iMbmsAccessBearer);
-
- CleanupStack::PopAndDestroy(4); // packetMbmsContext, packetService, packetMbmsContext2, packetService2
- CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PGC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetConfig with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::GetConfig with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestGetConfig0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
-
- TInt status = InitMbmsContextL( packetContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- packetContext.GetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3); //this, packetService packetContext
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PGS-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetStatus
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::GetStatus
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestGetStatus0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL( expectData );
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- // test 1: context not inited
- RPacketContext::TContextStatus contextStatus;
- mbmsContext.GetStatus(contextStatus);
- ASSERT_EQUALS(RPacketContext::EStatusUnknown, contextStatus);
-
- // initialisation of the context
- TInt status = InitMbmsContextL(mbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // test2: context inited
- mbmsContext.GetStatus(contextStatus);
- ASSERT_EQUALS(RPacketContext::EStatusInactive, contextStatus);
-
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1(contextId, contextConfig);
- ltsyData1.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
-
- TRequestStatus requestStatus;
- mbmsContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // test3: context activated
- mbmsContext.GetStatus(contextStatus);
- ASSERT_EQUALS(RPacketContext::EStatusActive, contextStatus);
-
- CleanupStack::PopAndDestroy(2); //packetContext, packetService
- CleanupStack::PopAndDestroy(3, this); // data,expectData, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PGLEC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetLastErrorCause
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::GetLastErrorCause
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestGetLastErrorCause0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- // initialise context
- TInt status = InitMbmsContextL( mbmsContext, contextId );
- ASSERT_EQUALS( KErrNone, status );
-
- // Configure context
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- status = SetMbmsConfigL(mbmsContext, contextId, contextConfig);
- ASSERT_EQUALS( KErrNone, status );
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- TInt error;
- status = mbmsContext.GetLastErrorCause(error);
- ASSERT_EQUALS(KErrNone, status);
- ASSERT_EQUALS(KErrNone, error);
-
- //-------------------------------------------------------------------------
- // TEST B: Emulate some error
- //-------------------------------------------------------------------------
-
- // Set context in to Activating state
- TContextMisc completeMisc;
- completeMisc.iStatus = RPacketContext::EStatusActivating;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData1(contextId, completeMisc);
- data.Close();
- ltsyData1.SerialiseL(data);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- //send completion
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- // Emulate an error
- completeMisc.iStatus = RPacketContext::EStatusActive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
- data.Close();
- ltsyData.SerialiseL(data);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- //send completion
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrGeneral, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- // Get the error
- status = mbmsContext.GetLastErrorCause(error);
- ASSERT_EQUALS(KErrNone, status);
- ASSERT_EQUALS(KErrGeneral, error);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); // packetContext, mbmsService, data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PNCC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::NotifyConfigChanged
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::NotifyConfigChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestNotifyConfigChanged0001L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- // initialisation of the context
- TInt status = InitMbmsContextL(packetMbmsContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketMbmsContext::NotifyConfigChanged when result is not cached.
- //-------------------------------------------------------------------------
- // data for NotifyConfigChanged
- TRequestStatus requestStatus;
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig( contextConfig );
-
- //data for ComleteL
- RPacketMbmsContext::TContextConfigMbmsV1 configComplete;
-
- TTmgi ttmgi;
- ttmgi.SetServiceId(KMmConfigTMGI1);
- ttmgi.SetMCC(KMmConfigTmgiMMC1);
- ttmgi.SetMNC(KMmConfigTmgiMNC1);
-
- configComplete.iTmgi = ttmgi;
- configComplete.iMbmsAccessBearer = E2GBearer;
- configComplete.iMbmsServicePriority = EMbmsMediumServicePriority;
- configComplete.iMbmsServiceMode = KBroadcast;
- configComplete.iMbmsSessionFlag = EFalse;
-
- TMockLtsyData2<TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData( contextId, configComplete );
- ltsyData.SerialiseL( data );
-
- // send request
- packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig );
-
- // sent completion
- iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
- // wait for completion
- User::WaitForRequest( mockLtsyStatus );
-
- // wait for request
- User::WaitForRequest( requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrNone, requestStatus.Int() );
-
- ASSERT_EQUALS( configComplete.iTmgi.GetServiceId(), contextConfig.iTmgi.GetServiceId());
- ASSERT_EQUALS( configComplete.iTmgi.GetMCC(), contextConfig.iTmgi.GetMCC());
- ASSERT_EQUALS( configComplete.iTmgi.GetMNC(), contextConfig.iTmgi.GetMNC());
- ASSERT_EQUALS( configComplete.iMbmsAccessBearer, contextConfig.iMbmsAccessBearer);
- ASSERT_EQUALS( configComplete.iMbmsServicePriority, contextConfig.iMbmsServicePriority);
- ASSERT_EQUALS( configComplete.iMbmsServiceMode, contextConfig.iMbmsServiceMode);
- ASSERT_EQUALS( configComplete.iMbmsSessionFlag, contextConfig.iMbmsSessionFlag);
-
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketMbmsContext::NotifyConfigChanged
- // from LTSY.
- //-------------------------------------------------------------------------
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
- // sent completion
- iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
- // wait for completion
- User::WaitForRequest( mockLtsyStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrNone, mockLtsyStatus.Int() );
-
- CleanupStack::PopAndDestroy( 2 ); // packetService, packetMbmsContext
- CleanupStack::PopAndDestroy( 2, this ); // data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PNCC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::NotifyConfigChanged
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketMbmsContext::NotifyConfigChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestNotifyConfigChanged0002L()
- {
- // This test should test cancellation of NotifyConfigChanged
- // If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketMbmsContext::NotifyConfigChanged
- //-------------------------------------------------------------------------
- // data for NotifyConfigChanged
- TRequestStatus requestStatus;
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig( contextConfig );
-
- //data for ComleteL
- RPacketMbmsContext::TContextConfigMbmsV1 configComplete;
-
- TTmgi ttmgi;
- ttmgi.SetServiceId(KMmConfigTMGI1);
- ttmgi.SetMCC(KMmConfigTmgiMMC1);
- ttmgi.SetMNC(KMmConfigTmgiMNC1);
-
- configComplete.iTmgi = ttmgi;
- configComplete.iMbmsAccessBearer = E2GBearer;
- configComplete.iMbmsServicePriority = EMbmsMediumServicePriority;
- configComplete.iMbmsServiceMode = KBroadcast;
- configComplete.iMbmsSessionFlag = EFalse;
-
- TMockLtsyData2 <TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData( contextId, configComplete );
- ltsyData.SerialiseL( data );
-
- // send request
- packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig );
- //send cancellation
- packetMbmsContext.CancelAsyncRequest( ECtsyPacketMbmsContextNotifyConfigChanged );
-
- // sent completion
- iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
- // wait for completion
- User::WaitForRequest( mockLtsyStatus );
-
- // wait for request
- User::WaitForRequest( requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_TRUE( KErrCancel == requestStatus.Int() || KErrNone == requestStatus.Int());
-
- CleanupStack::PopAndDestroy( 2 ); // packetService, packetMbmsContext
- CleanupStack::PopAndDestroy( 2 ); // data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PNCC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::NotifyConfigChanged with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::NotifyConfigChanged with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestNotifyConfigChanged0003L()
- {
- // This test should test sending bad parameter data for NotifyConfigChanged
- // If this API does not have any parameters, then remove this test completely.
-
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL(TCleanupItem( Cleanup,this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketMbmsContext::NotifyConfigChanged
- //-------------------------------------------------------------------------
- // data for NotifyConfigChanged
- TRequestStatus requestStatus;
- RPacketMbmsContext::TContextConfigCDMA contextConfig;
- TPckg<RPacketMbmsContext::TContextConfigCDMA> pckgConfig( contextConfig );
-
- // send request
- packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig );
-
- // wait for request
- User::WaitForRequest(requestStatus );
- AssertMockLtsyStatusL();
- ASSERT_EQUALS( KErrNotSupported, requestStatus.Int() );
-
- // Done !
- CleanupStack::PopAndDestroy( 2 ); // packetMbmsService, packetContext
- CleanupStack::PopAndDestroy( 2, this ); // data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PNCC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::NotifyConfigChanged
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::NotifyConfigChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestNotifyConfigChanged0004L()
- {
- OpenEtelServerL( EUseExtendedError );
- CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL( data );
-
- RBuf8 data2;
- CleanupClosePushL( data2 );
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( telServer2 );
-
- RMobilePhone phone2;
- ret = phone2.Open( iTelServer, KMmTsyPhoneName );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( phone2 );
-
- RPacketService packetService;
- OpenPacketServiceL( packetService );
- CleanupClosePushL( packetService );
-
- RPacketService packetService2;
- ret = packetService2.Open( phone2 );
- ASSERT_EQUALS( KErrNone, ret );
- CleanupClosePushL( packetService2 );
-
- // Open first context
- TInfoName contextId;
- RPacketMbmsContext packetMbmsContext;
- packetMbmsContext.OpenNewContext( packetService, contextId );
- CleanupClosePushL( packetMbmsContext );
-
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext packetMbmsContext2;
- packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
- CleanupClosePushL( packetMbmsContext2 );
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated( mockLtsyStatus );
-
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketMbmsContext::NotifyConfigChanged
- //-------------------------------------------------------------------------
-
- // If this API is flow controlled by Etel or if this API is
- // synchronous, remove this test completely.
-
- // To write this test:
- // If this API has parameters which have different versions, then each
- // client in this test should use a different version of parameter.
- // Otherwise, they should use the same version.
- // All versions of parameters should be used. i.e. If there are three
- // versions of a parameter, there should be three clients, one using
- // each one. If the parameter does not have different versions, use
- // two clients each using the same version.
-
- // data for NotifyConfigChanged 1
- TRequestStatus requestStatus;
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig1;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig1( contextConfig1 );
-
- //data for CompleteL 1
- RPacketMbmsContext::TContextConfigMbmsV1 configComplete1;
-
- TTmgi ttmgi;
- ttmgi.SetServiceId(KMmConfigTMGI1);
- ttmgi.SetMCC(KMmConfigTmgiMMC1);
- ttmgi.SetMNC(KMmConfigTmgiMNC1);
-
- configComplete1.iTmgi = ttmgi;
- configComplete1.iMbmsAccessBearer = E2GBearer;
- configComplete1.iMbmsServicePriority = EMbmsMediumServicePriority;
- configComplete1.iMbmsServiceMode = KBroadcast;
- configComplete1.iMbmsSessionFlag = EFalse;
- TMockLtsyData2<TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData( contextId, configComplete1 );
- ltsyData.SerialiseL( data );
-
- // data for NotifyConfigChanged 2
- TRequestStatus requestStatus2;
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig2( contextConfig2 );
-
- //data for CompleteL 2
- RPacketMbmsContext::TContextConfigMbmsV1 configComplete2;
-
- configComplete2.iTmgi = ttmgi;
- configComplete2.iMbmsAccessBearer = E2GBearer;
- configComplete2.iMbmsServicePriority = EMbmsHighServicePriority;
- configComplete2.iMbmsServiceMode = KSelectedBroadcast;
- configComplete2.iMbmsSessionFlag = ETrue;
-
- TMockLtsyData2<TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData2( contextId2, configComplete2 );
- ltsyData2.SerialiseL( data2 );
-
- // send first request
- packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig1 );
-
- // send second request
- packetMbmsContext2.NotifyConfigChanged( requestStatus2, pckgConfig2 );
-
- // sent first completion
- iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
-
- // sent second completion
- iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data2 );
-
-
- // wait for completion
- User::WaitForRequest( mockLtsyStatus );
-
-
- // wait for first answer
- User::WaitForRequest( requestStatus );
-
- // wait for second answer
- User::WaitForRequest( requestStatus2 );
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS( KErrNone, requestStatus.Int() );
- ASSERT_EQUALS( configComplete1.iTmgi.GetServiceId(), contextConfig1.iTmgi.GetServiceId());
- ASSERT_EQUALS( configComplete1.iTmgi.GetMCC(), contextConfig1.iTmgi.GetMCC());
- ASSERT_EQUALS( configComplete1.iTmgi.GetMNC(), contextConfig1.iTmgi.GetMNC());
- ASSERT_EQUALS( configComplete1.iMbmsAccessBearer, contextConfig1.iMbmsAccessBearer);
- ASSERT_EQUALS( configComplete1.iMbmsServicePriority, contextConfig1.iMbmsServicePriority);
- ASSERT_EQUALS( configComplete1.iMbmsServiceMode, contextConfig1.iMbmsServiceMode);
- ASSERT_EQUALS( configComplete1.iMbmsSessionFlag, contextConfig1.iMbmsSessionFlag);
-
-
- ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
-
- ASSERT_EQUALS( configComplete2.iTmgi.GetServiceId(), contextConfig2.iTmgi.GetServiceId());
- ASSERT_EQUALS( configComplete2.iTmgi.GetMCC(), contextConfig2.iTmgi.GetMCC());
- ASSERT_EQUALS( configComplete2.iTmgi.GetMNC(), contextConfig2.iTmgi.GetMNC());
- ASSERT_EQUALS( configComplete2.iMbmsAccessBearer, contextConfig2.iMbmsAccessBearer);
- ASSERT_EQUALS( configComplete2.iMbmsServicePriority, contextConfig2.iMbmsServicePriority);
- ASSERT_EQUALS( configComplete2.iMbmsServiceMode, contextConfig2.iMbmsServiceMode);
- ASSERT_EQUALS( configComplete2.iMbmsSessionFlag, contextConfig2.iMbmsSessionFlag);
-
-
- // Done !
- CleanupStack::PopAndDestroy( 9, this ); //packetMbmsContext2, packetMbmsContext, packetService2, packetService, phone2, telServer2, data, data2 this
- }
-
-/**
-@SYMTestCaseID
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::NotifyStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketMbmsContext::NotifyStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestNotifyStatusChange0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- // data for NotifyStatusChange
- TRequestStatus requestStatus;
- RPacketContext::TContextStatus contextStatus;
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::NotifyStatusChange when result is not cached.
- //-------------------------------------------------------------------------
- //data for CompleteL
- TContextMisc completeMisc;
- completeMisc.iStatus = RPacketContext::EStatusActive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
- ltsyData.SerialiseL(data);
- //send request
- mbmsContext.NotifyStatusChange(requestStatus, contextStatus);
- //send completion
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
-
- // wait for NotifyStatusChange
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(completeMisc.iStatus, contextStatus);
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::NotifyStatusChange
- // from LTSY.
- //-------------------------------------------------------------------------
- //data for ComleteL
- completeMisc.iStatus = RPacketContext::EStatusInactive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData1(contextId, completeMisc);
- data.Close();
- ltsyData1.SerialiseL(data);
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- //send completion
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PNSC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::NotifyStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketMbmsContext::NotifyStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestNotifyStatusChange0002L()
- {
-
-// This test should test cancellation of NotifyStatusChange
-// If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- // data for NotifyStatusChange
- TRequestStatus requestStatus;
- RPacketContext::TContextStatus contextStatus;
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::NotifyStatusChange
- //-------------------------------------------------------------------------
- //data for ComleteL
- TContextMisc completeMisc;
- completeMisc.iStatus = RPacketContext::EStatusInactive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
- ltsyData.SerialiseL(data);
- //send request
- mbmsContext.NotifyStatusChange(requestStatus, contextStatus);
- // send canceling...
- mbmsContext.CancelAsyncRequest(EPacketContextNotifyStatusChange);
-
- //send completion
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
-
- // wait for NotifyStatusChange
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(2); // data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-MCF-PNSC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::NotifyStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::NotifyStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyMbmsContextFU::TestNotifyStatusChange0003L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 data2;
- CleanupClosePushL(data2);
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- // Open first context
- TInfoName contextId;
- RPacketMbmsContext mbmsContext;
- mbmsContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(mbmsContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketMbmsContext mbmsContext2;
- mbmsContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(mbmsContext2);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::NotifyStatusChange
- //-------------------------------------------------------------------------
-
- // If this API is flow controlled by Etel or if this API is
- // synchronous, remove this test completely.
-
- // To write this test:
- // If this API has parameters which have different versions, then each
- // client in this test should use a different version of parameter.
- // Otherwise, they should use the same version.
- // All versions of parameters should be used. i.e. If there are three
- // versions of a parameter, there should be three clients, one using
- // each one. If the parameter does not have different versions, use
- // two clients each using the same version.
-
- //data for ComleteL for first context
- TContextMisc completeMisc;
- completeMisc.iStatus = RPacketContext::EStatusInactive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
- ltsyData.SerialiseL(data);
-
- //data for ComleteL for second context
- TContextMisc completeMisc2;
- completeMisc2.iStatus = RPacketContext::EStatusSuspended;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData2(contextId2, completeMisc2);
- ltsyData2.SerialiseL(data2);
-
- // initialize data for first context's NotifyStatusChange
- TRequestStatus requestStatus;
- RPacketContext::TContextStatus contextStatus;
-
- // initialize data for second context's NotifyStatusChange
- TRequestStatus requestStatus2;
- RPacketContext::TContextStatus contextStatus2;
-
- //send first request
- mbmsContext.NotifyStatusChange(requestStatus, contextStatus);
-
- //send second request
- mbmsContext2.NotifyStatusChange(requestStatus2, contextStatus2);
-
- //send completion for first comtext
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
-
- // wait for first context NotifyStatusChange
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(completeMisc.iStatus, contextStatus);
-
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- //send completion for second comtext
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data2);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
-
- // wait for second context NotifyStatusChange
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(completeMisc2.iStatus, contextStatus2);
-
- AssertMockLtsyStatusL();
-
- // Done !
- CleanupStack::PopAndDestroy(4);// packetContext2, packetContext, packetService2, packetService
- CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
-
- }
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file The TEFUnit test suite for MBMS Context in the Common TSY.
+*/
+
+#include "cctsymbmscontextfu.h"
+#include "cctsyactiveretriever.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <ctsy/mmtsy_names.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include "tmockltsydata.h"
+#include <ctsy/serviceapi/gsmerror.h>
+
+#include <pcktcs.h>
+#include <pcktlist.h>
+#include "pcktretrieve.h"
+#include "CMmCommonStaticUtility.h"
+#include <ctsy/serviceapi/mmtsy_defaults.h>
+
+
+
+CTestSuite* CCTsyMbmsContextFU::CreateSuiteL(const TDesC& aName)
+ {
+ SUB_SUITE;
+
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestOpenNewContext0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestInitialiseContext0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestSetConfig0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestActivate0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDeactivate0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDelete0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDelete0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestDelete0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestClose0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetConfig0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetConfig0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetConfig0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetStatus0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestGetLastErrorCause0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyConfigChanged0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyStatusChange0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyStatusChange0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyMbmsContextFU, TestNotifyStatusChange0003L);
+
+ END_SUITE;
+ }
+
+
+//
+// Actual test cases
+//
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PONC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::OpenNewContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::OpenNewContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+
+void CCTsyMbmsContextFU::TestOpenNewContext0001L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RPacketService packetService;
+
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ //-------------------------------------------------------------------------
+ // TEST create
+ //-------------------------------------------------------------------------
+
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ TInt retCode;
+
+ // memory leak check
+ __UHEAP_MARK;
+
+ retCode = packetMbmsContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, retCode);
+
+ _LIT(KContextName, "MBMS_Context_0");
+
+ ASSERT_FALSE(contextId.Compare(KContextName));
+ packetMbmsContext.Close();
+
+ __UHEAP_MARKEND;
+ // end memory leak check
+
+ // test maximum number of contexts allowed
+ TInt count(0);
+ TInt maxAllowed(0);
+
+ TRequestStatus requestStatus;
+ packetService.EnumerateMbmsActiveServiceList(requestStatus, count, maxAllowed);
+ User::WaitForRequest( requestStatus );
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ TInt err = 0;
+ TInt status = 0;
+ for (TInt i = 0; i < maxAllowed; i++)
+ {
+ RPacketMbmsContext newPacketMbmsContext;
+ TInfoName contextId;
+
+ err = newPacketMbmsContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(newPacketMbmsContext);
+
+ // check the context can be initialised
+ status = InitMbmsContextL(newPacketMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ CleanupStack::Pop();
+ }
+
+ RPacketMbmsContext OneMorePacketContext;
+ TInfoName contextId1;
+
+ err = OneMorePacketContext.OpenNewContext(packetService, contextId1);
+ ASSERT_EQUALS(KErrOverflow, err);
+
+ OneMorePacketContext.Close();
+ packetService.Close();
+ CleanupStack::PopAndDestroy(2, this); // packetService, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PIC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::InitialiseContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::InitialiseContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestInitialiseContext0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+ TMockLtsyData1<TInfoName> ltsyExpect(contextId);
+ ltsyExpect.SerialiseL(expectData);
+
+ // data for initialisation of the context
+ TRequestStatus requestStatus;
+ iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData, KErrNotSupported);
+
+ //initialisation of the context
+ RPacketContext::TDataChannelV2 dataCh;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TDataChannelV2 retDataCh;
+
+ _LIT(KDataChannelName, "DataChannel_1");
+ retDataCh.iChannelId.Copy(KDataChannelName);
+
+ iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TMockLtsyData2<TInfoName, RPacketContext::TDataChannelV2> ltsyData(contextId,retDataCh);
+ data.Close();
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrGeneral, data);
+
+ //initialisation of the context
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::InitialiseContext when result is not cached.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
+ iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data);
+
+ //initialisation of the context
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ RPacketContext::TDataChannelV2 dataChannel = pckgInit();
+
+ // check this
+ ASSERT_TRUE(contextId.Compare(KDataChannelName));
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::InitialiseContext
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(5, this); // expectData, data, this, packetService, packetContext
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PIC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::InitialiseContext
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketMbmsContext::InitialiseContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestInitialiseContext0002L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::InitialiseContext when result is not cached.
+ //-------------------------------------------------------------------------
+
+ // data for initialisation of the context
+ TRequestStatus requestStatus;
+ RPacketContext::TDataChannelV2 dataCh;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ TMockLtsyData1< TInfoName> ltsyInit(contextId);
+ ltsyInit.SerialiseL(data);
+ iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, data);
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RPacketContext::TDataChannelV2 retDataCh;
+ TMockLtsyData2< TInfoName, RPacketContext::TDataChannelV2 > ltsyData(contextId, retDataCh);
+ data.Close();
+ ltsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data, 10);
+
+ // initialisation of the context
+ packetMbmsContext.InitialiseContext(requestStatus, pckgInit);
+
+ // cancel request
+ packetMbmsContext.CancelAsyncRequest(EPacketContextInitialiseContext);
+
+ User::WaitForRequest(requestStatus);
+ // CTSY has started a request and it is not possible to then cancel
+ // this request. The best thing for the TSY to do in this case is to
+ // proceed as though the Cancel never happened.
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(3); // expectData, data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PIC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::InitialiseContext with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::InitialiseContext with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestInitialiseContext0003L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketMbmsContext::InitialiseContext
+ //-------------------------------------------------------------------------
+ // data for initialisation of the context
+
+ TRequestStatus requestStatus;
+ RCall::TCommPort dataCh; // wrong type of data package
+ TPckg<RCall::TCommPort> pckgInit( dataCh );
+
+ //initialisation of the context
+ packetMbmsContext.InitialiseContext( requestStatus, pckgInit );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrArgument, requestStatus.Int() );
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy( 2 ); // packetMbmsContext, packetService
+ CleanupStack::PopAndDestroy( 3, this ); // expectData, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PIC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::InitialiseContext
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::InitialiseContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestInitialiseContext0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext packetContext2;
+ packetContext2.OpenNewContext(packetService, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketMbmsContext::InitialiseContext
+ //-------------------------------------------------------------------------
+
+ // for the first request
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ TMockLtsyData1<TInfoName> ltsyExpect(contextId);
+ ltsyExpect.SerialiseL(expectData);
+ iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketContext::TDataChannelV2 dataCh;
+ TMockLtsyData2<TInfoName, RPacketContext::TDataChannelV2> ltsyData(contextId, dataCh);
+ ltsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data);
+
+ // for the first request
+ RBuf8 expectData2;
+ CleanupClosePushL(expectData2);
+
+ TMockLtsyData1<TInfoName> ltsyExpect2(contextId2);
+ ltsyExpect2.SerialiseL(expectData2);
+ iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData2);
+
+ RBuf8 data2;
+ CleanupClosePushL(data2);
+
+ RPacketContext::TDataChannelV2 dataCh2;
+ TMockLtsyData2<TInfoName, RPacketContext::TDataChannelV2> ltsyData2(contextId2, dataCh2);
+ ltsyData2.SerialiseL(data2);
+ iMockLTSY.CompleteL(ECtsyPacketMbmsInitialiseContextComp, KErrNone, data2);
+
+ //first request
+ TRequestStatus requestStatus;
+ RPacketContext::TDataChannelV2 dataChannel1;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit1(dataChannel1);
+ packetContext.InitialiseContext(requestStatus, pckgInit1);
+
+ //second request
+ TRequestStatus requestStatus2;
+ RPacketContext::TDataChannelV2 dataChannel2;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit2(dataChannel2);
+ packetContext2.InitialiseContext(requestStatus2, pckgInit2);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(8, this); //packetContext2, packetContext, packetService, expectData, expectData2, data, data2, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PIC-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::InitialiseContext with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::InitialiseContext and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestInitialiseContext0005L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetMbmsContext);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::InitialiseContext
+ //-------------------------------------------------------------------------
+ TMockLtsyData1<TInfoName> ltsyExpect(contextId);
+ ltsyExpect.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(ECtsyPacketMbmsInitialiseContextReq, expectData);
+
+ TRequestStatus requestStatus;
+ RPacketContext::TDataChannelV2 dataCh;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
+ packetMbmsContext.InitialiseContext(requestStatus, pckgInit);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); //packetService, packetContext, expectData, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PSC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::SetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::SetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestSetConfig0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(mbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // data for SetContext
+ RPacketMbmsContext::TContextConfigMbmsV1 setConfig;
+ TTmgi ttmgi;
+ ttmgi.SetServiceId(KMmConfigTMGI1);
+ ttmgi.SetMCC(KMmConfigTmgiMMC1);
+ ttmgi.SetMNC(KMmConfigTmgiMNC1);
+ setConfig.iTmgi = ttmgi;
+ setConfig.iMbmsAccessBearer = E2GBearer;
+ setConfig.iMbmsServicePriority = EMbmsMediumServicePriority;
+ setConfig.iMbmsServiceMode = KBroadcast;
+ setConfig.iMbmsSessionFlag = EFalse;
+
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(setConfig);
+
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(setConfig, contextId);
+ expExpect.SerialiseL(expectData);
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
+
+ TRequestStatus requestStatus;
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+
+ TMockLtsyData1<TInfoName > contexName(contextId);
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, data);
+
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::SetConfig when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ RPacketMbmsContext::TContextConfigMbmsV1 retData = pckgConfig();
+ ASSERT_EQUALS(setConfig.iMbmsAccessBearer, retData.iMbmsAccessBearer);
+ ASSERT_EQUALS(setConfig.iMbmsServicePriority, retData.iMbmsServicePriority);
+ ASSERT_EQUALS(setConfig.iMbmsServiceMode, retData.iMbmsServiceMode);
+ ASSERT_EQUALS(setConfig.iMbmsSessionFlag, retData.iMbmsSessionFlag);
+
+ AssertMockLtsyStatusL();
+
+ //--------------------------------------------
+ // failure to dispatch request for config
+ //--------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
+
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::SetConfig
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(2); //packetContext, packetService
+ CleanupStack::PopAndDestroy(3, this); // data, expectData, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PSC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::SetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketMbmsContext::SetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestSetConfig0002L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(mbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ TRequestStatus requestStatus;
+ RPacketMbmsContext::TContextConfigMbmsV1 setConfig;
+
+ //-------------------------------------------------------------------------
+ // TEST C: Cancel completion request of
+ // RPacketContext::SetConfig when result is not cached.
+ //-------------------------------------------------------------------------
+ TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(setConfig, contextId);
+ expExpect.SerialiseL(expectData);
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+
+ // TODO : KHURAM FIX
+ //data for CompleteL
+ TMockLtsyData1<TInfoName > contexName(contextId);
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 10);
+
+
+ // data for SetContext
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(setConfig);
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+ mbmsContext.CancelAsyncRequest(EPacketContextSetConfig);
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(2); //packetContext, packetService
+ CleanupStack::PopAndDestroy(3, this); // data, expectData, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PSC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::SetConfig with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::SetConfig with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestSetConfig0003L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ TInfoName hostCid;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ TRequestStatus requestStatus;
+
+ //------------------------------------------------
+ //set config for context that was not initialised
+ //------------------------------------------------
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
+
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(2); //packetContext packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PSC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::SetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::SetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestSetConfig0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 data2;
+ CleanupClosePushL(data2);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 expectData2;
+ CleanupClosePushL(expectData2);
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(telServer2,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ // Open first context
+ TInfoName contextId;
+ TInfoName hostCid;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext mbmsContext2;
+ mbmsContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(mbmsContext2);
+
+
+ // initialisation of the first context
+ TInt status = InitMbmsContextL(mbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // initialisation of the second context
+ status = InitMbmsContextL(mbmsContext2, contextId2);
+ ASSERT_EQUALS(KErrNone, status);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::SetConfig
+ //-------------------------------------------------------------------------
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ TTmgi ttmgi;
+ ttmgi.SetServiceId(KMmConfigTMGI1);
+ ttmgi.SetMCC(KMmConfigTmgiMMC1);
+ ttmgi.SetMCC(KMmConfigTmgiMNC1);
+ contextConfig.iTmgi = ttmgi;
+ contextConfig.iMbmsAccessBearer = E2GBearer;
+ contextConfig.iMbmsServicePriority = EMbmsMediumServicePriority;
+ contextConfig.iMbmsServiceMode = KBroadcast;
+ contextConfig.iMbmsSessionFlag = EFalse;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
+ // for the first ExpectL
+ TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(contextConfig, contextId);
+ expExpect.SerialiseL(expectData);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
+ TTmgi ttmgi2;
+ ttmgi2.SetServiceId(KMmConfigTMGI2);
+ ttmgi2.SetMCC(KMmConfigTmgiMMC2);
+ ttmgi2.SetMCC(KMmConfigTmgiMNC2);
+ contextConfig2.iTmgi = ttmgi;
+ contextConfig2.iMbmsAccessBearer = E3GBearer;
+ contextConfig2.iMbmsServicePriority = EMbmsHighServicePriority;
+ contextConfig2.iMbmsServiceMode = KSelectedBroadcast;
+ contextConfig2.iMbmsSessionFlag = ETrue;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig2(contextConfig2);
+ // for the second ExpectL
+ TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect2(contextConfig2, contextId2);
+ expExpect2.SerialiseL(expectData2);
+
+ // for the first CompleteL
+ TMockLtsyData1< TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+
+ // for the second CompleteL
+ TMockLtsyData1< TInfoName > ltsyData2(contextId2);
+ ltsyData2.SerialiseL(data2);
+
+ TRequestStatus requestStatus;
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 10);
+
+ TRequestStatus requestStatus2;
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData2);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data2, 10);
+
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+ mbmsContext2.SetConfig(requestStatus2, pckgConfig2);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ RPacketMbmsContext::TContextConfigMbmsV1 ret1 = pckgConfig();
+ RPacketMbmsContext::TContextConfigMbmsV1 ret2 = pckgConfig2();
+
+ ASSERT_EQUALS(ret1.iMbmsAccessBearer, contextConfig.iMbmsAccessBearer);
+ ASSERT_EQUALS(ret1.iMbmsServicePriority, contextConfig.iMbmsServicePriority);
+ ASSERT_EQUALS(ret1.iMbmsServiceMode, contextConfig.iMbmsServiceMode);
+ ASSERT_EQUALS(ret1.iMbmsSessionFlag, contextConfig.iMbmsSessionFlag);
+
+ ASSERT_EQUALS(ret2.iMbmsAccessBearer, contextConfig2.iMbmsAccessBearer);
+ ASSERT_EQUALS(ret2.iMbmsServicePriority, contextConfig2.iMbmsServicePriority);
+ ASSERT_EQUALS(ret2.iMbmsServiceMode, contextConfig2.iMbmsServiceMode);
+ ASSERT_EQUALS(ret2.iMbmsSessionFlag, contextConfig2.iMbmsSessionFlag);
+
+ User::WaitForRequest(mockLtsyStatus);
+
+ // packetContext, packetService, packetContext2, packetService2
+ //one2, telServer2, data2,
+ CleanupStack::PopAndDestroy(2); //expectData2, expectData
+ CleanupStack::PopAndDestroy(9, this); // data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PSC-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::SetConfig with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::SetConfig and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestSetConfig0005L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::SetConfig
+ //-------------------------------------------------------------------------
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ // initialisation of the first context
+ TInt status = InitMbmsContextL(mbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
+ TMockLtsyData2<RPacketMbmsContext::TContextConfigMbmsV1, TInfoName > expExpect(contextConfig, contextId);
+ expExpect.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+
+ TMockLtsyData1<TInfoName > contexName(contextId);
+ contexName.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+
+ mbmsContext.SetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+
+ CleanupStack::PopAndDestroy(2); //packetContext packetService,
+ CleanupStack::PopAndDestroy(3, this); // data, expectData, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PA-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Activate
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::Activate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestActivate0001L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 data2;
+ CleanupClosePushL( data2 );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RBuf8 expectData2;
+ CleanupClosePushL( expectData2 );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ //-------------------------------------------------------------------------
+ // TEST create
+ //-------------------------------------------------------------------------
+
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST initialise
+ //-------------------------------------------------------------------------
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL( packetMbmsContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+
+ TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1(contextId, contextConfig);
+ ltsyData1.SerialiseL(data);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData, KErrNotSupported);
+
+ packetMbmsContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData2(contextId);
+ expData2.SerialiseL(expectData2);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
+ TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData2(contextId, contextConfig2);
+ ltsyData2.SerialiseL(data2);
+
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData2);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrGeneral, data2);
+
+ packetMbmsContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of activate context
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
+
+ packetMbmsContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::Activate
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy( 4 ); // data, data2, expectData
+ CleanupStack::PopAndDestroy( 3, this ); // packetMbmsContext, packetService, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PA-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::Activate
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketMbmsContext::Activate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestActivate0002L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(mbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(mbmsContext, contextId, contextConfig);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::Activate
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+ TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1(contextId, contextConfig);
+ ltsyData1.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data, 10);
+
+ mbmsContext.Activate(requestStatus);
+ mbmsContext.CancelAsyncRequest(EPacketContextActivate);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ // TSY has started a request and it is not possible to then cancel
+ // this request. The best thing for the TSY to do in this case is to
+ // proceed as though the Cancel never happened.
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(3); // this, expectData, data
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PA-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Activate with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::Activate with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestActivate0003L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // -----------------------------------------------------------------------
+ // call Activate without initialisation of the context
+ // -----------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ packetMbmsContext.Activate( requestStatus );
+ User::WaitForRequest( requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrArgument, requestStatus.Int() );
+
+ CleanupStack::PopAndDestroy( 3, this ); //packetMbmsContext, packetService, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PA-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::Activate
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::Activate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestActivate0004L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RBuf8 data2;
+ CleanupClosePushL( data2 );
+
+ RBuf8 expectData2;
+ CleanupClosePushL( expectData2 );
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( telServer2 );
+
+ RMobilePhone phone2;
+ ret = phone2.Open( telServer2, KMmTsyPhoneName );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( phone2 );
+
+ // Open PacketService for the first client
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open PacketService for the second client
+ RPacketService packetService2;
+ packetService2.Open( phone2 );
+ CleanupClosePushL( packetService2 );
+
+ // Open first context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // initialisation of the first context
+ TInt status = InitMbmsContextL( packetMbmsContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+ AssertMockLtsyStatusL();
+
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+ AssertMockLtsyStatusL();
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext packetMbmsContext2;
+ packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
+ CleanupClosePushL( packetMbmsContext2 );
+ AssertMockLtsyStatusL();
+
+ // initialisation of the second context
+ status = InitMbmsContextL( packetMbmsContext2, contextId2 );
+ ASSERT_EQUALS( KErrNone, status );
+ AssertMockLtsyStatusL();
+
+ // Configure context2
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
+ status = SetMbmsConfigL(packetMbmsContext2, contextId2, contextConfig2);
+ ASSERT_EQUALS( KErrNone, status );
+ AssertMockLtsyStatusL();
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketMbmsContext::Activate
+ //-------------------------------------------------------------------------
+
+ // data for ExpectL for first client
+ TMockLtsyData1 <TInfoName> expData( contextId );
+ expData.SerialiseL( expectData );
+
+ // data for CompleteL for first client
+ TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1( contextId, contextConfig );
+ ltsyData1.SerialiseL( data );
+
+ // data for ExpectL for second client
+ TMockLtsyData1 <TInfoName> expData2( contextId2 );
+ expData2.SerialiseL( expectData2 );
+
+ // data for CompleteL for second client
+ TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData2( contextId2, contextConfig2 );
+ ltsyData2.SerialiseL( data2 );
+
+ // first request
+ TRequestStatus requestStatus;
+ iMockLTSY.ExpectL( EPacketContextActivate, expectData );
+ iMockLTSY.CompleteL( EPacketContextActivate, KErrNone, data );
+ packetMbmsContext.Activate( requestStatus );
+
+ // second request
+ TRequestStatus requestStatus2;
+ iMockLTSY.ExpectL( EPacketContextActivate, expectData2 );
+ iMockLTSY.CompleteL( EPacketContextActivate, KErrNone, data2 );
+ packetMbmsContext2.Activate( requestStatus2 );
+
+ // wait for first answer
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrNone, requestStatus.Int() );
+
+ // wait for the second answer
+ User::WaitForRequest( requestStatus2 );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
+
+ CleanupStack::PopAndDestroy( 11, this ); // ... phone2, telServer2, expectData, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PA-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Activate with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::Activate and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestActivate0005L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL( packetMbmsContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketMbmsContext::Activate
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData( contextId );
+ expData.SerialiseL( expectData );
+
+ iMockLTSY.ExpectL( EPacketContextActivate, expectData );
+
+ TRequestStatus requestStatus;
+ packetMbmsContext.Activate( requestStatus );
+ User::WaitForRequest( requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrTimedOut, requestStatus.Int() );
+
+ CleanupStack::PopAndDestroy( 5, this ); // data, expectData, packetMbmsContext, packetService, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PD-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Deactivate
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::Deactivate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestDeactivate0001L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
+ CleanupStack::PushL(aSession);
+
+ CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
+ CleanupStack::PushL(aSessionlist);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever retriever(*aSessionlist);
+
+ scheduler.AddRetrieverL(retriever);
+
+ aSessionlist->Start( retriever.Status() );
+ retriever.Activate();
+ scheduler.StartScheduler();
+
+ TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession*> ltsyData( contextId, aSession);
+ ltsyData.SerialiseL( data );
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data, KErrNotFound );
+
+ TRequestStatus requestStatus;
+ packetMbmsContext.Deactivate(requestStatus);
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrNotFound, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ TMockLtsyData1 <TInfoName> ltsyData1( contextId);
+ ltsyData1.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data );
+ iMockLTSY.CompleteL( EPacketContextDeactivate, KErrGeneral, expectData );
+
+ packetMbmsContext.Deactivate( requestStatus );
+ User::WaitForRequest( requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrGeneral, requestStatus.Int() );
+
+
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data );
+ iMockLTSY.CompleteL( EPacketContextDeactivate, KErrMbmsImpreciseServiceEntries, data );
+
+ packetMbmsContext.Deactivate( requestStatus );
+ User::WaitForRequest( requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrMbmsImpreciseServiceEntries, requestStatus.Int() );
+
+
+
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketMbmsContext::Deactivate when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data );
+ iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData );
+
+ packetMbmsContext.Deactivate( requestStatus );
+ User::WaitForRequest( requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrNone, requestStatus.Int() );
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketMbmsContext::Deactivate
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+ iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData );
+ User::WaitForRequest( mockLtsyStatus );
+ ASSERT_EQUALS( KErrNone, mockLtsyStatus.Int() );
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy( 4 ); // packetMbmsContext, packetService
+ CleanupStack::PopAndDestroy( 3, this ); // data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PD-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::Deactivate
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketMbmsContext::Deactivate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestDeactivate0002L()
+ {
+ // This test should test cancellation of Deactivate
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketMbmsContext::Deactivate
+ //-------------------------------------------------------------------------
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
+ CleanupStack::PushL(aSession);
+
+ CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
+ CleanupStack::PushL(aSessionlist);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever retriever(*aSessionlist);
+
+ scheduler.AddRetrieverL(retriever);
+
+ aSessionlist->Start( retriever.Status() );
+ retriever.Activate();
+ scheduler.StartScheduler();
+
+
+ TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData( contextId, aSession);
+ ltsyData.SerialiseL( data );
+
+ TMockLtsyData1 <TInfoName> ltsyData1(contextId);
+ ltsyData1.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data );
+ iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData, 10 );
+
+ TRequestStatus requestStatus;
+
+ packetMbmsContext.Deactivate( requestStatus );
+ packetMbmsContext.CancelAsyncRequest( EPacketContextDeactivate );
+ User::WaitForRequest( requestStatus );
+
+ // CTSY has started a request and it is not possible to then cancel
+ // this request. The best thing for the TSY to do in this case is to
+ // proceed as though the Cancel never happened.
+ ASSERT_EQUALS( KErrNone, requestStatus.Int() );
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy( 4 ); // packetMbmsContext, packetService
+ CleanupStack::PopAndDestroy( 3 ); // data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PD-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::Deactivate
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::Deactivate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestDeactivate0004L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 data2;
+ CleanupClosePushL( data2 );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RBuf8 expectData2;
+ CleanupClosePushL( expectData2 );
+
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( telServer2 );
+
+ RMobilePhone phone2;
+ ret = phone2.Open( iTelServer, KMmTsyPhoneName );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( phone2 );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ RPacketService packetService2;
+ ret = packetService2.Open( phone2 );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( packetService2 );
+
+ // Open first context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext packetMbmsContext2;
+ packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
+ CleanupClosePushL( packetMbmsContext2 );
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketMbmsContext::Deactivate
+ //-------------------------------------------------------------------------
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // initialisation of the context
+ status = InitMbmsContextL(packetMbmsContext2, contextId2);
+ ASSERT_EQUALS(KErrNone, status);
+
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ status = SetMbmsConfigL(packetMbmsContext2, contextId2, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ status = SetMbmsActiveL(packetMbmsContext2, contextConfig, contextId2);
+ ASSERT_EQUALS(KErrNone, status);
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
+ CleanupStack::PushL(aSession);
+
+ CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
+ CleanupStack::PushL(aSessionlist);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever retriever(*aSessionlist);
+
+ scheduler.AddRetrieverL(retriever);
+
+ aSessionlist->Start( retriever.Status() );
+ retriever.Activate();
+ scheduler.StartScheduler();
+ TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData( contextId, aSession);
+ ltsyData.SerialiseL( data );
+
+
+ RPacketMbmsContext::CMbmsSession* aSession2 = RPacketMbmsContext::CMbmsSession::NewL();
+ CleanupStack::PushL(aSession2);
+
+ CRetrievePcktMbmsSessionList* aSessionlist2 = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext2, *aSession2);
+ CleanupStack::PushL(aSessionlist2);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever retriever1(*aSessionlist2);
+
+ scheduler.AddRetrieverL(retriever1);
+
+ aSessionlist->Start( retriever1.Status() );
+ retriever1.Activate();
+ scheduler.StartScheduler();
+
+ TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData2( contextId2, aSession2);
+ ltsyData2.SerialiseL( data2 );
+
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data );
+
+ TMockLtsyData1 <TInfoName> ltsyData3(contextId);
+ ltsyData3.SerialiseL(expectData);
+
+ iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData, 5 );
+
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data2 );
+
+ TMockLtsyData1 <TInfoName> ltsyData4(contextId2);
+ ltsyData4.SerialiseL(expectData2);
+
+ iMockLTSY.CompleteL( EPacketContextDeactivate, KErrNone, expectData2, 5 );
+
+ TRequestStatus requestStatus;
+ packetMbmsContext.Deactivate( requestStatus );
+
+ TRequestStatus requestStatus2;
+ packetMbmsContext2.Deactivate( requestStatus2 );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS(KErrNone, requestStatus.Int() );
+ User::WaitForRequest( requestStatus2 );
+ ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
+
+ CleanupStack::PopAndDestroy(15, this); // phone2, telServer2, data, data2, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PD-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Deactivate with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::Deactivate and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestDeactivate0005L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketMbmsContext::Deactivate
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RPacketMbmsContext::CMbmsSession* aSession = RPacketMbmsContext::CMbmsSession::NewL();
+ CleanupStack::PushL(aSession);
+
+ CRetrievePcktMbmsSessionList* aSessionlist = CRetrievePcktMbmsSessionList::NewL(packetMbmsContext, *aSession);
+ CleanupStack::PushL(aSessionlist);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever retriever(*aSessionlist);
+
+ scheduler.AddRetrieverL(retriever);
+
+ aSessionlist->Start( retriever.Status() );
+ retriever.Activate();
+ scheduler.StartScheduler();
+
+ TMockLtsyData2 <TInfoName, RPacketMbmsContext::CMbmsSession* > ltsyData( contextId, aSession);
+ ltsyData.SerialiseL( data );
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ iMockLTSY.ExpectL( EPacketContextDeactivate, data );
+ packetMbmsContext.Deactivate( requestStatus );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrTimedOut, requestStatus.Int() );
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy( 4 ); // packetMbmsContext, packetService
+ CleanupStack::PopAndDestroy( 2, this ); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PDE-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestDelete0001L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 outData;
+ CleanupClosePushL( outData );
+
+ RBuf8 servData;
+ CleanupClosePushL( servData );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ TRequestStatus requestStatus;
+ TMockLtsyData1<TInfoName > ltsyData( contextId );
+ ltsyData.SerialiseL( data );
+
+ //-------------------------------------------------------------------------
+ // Send Delete request when ContextStatus is Unknown
+ //-------------------------------------------------------------------------
+
+ packetMbmsContext.Delete( requestStatus );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrNotReady, requestStatus.Int() );
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // activate context properly
+ //-------------------------------------------------------------------------
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // deactivate
+ status = SetMbmsDeactiveL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketMbmsContext::Delete
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ TRequestStatus mockLtsyStatus;
+
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+ // send completion
+ iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data );
+ // wait for completion
+ User::WaitForRequest( mockLtsyStatus );
+ ASSERT_EQUALS( KErrNone, mockLtsyStatus.Int() );
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData1<TInfoName> expData( contextId );
+ expData.SerialiseL( expectData );
+
+ iMockLTSY.ExpectL( EPacketContextDelete, expectData, KErrNotSupported );
+
+ packetMbmsContext.Delete( requestStatus );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrNotSupported, requestStatus.Int() );
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL ( EPacketContextDelete, expectData );
+ iMockLTSY.CompleteL( EPacketContextDelete, KErrGeneral, data );
+
+ packetMbmsContext.Delete( requestStatus );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int() );
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketMbmsContext::Delete when result is not cached.
+ //-------------------------------------------------------------------------
+
+ // remove context succefully
+ iMockLTSY.ExpectL( EPacketContextDelete, data );
+ iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data );
+ packetMbmsContext.Delete( requestStatus );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrNone, requestStatus.Int() );
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy( 7, this ); //packetMbmsContext, packetService, expectData, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PDE-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestDelete0004L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 data2;
+ CleanupClosePushL( data2 );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RBuf8 expectData2;
+ CleanupClosePushL( expectData2 );
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( telServer2 );
+
+ RMobilePhone phone2;
+ ret = phone2.Open( iTelServer, KMmTsyPhoneName );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( phone2 );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ RPacketService packetService2;
+ ret = packetService2.Open( phone2 );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( packetService2 );
+
+ // Open first context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext packetMbmsContext2;
+ packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
+ CleanupClosePushL( packetMbmsContext2 );
+
+ // initialise context's first
+ TInt status = InitMbmsContextL( packetMbmsContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ TInt status2 = InitMbmsContextL( packetMbmsContext2, contextId2 );
+ ASSERT_EQUALS( KErrNone, status2 );
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // Configure context 2
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
+ status = SetMbmsConfigL(packetMbmsContext2, contextId2, contextConfig2);
+ ASSERT_EQUALS( KErrNone, status );
+
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // activate context
+ status2 = SetMbmsActiveL(packetMbmsContext2, contextConfig2, contextId2);
+ ASSERT_EQUALS(KErrNone, status2);
+
+ // deactivate
+ status = SetMbmsDeactiveL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ status2 = SetMbmsDeactiveL(packetMbmsContext2, contextId2);
+ ASSERT_EQUALS(KErrNone, status2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketMbmsContext::Delete
+ //-------------------------------------------------------------------------
+
+ // data for first CompleteL
+ TMockLtsyData1<TInfoName> ltsyData( contextId );
+ ltsyData.SerialiseL( data );
+
+ // data for second CompleteL
+ TMockLtsyData1<TInfoName> ltsyData2( contextId2 );
+ ltsyData2.SerialiseL( data2 );
+
+ // for the first request
+ TRequestStatus requestStatus;
+ TMockLtsyData1<TInfoName> expData( contextId );
+ expData.SerialiseL( expectData );
+
+ // for the second request
+ TRequestStatus requestStatus2;
+ TMockLtsyData1<TInfoName> expData2( contextId2 );
+ expData2.SerialiseL( expectData2 );
+
+ iMockLTSY.ExpectL( EPacketContextDelete, expectData );
+ iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data );
+ iMockLTSY.ExpectL( EPacketContextDelete, expectData2 );
+ iMockLTSY.CompleteL( EPacketContextDelete, KErrNone, data2 );
+
+ // send first request
+ packetMbmsContext.Delete( requestStatus );
+
+ // send second request
+ packetMbmsContext2.Delete( requestStatus2 );
+
+ // wait for first answer
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrNone, requestStatus.Int() );
+
+ // wait for second answer
+ User::WaitForRequest( requestStatus2 );
+ ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
+
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy( 2 ); // expectData2, expectData
+ CleanupStack::PopAndDestroy( 9, this ); //packetMbmsContext2, packetMbmsContext, packetService2, packetService, phone2, telServer2, data, data2, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PDE-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Delete with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::Delete and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestDelete0005L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup,this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // initialise context
+ TInt status = InitMbmsContextL( packetMbmsContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // deactivate
+ status = SetMbmsDeactiveL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketMbmsContext::Delete
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TMockLtsyData1<TInfoName> expData( contextId );
+ expData.SerialiseL( expectData );
+ iMockLTSY.ExpectL( EPacketContextDelete, expectData );
+
+ packetMbmsContext.Delete( requestStatus );
+
+ User::WaitForRequest( requestStatus );
+ ASSERT_EQUALS( KErrTimedOut, requestStatus.Int() );
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy( 5, this ); //packetMbmsContext, packetService, data, expectData, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::Close
+@SYMTestPriority
+@SYMTestActions Invokes RPacketMbmsContext::Close
+@SYMTestExpectedResults Pass
+@SYMTestType
+*/
+void CCTsyMbmsContextFU::TestClose0001L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup,this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // initialise context
+ TInt status = InitMbmsContextL( packetMbmsContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(packetMbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // deactivate
+ status = SetMbmsDeactiveL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // delete context
+ status = SetMbmsDeleteL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // and finally close context
+ TRequestStatus requestStatus;
+
+ packetMbmsContext.Close( );
+
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, KErrNone);
+
+ CleanupStack::PopAndDestroy( 5, this );
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PGC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::GetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestGetConfig0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(contextConfig);
+
+ TTmgi ttmgi;
+ ttmgi.SetServiceId(KMmConfigTMGI1);
+ ttmgi.SetMCC(KMmConfigTmgiMMC1);
+ ttmgi.SetMCC(KMmConfigTmgiMNC1);
+
+ contextConfig.iTmgi = ttmgi;
+ contextConfig.iMbmsAccessBearer = E2GBearer;
+ contextConfig.iMbmsServicePriority = EMbmsMediumServicePriority;
+ contextConfig.iMbmsServiceMode = KBroadcast;
+ contextConfig.iMbmsSessionFlag = EFalse;
+
+ TInt status = InitMbmsContextL( packetContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ status = SetMbmsConfigL(packetContext, contextId, contextConfig);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 retContextConfig;
+
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> retPckgConfig(retContextConfig);
+
+ packetContext.GetConfig(requestStatus, retPckgConfig);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ ASSERT_EQUALS( contextConfig.iTmgi.GetServiceId(), contextConfig.iTmgi.GetServiceId());
+ ASSERT_EQUALS( contextConfig.iTmgi.GetMCC(), contextConfig.iTmgi.GetMCC());
+ ASSERT_EQUALS( contextConfig.iTmgi.GetMNC(), contextConfig.iTmgi.GetMNC());
+ ASSERT_EQUALS( contextConfig.iMbmsAccessBearer, contextConfig.iMbmsAccessBearer);
+ ASSERT_EQUALS( contextConfig.iMbmsServicePriority, retContextConfig.iMbmsServicePriority);
+ ASSERT_EQUALS( contextConfig.iMbmsServiceMode, retContextConfig.iMbmsServiceMode);
+ ASSERT_EQUALS( contextConfig.iMbmsSessionFlag, retContextConfig.iMbmsSessionFlag);
+
+ CleanupStack::PopAndDestroy(5, this); // packetService1, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PGC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::GetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::GetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestGetConfig0002L()
+ {
+
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 data2;
+ CleanupClosePushL( data2 );
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( telServer2 );
+
+ RMobilePhone phone2;
+ ret = phone2.Open( iTelServer, KMmTsyPhoneName );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( phone2 );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ RPacketService packetService2;
+ ret = packetService2.Open( phone2 );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( packetService2 );
+
+ // Open first context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext packetMbmsContext2;
+ packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
+ CleanupClosePushL( packetMbmsContext2 );
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketMbmsContext::GetConfig
+ //-------------------------------------------------------------------------
+
+ // If this API is flow controlled by Etel or if this API is
+ // synchronous, remove this test completely.
+
+ TRequestStatus requestStatus;
+ TMockLtsyData1<TInfoName > ltsyData( contextId );
+ ltsyData.SerialiseL( data );
+
+ // data for second context
+ TRequestStatus requestStatus2;
+ TMockLtsyData1<TInfoName > ltsyData2( contextId2 );
+ ltsyData2.SerialiseL( data2 );
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ TInt status2 = InitMbmsContextL(packetMbmsContext2, contextId2);
+ ASSERT_EQUALS(KErrNone, status2);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ // activate context
+ status = SetMbmsActiveL(packetMbmsContext, contextConfig, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
+ // activate context
+ status2 = SetMbmsActiveL(packetMbmsContext2, contextConfig2, contextId2);
+ ASSERT_EQUALS(KErrNone, status2);
+
+ // -----------------------------------------------------------------------
+ // initialise parameters
+ // -----------------------------------------------------------------------
+
+ // first context is selected and high priority
+ TTmgi ttmgi;
+ ttmgi.SetServiceId(KMmConfigTMGI1);
+ ttmgi.SetMCC(KMmConfigTmgiMMC1);
+ ttmgi.SetMCC(KMmConfigTmgiMNC1);
+
+ contextConfig.iTmgi = ttmgi;
+ contextConfig.iMbmsSessionFlag = ETrue;
+ contextConfig.iMbmsServicePriority = EMbmsHighServicePriority;
+ contextConfig.iMbmsServiceMode = KSelectedBroadcast;
+ contextConfig.iMbmsAccessBearer = E3GBearer;
+
+ // second context
+
+ TTmgi ttmgi2;
+ ttmgi2.SetServiceId(KMmConfigTMGI2);
+ ttmgi2.SetMCC(KMmConfigTmgiMMC2);
+ ttmgi2.SetMCC(KMmConfigTmgiMNC2);
+
+ contextConfig2.iTmgi = ttmgi2;
+ contextConfig2.iMbmsSessionFlag = EFalse;
+ contextConfig2.iMbmsServicePriority = EMbmsLowServicePriority;
+ contextConfig2.iMbmsServiceMode = KBroadcast;
+ contextConfig2.iMbmsAccessBearer = E3GBearer;
+
+ status = SetMbmsConfigL( packetMbmsContext, contextId, contextConfig );
+ ASSERT_EQUALS(KErrNone, status);
+
+ status2 = SetMbmsConfigL( packetMbmsContext2, contextId2, contextConfig2 );
+ ASSERT_EQUALS(KErrNone, status2);
+
+ // -----------------------------------------------------------------------
+ // get parameters
+ // -----------------------------------------------------------------------
+ RPacketMbmsContext::TContextConfigMbmsV1 getConfig;
+ RPacketMbmsContext::TContextConfigMbmsV1 getConfig2;
+
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig(getConfig);
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig2(getConfig2);
+
+ // send first request
+ packetMbmsContext.GetConfig(requestStatus, pckgConfig);
+ // send second request
+ packetMbmsContext2.GetConfig(requestStatus2, pckgConfig2);
+
+
+ // wait for the both answers
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ User::WaitForRequest( requestStatus2 );
+ ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
+
+ ASSERT_EQUALS(KMmConfigTMGI1, getConfig.iTmgi.GetServiceId());
+ ASSERT_TRUE(getConfig.iMbmsSessionFlag);
+ ASSERT_EQUALS(EMbmsHighServicePriority, getConfig.iMbmsServicePriority );
+ ASSERT_EQUALS(KSelectedBroadcast, getConfig.iMbmsServiceMode);
+ ASSERT_EQUALS(E3GBearer, getConfig.iMbmsAccessBearer);
+
+ ASSERT_EQUALS(KMmConfigTMGI2, getConfig2.iTmgi.GetServiceId());
+ ASSERT_TRUE(!getConfig2.iMbmsSessionFlag);
+ ASSERT_EQUALS(EMbmsLowServicePriority, getConfig2.iMbmsServicePriority);
+ ASSERT_EQUALS(KBroadcast, getConfig2.iMbmsServiceMode);
+ ASSERT_EQUALS(E3GBearer, getConfig2.iMbmsAccessBearer);
+
+ CleanupStack::PopAndDestroy(4); // packetMbmsContext, packetService, packetMbmsContext2, packetService2
+ CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PGC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetConfig with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::GetConfig with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestGetConfig0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+
+ TInt status = InitMbmsContextL( packetContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ packetContext.GetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3); //this, packetService packetContext
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PGS-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetStatus
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::GetStatus
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestGetStatus0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL( expectData );
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ // test 1: context not inited
+ RPacketContext::TContextStatus contextStatus;
+ mbmsContext.GetStatus(contextStatus);
+ ASSERT_EQUALS(RPacketContext::EStatusUnknown, contextStatus);
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(mbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // test2: context inited
+ mbmsContext.GetStatus(contextStatus);
+ ASSERT_EQUALS(RPacketContext::EStatusInactive, contextStatus);
+
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ TMockLtsyData2< TInfoName, RPacketMbmsContext::TContextConfigMbmsV1 > ltsyData1(contextId, contextConfig);
+ ltsyData1.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
+
+ TRequestStatus requestStatus;
+ mbmsContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // test3: context activated
+ mbmsContext.GetStatus(contextStatus);
+ ASSERT_EQUALS(RPacketContext::EStatusActive, contextStatus);
+
+ CleanupStack::PopAndDestroy(2); //packetContext, packetService
+ CleanupStack::PopAndDestroy(3, this); // data,expectData, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PGLEC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::GetLastErrorCause
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::GetLastErrorCause
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestGetLastErrorCause0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ // initialise context
+ TInt status = InitMbmsContextL( mbmsContext, contextId );
+ ASSERT_EQUALS( KErrNone, status );
+
+ // Configure context
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ status = SetMbmsConfigL(mbmsContext, contextId, contextConfig);
+ ASSERT_EQUALS( KErrNone, status );
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ TInt error;
+ status = mbmsContext.GetLastErrorCause(error);
+ ASSERT_EQUALS(KErrNone, status);
+ ASSERT_EQUALS(KErrNone, error);
+
+ //-------------------------------------------------------------------------
+ // TEST B: Emulate some error
+ //-------------------------------------------------------------------------
+
+ // Set context in to Activating state
+ TContextMisc completeMisc;
+ completeMisc.iStatus = RPacketContext::EStatusActivating;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData1(contextId, completeMisc);
+ data.Close();
+ ltsyData1.SerialiseL(data);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ // Emulate an error
+ completeMisc.iStatus = RPacketContext::EStatusActive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
+ data.Close();
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrGeneral, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ // Get the error
+ status = mbmsContext.GetLastErrorCause(error);
+ ASSERT_EQUALS(KErrNone, status);
+ ASSERT_EQUALS(KErrGeneral, error);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); // packetContext, mbmsService, data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PNCC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::NotifyConfigChanged
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::NotifyConfigChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestNotifyConfigChanged0001L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ // initialisation of the context
+ TInt status = InitMbmsContextL(packetMbmsContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketMbmsContext::NotifyConfigChanged when result is not cached.
+ //-------------------------------------------------------------------------
+ // data for NotifyConfigChanged
+ TRequestStatus requestStatus;
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig( contextConfig );
+
+ //data for ComleteL
+ RPacketMbmsContext::TContextConfigMbmsV1 configComplete;
+
+ TTmgi ttmgi;
+ ttmgi.SetServiceId(KMmConfigTMGI1);
+ ttmgi.SetMCC(KMmConfigTmgiMMC1);
+ ttmgi.SetMNC(KMmConfigTmgiMNC1);
+
+ configComplete.iTmgi = ttmgi;
+ configComplete.iMbmsAccessBearer = E2GBearer;
+ configComplete.iMbmsServicePriority = EMbmsMediumServicePriority;
+ configComplete.iMbmsServiceMode = KBroadcast;
+ configComplete.iMbmsSessionFlag = EFalse;
+
+ TMockLtsyData2<TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData( contextId, configComplete );
+ ltsyData.SerialiseL( data );
+
+ // send request
+ packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig );
+
+ // sent completion
+ iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
+ // wait for completion
+ User::WaitForRequest( mockLtsyStatus );
+
+ // wait for request
+ User::WaitForRequest( requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrNone, requestStatus.Int() );
+
+ ASSERT_EQUALS( configComplete.iTmgi.GetServiceId(), contextConfig.iTmgi.GetServiceId());
+ ASSERT_EQUALS( configComplete.iTmgi.GetMCC(), contextConfig.iTmgi.GetMCC());
+ ASSERT_EQUALS( configComplete.iTmgi.GetMNC(), contextConfig.iTmgi.GetMNC());
+ ASSERT_EQUALS( configComplete.iMbmsAccessBearer, contextConfig.iMbmsAccessBearer);
+ ASSERT_EQUALS( configComplete.iMbmsServicePriority, contextConfig.iMbmsServicePriority);
+ ASSERT_EQUALS( configComplete.iMbmsServiceMode, contextConfig.iMbmsServiceMode);
+ ASSERT_EQUALS( configComplete.iMbmsSessionFlag, contextConfig.iMbmsSessionFlag);
+
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketMbmsContext::NotifyConfigChanged
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+ // sent completion
+ iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
+ // wait for completion
+ User::WaitForRequest( mockLtsyStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrNone, mockLtsyStatus.Int() );
+
+ CleanupStack::PopAndDestroy( 2 ); // packetService, packetMbmsContext
+ CleanupStack::PopAndDestroy( 2, this ); // data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PNCC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::NotifyConfigChanged
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketMbmsContext::NotifyConfigChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestNotifyConfigChanged0002L()
+ {
+ // This test should test cancellation of NotifyConfigChanged
+ // If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketMbmsContext::NotifyConfigChanged
+ //-------------------------------------------------------------------------
+ // data for NotifyConfigChanged
+ TRequestStatus requestStatus;
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig( contextConfig );
+
+ //data for ComleteL
+ RPacketMbmsContext::TContextConfigMbmsV1 configComplete;
+
+ TTmgi ttmgi;
+ ttmgi.SetServiceId(KMmConfigTMGI1);
+ ttmgi.SetMCC(KMmConfigTmgiMMC1);
+ ttmgi.SetMNC(KMmConfigTmgiMNC1);
+
+ configComplete.iTmgi = ttmgi;
+ configComplete.iMbmsAccessBearer = E2GBearer;
+ configComplete.iMbmsServicePriority = EMbmsMediumServicePriority;
+ configComplete.iMbmsServiceMode = KBroadcast;
+ configComplete.iMbmsSessionFlag = EFalse;
+
+ TMockLtsyData2 <TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData( contextId, configComplete );
+ ltsyData.SerialiseL( data );
+
+ // send request
+ packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig );
+ //send cancellation
+ packetMbmsContext.CancelAsyncRequest( ECtsyPacketMbmsContextNotifyConfigChanged );
+
+ // sent completion
+ iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
+ // wait for completion
+ User::WaitForRequest( mockLtsyStatus );
+
+ // wait for request
+ User::WaitForRequest( requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_TRUE( KErrCancel == requestStatus.Int() || KErrNone == requestStatus.Int());
+
+ CleanupStack::PopAndDestroy( 2 ); // packetService, packetMbmsContext
+ CleanupStack::PopAndDestroy( 2 ); // data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PNCC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::NotifyConfigChanged with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::NotifyConfigChanged with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestNotifyConfigChanged0003L()
+ {
+ // This test should test sending bad parameter data for NotifyConfigChanged
+ // If this API does not have any parameters, then remove this test completely.
+
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL(TCleanupItem( Cleanup,this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketMbmsContext::NotifyConfigChanged
+ //-------------------------------------------------------------------------
+ // data for NotifyConfigChanged
+ TRequestStatus requestStatus;
+ RPacketMbmsContext::TContextConfigCDMA contextConfig;
+ TPckg<RPacketMbmsContext::TContextConfigCDMA> pckgConfig( contextConfig );
+
+ // send request
+ packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig );
+
+ // wait for request
+ User::WaitForRequest(requestStatus );
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS( KErrNotSupported, requestStatus.Int() );
+
+ // Done !
+ CleanupStack::PopAndDestroy( 2 ); // packetMbmsService, packetContext
+ CleanupStack::PopAndDestroy( 2, this ); // data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PNCC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::NotifyConfigChanged
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::NotifyConfigChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestNotifyConfigChanged0004L()
+ {
+ OpenEtelServerL( EUseExtendedError );
+ CleanupStack::PushL( TCleanupItem( Cleanup, this ) );
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL( data );
+
+ RBuf8 data2;
+ CleanupClosePushL( data2 );
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( telServer2 );
+
+ RMobilePhone phone2;
+ ret = phone2.Open( iTelServer, KMmTsyPhoneName );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( phone2 );
+
+ RPacketService packetService;
+ OpenPacketServiceL( packetService );
+ CleanupClosePushL( packetService );
+
+ RPacketService packetService2;
+ ret = packetService2.Open( phone2 );
+ ASSERT_EQUALS( KErrNone, ret );
+ CleanupClosePushL( packetService2 );
+
+ // Open first context
+ TInfoName contextId;
+ RPacketMbmsContext packetMbmsContext;
+ packetMbmsContext.OpenNewContext( packetService, contextId );
+ CleanupClosePushL( packetMbmsContext );
+
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext packetMbmsContext2;
+ packetMbmsContext2.OpenNewContext( packetService2, contextId2 );
+ CleanupClosePushL( packetMbmsContext2 );
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated( mockLtsyStatus );
+
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketMbmsContext::NotifyConfigChanged
+ //-------------------------------------------------------------------------
+
+ // If this API is flow controlled by Etel or if this API is
+ // synchronous, remove this test completely.
+
+ // To write this test:
+ // If this API has parameters which have different versions, then each
+ // client in this test should use a different version of parameter.
+ // Otherwise, they should use the same version.
+ // All versions of parameters should be used. i.e. If there are three
+ // versions of a parameter, there should be three clients, one using
+ // each one. If the parameter does not have different versions, use
+ // two clients each using the same version.
+
+ // data for NotifyConfigChanged 1
+ TRequestStatus requestStatus;
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig1;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig1( contextConfig1 );
+
+ //data for CompleteL 1
+ RPacketMbmsContext::TContextConfigMbmsV1 configComplete1;
+
+ TTmgi ttmgi;
+ ttmgi.SetServiceId(KMmConfigTMGI1);
+ ttmgi.SetMCC(KMmConfigTmgiMMC1);
+ ttmgi.SetMNC(KMmConfigTmgiMNC1);
+
+ configComplete1.iTmgi = ttmgi;
+ configComplete1.iMbmsAccessBearer = E2GBearer;
+ configComplete1.iMbmsServicePriority = EMbmsMediumServicePriority;
+ configComplete1.iMbmsServiceMode = KBroadcast;
+ configComplete1.iMbmsSessionFlag = EFalse;
+ TMockLtsyData2<TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData( contextId, configComplete1 );
+ ltsyData.SerialiseL( data );
+
+ // data for NotifyConfigChanged 2
+ TRequestStatus requestStatus2;
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig2;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> pckgConfig2( contextConfig2 );
+
+ //data for CompleteL 2
+ RPacketMbmsContext::TContextConfigMbmsV1 configComplete2;
+
+ configComplete2.iTmgi = ttmgi;
+ configComplete2.iMbmsAccessBearer = E2GBearer;
+ configComplete2.iMbmsServicePriority = EMbmsHighServicePriority;
+ configComplete2.iMbmsServiceMode = KSelectedBroadcast;
+ configComplete2.iMbmsSessionFlag = ETrue;
+
+ TMockLtsyData2<TInfoName, RPacketMbmsContext::TContextConfigMbmsV1> ltsyData2( contextId2, configComplete2 );
+ ltsyData2.SerialiseL( data2 );
+
+ // send first request
+ packetMbmsContext.NotifyConfigChanged( requestStatus, pckgConfig1 );
+
+ // send second request
+ packetMbmsContext2.NotifyConfigChanged( requestStatus2, pckgConfig2 );
+
+ // sent first completion
+ iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data );
+
+ // sent second completion
+ iMockLTSY.CompleteL( ECtsyPacketMbmsContextNotifyConfigChanged, KErrNone, data2 );
+
+
+ // wait for completion
+ User::WaitForRequest( mockLtsyStatus );
+
+
+ // wait for first answer
+ User::WaitForRequest( requestStatus );
+
+ // wait for second answer
+ User::WaitForRequest( requestStatus2 );
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS( KErrNone, requestStatus.Int() );
+ ASSERT_EQUALS( configComplete1.iTmgi.GetServiceId(), contextConfig1.iTmgi.GetServiceId());
+ ASSERT_EQUALS( configComplete1.iTmgi.GetMCC(), contextConfig1.iTmgi.GetMCC());
+ ASSERT_EQUALS( configComplete1.iTmgi.GetMNC(), contextConfig1.iTmgi.GetMNC());
+ ASSERT_EQUALS( configComplete1.iMbmsAccessBearer, contextConfig1.iMbmsAccessBearer);
+ ASSERT_EQUALS( configComplete1.iMbmsServicePriority, contextConfig1.iMbmsServicePriority);
+ ASSERT_EQUALS( configComplete1.iMbmsServiceMode, contextConfig1.iMbmsServiceMode);
+ ASSERT_EQUALS( configComplete1.iMbmsSessionFlag, contextConfig1.iMbmsSessionFlag);
+
+
+ ASSERT_EQUALS( KErrNone, requestStatus2.Int() );
+
+ ASSERT_EQUALS( configComplete2.iTmgi.GetServiceId(), contextConfig2.iTmgi.GetServiceId());
+ ASSERT_EQUALS( configComplete2.iTmgi.GetMCC(), contextConfig2.iTmgi.GetMCC());
+ ASSERT_EQUALS( configComplete2.iTmgi.GetMNC(), contextConfig2.iTmgi.GetMNC());
+ ASSERT_EQUALS( configComplete2.iMbmsAccessBearer, contextConfig2.iMbmsAccessBearer);
+ ASSERT_EQUALS( configComplete2.iMbmsServicePriority, contextConfig2.iMbmsServicePriority);
+ ASSERT_EQUALS( configComplete2.iMbmsServiceMode, contextConfig2.iMbmsServiceMode);
+ ASSERT_EQUALS( configComplete2.iMbmsSessionFlag, contextConfig2.iMbmsSessionFlag);
+
+
+ // Done !
+ CleanupStack::PopAndDestroy( 9, this ); //packetMbmsContext2, packetMbmsContext, packetService2, packetService, phone2, telServer2, data, data2 this
+ }
+
+/**
+@SYMTestCaseID
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketMbmsContext::NotifyStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketMbmsContext::NotifyStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestNotifyStatusChange0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ // data for NotifyStatusChange
+ TRequestStatus requestStatus;
+ RPacketContext::TContextStatus contextStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::NotifyStatusChange when result is not cached.
+ //-------------------------------------------------------------------------
+ //data for CompleteL
+ TContextMisc completeMisc;
+ completeMisc.iStatus = RPacketContext::EStatusActive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
+ ltsyData.SerialiseL(data);
+ //send request
+ mbmsContext.NotifyStatusChange(requestStatus, contextStatus);
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+
+ // wait for NotifyStatusChange
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(completeMisc.iStatus, contextStatus);
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::NotifyStatusChange
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ //data for ComleteL
+ completeMisc.iStatus = RPacketContext::EStatusInactive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData1(contextId, completeMisc);
+ data.Close();
+ ltsyData1.SerialiseL(data);
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PNSC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketMbmsContext::NotifyStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketMbmsContext::NotifyStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestNotifyStatusChange0002L()
+ {
+
+// This test should test cancellation of NotifyStatusChange
+// If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ // data for NotifyStatusChange
+ TRequestStatus requestStatus;
+ RPacketContext::TContextStatus contextStatus;
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::NotifyStatusChange
+ //-------------------------------------------------------------------------
+ //data for ComleteL
+ TContextMisc completeMisc;
+ completeMisc.iStatus = RPacketContext::EStatusInactive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
+ ltsyData.SerialiseL(data);
+ //send request
+ mbmsContext.NotifyStatusChange(requestStatus, contextStatus);
+ // send canceling...
+ mbmsContext.CancelAsyncRequest(EPacketContextNotifyStatusChange);
+
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+
+ // wait for NotifyStatusChange
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(2); // data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-MCF-PNSC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketMbmsContext::NotifyStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketMbmsContext::NotifyStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyMbmsContextFU::TestNotifyStatusChange0003L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 data2;
+ CleanupClosePushL(data2);
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ // Open first context
+ TInfoName contextId;
+ RPacketMbmsContext mbmsContext;
+ mbmsContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(mbmsContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketMbmsContext mbmsContext2;
+ mbmsContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(mbmsContext2);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::NotifyStatusChange
+ //-------------------------------------------------------------------------
+
+ // If this API is flow controlled by Etel or if this API is
+ // synchronous, remove this test completely.
+
+ // To write this test:
+ // If this API has parameters which have different versions, then each
+ // client in this test should use a different version of parameter.
+ // Otherwise, they should use the same version.
+ // All versions of parameters should be used. i.e. If there are three
+ // versions of a parameter, there should be three clients, one using
+ // each one. If the parameter does not have different versions, use
+ // two clients each using the same version.
+
+ //data for ComleteL for first context
+ TContextMisc completeMisc;
+ completeMisc.iStatus = RPacketContext::EStatusInactive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
+ ltsyData.SerialiseL(data);
+
+ //data for ComleteL for second context
+ TContextMisc completeMisc2;
+ completeMisc2.iStatus = RPacketContext::EStatusSuspended;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData2(contextId2, completeMisc2);
+ ltsyData2.SerialiseL(data2);
+
+ // initialize data for first context's NotifyStatusChange
+ TRequestStatus requestStatus;
+ RPacketContext::TContextStatus contextStatus;
+
+ // initialize data for second context's NotifyStatusChange
+ TRequestStatus requestStatus2;
+ RPacketContext::TContextStatus contextStatus2;
+
+ //send first request
+ mbmsContext.NotifyStatusChange(requestStatus, contextStatus);
+
+ //send second request
+ mbmsContext2.NotifyStatusChange(requestStatus2, contextStatus2);
+
+ //send completion for first comtext
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+
+ // wait for first context NotifyStatusChange
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(completeMisc.iStatus, contextStatus);
+
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ //send completion for second comtext
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data2);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+
+ // wait for second context NotifyStatusChange
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(completeMisc2.iStatus, contextStatus2);
+
+ AssertMockLtsyStatusL();
+
+ // Done !
+ CleanupStack::PopAndDestroy(4);// packetContext2, packetContext, packetService2, packetService
+ CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
+
+ }