--- a/telephonyserverplugins/common_tsy/test/component/src/cctsypacketcontextfu.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsypacketcontextfu.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,6562 +1,6562 @@
-// Copyright (c) 2007-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:
-// The TEFUnit test suite for PacketContext in the Common TSY.
-//
-//
-
-/**
- @file
-*/
-
-#include "cctsypacketcontextfu.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 "CMmCommonStaticUtility.h"
-#include <ctsy/serviceapi/mmtsy_defaults.h>
-
-
-
-CTestSuite* CCTsyPacketContextFU::CreateSuiteL(const TDesC& aName)
- {
- SUB_SUITE;
-
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0003L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0003L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0003L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0003L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0003L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0003L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0001bL);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0001cL);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0003L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0002L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0001bL);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0001L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0004L);
-// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0001L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0002L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0003L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0004L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0005L);
-#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionInfo0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionInfo0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionInfo0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionInfoChange0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionInfoChange0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionInfoChange0004L);
-#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0001bL);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0003bL);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0003cL);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewContext0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewContext0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenExistingContext0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenExistingContext0003L);
-
- END_SUITE;
- }
-
-
-//
-// Actual test cases
-//
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNSC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::NotifyStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyStatusChange0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- 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 ComleteL
- TContextMisc completeMisc;
- completeMisc.iStatus = RPacketContext::EStatusInactive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
- ltsyData.SerialiseL(data);
- //send request
- packetContext.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 when rejection cause is used
- //-------------------------------------------------------------------------
- //data for ComleteL
- _LIT(KSomeCause, "1");
- completeMisc.iRejectionCause.Copy(KSomeCause);
- completeMisc.iStatus = RPacketContext::EStatusActive;//EStatusInactive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData2(contextId, completeMisc);
- data.Close();
- ltsyData2.SerialiseL(data);
- //send request
- packetContext.NotifyStatusChange(requestStatus, contextStatus);
-
- //send completion
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrGeneral, 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;//EStatusActive;
- 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-PKTC-PCNSC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::NotifyStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::NotifyStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- 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
- packetContext.NotifyStatusChange(requestStatus, contextStatus);
- // send canceling...
- packetContext.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-PKTC-PCNSC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyStatusChange0004L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- 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 = RPacketContext::EStatusDeleted;
-
- // initialize data for second context's NotifyStatusChange
- TRequestStatus requestStatus2;
- RPacketContext::TContextStatus contextStatus2 = RPacketContext::EStatusDeleted;
-
- //send first request
- packetContext.NotifyStatusChange(requestStatus, contextStatus);
-
- //send second request
- packetContext2.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);
- // check that contextStatus2 ((of the second context)) isn't changed
- ASSERT_EQUALS(RPacketContext::EStatusDeleted, contextStatus2);
-
- 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);
- // check that contextStatus (of the first context) isn't changed
- ASSERT_EQUALS(completeMisc.iStatus, contextStatus);
-
- AssertMockLtsyStatusL();
-
- // Done !
- CleanupStack::PopAndDestroy(4);// packetContext2, packetContext, packetService2, packetService
- CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
-
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCD-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Deactivate
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Deactivate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestDeactivate0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextDeactivate, data, KErrNotFound);
-
- TRequestStatus requestStatus;
- packetContext.Deactivate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotFound, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextDeactivate, data);
- iMockLTSY.CompleteL(EPacketContextDeactivate, KErrGeneral, data);
-
- packetContext.Deactivate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::Deactivate when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextDeactivate, data);
- iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data);
-
- packetContext.Deactivate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::Deactivate
- // from LTSY.
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCD-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::Deactivate
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::Deactivate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestDeactivate0002L()
- {
-
-// This test should test cancellation of Deactivate
-// If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::Deactivate
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TMockLtsyData1 <TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextDeactivate, data);
- iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data, 10);
-
- packetContext.Deactivate(requestStatus);
- packetContext.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(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(2); // data, this
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCD-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Deactivate
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::Deactivate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestDeactivate0004L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::Deactivate
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- TMockLtsyData1 <TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
-
- // data for second context
- TRequestStatus requestStatus2;
- TMockLtsyData1 <TInfoName > ltsyData2(contextId2);
- ltsyData2.SerialiseL(data2);
-
- iMockLTSY.ExpectL(EPacketContextDeactivate, data);
- iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data, 10);
-
- iMockLTSY.ExpectL(EPacketContextDeactivate, data2);
- iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data2, 10);
-
- packetContext.Deactivate(requestStatus);
- packetContext2.Deactivate(requestStatus2);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- CleanupStack::PopAndDestroy(4); // packetContext, packetService, packetContext2, packetService2
- CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCD-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Deactivate with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Deactivate and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestDeactivate0005L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::Deactivate
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TMockLtsyData1 <TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextDeactivate, data);
- packetContext.Deactivate(requestStatus);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGDI-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDnsInfo
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetDnsInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetDnsInfo0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //------------------------------------------------------------------------
- // TEST D: RPacketContext::GetDnsInfo again, this time CTSY
- // will get result from the cache.
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RPacketContext::TDnsInfoV2 dnsInfo;
-
- // init dnsInfo with same data, in order to check that it will be changed
- _LIT(Kdummy, "Something");
- dnsInfo.iPrimaryDns.Copy(Kdummy);
- dnsInfo.iSecondaryDns.Copy(Kdummy);
- TPckg<RPacketContext::TDnsInfoV2> pckgDnsInfo(dnsInfo);
-
- // call API itself
- packetContext.GetDnsInfo(requestStatus, pckgDnsInfo);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- TBuf8<50> null50;
- ASSERT_EQUALS(null50, dnsInfo.iPrimaryDns);
- ASSERT_EQUALS(null50, dnsInfo.iSecondaryDns);
-
- CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGDI-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDnsInfo with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetDnsInfo with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetDnsInfo0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::GetDnsInfo
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TInt wrongDnsInfo;
- TPckg<TInt> pckgDnsInfo(wrongDnsInfo);
-
- packetContext.GetDnsInfo(requestStatus, pckgDnsInfo);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCLCP-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::LoanCommPort
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::LoanCommPort
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestLoanCommPort0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // Test that this function isn't supported
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RCall::TCommPort dataPort;
- packetContext.LoanCommPort(requestStatus, dataPort);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGPN-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetProfileName
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetProfileName
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetProfileName0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // check that no profile has been defined
- //-------------------------------------------------------------------------
- TName qosProfile;
- TName null;
- TInt status = packetContext.GetProfileName(qosProfile);
- ASSERT_EQUALS(KErrNone, status);
- // check that no profile has been defined
- ASSERT_EQUALS(null, qosProfile);
-
- //-------------------------------------------------------------------------
- // Get Name of existing QoS
- //-------------------------------------------------------------------------
- // create New QoS
- RPacketQoS packetQoS;
- TName qosName;
- packetQoS.OpenNewQoS(packetContext, qosName);
- CleanupClosePushL(packetQoS);
-
- status = packetContext.GetProfileName(qosProfile);
- ASSERT_EQUALS(KErrNone, status);
- ASSERT_EQUALS(qosName, qosProfile);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); //packetQoS, packetService, packetContext, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCRCP-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::RecoverCommPort
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::RecoverCommPort
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestRecoverCommPort0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // Test that this function isn't supported
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- packetContext.RecoverCommPort(requestStatus);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
-
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGLEC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetLastErrorCause
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetLastErrorCause
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetLastErrorCause0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
-
- //-------------------------------------------------------------------------
- // Check that there is no error on begin
- //-------------------------------------------------------------------------
- TInt error;
- TInt status = packetContext.GetLastErrorCause(error);
- ASSERT_EQUALS(KErrNone, status);
- ASSERT_EQUALS(KErrNone, error);
-
-
- //-------------------------------------------------------------------------
- // Emulate some error
- //-------------------------------------------------------------------------
-
- // -------Set context in to Activating state -------------------------------
- TContextMisc completeMisc;
- completeMisc.iStatus = RPacketContext::EStatusActivating;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData1(contextId, completeMisc);
- 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 = packetContext.GetLastErrorCause(error);
- ASSERT_EQUALS(KErrNone, status);
- ASSERT_EQUALS(KErrGeneral, error);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCIC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::InitialiseContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::InitialiseContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestInitialiseContext0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- TInfoName hostCidName;
- TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
- ltsyExpect.SerialiseL(expectData);
-
- // data for initialisation of the context
- TRequestStatus requestStatus;
- RPacketContext::TDataChannelV2 dataCh;
- TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
-
- iMockLTSY.ExpectL(EPacketContextInitialiseContext,expectData, KErrNotSupported);
- //initialisation of the context
- packetContext.InitialiseContext(requestStatus, pckgInit);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
- TMockLtsyData1< TInfoName > ltsyData(contextId);
- data.Close();
- ltsyData.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextInitialiseContext, 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(EPacketContextInitialiseContext, expectData);
- iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data);
-
- //initialisation of the context
- packetContext.InitialiseContext(requestStatus, pckgInit);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- RPacketContext::TDataChannelV2 retDataCh = pckgInit();
- ASSERT_FALSE(retDataCh.iChannelId.Compare(contextId));
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::InitialiseContext
- // from LTSY.
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(5, this); // expectData, data, this, packetService, packetContext
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCIC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::InitialiseContext
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::InitialiseContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestInitialiseContext0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::InitialiseContext
- //-------------------------------------------------------------------------
- TInfoName hostCidName;
- TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
- ltsyExpect.SerialiseL(expectData);
-
- // data for initialisation of the context
- TRequestStatus requestStatus;
- RPacketContext::TDataChannelV2 dataCh;
- TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
-
- TMockLtsyData1< TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
- iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data, 10);
-
- //initialisation of the context
- packetContext.InitialiseContext(requestStatus, pckgInit);
- //cancel reguest
- packetContext.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-PKTC-PCIC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::InitialiseContext with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::InitialiseContext with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestInitialiseContext0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::InitialiseContext
- //-------------------------------------------------------------------------
-
- // data for initialisation of the context
- TRequestStatus requestStatus;
- RCall::TCommPort dataCh; // old version of parameter
- TPckg<RCall::TCommPort> pckgInit(dataCh);
-
- //initialisation of the context
- packetContext.InitialiseContext(requestStatus, pckgInit);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(3, this);
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCIC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::InitialiseContext
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::InitialiseContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestInitialiseContext0004L()
- {
-
- 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);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService, contextId2);
- CleanupClosePushL(packetContext2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::InitialiseContext
- //-------------------------------------------------------------------------
-
- // 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.
-
- // for the first request
- TInfoName hostCidName;
- TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
- ltsyExpect.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
- RPacketContext::TDataChannelV2 dataCh;
- TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
- TMockLtsyData1< TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
-
- // for the second request
- TMockLtsyData2< TInfoName, TInfoName > ltsyExpect2(contextId2, hostCidName);
- ltsyExpect2.SerialiseL(expectData2);
-
- TRequestStatus requestStatus2;
- RPacketContext::TDataChannelV2 dataCh2;
- TPckg<RPacketContext::TDataChannelV2> pckgInit2(dataCh2);
- TMockLtsyData1< TInfoName > ltsyData2(contextId2);
- ltsyData2.SerialiseL(data2);
-
- iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
- iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data);
-
- iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData2);
- iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data2);
-
- //first request
- packetContext.InitialiseContext(requestStatus, pckgInit);
-
- //second request
- packetContext2.InitialiseContext(requestStatus2, pckgInit2);
-
- // wait for the first answer
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- RPacketContext::TDataChannelV2 retDataChannel = pckgInit();
- ASSERT_FALSE(retDataChannel.iChannelId.Compare(contextId));
-
- // wait for the second answer
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- retDataChannel = pckgInit2();
- ASSERT_FALSE(retDataChannel.iChannelId.Compare(contextId2));
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(8, this); //packetContext2, packetContext, packetService, expectData, expectData2, data, data2, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCIC-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::InitialiseContext with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::InitialiseContext and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestInitialiseContext0005L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::InitialiseContext
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RPacketContext::TDataChannelV2 dataCh;
- TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
-
- TInfoName hostCidName;
- TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
- ltsyExpect.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
-
- packetContext.InitialiseContext(requestStatus, pckgInit);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- // Done !
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); //packetService, packetContext, expectData, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGCS-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConnectionSpeed
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetConnectionSpeed
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetConnectionSpeed0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST D: RPacketContext::ModifyActiveContext again, this time CTSY
- // will get result from the cache.
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TUint rate;
- TUint null = 0;
- packetContext.GetConnectionSpeed(requestStatus, rate);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(null, rate);
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // Now change the Connection Speed
- // and check that GetConnectionSpeed return appropriate value
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- TInt connectionSpeed = 9600;
- TMockLtsyData2< TInfoName, TInt > ltsyData(contextId, connectionSpeed);
- ltsyData.SerialiseL(data);
-
- // change the Connection Speed
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- // get changed Connection Speed
- packetContext.GetConnectionSpeed(requestStatus, rate);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS((TUint)connectionSpeed, rate);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
- }
-
-
-
-/**
-Cleanup CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>*
-*/
-void CCTsyPacketContextFU::CleanupArrayPtrFlat(TAny* aSelf)
- {
- if(aSelf)
- {
- CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* array (NULL);
- array = static_cast<CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>*>(aSelf);
- array->ResetAndDestroy();
- delete array;
- }
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::ModifyActiveContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::ModifyActiveContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestModifyActiveContext0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 expectDataSPP;
- CleanupClosePushL(expectDataSPP);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt err = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, err);
-
- //-------------------------------------------------------------------------
- // TEST: call ModifyActiveContext when context wasn't active
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- packetContext.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
-
-
- // Set context in Active state
- err = SetContextActiveL(contextId);
- ASSERT_EQUALS(KErrNone, err);
-
- //-------------------------------------------------------------------------
- // TEST: call ModifyActiveContext when context is active, but with no QoS object created
- //-------------------------------------------------------------------------
- packetContext.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- // ------ create New QoS -------------------------------------------------
- RPacketQoS packetQoS;
- TName qosName;
- packetQoS.OpenNewQoS(packetContext, qosName);
- CleanupClosePushL(packetQoS);
- //-------------------------------------------------------------------------
- // TEST: call ModifyActiveContext when context is active, and QoS object is created, but
- // with no ProfileParameters
- //-------------------------------------------------------------------------
- packetContext.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
-
- // ------ SetProfileParameters --------------------------------------------
- RPacketQoS::TQoSGPRSRequested gprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> pckg(gprsRequested);
-
- // prepare data for expectDataSPP ...
- // ... context status
- RPacketContext::TContextStatus contextStatus = RPacketContext::EStatusActive;
- // ... get contextConfig
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg< RPacketContext::TContextConfigGPRS > contextConfigPckg( contextConfig );
- packetContext.GetConfig(requestStatus, contextConfigPckg);
- User::WaitForRequest(requestStatus);
-
- // data for SetProfileParameters's ExpectL
- TInfoName primaryContextName;
- TContextParams contextParams;
- contextParams.iContextName = contextId;
- contextParams.iContextType = contextConfig.iNWIContext;
- contextParams.iPdpType = contextConfig.iPdpType;
- contextParams.iPrimaryContextName = primaryContextName;
- contextParams.iContextStatus = contextStatus;
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
- expExpect(contextParams, gprsRequested);
- expExpect.SerialiseL(expectDataSPP);
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectDataSPP);
- packetQoS.SetProfileParameters(requestStatus, pckg);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- // data for ExpectL
- RPacketQoS::TQoSGPRSRequested* qosProfile97 = &gprsRequested;
-
- TContextConfiguration expectConfig;
- expectConfig.iContextName = contextId;
- expectConfig.iQosParams97 = qosProfile97;
- expectConfig.iQosParams99 = NULL;
- expectConfig.iQosParamsR5 = NULL;
- expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
-
- CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* mediaAuthorizationArray(NULL);
- TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
- ltsyExpect(expectConfig, mediaAuthorizationArray);
- ltsyExpect.SerialiseL(expectData);
- //ExpectL
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData, KErrNotSupported);
-
- packetContext.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- TBuf8<1> rejectionCode(1);
- TMockLtsyData2 < TInfoName, TBuf8<1> > ltsyData2(contextId, rejectionCode);
- ltsyData2.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrGeneral, data);
- packetContext.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::ModifyActiveContext when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
- packetContext.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST Successful completion request of
- // RPacketContext::ModifyActiveContext with some filter added
- //-------------------------------------------------------------------------
- // Open new secondary context
- TInfoName contextIdSecondary;
- RPacketContext packetContextSecondary;
- err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContextSecondary);
-
- // setting environement (add media authorization to CTSY)
- mediaAuthorizationArray = new(ELeave) CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>(1);
- CleanupStack::PushL(TCleanupItem(CleanupArrayPtrFlat,mediaAuthorizationArray));
-
- RPacketContext::CTFTMediaAuthorizationV3* media = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(media);
- media->iAuthorizationToken = _L8("testtok");
- RPacketContext::CTFTMediaAuthorizationV3::TFlowIdentifier fid;
- fid.iIPFlowNumber = 2;
- fid.iMediaComponentNumber = 3;
- media->iFlowIds.Append(fid);
- fid.iIPFlowNumber = 4;
- fid.iMediaComponentNumber = 5;
- media->iFlowIds.Append(fid);
- mediaAuthorizationArray->AppendL(media);
- CleanupStack::Pop(); //media
-
- // update contextConfig
- packetContext.GetConfig(requestStatus, contextConfigPckg);
- User::WaitForRequest(requestStatus);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
- expAddData(contextConfig, 0, contextIdSecondary, media);
- data.Close();
- expAddData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
-
- TMockLtsyData1<TInfoName > contexName(contextIdSecondary);
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContextSecondary.AddMediaAuthorizationL(requestStatus, *media);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- // set context Active
- SetContextActiveL(contextIdSecondary);
- AssertMockLtsyStatusL();
-
- RPacketQoS packetQoSSecondary;
- RPacketQoS::TQoSGPRSRequested secondaryRequested;
- err = CreateQoSAndSetProfileParamLC(packetQoSSecondary, packetContextSecondary,
- contextIdSecondary, secondaryRequested, contextId);// contextId -- is name of "primary" context
- ASSERT_EQUALS(KErrNone, err);
- AssertMockLtsyStatusL();
-
- // Add filter
- RPacketContext::TPacketFilterV2 filter;
- filter.iId = 1;
- RPacketContext::TPacketFilterV2Pckg filterPckg (filter);
- err = AddContextPacketFilterL(packetContextSecondary, contextIdSecondary,filter, ETrue);// ETrue means that this request doesn't reache LTSY
- ASSERT_EQUALS(KErrNone, err);
- AssertMockLtsyStatusL();
-
- // data for ExpectL
- expectConfig.iContextName = contextIdSecondary;
- expectConfig.iQosParams97 = &secondaryRequested;
- expectConfig.iQosParams99 = NULL;
- expectConfig.iQosParamsR5 = NULL;
- expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
-
- TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
- ltsyExpect2(expectConfig, mediaAuthorizationArray);
- expectData.Close();
- ltsyExpect2.SerialiseL(expectData);
-
- // data for CompleteL
- TMockLtsyData2 < TInfoName, TBuf8<1> > ltsyData3(contextIdSecondary, rejectionCode);
- data.Close();
- ltsyData3.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
- packetContextSecondary.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-
- //-------------------------------------------------------------------------
- // TEST Successful completion request of
- // RPacketContext::ModifyActiveContext with some filter removed
- //-------------------------------------------------------------------------
- TInt filterId = 1;
- packetContextSecondary.RemovePacketFilter(requestStatus, filterId);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
- packetContextSecondary.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::ModifyActiveContext
- // from LTSY.
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- //send completion
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4); // packetQoSSecondary, mediaAuthorizationArray, packetContextSecondary, packetQoS
- CleanupStack::PopAndDestroy(6, this); //packetContext, packetService, expectDataSPP, expectData, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::ModifyActiveContext
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::ModifyActiveContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestModifyActiveContext0002L()
- {
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Set context in Active state
- status = SetContextActiveL(contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //SetProfileParameters
- RPacketQoS::TQoSGPRSRequested gprsRequested;
- RPacketQoS packetQoS;
- status = CreateQoSAndSetProfileParamLC(packetQoS, packetContext ,contextId, gprsRequested);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::ModifyActiveContext
- //-------------------------------------------------------------------------
- // data for ExpectL
- RPacketQoS::TQoSGPRSRequested* qosProfile97 = &gprsRequested;
-
- CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* expectArray = NULL;
- TContextConfiguration expectConfig;
- expectConfig.iContextName = contextId;
- expectConfig.iQosParams97 = qosProfile97;
- expectConfig.iQosParams99 = NULL;
- expectConfig.iQosParamsR5 = NULL;
- expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
-
- TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
- ltsyExpect(expectConfig, expectArray);
- ltsyExpect.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
-
- // data for CompleteL
- TBuf8<1> rejectionCode(1);
- TMockLtsyData2 < TInfoName, TBuf8<1> > ltsyData2(contextId, rejectionCode);
- ltsyData2.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
- packetContext.ModifyActiveContext(requestStatus);
-
- // cancel request
- packetContext.CancelAsyncRequest(EPacketContextModifyActiveContext);
- 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();//packetQoS
- CleanupStack::PopAndDestroy(5, this); // packetService, packetContext, expectData, data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::ModifyActiveContext
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::ModifyActiveContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestModifyActiveContext0004L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 expectData2;
- CleanupClosePushL(expectData2);
-
- RBuf8 expectData3;
- CleanupClosePushL(expectData3);
-
- // 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);
-
- // Open first context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService, contextId2);
- CleanupClosePushL(packetContext2);
-
- // Open third context
- TInfoName contextId3;
- RPacketContext packetContext3;
- packetContext3.OpenNewContext(packetService, contextId3);
- CleanupClosePushL(packetContext3);
-
- // initialisation of the first context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Set first context in Active state
- status = SetContextActiveL(contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //SetProfileParameters first context's
- RPacketQoS::TQoSGPRSRequested gprsRequested;
- RPacketQoS packetQoS;
- status = CreateQoSAndSetProfileParamLC(packetQoS, packetContext,contextId, gprsRequested);
- ASSERT_EQUALS(KErrNone, status);
-
-
- // initialisation of the second context
- status = InitContextL(packetContext2, contextId2);
- ASSERT_EQUALS(KErrNone, status);
-
- // Set second context in Active state
- status = SetContextActiveL(contextId2);
- ASSERT_EQUALS(KErrNone, status);
-
- //SetProfileParameters second context's
- RPacketQoS::TQoSR99_R4Requested rel99Requested;
- RPacketQoS packetQoS2;
- status = CreateQoSAndSetProfileParamLC(packetQoS2, packetContext2, contextId2, rel99Requested);
- ASSERT_EQUALS(KErrNone, status);
-
-
- // initialisation of the third context
- status = InitContextL(packetContext3, contextId3);
- ASSERT_EQUALS(KErrNone, status);
-
- // Set third context in Active state
- status = SetContextActiveL(contextId3);
- ASSERT_EQUALS(KErrNone, status);
-
- //SetProfileParameters third context's
- RPacketQoS::TQoSR5Requested r5Requested;
- RPacketQoS packetQoS3;
- status = CreateQoSAndSetProfileParamLC(packetQoS3, packetContext3, contextId3, r5Requested);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::ModifyActiveContext
- //-------------------------------------------------------------------------
- TBuf8<1> rejectionCode(1);
- // data for the first ExpectL
- CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* expectArray = NULL;
- TContextConfiguration expectConfig;
- expectConfig.iContextName = contextId;
- expectConfig.iQosParams97 = &gprsRequested;
- expectConfig.iQosParams99 = NULL;
- expectConfig.iQosParamsR5 = NULL;
- expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
-
- TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
- ltsyExpect(expectConfig, expectArray);
- ltsyExpect.SerialiseL(expectData);
-
- // data for the second ExpectL
- TContextConfiguration expectConfig2;
- expectConfig2.iContextName = contextId2;
- expectConfig2.iQosParams97 = NULL;
- expectConfig2.iQosParams99 = &rel99Requested;
- expectConfig2.iQosParamsR5 = NULL;
- expectConfig2.iConfiguration = RPacketContext::EPdpTypeIPv4;
-
- TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
- ltsyExpect2(expectConfig2, expectArray);
- ltsyExpect2.SerialiseL(expectData2);
-
- // data for the third ExpectL
- TContextConfiguration expectConfig3;
- expectConfig3.iContextName = contextId3;
- expectConfig3.iQosParams97 = NULL;
- expectConfig3.iQosParams99 = NULL;
- expectConfig3.iQosParamsR5 = &r5Requested;
- expectConfig3.iConfiguration = RPacketContext::EPdpTypeIPv4;
-
- TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
- ltsyExpect3(expectConfig3, expectArray);
- ltsyExpect3.SerialiseL(expectData3);
-
-
- // prepare and send first request
- TMockLtsyData2 < TInfoName, TBuf8<1> > dataForComplete(contextId, rejectionCode);
- dataForComplete.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
- TRequestStatus requestStatus;
- packetContext.ModifyActiveContext(requestStatus);
-
- // prepare and send first request
- TMockLtsyData2 < TInfoName, TBuf8<1> > dataForComplete2(contextId2, rejectionCode);
- data.Close();
- dataForComplete2.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData2);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
- TRequestStatus requestStatus2;
- packetContext2.ModifyActiveContext(requestStatus2);
-
- // prepare and send third request
- TMockLtsyData2 < TInfoName, TBuf8<1> > dataForComplete3(contextId3, rejectionCode);
- data.Close();
- dataForComplete3.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData3);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
- TRequestStatus requestStatus3;
- packetContext3.ModifyActiveContext(requestStatus3);
-
- // wait for first answer
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // wait for second answer
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- // wait for third answer
- User::WaitForRequest(requestStatus3);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus3.Int());
-
- CleanupStack::PopAndDestroy(3); // packetQoS, packetQoS2, packetQoS3,
- CleanupStack::PopAndDestroy(11, this); //packetContext, packetContext2,packetContext3
- //packetService, phone2,telServer2,
- //expectData3, expectData2, expectData, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::ModifyActiveContext with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::ModifyActiveContext and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestModifyActiveContext0005L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Set context in Active state
- status = SetContextActiveL(contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //SetProfileParameters
- RPacketQoS::TQoSGPRSRequested gprsRequested;
- RPacketQoS packetQoS;
- status = CreateQoSAndSetProfileParamLC(packetQoS, packetContext, contextId, gprsRequested);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::ModifyActiveContext
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- // data for ExpectL
- RPacketQoS::TQoSGPRSRequested* qosProfile97 = &gprsRequested;
- CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* expectArray = NULL;
- TContextConfiguration expectConfig;
- expectConfig.iContextName = contextId;
- expectConfig.iQosParams97 = qosProfile97;
- expectConfig.iQosParams99 = NULL;
- expectConfig.iQosParamsR5 = NULL;
- expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
-
- TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
- ltsyExpect(expectConfig, expectArray);
- ltsyExpect.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
-
- packetContext.ModifyActiveContext(requestStatus);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(6, this); //packetQoS, packetService, packetContext, expectData, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::NotifyConfigChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConfigChanged0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::NotifyConfigChanged when result is not cached.
- //-------------------------------------------------------------------------
- // data for NotifyConfigChanged
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
-
- //data for ComleteL
- RPacketContext::TContextConfigGPRS configComplete;
- // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
- // see CMmPacketContextGsmWcdma.cpp line 339)
- _LIT(KPointName, "Some Name");
- configComplete.iAccessPointName.Copy(KPointName);
- _LIT(KPdpAdd, "Some Add");
- configComplete.iPdpAddress.Copy(KPdpAdd);
- configComplete.iPdpCompression = RPacketContext::KPdpDataCompression;
- _LIT(KPrimaryDns, "Some PrimaryDns");
- configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
- _LIT(KSecondaryDns, "Some SecondaryDns");
- configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(contextId, configComplete);
- ltsyData.SerialiseL(data);
-
- // send request
- packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
-
- // sent completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
-
- // wait for request
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(configComplete.iAccessPointName, contextConfig.iAccessPointName);
- ASSERT_EQUALS(configComplete.iPdpAddress, contextConfig.iPdpAddress );
- ASSERT_EQUALS(configComplete.iPdpCompression, contextConfig.iPdpCompression);
- ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::NotifyConfigChanged
- // from LTSY.
- //-------------------------------------------------------------------------
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- // sent completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- CleanupStack::PopAndDestroy(2); // packetService, packetContext
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0001b
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged
-@SYMTestPriority High
-@SYMTestActions Invokes CMmPacketServiceTsy::DialUpContext via RPacketContext::NotifyConfigChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConfigChanged0001bL()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
-
- //-------------------------------------------------------------------------
- // call completition of RPacketContext::NotifyConfigChanged
- // to call CMmPacketServiceTsy::DialUpContext
- // with ContextID == KStringExternal
- //-------------------------------------------------------------------------
- //data for ComleteL
- RPacketContext::TContextConfigGPRS configComplete;
- TInfoName ContextID;
- _LIT( KStringExternal, "External" );
- ContextID.Copy(KStringExternal);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(ContextID, configComplete);
- ltsyData.SerialiseL(data);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- // sent completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-
- //-------------------------------------------------------------------------
- // call completition of RPacketContext::NotifyConfigChanged
- // to call CMmPacketServiceTsy::DialUpContext
- // with ContextID == KStringExternal2
- //-------------------------------------------------------------------------
- //data for ComleteL
- _LIT( KStringExternal2, "External2" );
- ContextID.Copy(KStringExternal2);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData2(ContextID, configComplete);
- data.Close();
- ltsyData2.SerialiseL(data);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- // sent completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-
- //-------------------------------------------------------------------------
- // call completition of RPacketContext::NotifyConfigChanged
- // to call CMmPacketServiceTsy::DialUpContext
- // with (ContextID != KStringExternal2)&&(ContextID != KStringExternal)
- //-------------------------------------------------------------------------
- //data for ComleteL
- _LIT( KSomeId, "SomeId" );
- ContextID.Copy(KSomeId);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData3(ContextID, configComplete);
- data.Close();
- ltsyData3.SerialiseL(data);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- // sent completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-
- CleanupStack::PopAndDestroy(2); // packetService, packetContext
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0001c
-@SYMComponent telephony_ctsy
-@SYMDEF DEF126915
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged using R99/R4 Context params
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::NotifyConfigChange. R99/R4 Context params returned
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConfigChanged0001cL()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::NotifyConfigChanged, using TContextConfigR99_R4 return
- // params, when result is not cached.
- //-------------------------------------------------------------------------
- // data for NotifyConfigChanged
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
-
- //data for ComleteL
- RPacketContext::TContextConfigR99_R4 configComplete;
- // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
- // see CMmPacketContextGsmWcdma.cpp line 339)
- _LIT(KPointName, "Some Name");
- configComplete.iAccessPointName.Copy(KPointName);
- _LIT(KPdpAdd, "Some Add");
- configComplete.iPdpAddress.Copy(KPdpAdd);
- _LIT(KPrimaryDns, "Some PrimaryDns");
- configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
- _LIT(KSecondaryDns, "Some SecondaryDns");
- configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigR99_R4 > ltsyData(contextId, configComplete);
- ltsyData.SerialiseL(data);
-
- // send request
- packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
-
- // sent completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
-
- // wait for request
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(configComplete.iAccessPointName, contextConfig.iAccessPointName);
- ASSERT_EQUALS(configComplete.iPdpAddress, contextConfig.iPdpAddress );
- ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
- CleanupStack::PopAndDestroy(2); // packetService, packetContext
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::NotifyConfigChanged
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::NotifyConfigChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConfigChanged0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::NotifyConfigChanged
- //-------------------------------------------------------------------------
- // data for NotifyConfigChanged
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
-
- //data for ComleteL
- RPacketContext::TContextConfigGPRS configComplete;
- _LIT (KNewName, "Some new Name");
- configComplete.iPdpAddress.Copy(KNewName);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(contextId, configComplete);
- ltsyData.SerialiseL(data);
-
- // send request
- packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
- //send cancellation
- packetContext.CancelAsyncRequest(EPacketContextNotifyConfigChanged);
-
- // sent completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
-
- // wait for request
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(2); // packetService, packetContext
- CleanupStack::PopAndDestroy(2); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::NotifyConfigChanged with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConfigChanged0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::NotifyConfigChanged
- //-------------------------------------------------------------------------
- // data for NotifyConfigChanged
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigCDMA contextConfig;
- TPckg<RPacketContext::TContextConfigCDMA> pckgConfig(contextConfig);
-
- // send request
- packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
-
- // wait for request
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(2); // packetService, packetContext
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyConfigChanged
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyConfigChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::NotifyConfigChanged
- //-------------------------------------------------------------------------
-
- // data for NotifyConfigChanged 1
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig1;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig1(contextConfig1);
-
- //data for ComleteL 1
- RPacketContext::TContextConfigGPRS configComplete1;
- // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
- // see CMmPacketContextGsmWcdma.cpp line 339)
- _LIT(KPointName, "Some Name");
- configComplete1.iAccessPointName.Copy(KPointName);
- _LIT(KPdpAdd, "Some Add");
- configComplete1.iPdpAddress.Copy(KPdpAdd);
- configComplete1.iPdpCompression = RPacketContext::KPdpDataCompression;
- _LIT(KPrimaryDns, "Some PrimaryDns");
- configComplete1.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
- _LIT(KSecondaryDns, "Some SecondaryDns");
- configComplete1.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(contextId, configComplete1);
- ltsyData.SerialiseL(data);
-
-
- // data for NotifyConfigChanged 2
- TRequestStatus requestStatus2;
- RPacketContext::TContextConfigR99_R4 contextConfig2;
- TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
-
- //data for ComleteL 2
- RPacketContext::TContextConfigGPRS configComplete2;
- // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
- // see CMmPacketContextGsmWcdma.cpp line 339)
- _LIT(KPointName2, "Some Name2");
- configComplete2.iAccessPointName.Copy(KPointName2);
- _LIT(KPdpAdd2, "Some Add2");
- configComplete2.iPdpAddress.Copy(KPdpAdd2);
- configComplete2.iPdpCompression = RPacketContext::KPdpDataCompression;
- _LIT(KPrimaryDns2, "Some PrimaryDns2");
- configComplete2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns2);
- _LIT(KSecondaryDns2, "Some SecondaryDns2");
- configComplete2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns2);
- TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData2(contextId2, configComplete2);
- ltsyData2.SerialiseL(data2);
-
- // send first request
- packetContext.NotifyConfigChanged(requestStatus, pckgConfig1);
-
- // send second request
- packetContext2.NotifyConfigChanged(requestStatus2, pckgConfig2);
-
- // sent first completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
-
- // sent second completion
- iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data2);
-
- // wait for first answer
- User::WaitForRequest(requestStatus);
-
- // wait for second answer
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
-
- ASSERT_EQUALS(configComplete1.iAccessPointName, contextConfig1.iAccessPointName);
- ASSERT_EQUALS(configComplete1.iPdpAddress, contextConfig1.iPdpAddress );
- ASSERT_EQUALS(configComplete1.iPdpCompression, contextConfig1.iPdpCompression);
- ASSERT_EQUALS(configComplete1.iProtocolConfigOption.iDnsAddresses.iPrimaryDns,
- contextConfig1.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(configComplete1.iProtocolConfigOption.iDnsAddresses.iSecondaryDns,
- contextConfig1.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
- ASSERT_EQUALS(configComplete2.iAccessPointName, contextConfig2.iAccessPointName);
- ASSERT_EQUALS(configComplete2.iPdpAddress, contextConfig2.iPdpAddress);
- ASSERT_EQUALS(configComplete2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns,
- contextConfig2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(configComplete2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns,
- contextConfig2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
- CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNDT-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyDataTransferred
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::NotifyDataTransferred
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyDataTransferred0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- //check that this requests is not supported by CTSY
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RPacketContext::TDataVolume volume;
- TUint rcvdGranularity = 1;
- TUint sentGranularity = 1;
-
- packetContext.NotifyDataTransferred(requestStatus, volume, rcvdGranularity, sentGranularity);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::NotifyConfigChanged
- // from LTSY.
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RPacketContext::TDataVolume dataVolume;
- dataVolume. iBytesReceived = 111;
- TMockLtsyData2 < TInfoName, RPacketContext::TDataVolume > ltsyData(contextId, dataVolume);
- ltsyData.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyDataTransferred, KErrNone, data);
-
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); // packetService, packetContext, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCEPF-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::EnumeratePacketFilters
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::EnumeratePacketFilters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestEnumeratePacketFilters0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::EnumeratePacketFilters when result is not cached.
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TInt count = 11; // some nonzero value
- packetContext.EnumeratePacketFilters(requestStatus, count);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(0, count);
-
-
- //-------------------------------------------------------------------------
- // Add filter and test again
- //-------------------------------------------------------------------------
- // Open new secondary context
- TInfoName contextIdSecondary;
- RPacketContext packetContextSecondary;
- packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
- CleanupClosePushL(packetContextSecondary);
-
- RPacketQoS packetQoSSecondary;
- RPacketQoS::TQoSGPRSRequested secondaryRequested;
- TInt err = CreateQoSAndSetProfileParamLC(packetQoSSecondary, packetContextSecondary,
- contextIdSecondary, secondaryRequested, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetQoSSecondary);
-
- // add new filter
- RPacketContext::TPacketFilterV2 filter;
- filter.iId = 1;
- RPacketContext::TPacketFilterV2Pckg filterPckg (filter);
- err = AddContextPacketFilterL(packetContextSecondary, contextIdSecondary, filter);
-
- ASSERT_EQUALS(KErrNone, err);
-
- // send request
- packetContextSecondary.EnumeratePacketFilters(requestStatus, count);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(1, count);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(7, this); // packetQoSSecondary, packetContextSecondary, packetService, packetContext,data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCEPF-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::EnumeratePacketFilters
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::EnumeratePacketFilters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestEnumeratePacketFilters0004L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- // 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::EnumeratePacketFilters
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- TInt count = 11; // some nonzero value
- TRequestStatus requestStatus2;
- TInt count2 = 22; // some nonzero value
-
- // send first request
- packetContext.EnumeratePacketFilters(requestStatus, count);
- // send second request
- packetContext2.EnumeratePacketFilters(requestStatus2, count2);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(0, count);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(0, count2);
-
- CleanupStack::PopAndDestroy(7, this); // packetContext2, packetContext, packetService2, packetService, phone2, telServer2, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDataVolumeTransferred
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetDataVolumeTransferred
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetDataVolumeTransferred0001L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred,expectData, KErrNotSupported);
-
- TRequestStatus requestStatus;
- RPacketContext::TDataVolume volume;
- packetContext.GetDataVolumeTransferred(requestStatus, volume);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- // data for CompleteL
- RPacketContext::TDataVolume volumeCompleteL;
- volumeCompleteL.iBytesReceived = 0x111;
- volumeCompleteL.iBytesSent = 0x222;
- TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData1(contextId, volumeCompleteL);
- ltsyData1.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
- iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrGeneral, data);
-
- packetContext.GetDataVolumeTransferred(requestStatus, volume);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::GetDataVolumeTransferred when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
- iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data);
-
- packetContext.GetDataVolumeTransferred(requestStatus, volume);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
- ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::GetDataVolumeTransferred
- // from LTSY.
- //-------------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST of RPacketContext::GetDataVolumeTransferred
- // when ContextStatus == RPacketContext::EStatusDeleted in CMmPacketContextTsy
- //-------------------------------------------------------------------------
-
- // set Context status as RPacketContext::EStatusDeleted
- TInt err = SetContextStatusL(contextId, RPacketContext::EStatusDeleted);
- ASSERT_EQUALS(KErrNone, err);
-
- // send request
- packetContext.GetDataVolumeTransferred(requestStatus, volume);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
- ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(5, this); // packetContext, packetService, expectData, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::GetDataVolumeTransferred
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::GetDataVolumeTransferred
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetDataVolumeTransferred0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::GetDataVolumeTransferred
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RPacketContext::TDataVolume volume;
-
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- // data for CompleteL
- RPacketContext::TDataVolume volumeCompleteL;
- volumeCompleteL.iBytesReceived = 0x111;
- volumeCompleteL.iBytesSent = 0x222;
- TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData1(contextId, volumeCompleteL);
- ltsyData1.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
-
- // send request
- packetContext.GetDataVolumeTransferred(requestStatus, volume);
-
- //sent cancelling
- packetContext.CancelAsyncRequest(EPacketContextGetDataVolumeTransferred);
-
- //send complete request
- iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data, 10);
-
- User::WaitForRequest(requestStatus);
- // 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());
- ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
- ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(5, this); // packetContext, packetService,expectData, data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetDataVolumeTransferred
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::GetDataVolumeTransferred
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetDataVolumeTransferred0004L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::GetDataVolumeTransferred
- //-------------------------------------------------------------------------
-
- // data for first CompleteL
- RPacketContext::TDataVolume volumeCompleteL;
- volumeCompleteL.iBytesReceived = 0x111;
- volumeCompleteL.iBytesSent = 0x222;
- TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData1(contextId, volumeCompleteL);
- ltsyData1.SerialiseL(data);
-
- // data for second CompleteL
- TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData2(contextId2, volumeCompleteL);
- ltsyData2.SerialiseL(data2);
-
- // for the first request
- TRequestStatus requestStatus;
- RPacketContext::TDataVolume volume;
-
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- // for the second request
- TRequestStatus requestStatus2;
- RPacketContext::TDataVolume volume2;
-
- TMockLtsyData1 <TInfoName> expData2(contextId2);
- expData2.SerialiseL(expectData2);
-
- iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
- iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data);
- iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData2);
- iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data2);
-
- // send first request
- packetContext.GetDataVolumeTransferred(requestStatus, volume);
-
- // send second request
- packetContext2.GetDataVolumeTransferred(requestStatus2, volume2);
-
- // wait for first answer
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
- ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
-
- // wait for second answer
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume2.iBytesReceived);
- ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume2.iBytesSent);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); // expectData2, expectData
- CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDataVolumeTransferred with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetDataVolumeTransferred and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetDataVolumeTransferred0005L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::GetDataVolumeTransferred
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- RPacketContext::TDataVolume volume;
-
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
-
- packetContext.GetDataVolumeTransferred(requestStatus, volume);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); //packetContext, packetService, expectData, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCSC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConnectionSpeedChange
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::NotifyConnectionSpeedChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConnectionSpeedChange0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::NotifyConnectionSpeedChange when result is not cached.
- //-------------------------------------------------------------------------
- // data for CompleteL
- TInt completeRate = 9600;
- TMockLtsyData2 <TInfoName, TInt > ltsyData(contextId, completeRate);
- ltsyData.SerialiseL(data);
-
- TRequestStatus requestStatus;
- TUint rate;
- // send request
- packetContext.NotifyConnectionSpeedChange(requestStatus, rate);
-
- // send completion
- iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(completeRate, (TInt)rate);
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::NotifyConnectionSpeedChange
- // from LTSY.
- //-------------------------------------------------------------------------
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- // send completion
- iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); //packetContext, packetService, data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCSC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::NotifyConnectionSpeedChange
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::NotifyConnectionSpeedChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConnectionSpeedChange0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::NotifyConnectionSpeedChange
- //-------------------------------------------------------------------------
-
- // data for CompleteL
- TInt completeRate = 9600;
- TMockLtsyData2 <TInfoName, TInt > ltsyData(contextId, completeRate);
- ltsyData.SerialiseL(data);
-
- TRequestStatus requestStatus;
- TUint rate;
- // send request
- packetContext.NotifyConnectionSpeedChange(requestStatus, rate);
- packetContext.CancelAsyncRequest(EPacketContextNotifyConnectionSpeedChange);
-
- // send completion
- iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); //packetContext, packetService, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCSC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyConnectionSpeedChange
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyConnectionSpeedChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConnectionSpeedChange0004L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::NotifyConnectionSpeedChange
- //-------------------------------------------------------------------------
- TUint rate;
- TRequestStatus requestStatus;
- TRequestStatus requestStatus2;
- TUint rate2;
-
-
- // data for CompleteL 1
- TInt completeRate = 9600;
- TMockLtsyData2 <TInfoName, TInt > ltsyData(contextId, completeRate);
- ltsyData.SerialiseL(data);
-
- // data for CompleteL 2
- TInt completeRate2 = 4800;
- TMockLtsyData2 <TInfoName, TInt > ltsyData2(contextId2, completeRate2);
- ltsyData2.SerialiseL(data2);
-
- // send first request
- packetContext.NotifyConnectionSpeedChange(requestStatus, rate);
-
- // send second request
- packetContext2.NotifyConnectionSpeedChange(requestStatus2, rate2);
-
- // sent first completion
- iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
-
- // sent second completion
- iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data2);
-
- // wait for first answer
- User::WaitForRequest(requestStatus);
-
- // wait for second answer
- User::WaitForRequest(requestStatus2);
-
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(completeRate, (TInt)rate);
- ASSERT_EQUALS(completeRate2, (TInt)rate2);
-
- CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
-
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCDL-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestDelete0001L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
-
- //-------------------------------------------------------------------------
- // SEND Delete request when ContextStatus is Unknown
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- packetContext.Delete(requestStatus);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
- AssertMockLtsyStatusL();
-
-
- // Set context in Active state
- SetContextActiveL(contextId);
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::Delete
- // from LTSY.
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
- 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);
-
- packetContext.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);
-
- packetContext.Delete(requestStatus);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::Delete when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL (EPacketContextDelete, expectData);
- iMockLTSY.CompleteL(EPacketContextDelete, KErrNone, data);
-
- packetContext.Delete(requestStatus);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST D: failure to modify context parameters when context deleted
- //-------------------------------------------------------------------------
- packetContext.ModifyActiveContext(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, expectData, data, this
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCDL-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- // Set first context in Active state
- SetContextActiveL(contextId);
-
- // Set second context in Active state
- SetContextActiveL(contextId2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::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
- packetContext.Delete(requestStatus);
-
- // send second request
- packetContext2.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); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCDL-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Delete and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Set context in Active state
- SetContextActiveL(contextId);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::Delete
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
- iMockLTSY.ExpectL (EPacketContextDelete, expectData);
-
- packetContext.Delete(requestStatus);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, data, expectData, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCA-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Activate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestActivate0001L()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
- iMockLTSY.ExpectL(EPacketContextActivate, expectData, KErrNotSupported);
-
- packetContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- RPacketContext::TContextConfigGPRS contextConfig;
- TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData1(contextId, contextConfig);
- ltsyData1.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrGeneral, data);
-
- packetContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::Activate when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
-
- packetContext.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(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(3, this); // expectData, data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCA-0001b
-@SYMComponent telephony_ctsy
-
-@SYMDEF DEF126915
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate with R99/R4 params
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Activate with R99/R4 context config params
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestActivate0001bL()
- {
-
- 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::Activate, using TContextConfigR99_R4, when result is
- // not cached.
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
-
- RPacketContext::TContextConfigR99_R4 contextConfig;
- TMockLtsyData2< TInfoName, RPacketContext::TContextConfigR99_R4 > ltsyData1(contextId, contextConfig);
- ltsyData1.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
-
- packetContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(3, this); // expectData, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCA-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::Activate
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::Activate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestActivate0002L()
- {
-
-// This test should test cancellation of Activate
-// 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);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::Activate
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig;
- TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData1(contextId, contextConfig);
- ltsyData1.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data, 10);
-
- packetContext.Activate(requestStatus);
- packetContext.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-PKTC-PCA-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Activate with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestActivate0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // -----------------------------------------------------------------------
- // call Activate without initialisation of the context
- // -----------------------------------------------------------------------
- TRequestStatus requestStatus;
- packetContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3, this); //packetContext, packetService, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCA-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Activate
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::Activate
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the first context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
- // initialisation of the second context
- status = InitContextL(packetContext2, contextId2);
- ASSERT_EQUALS(KErrNone, status);
-
- // data for ExpectL for first client
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- // data for CompleteL for first client
- RPacketContext::TContextConfigGPRS contextConfig;
- TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > 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
- RPacketContext::TContextConfigGPRS contextConfig2;
- TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData2(contextId2, contextConfig2);
- ltsyData2.SerialiseL(data2);
-
- // first request
- TRequestStatus requestStatus;
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
- packetContext.Activate(requestStatus);
-
- // second request
- TRequestStatus requestStatus2;
- iMockLTSY.ExpectL(EPacketContextActivate, expectData2);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data2);
- packetContext2.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-PKTC-PCA-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Activate and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::Activate
- //-------------------------------------------------------------------------
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
-
- TRequestStatus requestStatus;
- packetContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(5, this); // data, expectData, packetContext, packetService, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST C1: Successful completion request of
- // RPacketContext::GetConfig with RPacketContext::TContextConfigGPRS param
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
-
- packetContext.GetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- TBuf8<50> null50;
- TBuf8<252> nullName;
- ASSERT_EQUALS(nullName, contextConfig.iAccessPointName);
- ASSERT_EQUALS(RPacketContext::ENotRequired, contextConfig.iAnonymousAccessReqd);
- ASSERT_EQUALS(0, contextConfig.iNWIContext);
- ASSERT_EQUALS(null50, contextConfig.iPdpAddress );
- ASSERT_EQUALS((TUint)0, contextConfig.iPdpCompression);
- ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig.iPdpType );
- ASSERT_EQUALS(0, contextConfig.iUseEdge);
- ASSERT_EQUALS(RPacketContext::EProtocolNone,contextConfig.iProtocolConfigOption.iAuthInfo.iProtocol);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iChallenge);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iResponse);
- ASSERT_EQUALS((TUint8)0, contextConfig.iProtocolConfigOption.iId);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
-
- //-------------------------------------------------------------------------
- // TEST C2: Successful completion request of
- // RPacketContext::GetConfig with RPacketContext::TContextConfigR99_R4 param
- //-------------------------------------------------------------------------
- RPacketContext::TContextConfigR99_R4 contextConfig2;
- TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
-
- packetContext.GetConfig(requestStatus, pckgConfig2);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(nullName, contextConfig2.iAccessPointName);
- ASSERT_EQUALS(0, contextConfig2.iNWIContext);
- ASSERT_EQUALS(RPacketContext::EBestEffort, contextConfig2.iPFI);
- ASSERT_EQUALS(null50, contextConfig2.iPdpAddress);
- ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig2.iPdpType );
- ASSERT_EQUALS(0, contextConfig2.iUseEdge);
- ASSERT_EQUALS(RPacketContext::EProtocolNone,contextConfig2.iProtocolConfigOption.iAuthInfo.iProtocol);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iUsername);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iPassword);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iChallenge);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iResponse);
- ASSERT_EQUALS((TUint8)0, contextConfig2.iProtocolConfigOption.iId);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
- //-------------------------------------------------------------------------
- // TEST D: RPacketContext::GetConfig again, this time CTSY
- // will get result from the cache.
- //-------------------------------------------------------------------------
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //value to Config...
- RPacketContext::TContextConfigGPRS setConfig;
- _LIT(KPointName, "Some Name");
- setConfig.iAccessPointName.Copy(KPointName);
- setConfig.iAnonymousAccessReqd = RPacketContext::ERequired;
- setConfig.iNWIContext = ETrue;
- _LIT(KPdpAdd, "Some Add");
- setConfig.iPdpAddress.Copy(KPdpAdd);
- setConfig.iPdpCompression = RPacketContext::KPdpDataCompression;
- setConfig.iPdpType = RPacketContext::EPdpTypeIPv6;
- setConfig.iUseEdge = ETrue;
- setConfig.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
- _LIT(KUsername, "Some Username");
- setConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
- _LIT(KPassword, "Some Password");
- setConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
- _LIT(KChallenge, "Challenge");
- setConfig.iProtocolConfigOption.iChallenge.Copy(KChallenge);
- _LIT(KResponse, "Response");
- setConfig.iProtocolConfigOption.iResponse.Copy(KResponse);
- setConfig.iProtocolConfigOption.iId = 10;
- _LIT(KPrimaryDns, "Some PrimaryDns");
- setConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
- _LIT(KSecondaryDns, "Some SecondaryDns");
- setConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
- TPckg<RPacketContext::TContextConfigGPRS> pckgSet(setConfig);
-
- // Set new value to Config
- TMockLtsyData1<TInfoName > contexName(contextId);
- contexName.SerialiseL(data);
- TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(setConfig, contextId);
- expExpect.SerialiseL(expectData);
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
- packetContext.SetConfig(requestStatus, pckgSet);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // Get new values
- packetContext.GetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(setConfig.iAccessPointName, contextConfig.iAccessPointName);
- ASSERT_EQUALS(setConfig.iAnonymousAccessReqd, contextConfig.iAnonymousAccessReqd);
- ASSERT_EQUALS(setConfig.iNWIContext, contextConfig.iNWIContext);
- ASSERT_EQUALS(setConfig.iPdpAddress, contextConfig.iPdpAddress );
- ASSERT_EQUALS(setConfig.iPdpCompression, contextConfig.iPdpCompression);
- ASSERT_EQUALS(setConfig.iPdpType, contextConfig.iPdpType );
- ASSERT_EQUALS(setConfig.iUseEdge, contextConfig.iUseEdge);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iAuthInfo.iProtocol, contextConfig.iProtocolConfigOption.iAuthInfo.iProtocol);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iAuthInfo.iUsername, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iAuthInfo.iPassword, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iChallenge, contextConfig.iProtocolConfigOption.iChallenge);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iResponse, contextConfig.iProtocolConfigOption.iResponse);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iId, contextConfig.iProtocolConfigOption.iId);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(setConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
- CleanupStack::PopAndDestroy(5, this); // expectData, data, packetContext, packetService, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConfig with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetConfig with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetConfig0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::GetConfig
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigCDMA contextConfig;
- TPckg<RPacketContext::TContextConfigCDMA> pckgConfig(contextConfig);
-
- packetContext.GetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::GetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetConfig0004L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- // 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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::GetConfig
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
-
- TRequestStatus requestStatus2;
- RPacketContext::TContextConfigR99_R4 contextConfig2;
- TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
-
- // send first request
- packetContext.GetConfig(requestStatus, pckgConfig);
- // send second request
- packetContext2.GetConfig(requestStatus2, pckgConfig2);
-
- // wait for the first answer
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- TBuf8<50> null50;
- TBuf8<252> nullName;
- ASSERT_EQUALS(nullName, contextConfig.iAccessPointName);
- ASSERT_EQUALS(RPacketContext::ENotRequired, contextConfig.iAnonymousAccessReqd);
- ASSERT_EQUALS(0, contextConfig.iNWIContext);
- ASSERT_EQUALS(null50, contextConfig.iPdpAddress );
- ASSERT_EQUALS((TUint)0, contextConfig.iPdpCompression);
- ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig.iPdpType );
- ASSERT_EQUALS(0, contextConfig.iUseEdge);
- ASSERT_EQUALS(RPacketContext::EProtocolNone, contextConfig.iProtocolConfigOption.iAuthInfo.iProtocol);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iChallenge);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iResponse);
- ASSERT_EQUALS((TUint8)0, contextConfig.iProtocolConfigOption.iId);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
- // wait for the second answer
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(nullName, contextConfig2.iAccessPointName);
- ASSERT_EQUALS(0, contextConfig2.iNWIContext);
- ASSERT_EQUALS(RPacketContext::EBestEffort, contextConfig2.iPFI);
- ASSERT_EQUALS(null50, contextConfig2.iPdpAddress);
- ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig2.iPdpType );
- ASSERT_EQUALS(0, contextConfig2.iUseEdge);
- ASSERT_EQUALS(RPacketContext::EProtocolNone, contextConfig2.iProtocolConfigOption.iAuthInfo.iProtocol);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iUsername);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iPassword);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iChallenge);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iResponse);
- ASSERT_EQUALS((TUint8)0, contextConfig2.iProtocolConfigOption.iId);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
- ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
-
- CleanupStack::PopAndDestroy(7, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, this
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGS-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetStatus
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetStatus
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetStatus0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // test 1: context not inited
- RPacketContext::TContextStatus contextStatus;
- packetContext.GetStatus(contextStatus);
- ASSERT_EQUALS(RPacketContext::EStatusUnknown, contextStatus);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // test2: context inited
- packetContext.GetStatus(contextStatus);
- ASSERT_EQUALS(RPacketContext::EStatusInactive, contextStatus);
-
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); //packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGS-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::GetStatus
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::GetStatus
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-/*void CCTsyPacketContextFU::TestGetStatus0002L()
- {
-
-// This test should test cancellation of GetStatus
-// If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::GetStatus
- //-------------------------------------------------------------------------
-
- // Remove the test above if this is not relevant for this API
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- // User::WaitForRequest(mockLtsyStatus);
- CleanupStack::PopAndDestroy(2); // data, this
-
- }*/
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGS-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetStatus with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetStatus with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-/*void CCTsyPacketContextFU::TestGetStatus0003L()
- {
-
-// This test should test sending bad parameter data for GetStatus
-// 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);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::GetStatus
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketContext::GetStatus
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RPacketContext::GetStatus
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- // Done !
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }*/
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGS-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetStatus
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::GetStatus
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-/*void CCTsyPacketContextFU::TestGetStatus0004L()
- {
-
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- // 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);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::GetStatus
- //-------------------------------------------------------------------------
-
- // 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.
-
-
- // Done !
- CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
-
- }*/
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGS-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetStatus with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetStatus and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-/*void CCTsyPacketContextFU::TestGetStatus0005L()
- {
-
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::GetStatus
- //-------------------------------------------------------------------------
-
- // If this API does not have a timeout, then remove this test completely.
-
- // Done !
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }*/
-
- /**
-@SYMTestCaseID BA-CTSY-PKTC-PCSC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::SetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::SetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // data for SetContext
- RPacketContext::TContextConfigGPRS setConfig;
- _LIT(KPointName, "Some Name");
- setConfig.iAccessPointName.Copy(KPointName);
- setConfig.iAnonymousAccessReqd = RPacketContext::ERequired;
- setConfig.iNWIContext = ETrue;
- _LIT(KPdpAdd, "Some Add");
- setConfig.iPdpAddress.Copy(KPdpAdd);
- setConfig.iPdpCompression = RPacketContext::KPdpDataCompression;
- setConfig.iPdpType = RPacketContext::EPdpTypeIPv6;
- setConfig.iUseEdge = ETrue;
- setConfig.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
- _LIT(KUsername, "Some Username");
- setConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
- _LIT(KPassword, "Some Password");
- setConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
- _LIT(KChallenge, "Challenge");
- setConfig.iProtocolConfigOption.iChallenge.Copy(KChallenge);
- _LIT(KResponse, "Response");
- setConfig.iProtocolConfigOption.iResponse.Copy(KResponse);
- setConfig.iProtocolConfigOption.iId = 10;
- _LIT(KPrimaryDns, "Some PrimaryDns");
- setConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
- _LIT(KSecondaryDns, "Some SecondaryDns");
- setConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(setConfig);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(setConfig, contextId);
- expExpect.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
-
- packetContext.SetConfig(requestStatus, pckgConfig);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
-
- //-------------------------------------------------------------------------
- // 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);
- packetContext.SetConfig(requestStatus, pckgConfig);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::SetConfig when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext.SetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //--------------------------------------------
- // Successful completion for R99
- //--------------------------------------------
- RPacketContext::TContextConfigR99_R4 setConfig99;
- _LIT(KPointName99, "Some Name99");
- setConfig99.iAccessPointName.Copy(KPointName99);
- setConfig99.iNWIContext = ETrue;
- _LIT(KPdpAdd99, "Some Add99");
- setConfig99.iPdpAddress.Copy(KPdpAdd99);
- setConfig99.iPdpType = RPacketContext::EPdpTypeIPv6;
- setConfig99.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
- _LIT(KUsername99, "Some Username99");
- setConfig99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername99);
- _LIT(KPassword99, "Some Password99");
- setConfig99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword99);
- _LIT(KChallenge99, "Challenge99");
- setConfig99.iProtocolConfigOption.iChallenge.Copy(KChallenge99);
- _LIT(KResponse99, "Response99");
- setConfig99.iProtocolConfigOption.iResponse.Copy(KResponse99);
- setConfig99.iProtocolConfigOption.iId = 10;
- _LIT(KPrimaryDns99, "Some PrimaryDns99");
- setConfig99.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns99);
- _LIT(KSecondaryDns99, "Some SecondaryDns99");
- setConfig99.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns99);
- setConfig99.iPFI = RPacketContext::ESignalling;
- TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig3(setConfig99);
-
- TMockLtsyData2<RPacketContext::TContextConfigR99_R4, TInfoName > expExpect4(setConfig99, contextId);
- expectData.Close();
- expExpect4.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext.SetConfig(requestStatus, pckgConfig3);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //--------------------------------------------
- // failure to dispatch request for R99
- //--------------------------------------------
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
- //iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, data);
-
- packetContext.SetConfig(requestStatus, pckgConfig3);
-
- 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, 0);
- User::WaitForRequest(mockLtsyStatus);
-
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); //packetContext, packetService
- CleanupStack::PopAndDestroy(3, this); // data, expectData, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCSC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::SetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::SetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // data for SetConfig
- RPacketContext::TContextConfigGPRS contextConfig;
- _LIT(KPdpAdd, "Some Add");
- contextConfig.iPdpAddress.Copy(KPdpAdd);
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
-
- // data for ExpectL
- TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(contextConfig, contextId);
- expExpect.SerialiseL(expectData);
-
- //data for CompleteL
- TMockLtsyData1<TInfoName > contexName(contextId);
- contexName.SerialiseL(data);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- TRequestStatus requestStatus;
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::SetConfig
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 20);
-
- packetContext.SetConfig(requestStatus, pckgConfig);
-
- packetContext.CancelAsyncRequest(EPacketContextSetConfig);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- // TSY has started a request and it is not possible to then cancel
- // this request. (see CMmPacketContextTsy.cpp line 483)
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- User::WaitForRequest(mockLtsyStatus);
-
- CleanupStack::PopAndDestroy(2);
- CleanupStack::PopAndDestroy(3, this); // expectData, data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCSC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::SetConfig with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::SetConfig with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestSetConfig0003L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::SetConfig
- //-------------------------------------------------------------------------
-
- RPacketContext::TContextConfigCDMA contextConfig;
- TPckg<RPacketContext::TContextConfigCDMA> pckgConfig(contextConfig);
-
- TRequestStatus requestStatus;
-
- packetContext.SetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- AssertMockLtsyStatusL();
-
-
- //------------------------------------------------
- //set config for context that was not inited, using GPRS
- //------------------------------------------------
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService, contextId2);
- CleanupClosePushL(packetContext2);
-
-
- RPacketContext::TContextConfigGPRS contextConfig2;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig2(contextConfig2);
-
- packetContext2.SetConfig(requestStatus, pckgConfig2);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
- AssertMockLtsyStatusL();
-
-
- //------------------------------------------------
- //set config for context that was not inited, using R99_R4
- //------------------------------------------------
- RPacketContext::TContextConfigR99_R4 contextConfig3;
- TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig3(contextConfig3);
-
- packetContext2.SetConfig(requestStatus, pckgConfig3);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(1); //packetContext2
-
- CleanupStack::PopAndDestroy(2); //packetContext packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCSC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::SetConfig
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::SetConfig
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- packetContext2.OpenNewContext(packetService2, contextId2);
- CleanupClosePushL(packetContext2);
-
-
- // initialisation of the first context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // initialisation of the second context
- status = InitContextL(packetContext2, contextId2);
- ASSERT_EQUALS(KErrNone, status);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::SetConfig
- //-------------------------------------------------------------------------
- RPacketContext::TContextConfigGPRS contextConfig;
- _LIT(KPdpAdd, "Some Add");
- contextConfig.iPdpAddress.Copy(KPdpAdd);
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
- // for the first ExpectL
- TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(contextConfig, contextId);
- expExpect.SerialiseL(expectData);
-
- RPacketContext::TContextConfigR99_R4 contextConfig2;
- TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
- // for the second ExpectL
- TMockLtsyData2<RPacketContext::TContextConfigR99_R4, TInfoName > expExpect2(contextConfig2, contextId2);
- expExpect2.SerialiseL(expectData2);
-
- // for the first ComleteL
- TMockLtsyData1< TInfoName > ltsyData(contextId);
- ltsyData.SerialiseL(data);
-
- // for the second ComleteL
- 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);
-
- packetContext.SetConfig(requestStatus, pckgConfig);
- packetContext2.SetConfig(requestStatus2, pckgConfig2);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- User::WaitForRequest(mockLtsyStatus);
-
- // packetContext, packetService, packetContext2, packetService2
- //one2, telServer2, data2,
- CleanupStack::PopAndDestroy(2); //expectData2, expectData
- CleanupStack::PopAndDestroy(9, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCSC-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::SetConfig with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::SetConfig and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::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;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the first context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
- TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(contextConfig, contextId);
- expExpect.SerialiseL(expectData);
-
- TRequestStatus requestStatus;
-
- TMockLtsyData1<TInfoName > contexName(contextId);
- contexName.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
-
- packetContext.SetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
- AssertMockLtsyStatusL();
-
-
- CleanupStack::PopAndDestroy(2); //packetContext packetService,
- CleanupStack::PopAndDestroy(3, this); // data, expectData, this
-
- }
-
-
-#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGCI-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConnectionInfo
-@SYMTestPriority High
-@SYMTestActions Invokes requests to RPacketContext::GetConnectionInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetConnectionInfo0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- TRequestStatus requestStatus;
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
- RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
-
- //-------------------------------------------------------------------------
- // TEST A1: Successful completion of RPacketContext::GetConnectionInfo
- // request.
- //-------------------------------------------------------------------------
-
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
-
- //Get connection info
- packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1.ExtensionId());
- ASSERT_EQUALS((TUint32)0, reqConnectionInfoV1.iValid);
-
- //-------------------------------------------------------------------------
- // TEST A2: Successful completion of RPacketContext::GetConnectionInfo
- // request where RPacketContext::TConnectionInfoV1 parameter contains
- // valid data.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
- respConnectionInfoV1.iHSDPACategory = 5;
- respConnectionInfoV1.iValid |= RPacketContext::KHSUPACategory;
- respConnectionInfoV1.iHSUPACategory = 6;
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData(contextId, respConnectionInfoV1);
- ltsyData.SerialiseL(data);
-
- // Change connection information
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //Get connection info
- packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
-
- CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGCI-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for canceling RPacketContext::GetConnectionInfo
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetConnectionInfo cancel request
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetConnectionInfo0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- TRequestStatus requestStatus;
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
- RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
-
- //-------------------------------------------------------------------------
- // TEST A1: Cancel RPacketContext::GetConnectionInfo request
- // successfully.
- //-------------------------------------------------------------------------
-
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
-
- //Get connection info
- packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);
-
- //Cancel connection info request
- packetContext.CancelAsyncRequest(EPacketContextGetConnectionInfo);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- //requestStatus should be KErrNone if CTSY completed GetConnectionInfo()
- //request before cancel request arrived. requestStatus should be KErrCancel
- //if CTSY received cancel request before before GetConnectionInfo() request
- //was completed.
- if ( !( requestStatus.Int() == KErrNone ||
- requestStatus.Int() == KErrCancel ) )
- {
- //Wrong error value. Check fails here.
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- }
-
- CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCGCI-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetConnectionInfo
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::GetConnectionInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestGetConnectionInfo0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- TRequestStatus requestStatus1;
- TRequestStatus requestStatus2;
-
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_1;
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_2;
- RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
-
- //-------------------------------------------------------------------------
- // TEST A1: Successful completion of RPacketContext::GetConnectionInfo
- // request.
- //-------------------------------------------------------------------------
-
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_1(reqConnectionInfoV1_1);
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_2(reqConnectionInfoV1_2);
-
- //Get connection info
- packetContext.GetConnectionInfo(requestStatus1, pckgReqConnectionInfoV1_1);
- packetContext.GetConnectionInfo(requestStatus2, pckgReqConnectionInfoV1_2);
-
- User::WaitForRequest(requestStatus1);
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
-
- //Check results
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_1.ExtensionId());
- ASSERT_EQUALS((TUint32)0, reqConnectionInfoV1_1.iValid);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_2.ExtensionId());
- ASSERT_EQUALS((TUint32)0, reqConnectionInfoV1_2.iValid);
-
- //-------------------------------------------------------------------------
- // TEST A2: Successful completion of RPacketContext::GetConnectionInfo
- // request where RPacketContext::TConnectionInfoV1 parameter contains
- // valid data.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
- respConnectionInfoV1.iHSDPACategory = 5;
- respConnectionInfoV1.iValid |= RPacketContext::KHSUPACategory;
- respConnectionInfoV1.iHSUPACategory = 6;
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData(contextId, respConnectionInfoV1);
- ltsyData.SerialiseL(data);
-
- // Change connection information
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //Get connection info
- packetContext.GetConnectionInfo(requestStatus1, pckgReqConnectionInfoV1_1);
- packetContext.GetConnectionInfo(requestStatus2, pckgReqConnectionInfoV1_2);
-
- User::WaitForRequest(requestStatus1);
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
-
- //Check results
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
- ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_1.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_1.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_1.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_1.iHSUPACategory);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_2.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_2.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_2.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_2.iHSUPACategory);
-
- CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCIC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConnectionInfoChange
-@SYMTestPriority High
-@SYMTestActions Invokes requests to RPacketContext::NotifyConnectionInfoChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0001L()
- {
- INFO_PRINTF1(_L("Testing notification of change in TConnectionInfoV1.iValid .."));
- TestNotifyConnectionInfoChange0001_workerL(ETrue,EFalse,EFalse);
- INFO_PRINTF1(_L("Testing notification of change in TConnectionInfoV1.iHSDPACategory .."));
- TestNotifyConnectionInfoChange0001_workerL(EFalse,ETrue,EFalse);
- INFO_PRINTF1(_L("Testing notification of change in TConnectionInfoV1.iHSUPACategory .."));
- TestNotifyConnectionInfoChange0001_workerL(EFalse,EFalse,ETrue);
- INFO_PRINTF1(_L("Testing that no change leads to no notification .."));
- TestNotifyConnectionInfoChange0001_workerL(ETrue,ETrue,ETrue,ETrue);
- INFO_PRINTF1(_L(" All ok!"));
- }
-
-
-void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0001_workerL(TBool aChangeValid,TBool aChangeHSDPACategory,TBool aChangeHSUPACategory,TBool aResendFirst)
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- TRequestStatus requestStatus;
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
- RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
-
- //-------------------------------------------------------------------------
- // TEST A1: Successful completion of
- // RPacketContext::NotifyConnectionInfoChange request.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
-
- //Make NotifyConnectionInfoChange request
- packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
-
- //Send response via MockLTSY
- respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
- respConnectionInfoV1.iHSDPACategory = 1;
- respConnectionInfoV1.iHSUPACategory = 0;
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData1(contextId, respConnectionInfoV1);
- ltsyData1.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //NotifyConnectionInfoChange request is completed to test client
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
-
-
- // special case to ensure no notification occurs when same data is received twice
- if(aResendFirst)
- {
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- }
-
- //-------------------------------------------------------------------------
- // TEST A2: Successful completion of
- // RPacketContext::NotifyConnectionInfoChange request where
- // RPacketContext::TConnectionInfoV1 parameter data changes.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //Make NotifyConnectionInfoChange request
- packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
-
- //Send response via MockLTSY
- respConnectionInfoV1.iValid = aChangeValid ? (RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory) : RPacketContext::KHSDPACategory ;
- respConnectionInfoV1.iHSDPACategory = aChangeHSDPACategory ? 5 : 1;
- respConnectionInfoV1.iHSUPACategory = aChangeHSUPACategory ? 6 : 0;
-
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData2(contextId, respConnectionInfoV1);
- data.Close();
- ltsyData2.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //NotifyConnectionInfoChange request is completed to test client
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
-
- CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCIC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancel RPacketContext::NotifyConnectionInfoChange request
-@SYMTestPriority High
-@SYMTestActions Invokes cancel RPacketContext::NotifyConnectionInfoChange request
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- TRequestStatus requestStatus;
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
- RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
-
- //-------------------------------------------------------------------------
- // TEST A1: RPacketContext::NotifyConnectionInfoChange request can be
- // cancelled successfully.
- //-------------------------------------------------------------------------
-
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
-
- //Make NotifyConnectionInfoChange request
- packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
-
- User::After( 1000 );
-
- //Cancel NotifyConnectionInfoChange request
- packetContext.CancelAsyncRequest(EPacketContextNotifyConnectionInfoChange);
-
- //NotifyConnectionInfoChange request is completed to test client
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST A2: RPacketContext::NotifyConnectionInfoChange request can be
- // made again after cancelled.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //Send response via MockLTSY. Nothing should happen because
- //NotifyConnectionInfoChange request has been cancelled.
- respConnectionInfoV1.iHSDPACategory = 2;
- respConnectionInfoV1.iHSUPACategory = 3;
- respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory;
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData(contextId, respConnectionInfoV1);
- ltsyData.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- respConnectionInfoV1.iHSDPACategory = 3;
- respConnectionInfoV1.iHSUPACategory = 4;
- respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory;
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyDat2(contextId, respConnectionInfoV1);
- ltsyData.SerialiseL(data);
-
- //Make NotifyConnectionInfoChange request
- packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
-
- //Send response again via MockLTSY
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //NotifyConnectionInfoChange request is completed to test client
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
-
- CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCNCIC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyConnectionInfoChange
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyConnectionInfoChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //Open new context
- RPacketService packetService1;
- OpenPacketServiceL(packetService1);
- CleanupClosePushL(packetService1);
-
- TInfoName contextId;
- RPacketContext packetContext1;
- packetContext1.OpenNewContext(packetService1, contextId);
- CleanupClosePushL(packetContext1);
-
- // Open second client and existing context
- 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 packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- RPacketContext packetContext2;
- ret = packetContext2.OpenExistingContext(packetService2, contextId);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- //Open third client and new context
- RTelServer telServer3;
- ret = telServer3.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer3);
-
- RMobilePhone phone3;
- ret = phone3.Open(telServer3,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone3);
-
- RPacketService packetService3;
- ret = packetService3.Open(phone3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService3);
-
- TInfoName contextId2;
- RPacketContext packetContext3;
- packetContext3.OpenNewContext(packetService3, contextId2);
- CleanupClosePushL(packetContext3);
-
- TRequestStatus mockLtsyStatus;
- TRequestStatus requestStatus1;
- TRequestStatus requestStatus2;
- TRequestStatus requestStatus3;
- RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_1;
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_1(reqConnectionInfoV1_1);
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_2;
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_2(reqConnectionInfoV1_2);
- RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_3;
- TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_3(reqConnectionInfoV1_3);
-
- //-------------------------------------------------------------------------
- // TEST A1: Successful completion of
- // RPacketContext::NotifyConnectionInfoChange request for multible clients.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //Make NotifyConnectionInfoChange requests
- packetContext1.NotifyConnectionInfoChange(requestStatus1, pckgReqConnectionInfoV1_1);
- packetContext2.NotifyConnectionInfoChange(requestStatus2, pckgReqConnectionInfoV1_2);
- packetContext3.NotifyConnectionInfoChange(requestStatus3, pckgReqConnectionInfoV1_3);
-
- //Send response via MockLTSY to first packet context
- respConnectionInfoV1.iHSDPACategory = 2;
- respConnectionInfoV1.iHSUPACategory = 3;
- respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory;
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData1(contextId, respConnectionInfoV1);
- ltsyData1.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //NotifyConnectionInfoChange request is completed to the test clients 1 & 2
- User::WaitForRequest(requestStatus1);
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_1.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_1.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_1.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_1.iHSUPACategory);
-
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_2.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_2.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_2.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_2.iHSUPACategory);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //Call notification again
- packetContext1.NotifyConnectionInfoChange(requestStatus1, pckgReqConnectionInfoV1_1);
- packetContext2.NotifyConnectionInfoChange(requestStatus2, pckgReqConnectionInfoV1_2);
-
- //Send response via MockLTSY to second packet context
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData2(contextId2, respConnectionInfoV1);
- data.Close();
- ltsyData2.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //NotifyConnectionInfoChange request is completed to the test client 3
- User::WaitForRequest(requestStatus3);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus3.Int());
- ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_3.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_3.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_3.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_3.iHSUPACategory);
-
- //Call notification again
- packetContext3.NotifyConnectionInfoChange(requestStatus3, pckgReqConnectionInfoV1_3);
-
- //-------------------------------------------------------------------------
- // TEST A2: Successful completion of
- // RPacketContext::NotifyConnectionInfoChange request for multiple clients.
- // RPacketContext::TConnectionInfoV1 parameter data changes.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //Send response via MockLTSY to first packet context
- respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
- respConnectionInfoV1.iHSDPACategory = 5;
- respConnectionInfoV1.iValid |= RPacketContext::KHSUPACategory;
- respConnectionInfoV1.iHSUPACategory = 6;
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData3(contextId, respConnectionInfoV1);
- data.Close();
- ltsyData3.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //NotifyConnectionInfoChange request is completed to the test clients 1 & 2
- User::WaitForRequest(requestStatus1);
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
- ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_1.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_1.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_1.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_1.iHSUPACategory);
-
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_2.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_2.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_2.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_2.iHSUPACategory);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //Call notification again
- packetContext1.NotifyConnectionInfoChange(requestStatus1, pckgReqConnectionInfoV1_1);
- packetContext2.NotifyConnectionInfoChange(requestStatus2, pckgReqConnectionInfoV1_2);
-
- //Send response via MockLTSY to second packet context
- TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData4(contextId2, respConnectionInfoV1);
- data.Close();
- ltsyData4.SerialiseL(data);
-
- iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //NotifyConnectionInfoChange request is completed to the test client 3
- User::WaitForRequest(requestStatus3);
- AssertMockLtsyStatusL();
-
- ASSERT_EQUALS(KErrNone, requestStatus3.Int());
- ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_3.ExtensionId());
- ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_3.iValid);
- ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_3.iHSDPACategory);
- ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_3.iHSUPACategory);
-
- CleanupStack::PopAndDestroy(12, this); //packetContext3, packetService3, phone3, telServer3,
- //packetContext2, packetService2, phone2, telServer2,
- //packetContext1, packetService1, data, this
- }
-
-#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0001
-@SYMDEF DEF125564
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenNewSecondaryContext0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::SetConfig when result is not cached.
- //-------------------------------------------------------------------------
- TInfoName contextIdSecondary;
- RPacketContext packetContextSecondary;
- TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContextSecondary);
-
- //-------------------------------------------------------------------------
- // Try to Activate SecondaryContext in order to
- // call CMmPacketQoSGsmWcdmaExt::ProfileAsked()
- //-------------------------------------------------------------------------
-
- // initialisation of the secondary context
- TInt status = InitContextL(packetContextSecondary, contextIdSecondary, contextId);
- ASSERT_EQUALS(KErrNone, status);
- AssertMockLtsyStatusL();
-
- // create new QoS
- RBuf profileName;
- CleanupClosePushL(profileName);
- RPacketQoS packetQoS;
- packetQoS.OpenNewQoS(packetContextSecondary, profileName);
- CleanupClosePushL(packetQoS);
-
-
- // try to activate SecondaryContext in order to call CMmPacketQoSGsmWcdmaExt::ProfileAsked()
- TRequestStatus requestStatus;
- packetContextSecondary.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
- AssertMockLtsyStatusL();
-
-
- //-------------------------------------------------------------------------
- // Try to open too many contexts
- //-------------------------------------------------------------------------
- RPacketContext newPacketContext[KMmMaxNumberOfContexts - 2];
- for (TInt i = 0; i < KMmMaxNumberOfContexts - 2; i++) // -2 -- because there are already 2 contexts
- {
- TInfoName newContextIdSecondary;
- err = newPacketContext[i].OpenNewSecondaryContext(packetService, contextId, newContextIdSecondary);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(newPacketContext[i]);
- }
-
- RPacketContext OneMorePacketContext;
- TInfoName contextIdSecondary1;
- err = OneMorePacketContext.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary1);
- TInt expectedError = ( KErrOverflow & 0x0000FFFF ) |
- ( KErrUmtsMaxNumOfContextExceededByPhone << 16 );
- ASSERT_EQUALS(expectedError, err);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy( (KMmMaxNumberOfContexts - 2) ); // set of contexts...
- CleanupStack::PopAndDestroy(8, this); // this...
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0001b
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for Activation of RPacketContext::OpenNewSecondaryContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::Activate after RPacketContext::RemovePacketFilter for SecondaryContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenNewSecondaryContext0001bL()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new primary packet context
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // initialisation of the context
- TInt status = InitContextL(packetContext, contextId);
- ASSERT_EQUALS(KErrNone, status);
-
- // data for SetContext
- RPacketContext::TContextConfigGPRS setConfig;
- _LIT(KPointName, "Some Name");
- setConfig.iAccessPointName.Copy(KPointName);
- TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(setConfig);
-
- TRequestStatus requestStatus;
-
- TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(setConfig, contextId);
- expExpect.SerialiseL(expectData);
-
- TMockLtsyData1<TInfoName > contextName(contextId);
- contextName.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext.SetConfig(requestStatus, pckgConfig);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- TMockLtsyData1 <TInfoName> expData(contextId);
- expData.SerialiseL(expectData);
-
- // Activate this primary context.
- RPacketContext::TContextConfigGPRS contextConfig;
- TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData1(contextId, contextConfig);
- ltsyData1.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextActivate, expectData);
- iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
-
- packetContext.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // Open new secondary context
- TInfoName contextIdSecondary;
- RPacketContext packetContextSecondary;
- TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContextSecondary);
-
- // initialisation of the secondary context
- status = InitContextL(packetContextSecondary, contextIdSecondary, contextId);
- ASSERT_EQUALS(KErrNone, status);
- AssertMockLtsyStatusL();
-
- // Add filter
- RPacketContext::TPacketFilterV2 filter;
- filter.iId = 1;
- RPacketContext::TPacketFilterV2Pckg filterPckg (filter);
- err = AddContextPacketFilterL(packetContextSecondary, contextIdSecondary,filter);// ETrue means that this request doesn't reache LTSY
- ASSERT_EQUALS(KErrNone, err);
- AssertMockLtsyStatusL();
-
- // set context Active
- SetContextActiveL(contextIdSecondary);
- AssertMockLtsyStatusL();
-
- // Open and set QoS profile
- RPacketQoS packetQoSSecondary;
- RPacketQoS::TQoSGPRSRequested secondaryRequested;
- err = CreateQoSAndSetProfileParamLC(packetQoSSecondary, packetContextSecondary,
- contextIdSecondary, secondaryRequested, contextId);// contextId -- is name of "primary" context
- ASSERT_EQUALS(KErrNone, err);
- AssertMockLtsyStatusL();
-
- // Remove the already added packet filter
- TInt filterId = 1;
- packetContextSecondary.RemovePacketFilter(requestStatus, filterId);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- // Activate the secondary context
-
- packetContextSecondary.Activate(requestStatus);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(7, this);
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenNewSecondaryContext0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- RPacketContext packetContextSecondary;
- TInfoName contextIdSecondary;
-
- // -----------------------------------------------------------------------
- // Test with too long ContextId
- // ----------------------------------------------------------------------
- TBuf<KMaxInfoName + 1> longContextId;
- _LIT(KLongId, "qwertyuiopasdfghj");
- longContextId.Copy(KLongId);
- TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, longContextId, contextIdSecondary);
- ASSERT_EQUALS(KErrArgument, err);
- //We need to close the sub sessiun before we open a new context
- packetContextSecondary.Close();
-
-
-
- // -----------------------------------------------------------------------
- // Previous OpenNewSecondaryContext failed with KErrArgument
- // so try OpenNewSecondaryContext with correct params
- // ----------------------------------------------------------------------
- err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
- ASSERT_EQUALS(KErrNone, err);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3, this); // this, ...
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0003b
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext with wrong ContextId
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenNewSecondaryContext0003bL()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
-
- // -----------------------------------------------------------------------
- // Test with wrong ContextId
- // ----------------------------------------------------------------------
- RPacketContext packetContextSecondary;
- TInfoName wrongContextId;
- _LIT(KSameId, "WrongId");
- wrongContextId.Copy(KSameId);
-
- TInfoName contextIdSecondary;
- TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, wrongContextId, contextIdSecondary);
- CleanupClosePushL(packetContextSecondary);
- ASSERT_EQUALS(KErrArgument, err);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4, this); // this, ...
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0003c
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext with with empty PacketService
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenNewSecondaryContext0003cL()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- // -----------------------------------------------------------------------
- // Test with empty PacketService
- // -----------------------------------------------------------------------
- RPacketService emptyPacketService;
- RPacketContext packetContextSecondary;
- TInfoName contextIdSecondary;
- // there should be EEtelPanicNullHandle panic
- TInt err = packetContextSecondary.OpenNewSecondaryContext(emptyPacketService, contextId, contextIdSecondary);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3, this); // this, ...
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenNewContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenNewContext0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::SetConfig when result is not cached.
- //------------------------------------------------------------------------
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewContext with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenNewContext with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenNewContext0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- //-------------------------------------------------------------------------
- // Try to open too many contexts
- //-------------------------------------------------------------------------
- TInt err = 0;
- for (TInt i = 0; i < KMmMaxNumberOfContexts; i++)
- {
- RPacketContext newPacketContext;
- TInfoName contextId;
- err = newPacketContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(newPacketContext);
- }
-
- RPacketContext OneMorePacketContext;
- TInfoName contextId1;
- err = OneMorePacketContext.OpenNewContext(packetService, contextId1);
- TInt expectedError = ( KErrOverflow & 0x0000FFFF ) |
- ( KErrUmtsMaxNumOfContextExceededByPhone << 16 );
- ASSERT_EQUALS(expectedError, err);
-
- //-------------------------------------------------------------------------
- // Use non-created packetService
- //-------------------------------------------------------------------------
- RPacketService packetService2;
- TInfoName contextId2;
- RPacketContext packetContext2;
-
- // there should be expected EEtelPanicNullHandle panic
- packetContext2.OpenNewContext(packetService2, contextId2);
-
- CleanupStack::PopAndDestroy (KErrUmtsMaxNumOfContextExceededByPhone);
- CleanupStack::PopAndDestroy(2, this); // packetService1, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONEC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenExistingContext
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenExistingContext
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenExistingContext0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextId);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::SetConfig when result is not cached.
- //-------------------------------------------------------------------------
- RPacketContext packetContext2;
- TInt err = packetContext2.OpenExistingContext(packetService, contextId);
- CleanupClosePushL(packetContext2);
- ASSERT_EQUALS(KErrNone, err);
-
- // -----------------------------------------------------------------------
- // Test contextId == KStringExternal and iDialUpContext created
- // ----------------------------------------------------------------------
- TRequestStatus mockLtsyStatus;
- // Data for CompleteL
- TInfoName sndName;
- TInt sndResult = KErrNotFound;
- TMockLtsyData2 <TInfoName, TInt > ltsyData(sndName, sndResult);
- ltsyData.SerialiseL(data);
-
- // --- create iDialUpContext at first -----------
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- // Issue the Complete...
- iMockLTSY.CompleteL(EPacketNotifyContextAdded, KErrNone, data);
- // wait for completion
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- //------------------------------------------
-
- RPacketContext packetContext3;
- TInfoName longContextId3;
- _LIT( KStringExternal, "External" );
- longContextId3.Copy(KStringExternal);
- err = packetContext3.OpenExistingContext(packetService, longContextId3);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext3);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(6, this); //packetContext3, packetContext2, packetContext, packetService, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTC-PCONEC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenExistingContext with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::OpenExistingContext with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketContextFU::TestOpenExistingContext0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextId;
- //-------------------------------------------------------------------------
- // Test with non-existing context
- //-------------------------------------------------------------------------
- _LIT(KSomeContext, "SomeContext");
- contextId.Copy(KSomeContext);
- RPacketContext packetContext1;
- TInt err = packetContext1.OpenExistingContext(packetService, contextId);
- ASSERT_EQUALS(KErrNotFound, err);
- AssertMockLtsyStatusL();
-
- // -----------------------------------------------------------------------
- // Test with too long ContextId
- // ----------------------------------------------------------------------
- RPacketContext packetContext2;
- TBuf<KMaxInfoName + 1> longContextId;
- _LIT(KLongId, "qwertyuiopasdfghj");
- longContextId.Copy(KLongId);
- err = packetContext2.OpenExistingContext(packetService, longContextId);
- ASSERT_EQUALS(KErrOverflow, err);
-
- // -----------------------------------------------------------------------
- // Test contextId == KStringExternal, but when iDialUpContext is NOT created
- // ----------------------------------------------------------------------
- RPacketContext packetContext3;
- TInfoName longContextId3;
- _LIT( KStringExternal, "External" );
- longContextId3.Copy(KStringExternal);
- err = packetContext3.OpenExistingContext(packetService, longContextId3);
- ASSERT_EQUALS(KErrNotFound, err);
-
- //-------------------------------------------------------------------------
- // Test with epmty contextId
- //-------------------------------------------------------------------------
- RPacketContext packetContext4;
- contextId.Zero();
- // there should be expected KErrBadName panic
- err = packetContext4.OpenExistingContext(packetService, contextId);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(1, this); // this
- }
-
+// Copyright (c) 2007-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:
+// The TEFUnit test suite for PacketContext in the Common TSY.
+//
+//
+
+/**
+ @file
+*/
+
+#include "cctsypacketcontextfu.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 "CMmCommonStaticUtility.h"
+#include <ctsy/serviceapi/mmtsy_defaults.h>
+
+
+
+CTestSuite* CCTsyPacketContextFU::CreateSuiteL(const TDesC& aName)
+ {
+ SUB_SUITE;
+
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyStatusChange0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDeactivate0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0003L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDnsInfo0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0003L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestLoanCommPort0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0003L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetProfileName0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0003L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestRecoverCommPort0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0003L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetLastErrorCause0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestInitialiseContext0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0003L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionSpeed0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestModifyActiveContext0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0001bL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0001cL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConfigChanged0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0003L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyDataTransferred0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestEnumeratePacketFilters0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetDataVolumeTransferred0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionSpeedChange0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0002L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestDelete0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0001bL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestActivate0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0001L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0004L);
+// ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConfig0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0001L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0002L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0003L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0004L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetStatus0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestSetConfig0005L);
+#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionInfo0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionInfo0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestGetConnectionInfo0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionInfoChange0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionInfoChange0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestNotifyConnectionInfoChange0004L);
+#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0001bL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0003bL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewSecondaryContext0003cL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewContext0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenNewContext0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenExistingContext0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketContextFU, TestOpenExistingContext0003L);
+
+ END_SUITE;
+ }
+
+
+//
+// Actual test cases
+//
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNSC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::NotifyStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyStatusChange0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ 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 ComleteL
+ TContextMisc completeMisc;
+ completeMisc.iStatus = RPacketContext::EStatusInactive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextId, completeMisc);
+ ltsyData.SerialiseL(data);
+ //send request
+ packetContext.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 when rejection cause is used
+ //-------------------------------------------------------------------------
+ //data for ComleteL
+ _LIT(KSomeCause, "1");
+ completeMisc.iRejectionCause.Copy(KSomeCause);
+ completeMisc.iStatus = RPacketContext::EStatusActive;//EStatusInactive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData2(contextId, completeMisc);
+ data.Close();
+ ltsyData2.SerialiseL(data);
+ //send request
+ packetContext.NotifyStatusChange(requestStatus, contextStatus);
+
+ //send completion
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrGeneral, 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;//EStatusActive;
+ 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-PKTC-PCNSC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::NotifyStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::NotifyStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ 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
+ packetContext.NotifyStatusChange(requestStatus, contextStatus);
+ // send canceling...
+ packetContext.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-PKTC-PCNSC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyStatusChange0004L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ 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 = RPacketContext::EStatusDeleted;
+
+ // initialize data for second context's NotifyStatusChange
+ TRequestStatus requestStatus2;
+ RPacketContext::TContextStatus contextStatus2 = RPacketContext::EStatusDeleted;
+
+ //send first request
+ packetContext.NotifyStatusChange(requestStatus, contextStatus);
+
+ //send second request
+ packetContext2.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);
+ // check that contextStatus2 ((of the second context)) isn't changed
+ ASSERT_EQUALS(RPacketContext::EStatusDeleted, contextStatus2);
+
+ 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);
+ // check that contextStatus (of the first context) isn't changed
+ ASSERT_EQUALS(completeMisc.iStatus, contextStatus);
+
+ AssertMockLtsyStatusL();
+
+ // Done !
+ CleanupStack::PopAndDestroy(4);// packetContext2, packetContext, packetService2, packetService
+ CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
+
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCD-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Deactivate
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Deactivate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestDeactivate0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextDeactivate, data, KErrNotFound);
+
+ TRequestStatus requestStatus;
+ packetContext.Deactivate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotFound, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextDeactivate, data);
+ iMockLTSY.CompleteL(EPacketContextDeactivate, KErrGeneral, data);
+
+ packetContext.Deactivate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::Deactivate when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextDeactivate, data);
+ iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data);
+
+ packetContext.Deactivate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::Deactivate
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCD-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::Deactivate
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::Deactivate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestDeactivate0002L()
+ {
+
+// This test should test cancellation of Deactivate
+// If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::Deactivate
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TMockLtsyData1 <TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextDeactivate, data);
+ iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data, 10);
+
+ packetContext.Deactivate(requestStatus);
+ packetContext.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(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(2); // data, this
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCD-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Deactivate
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::Deactivate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestDeactivate0004L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::Deactivate
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ TMockLtsyData1 <TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+
+ // data for second context
+ TRequestStatus requestStatus2;
+ TMockLtsyData1 <TInfoName > ltsyData2(contextId2);
+ ltsyData2.SerialiseL(data2);
+
+ iMockLTSY.ExpectL(EPacketContextDeactivate, data);
+ iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data, 10);
+
+ iMockLTSY.ExpectL(EPacketContextDeactivate, data2);
+ iMockLTSY.CompleteL(EPacketContextDeactivate, KErrNone, data2, 10);
+
+ packetContext.Deactivate(requestStatus);
+ packetContext2.Deactivate(requestStatus2);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ CleanupStack::PopAndDestroy(4); // packetContext, packetService, packetContext2, packetService2
+ CleanupStack::PopAndDestroy(5, this); // phone2, telServer2, data, data2, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCD-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Deactivate with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Deactivate and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestDeactivate0005L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::Deactivate
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TMockLtsyData1 <TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextDeactivate, data);
+ packetContext.Deactivate(requestStatus);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGDI-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDnsInfo
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetDnsInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetDnsInfo0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //------------------------------------------------------------------------
+ // TEST D: RPacketContext::GetDnsInfo again, this time CTSY
+ // will get result from the cache.
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RPacketContext::TDnsInfoV2 dnsInfo;
+
+ // init dnsInfo with same data, in order to check that it will be changed
+ _LIT(Kdummy, "Something");
+ dnsInfo.iPrimaryDns.Copy(Kdummy);
+ dnsInfo.iSecondaryDns.Copy(Kdummy);
+ TPckg<RPacketContext::TDnsInfoV2> pckgDnsInfo(dnsInfo);
+
+ // call API itself
+ packetContext.GetDnsInfo(requestStatus, pckgDnsInfo);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ TBuf8<50> null50;
+ ASSERT_EQUALS(null50, dnsInfo.iPrimaryDns);
+ ASSERT_EQUALS(null50, dnsInfo.iSecondaryDns);
+
+ CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGDI-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDnsInfo with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetDnsInfo with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetDnsInfo0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::GetDnsInfo
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TInt wrongDnsInfo;
+ TPckg<TInt> pckgDnsInfo(wrongDnsInfo);
+
+ packetContext.GetDnsInfo(requestStatus, pckgDnsInfo);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCLCP-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::LoanCommPort
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::LoanCommPort
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestLoanCommPort0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // Test that this function isn't supported
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RCall::TCommPort dataPort;
+ packetContext.LoanCommPort(requestStatus, dataPort);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGPN-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetProfileName
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetProfileName
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetProfileName0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // check that no profile has been defined
+ //-------------------------------------------------------------------------
+ TName qosProfile;
+ TName null;
+ TInt status = packetContext.GetProfileName(qosProfile);
+ ASSERT_EQUALS(KErrNone, status);
+ // check that no profile has been defined
+ ASSERT_EQUALS(null, qosProfile);
+
+ //-------------------------------------------------------------------------
+ // Get Name of existing QoS
+ //-------------------------------------------------------------------------
+ // create New QoS
+ RPacketQoS packetQoS;
+ TName qosName;
+ packetQoS.OpenNewQoS(packetContext, qosName);
+ CleanupClosePushL(packetQoS);
+
+ status = packetContext.GetProfileName(qosProfile);
+ ASSERT_EQUALS(KErrNone, status);
+ ASSERT_EQUALS(qosName, qosProfile);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); //packetQoS, packetService, packetContext, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCRCP-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::RecoverCommPort
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::RecoverCommPort
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestRecoverCommPort0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // Test that this function isn't supported
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ packetContext.RecoverCommPort(requestStatus);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
+
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGLEC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetLastErrorCause
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetLastErrorCause
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetLastErrorCause0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+
+ //-------------------------------------------------------------------------
+ // Check that there is no error on begin
+ //-------------------------------------------------------------------------
+ TInt error;
+ TInt status = packetContext.GetLastErrorCause(error);
+ ASSERT_EQUALS(KErrNone, status);
+ ASSERT_EQUALS(KErrNone, error);
+
+
+ //-------------------------------------------------------------------------
+ // Emulate some error
+ //-------------------------------------------------------------------------
+
+ // -------Set context in to Activating state -------------------------------
+ TContextMisc completeMisc;
+ completeMisc.iStatus = RPacketContext::EStatusActivating;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData1(contextId, completeMisc);
+ 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 = packetContext.GetLastErrorCause(error);
+ ASSERT_EQUALS(KErrNone, status);
+ ASSERT_EQUALS(KErrGeneral, error);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCIC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::InitialiseContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::InitialiseContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestInitialiseContext0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ TInfoName hostCidName;
+ TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
+ ltsyExpect.SerialiseL(expectData);
+
+ // data for initialisation of the context
+ TRequestStatus requestStatus;
+ RPacketContext::TDataChannelV2 dataCh;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
+
+ iMockLTSY.ExpectL(EPacketContextInitialiseContext,expectData, KErrNotSupported);
+ //initialisation of the context
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
+ TMockLtsyData1< TInfoName > ltsyData(contextId);
+ data.Close();
+ ltsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextInitialiseContext, 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(EPacketContextInitialiseContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data);
+
+ //initialisation of the context
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ RPacketContext::TDataChannelV2 retDataCh = pckgInit();
+ ASSERT_FALSE(retDataCh.iChannelId.Compare(contextId));
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::InitialiseContext
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(5, this); // expectData, data, this, packetService, packetContext
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCIC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::InitialiseContext
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::InitialiseContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestInitialiseContext0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::InitialiseContext
+ //-------------------------------------------------------------------------
+ TInfoName hostCidName;
+ TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
+ ltsyExpect.SerialiseL(expectData);
+
+ // data for initialisation of the context
+ TRequestStatus requestStatus;
+ RPacketContext::TDataChannelV2 dataCh;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
+
+ TMockLtsyData1< TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data, 10);
+
+ //initialisation of the context
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+ //cancel reguest
+ packetContext.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-PKTC-PCIC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::InitialiseContext with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::InitialiseContext with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestInitialiseContext0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::InitialiseContext
+ //-------------------------------------------------------------------------
+
+ // data for initialisation of the context
+ TRequestStatus requestStatus;
+ RCall::TCommPort dataCh; // old version of parameter
+ TPckg<RCall::TCommPort> pckgInit(dataCh);
+
+ //initialisation of the context
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(3, this);
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCIC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::InitialiseContext
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::InitialiseContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestInitialiseContext0004L()
+ {
+
+ 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);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::InitialiseContext
+ //-------------------------------------------------------------------------
+
+ // 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.
+
+ // for the first request
+ TInfoName hostCidName;
+ TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
+ ltsyExpect.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+ RPacketContext::TDataChannelV2 dataCh;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
+ TMockLtsyData1< TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+
+ // for the second request
+ TMockLtsyData2< TInfoName, TInfoName > ltsyExpect2(contextId2, hostCidName);
+ ltsyExpect2.SerialiseL(expectData2);
+
+ TRequestStatus requestStatus2;
+ RPacketContext::TDataChannelV2 dataCh2;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit2(dataCh2);
+ TMockLtsyData1< TInfoName > ltsyData2(contextId2);
+ ltsyData2.SerialiseL(data2);
+
+ iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data);
+
+ iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData2);
+ iMockLTSY.CompleteL(EPacketContextInitialiseContext, KErrNone, data2);
+
+ //first request
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+
+ //second request
+ packetContext2.InitialiseContext(requestStatus2, pckgInit2);
+
+ // wait for the first answer
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ RPacketContext::TDataChannelV2 retDataChannel = pckgInit();
+ ASSERT_FALSE(retDataChannel.iChannelId.Compare(contextId));
+
+ // wait for the second answer
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ retDataChannel = pckgInit2();
+ ASSERT_FALSE(retDataChannel.iChannelId.Compare(contextId2));
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(8, this); //packetContext2, packetContext, packetService, expectData, expectData2, data, data2, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCIC-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::InitialiseContext with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::InitialiseContext and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestInitialiseContext0005L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::InitialiseContext
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RPacketContext::TDataChannelV2 dataCh;
+ TPckg<RPacketContext::TDataChannelV2> pckgInit(dataCh);
+
+ TInfoName hostCidName;
+ TMockLtsyData2< TInfoName, TInfoName > ltsyExpect(contextId, hostCidName);
+ ltsyExpect.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketContextInitialiseContext, expectData);
+
+ packetContext.InitialiseContext(requestStatus, pckgInit);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ // Done !
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); //packetService, packetContext, expectData, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGCS-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConnectionSpeed
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetConnectionSpeed
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetConnectionSpeed0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST D: RPacketContext::ModifyActiveContext again, this time CTSY
+ // will get result from the cache.
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TUint rate;
+ TUint null = 0;
+ packetContext.GetConnectionSpeed(requestStatus, rate);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(null, rate);
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // Now change the Connection Speed
+ // and check that GetConnectionSpeed return appropriate value
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ TInt connectionSpeed = 9600;
+ TMockLtsyData2< TInfoName, TInt > ltsyData(contextId, connectionSpeed);
+ ltsyData.SerialiseL(data);
+
+ // change the Connection Speed
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ // get changed Connection Speed
+ packetContext.GetConnectionSpeed(requestStatus, rate);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS((TUint)connectionSpeed, rate);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
+ }
+
+
+
+/**
+Cleanup CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>*
+*/
+void CCTsyPacketContextFU::CleanupArrayPtrFlat(TAny* aSelf)
+ {
+ if(aSelf)
+ {
+ CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* array (NULL);
+ array = static_cast<CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>*>(aSelf);
+ array->ResetAndDestroy();
+ delete array;
+ }
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::ModifyActiveContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::ModifyActiveContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestModifyActiveContext0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 expectDataSPP;
+ CleanupClosePushL(expectDataSPP);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt err = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+
+ //-------------------------------------------------------------------------
+ // TEST: call ModifyActiveContext when context wasn't active
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ packetContext.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+
+
+ // Set context in Active state
+ err = SetContextActiveL(contextId);
+ ASSERT_EQUALS(KErrNone, err);
+
+ //-------------------------------------------------------------------------
+ // TEST: call ModifyActiveContext when context is active, but with no QoS object created
+ //-------------------------------------------------------------------------
+ packetContext.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ // ------ create New QoS -------------------------------------------------
+ RPacketQoS packetQoS;
+ TName qosName;
+ packetQoS.OpenNewQoS(packetContext, qosName);
+ CleanupClosePushL(packetQoS);
+ //-------------------------------------------------------------------------
+ // TEST: call ModifyActiveContext when context is active, and QoS object is created, but
+ // with no ProfileParameters
+ //-------------------------------------------------------------------------
+ packetContext.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+
+ // ------ SetProfileParameters --------------------------------------------
+ RPacketQoS::TQoSGPRSRequested gprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> pckg(gprsRequested);
+
+ // prepare data for expectDataSPP ...
+ // ... context status
+ RPacketContext::TContextStatus contextStatus = RPacketContext::EStatusActive;
+ // ... get contextConfig
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg< RPacketContext::TContextConfigGPRS > contextConfigPckg( contextConfig );
+ packetContext.GetConfig(requestStatus, contextConfigPckg);
+ User::WaitForRequest(requestStatus);
+
+ // data for SetProfileParameters's ExpectL
+ TInfoName primaryContextName;
+ TContextParams contextParams;
+ contextParams.iContextName = contextId;
+ contextParams.iContextType = contextConfig.iNWIContext;
+ contextParams.iPdpType = contextConfig.iPdpType;
+ contextParams.iPrimaryContextName = primaryContextName;
+ contextParams.iContextStatus = contextStatus;
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
+ expExpect(contextParams, gprsRequested);
+ expExpect.SerialiseL(expectDataSPP);
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectDataSPP);
+ packetQoS.SetProfileParameters(requestStatus, pckg);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ // data for ExpectL
+ RPacketQoS::TQoSGPRSRequested* qosProfile97 = &gprsRequested;
+
+ TContextConfiguration expectConfig;
+ expectConfig.iContextName = contextId;
+ expectConfig.iQosParams97 = qosProfile97;
+ expectConfig.iQosParams99 = NULL;
+ expectConfig.iQosParamsR5 = NULL;
+ expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
+
+ CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* mediaAuthorizationArray(NULL);
+ TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
+ ltsyExpect(expectConfig, mediaAuthorizationArray);
+ ltsyExpect.SerialiseL(expectData);
+ //ExpectL
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData, KErrNotSupported);
+
+ packetContext.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ TBuf8<1> rejectionCode(1);
+ TMockLtsyData2 < TInfoName, TBuf8<1> > ltsyData2(contextId, rejectionCode);
+ ltsyData2.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrGeneral, data);
+ packetContext.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::ModifyActiveContext when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
+ packetContext.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST Successful completion request of
+ // RPacketContext::ModifyActiveContext with some filter added
+ //-------------------------------------------------------------------------
+ // Open new secondary context
+ TInfoName contextIdSecondary;
+ RPacketContext packetContextSecondary;
+ err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContextSecondary);
+
+ // setting environement (add media authorization to CTSY)
+ mediaAuthorizationArray = new(ELeave) CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>(1);
+ CleanupStack::PushL(TCleanupItem(CleanupArrayPtrFlat,mediaAuthorizationArray));
+
+ RPacketContext::CTFTMediaAuthorizationV3* media = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(media);
+ media->iAuthorizationToken = _L8("testtok");
+ RPacketContext::CTFTMediaAuthorizationV3::TFlowIdentifier fid;
+ fid.iIPFlowNumber = 2;
+ fid.iMediaComponentNumber = 3;
+ media->iFlowIds.Append(fid);
+ fid.iIPFlowNumber = 4;
+ fid.iMediaComponentNumber = 5;
+ media->iFlowIds.Append(fid);
+ mediaAuthorizationArray->AppendL(media);
+ CleanupStack::Pop(); //media
+
+ // update contextConfig
+ packetContext.GetConfig(requestStatus, contextConfigPckg);
+ User::WaitForRequest(requestStatus);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
+ expAddData(contextConfig, 0, contextIdSecondary, media);
+ data.Close();
+ expAddData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+
+ TMockLtsyData1<TInfoName > contexName(contextIdSecondary);
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContextSecondary.AddMediaAuthorizationL(requestStatus, *media);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ // set context Active
+ SetContextActiveL(contextIdSecondary);
+ AssertMockLtsyStatusL();
+
+ RPacketQoS packetQoSSecondary;
+ RPacketQoS::TQoSGPRSRequested secondaryRequested;
+ err = CreateQoSAndSetProfileParamLC(packetQoSSecondary, packetContextSecondary,
+ contextIdSecondary, secondaryRequested, contextId);// contextId -- is name of "primary" context
+ ASSERT_EQUALS(KErrNone, err);
+ AssertMockLtsyStatusL();
+
+ // Add filter
+ RPacketContext::TPacketFilterV2 filter;
+ filter.iId = 1;
+ RPacketContext::TPacketFilterV2Pckg filterPckg (filter);
+ err = AddContextPacketFilterL(packetContextSecondary, contextIdSecondary,filter, ETrue);// ETrue means that this request doesn't reache LTSY
+ ASSERT_EQUALS(KErrNone, err);
+ AssertMockLtsyStatusL();
+
+ // data for ExpectL
+ expectConfig.iContextName = contextIdSecondary;
+ expectConfig.iQosParams97 = &secondaryRequested;
+ expectConfig.iQosParams99 = NULL;
+ expectConfig.iQosParamsR5 = NULL;
+ expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
+
+ TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
+ ltsyExpect2(expectConfig, mediaAuthorizationArray);
+ expectData.Close();
+ ltsyExpect2.SerialiseL(expectData);
+
+ // data for CompleteL
+ TMockLtsyData2 < TInfoName, TBuf8<1> > ltsyData3(contextIdSecondary, rejectionCode);
+ data.Close();
+ ltsyData3.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
+ packetContextSecondary.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+
+ //-------------------------------------------------------------------------
+ // TEST Successful completion request of
+ // RPacketContext::ModifyActiveContext with some filter removed
+ //-------------------------------------------------------------------------
+ TInt filterId = 1;
+ packetContextSecondary.RemovePacketFilter(requestStatus, filterId);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
+ packetContextSecondary.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::ModifyActiveContext
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4); // packetQoSSecondary, mediaAuthorizationArray, packetContextSecondary, packetQoS
+ CleanupStack::PopAndDestroy(6, this); //packetContext, packetService, expectDataSPP, expectData, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::ModifyActiveContext
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::ModifyActiveContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestModifyActiveContext0002L()
+ {
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Set context in Active state
+ status = SetContextActiveL(contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //SetProfileParameters
+ RPacketQoS::TQoSGPRSRequested gprsRequested;
+ RPacketQoS packetQoS;
+ status = CreateQoSAndSetProfileParamLC(packetQoS, packetContext ,contextId, gprsRequested);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::ModifyActiveContext
+ //-------------------------------------------------------------------------
+ // data for ExpectL
+ RPacketQoS::TQoSGPRSRequested* qosProfile97 = &gprsRequested;
+
+ CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* expectArray = NULL;
+ TContextConfiguration expectConfig;
+ expectConfig.iContextName = contextId;
+ expectConfig.iQosParams97 = qosProfile97;
+ expectConfig.iQosParams99 = NULL;
+ expectConfig.iQosParamsR5 = NULL;
+ expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
+
+ TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
+ ltsyExpect(expectConfig, expectArray);
+ ltsyExpect.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+
+ // data for CompleteL
+ TBuf8<1> rejectionCode(1);
+ TMockLtsyData2 < TInfoName, TBuf8<1> > ltsyData2(contextId, rejectionCode);
+ ltsyData2.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
+ packetContext.ModifyActiveContext(requestStatus);
+
+ // cancel request
+ packetContext.CancelAsyncRequest(EPacketContextModifyActiveContext);
+ 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();//packetQoS
+ CleanupStack::PopAndDestroy(5, this); // packetService, packetContext, expectData, data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::ModifyActiveContext
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::ModifyActiveContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestModifyActiveContext0004L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 expectData2;
+ CleanupClosePushL(expectData2);
+
+ RBuf8 expectData3;
+ CleanupClosePushL(expectData3);
+
+ // 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);
+
+ // Open first context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ // Open third context
+ TInfoName contextId3;
+ RPacketContext packetContext3;
+ packetContext3.OpenNewContext(packetService, contextId3);
+ CleanupClosePushL(packetContext3);
+
+ // initialisation of the first context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Set first context in Active state
+ status = SetContextActiveL(contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //SetProfileParameters first context's
+ RPacketQoS::TQoSGPRSRequested gprsRequested;
+ RPacketQoS packetQoS;
+ status = CreateQoSAndSetProfileParamLC(packetQoS, packetContext,contextId, gprsRequested);
+ ASSERT_EQUALS(KErrNone, status);
+
+
+ // initialisation of the second context
+ status = InitContextL(packetContext2, contextId2);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Set second context in Active state
+ status = SetContextActiveL(contextId2);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //SetProfileParameters second context's
+ RPacketQoS::TQoSR99_R4Requested rel99Requested;
+ RPacketQoS packetQoS2;
+ status = CreateQoSAndSetProfileParamLC(packetQoS2, packetContext2, contextId2, rel99Requested);
+ ASSERT_EQUALS(KErrNone, status);
+
+
+ // initialisation of the third context
+ status = InitContextL(packetContext3, contextId3);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Set third context in Active state
+ status = SetContextActiveL(contextId3);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //SetProfileParameters third context's
+ RPacketQoS::TQoSR5Requested r5Requested;
+ RPacketQoS packetQoS3;
+ status = CreateQoSAndSetProfileParamLC(packetQoS3, packetContext3, contextId3, r5Requested);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::ModifyActiveContext
+ //-------------------------------------------------------------------------
+ TBuf8<1> rejectionCode(1);
+ // data for the first ExpectL
+ CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* expectArray = NULL;
+ TContextConfiguration expectConfig;
+ expectConfig.iContextName = contextId;
+ expectConfig.iQosParams97 = &gprsRequested;
+ expectConfig.iQosParams99 = NULL;
+ expectConfig.iQosParamsR5 = NULL;
+ expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
+
+ TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
+ ltsyExpect(expectConfig, expectArray);
+ ltsyExpect.SerialiseL(expectData);
+
+ // data for the second ExpectL
+ TContextConfiguration expectConfig2;
+ expectConfig2.iContextName = contextId2;
+ expectConfig2.iQosParams97 = NULL;
+ expectConfig2.iQosParams99 = &rel99Requested;
+ expectConfig2.iQosParamsR5 = NULL;
+ expectConfig2.iConfiguration = RPacketContext::EPdpTypeIPv4;
+
+ TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
+ ltsyExpect2(expectConfig2, expectArray);
+ ltsyExpect2.SerialiseL(expectData2);
+
+ // data for the third ExpectL
+ TContextConfiguration expectConfig3;
+ expectConfig3.iContextName = contextId3;
+ expectConfig3.iQosParams97 = NULL;
+ expectConfig3.iQosParams99 = NULL;
+ expectConfig3.iQosParamsR5 = &r5Requested;
+ expectConfig3.iConfiguration = RPacketContext::EPdpTypeIPv4;
+
+ TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
+ ltsyExpect3(expectConfig3, expectArray);
+ ltsyExpect3.SerialiseL(expectData3);
+
+
+ // prepare and send first request
+ TMockLtsyData2 < TInfoName, TBuf8<1> > dataForComplete(contextId, rejectionCode);
+ dataForComplete.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
+ TRequestStatus requestStatus;
+ packetContext.ModifyActiveContext(requestStatus);
+
+ // prepare and send first request
+ TMockLtsyData2 < TInfoName, TBuf8<1> > dataForComplete2(contextId2, rejectionCode);
+ data.Close();
+ dataForComplete2.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData2);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
+ TRequestStatus requestStatus2;
+ packetContext2.ModifyActiveContext(requestStatus2);
+
+ // prepare and send third request
+ TMockLtsyData2 < TInfoName, TBuf8<1> > dataForComplete3(contextId3, rejectionCode);
+ data.Close();
+ dataForComplete3.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData3);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data, 10);
+ TRequestStatus requestStatus3;
+ packetContext3.ModifyActiveContext(requestStatus3);
+
+ // wait for first answer
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // wait for second answer
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ // wait for third answer
+ User::WaitForRequest(requestStatus3);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetQoS2, packetQoS3,
+ CleanupStack::PopAndDestroy(11, this); //packetContext, packetContext2,packetContext3
+ //packetService, phone2,telServer2,
+ //expectData3, expectData2, expectData, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCMAC-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::ModifyActiveContext with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::ModifyActiveContext and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestModifyActiveContext0005L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Set context in Active state
+ status = SetContextActiveL(contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //SetProfileParameters
+ RPacketQoS::TQoSGPRSRequested gprsRequested;
+ RPacketQoS packetQoS;
+ status = CreateQoSAndSetProfileParamLC(packetQoS, packetContext, contextId, gprsRequested);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::ModifyActiveContext
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ // data for ExpectL
+ RPacketQoS::TQoSGPRSRequested* qosProfile97 = &gprsRequested;
+ CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* expectArray = NULL;
+ TContextConfiguration expectConfig;
+ expectConfig.iContextName = contextId;
+ expectConfig.iQosParams97 = qosProfile97;
+ expectConfig.iQosParams99 = NULL;
+ expectConfig.iQosParamsR5 = NULL;
+ expectConfig.iConfiguration = RPacketContext::EPdpTypeIPv4;
+
+ TMockLtsyData2 < TContextConfiguration, CArrayPtrFlat<RPacketContext::CTFTMediaAuthorizationV3>* >
+ ltsyExpect(expectConfig, expectArray);
+ ltsyExpect.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketContextModifyActiveContext, expectData);
+
+ packetContext.ModifyActiveContext(requestStatus);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(6, this); //packetQoS, packetService, packetContext, expectData, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::NotifyConfigChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConfigChanged0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::NotifyConfigChanged when result is not cached.
+ //-------------------------------------------------------------------------
+ // data for NotifyConfigChanged
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+
+ //data for ComleteL
+ RPacketContext::TContextConfigGPRS configComplete;
+ // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
+ // see CMmPacketContextGsmWcdma.cpp line 339)
+ _LIT(KPointName, "Some Name");
+ configComplete.iAccessPointName.Copy(KPointName);
+ _LIT(KPdpAdd, "Some Add");
+ configComplete.iPdpAddress.Copy(KPdpAdd);
+ configComplete.iPdpCompression = RPacketContext::KPdpDataCompression;
+ _LIT(KPrimaryDns, "Some PrimaryDns");
+ configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
+ _LIT(KSecondaryDns, "Some SecondaryDns");
+ configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(contextId, configComplete);
+ ltsyData.SerialiseL(data);
+
+ // send request
+ packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
+
+ // sent completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+
+ // wait for request
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(configComplete.iAccessPointName, contextConfig.iAccessPointName);
+ ASSERT_EQUALS(configComplete.iPdpAddress, contextConfig.iPdpAddress );
+ ASSERT_EQUALS(configComplete.iPdpCompression, contextConfig.iPdpCompression);
+ ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::NotifyConfigChanged
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ // sent completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ CleanupStack::PopAndDestroy(2); // packetService, packetContext
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0001b
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged
+@SYMTestPriority High
+@SYMTestActions Invokes CMmPacketServiceTsy::DialUpContext via RPacketContext::NotifyConfigChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConfigChanged0001bL()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+
+ //-------------------------------------------------------------------------
+ // call completition of RPacketContext::NotifyConfigChanged
+ // to call CMmPacketServiceTsy::DialUpContext
+ // with ContextID == KStringExternal
+ //-------------------------------------------------------------------------
+ //data for ComleteL
+ RPacketContext::TContextConfigGPRS configComplete;
+ TInfoName ContextID;
+ _LIT( KStringExternal, "External" );
+ ContextID.Copy(KStringExternal);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(ContextID, configComplete);
+ ltsyData.SerialiseL(data);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ // sent completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+
+ //-------------------------------------------------------------------------
+ // call completition of RPacketContext::NotifyConfigChanged
+ // to call CMmPacketServiceTsy::DialUpContext
+ // with ContextID == KStringExternal2
+ //-------------------------------------------------------------------------
+ //data for ComleteL
+ _LIT( KStringExternal2, "External2" );
+ ContextID.Copy(KStringExternal2);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData2(ContextID, configComplete);
+ data.Close();
+ ltsyData2.SerialiseL(data);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ // sent completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+
+ //-------------------------------------------------------------------------
+ // call completition of RPacketContext::NotifyConfigChanged
+ // to call CMmPacketServiceTsy::DialUpContext
+ // with (ContextID != KStringExternal2)&&(ContextID != KStringExternal)
+ //-------------------------------------------------------------------------
+ //data for ComleteL
+ _LIT( KSomeId, "SomeId" );
+ ContextID.Copy(KSomeId);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData3(ContextID, configComplete);
+ data.Close();
+ ltsyData3.SerialiseL(data);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ // sent completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+
+ CleanupStack::PopAndDestroy(2); // packetService, packetContext
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0001c
+@SYMComponent telephony_ctsy
+@SYMDEF DEF126915
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged using R99/R4 Context params
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::NotifyConfigChange. R99/R4 Context params returned
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConfigChanged0001cL()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::NotifyConfigChanged, using TContextConfigR99_R4 return
+ // params, when result is not cached.
+ //-------------------------------------------------------------------------
+ // data for NotifyConfigChanged
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+
+ //data for ComleteL
+ RPacketContext::TContextConfigR99_R4 configComplete;
+ // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
+ // see CMmPacketContextGsmWcdma.cpp line 339)
+ _LIT(KPointName, "Some Name");
+ configComplete.iAccessPointName.Copy(KPointName);
+ _LIT(KPdpAdd, "Some Add");
+ configComplete.iPdpAddress.Copy(KPdpAdd);
+ _LIT(KPrimaryDns, "Some PrimaryDns");
+ configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
+ _LIT(KSecondaryDns, "Some SecondaryDns");
+ configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigR99_R4 > ltsyData(contextId, configComplete);
+ ltsyData.SerialiseL(data);
+
+ // send request
+ packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
+
+ // sent completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+
+ // wait for request
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(configComplete.iAccessPointName, contextConfig.iAccessPointName);
+ ASSERT_EQUALS(configComplete.iPdpAddress, contextConfig.iPdpAddress );
+ ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(configComplete.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+ CleanupStack::PopAndDestroy(2); // packetService, packetContext
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::NotifyConfigChanged
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::NotifyConfigChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConfigChanged0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::NotifyConfigChanged
+ //-------------------------------------------------------------------------
+ // data for NotifyConfigChanged
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+
+ //data for ComleteL
+ RPacketContext::TContextConfigGPRS configComplete;
+ _LIT (KNewName, "Some new Name");
+ configComplete.iPdpAddress.Copy(KNewName);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(contextId, configComplete);
+ ltsyData.SerialiseL(data);
+
+ // send request
+ packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
+ //send cancellation
+ packetContext.CancelAsyncRequest(EPacketContextNotifyConfigChanged);
+
+ // sent completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+
+ // wait for request
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(2); // packetService, packetContext
+ CleanupStack::PopAndDestroy(2); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConfigChanged with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::NotifyConfigChanged with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConfigChanged0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::NotifyConfigChanged
+ //-------------------------------------------------------------------------
+ // data for NotifyConfigChanged
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigCDMA contextConfig;
+ TPckg<RPacketContext::TContextConfigCDMA> pckgConfig(contextConfig);
+
+ // send request
+ packetContext.NotifyConfigChanged(requestStatus, pckgConfig);
+
+ // wait for request
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(2); // packetService, packetContext
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyConfigChanged
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyConfigChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::NotifyConfigChanged
+ //-------------------------------------------------------------------------
+
+ // data for NotifyConfigChanged 1
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig1;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig1(contextConfig1);
+
+ //data for ComleteL 1
+ RPacketContext::TContextConfigGPRS configComplete1;
+ // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
+ // see CMmPacketContextGsmWcdma.cpp line 339)
+ _LIT(KPointName, "Some Name");
+ configComplete1.iAccessPointName.Copy(KPointName);
+ _LIT(KPdpAdd, "Some Add");
+ configComplete1.iPdpAddress.Copy(KPdpAdd);
+ configComplete1.iPdpCompression = RPacketContext::KPdpDataCompression;
+ _LIT(KPrimaryDns, "Some PrimaryDns");
+ configComplete1.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
+ _LIT(KSecondaryDns, "Some SecondaryDns");
+ configComplete1.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData(contextId, configComplete1);
+ ltsyData.SerialiseL(data);
+
+
+ // data for NotifyConfigChanged 2
+ TRequestStatus requestStatus2;
+ RPacketContext::TContextConfigR99_R4 contextConfig2;
+ TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
+
+ //data for ComleteL 2
+ RPacketContext::TContextConfigGPRS configComplete2;
+ // (just this data is copied in CMmPacketContextGsmWcdmaExt::CompleteActivatePhase2
+ // see CMmPacketContextGsmWcdma.cpp line 339)
+ _LIT(KPointName2, "Some Name2");
+ configComplete2.iAccessPointName.Copy(KPointName2);
+ _LIT(KPdpAdd2, "Some Add2");
+ configComplete2.iPdpAddress.Copy(KPdpAdd2);
+ configComplete2.iPdpCompression = RPacketContext::KPdpDataCompression;
+ _LIT(KPrimaryDns2, "Some PrimaryDns2");
+ configComplete2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns2);
+ _LIT(KSecondaryDns2, "Some SecondaryDns2");
+ configComplete2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns2);
+ TMockLtsyData2 < TInfoName, RPacketContext::TContextConfigGPRS > ltsyData2(contextId2, configComplete2);
+ ltsyData2.SerialiseL(data2);
+
+ // send first request
+ packetContext.NotifyConfigChanged(requestStatus, pckgConfig1);
+
+ // send second request
+ packetContext2.NotifyConfigChanged(requestStatus2, pckgConfig2);
+
+ // sent first completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data);
+
+ // sent second completion
+ iMockLTSY.CompleteL(EPacketContextNotifyConfigChanged, KErrNone, data2);
+
+ // wait for first answer
+ User::WaitForRequest(requestStatus);
+
+ // wait for second answer
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+
+ ASSERT_EQUALS(configComplete1.iAccessPointName, contextConfig1.iAccessPointName);
+ ASSERT_EQUALS(configComplete1.iPdpAddress, contextConfig1.iPdpAddress );
+ ASSERT_EQUALS(configComplete1.iPdpCompression, contextConfig1.iPdpCompression);
+ ASSERT_EQUALS(configComplete1.iProtocolConfigOption.iDnsAddresses.iPrimaryDns,
+ contextConfig1.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(configComplete1.iProtocolConfigOption.iDnsAddresses.iSecondaryDns,
+ contextConfig1.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+ ASSERT_EQUALS(configComplete2.iAccessPointName, contextConfig2.iAccessPointName);
+ ASSERT_EQUALS(configComplete2.iPdpAddress, contextConfig2.iPdpAddress);
+ ASSERT_EQUALS(configComplete2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns,
+ contextConfig2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(configComplete2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns,
+ contextConfig2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+ CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNDT-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyDataTransferred
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::NotifyDataTransferred
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyDataTransferred0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ //check that this requests is not supported by CTSY
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RPacketContext::TDataVolume volume;
+ TUint rcvdGranularity = 1;
+ TUint sentGranularity = 1;
+
+ packetContext.NotifyDataTransferred(requestStatus, volume, rcvdGranularity, sentGranularity);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::NotifyConfigChanged
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RPacketContext::TDataVolume dataVolume;
+ dataVolume. iBytesReceived = 111;
+ TMockLtsyData2 < TInfoName, RPacketContext::TDataVolume > ltsyData(contextId, dataVolume);
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyDataTransferred, KErrNone, data);
+
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); // packetService, packetContext, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCEPF-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::EnumeratePacketFilters
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::EnumeratePacketFilters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestEnumeratePacketFilters0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::EnumeratePacketFilters when result is not cached.
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TInt count = 11; // some nonzero value
+ packetContext.EnumeratePacketFilters(requestStatus, count);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(0, count);
+
+
+ //-------------------------------------------------------------------------
+ // Add filter and test again
+ //-------------------------------------------------------------------------
+ // Open new secondary context
+ TInfoName contextIdSecondary;
+ RPacketContext packetContextSecondary;
+ packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
+ CleanupClosePushL(packetContextSecondary);
+
+ RPacketQoS packetQoSSecondary;
+ RPacketQoS::TQoSGPRSRequested secondaryRequested;
+ TInt err = CreateQoSAndSetProfileParamLC(packetQoSSecondary, packetContextSecondary,
+ contextIdSecondary, secondaryRequested, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetQoSSecondary);
+
+ // add new filter
+ RPacketContext::TPacketFilterV2 filter;
+ filter.iId = 1;
+ RPacketContext::TPacketFilterV2Pckg filterPckg (filter);
+ err = AddContextPacketFilterL(packetContextSecondary, contextIdSecondary, filter);
+
+ ASSERT_EQUALS(KErrNone, err);
+
+ // send request
+ packetContextSecondary.EnumeratePacketFilters(requestStatus, count);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(1, count);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(7, this); // packetQoSSecondary, packetContextSecondary, packetService, packetContext,data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCEPF-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::EnumeratePacketFilters
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::EnumeratePacketFilters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestEnumeratePacketFilters0004L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ // 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::EnumeratePacketFilters
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ TInt count = 11; // some nonzero value
+ TRequestStatus requestStatus2;
+ TInt count2 = 22; // some nonzero value
+
+ // send first request
+ packetContext.EnumeratePacketFilters(requestStatus, count);
+ // send second request
+ packetContext2.EnumeratePacketFilters(requestStatus2, count2);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(0, count);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(0, count2);
+
+ CleanupStack::PopAndDestroy(7, this); // packetContext2, packetContext, packetService2, packetService, phone2, telServer2, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDataVolumeTransferred
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetDataVolumeTransferred
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetDataVolumeTransferred0001L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred,expectData, KErrNotSupported);
+
+ TRequestStatus requestStatus;
+ RPacketContext::TDataVolume volume;
+ packetContext.GetDataVolumeTransferred(requestStatus, volume);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ // data for CompleteL
+ RPacketContext::TDataVolume volumeCompleteL;
+ volumeCompleteL.iBytesReceived = 0x111;
+ volumeCompleteL.iBytesSent = 0x222;
+ TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData1(contextId, volumeCompleteL);
+ ltsyData1.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
+ iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrGeneral, data);
+
+ packetContext.GetDataVolumeTransferred(requestStatus, volume);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::GetDataVolumeTransferred when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
+ iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data);
+
+ packetContext.GetDataVolumeTransferred(requestStatus, volume);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
+ ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::GetDataVolumeTransferred
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST of RPacketContext::GetDataVolumeTransferred
+ // when ContextStatus == RPacketContext::EStatusDeleted in CMmPacketContextTsy
+ //-------------------------------------------------------------------------
+
+ // set Context status as RPacketContext::EStatusDeleted
+ TInt err = SetContextStatusL(contextId, RPacketContext::EStatusDeleted);
+ ASSERT_EQUALS(KErrNone, err);
+
+ // send request
+ packetContext.GetDataVolumeTransferred(requestStatus, volume);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
+ ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(5, this); // packetContext, packetService, expectData, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::GetDataVolumeTransferred
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::GetDataVolumeTransferred
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetDataVolumeTransferred0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::GetDataVolumeTransferred
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RPacketContext::TDataVolume volume;
+
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ // data for CompleteL
+ RPacketContext::TDataVolume volumeCompleteL;
+ volumeCompleteL.iBytesReceived = 0x111;
+ volumeCompleteL.iBytesSent = 0x222;
+ TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData1(contextId, volumeCompleteL);
+ ltsyData1.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
+
+ // send request
+ packetContext.GetDataVolumeTransferred(requestStatus, volume);
+
+ //sent cancelling
+ packetContext.CancelAsyncRequest(EPacketContextGetDataVolumeTransferred);
+
+ //send complete request
+ iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data, 10);
+
+ User::WaitForRequest(requestStatus);
+ // 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());
+ ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
+ ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(5, this); // packetContext, packetService,expectData, data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetDataVolumeTransferred
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::GetDataVolumeTransferred
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetDataVolumeTransferred0004L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::GetDataVolumeTransferred
+ //-------------------------------------------------------------------------
+
+ // data for first CompleteL
+ RPacketContext::TDataVolume volumeCompleteL;
+ volumeCompleteL.iBytesReceived = 0x111;
+ volumeCompleteL.iBytesSent = 0x222;
+ TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData1(contextId, volumeCompleteL);
+ ltsyData1.SerialiseL(data);
+
+ // data for second CompleteL
+ TMockLtsyData2 <TInfoName, RPacketContext::TDataVolume > ltsyData2(contextId2, volumeCompleteL);
+ ltsyData2.SerialiseL(data2);
+
+ // for the first request
+ TRequestStatus requestStatus;
+ RPacketContext::TDataVolume volume;
+
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ // for the second request
+ TRequestStatus requestStatus2;
+ RPacketContext::TDataVolume volume2;
+
+ TMockLtsyData1 <TInfoName> expData2(contextId2);
+ expData2.SerialiseL(expectData2);
+
+ iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
+ iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data);
+ iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData2);
+ iMockLTSY.CompleteL(EPacketContextGetDataVolumeTransferred, KErrNone, data2);
+
+ // send first request
+ packetContext.GetDataVolumeTransferred(requestStatus, volume);
+
+ // send second request
+ packetContext2.GetDataVolumeTransferred(requestStatus2, volume2);
+
+ // wait for first answer
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume.iBytesReceived);
+ ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume.iBytesSent);
+
+ // wait for second answer
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(volumeCompleteL.iBytesReceived, volume2.iBytesReceived);
+ ASSERT_EQUALS(volumeCompleteL.iBytesSent, volume2.iBytesSent);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); // expectData2, expectData
+ CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGDVT-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetDataVolumeTransferred with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetDataVolumeTransferred and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetDataVolumeTransferred0005L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::GetDataVolumeTransferred
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ RPacketContext::TDataVolume volume;
+
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketContextGetDataVolumeTransferred, expectData);
+
+ packetContext.GetDataVolumeTransferred(requestStatus, volume);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); //packetContext, packetService, expectData, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCSC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConnectionSpeedChange
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::NotifyConnectionSpeedChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConnectionSpeedChange0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::NotifyConnectionSpeedChange when result is not cached.
+ //-------------------------------------------------------------------------
+ // data for CompleteL
+ TInt completeRate = 9600;
+ TMockLtsyData2 <TInfoName, TInt > ltsyData(contextId, completeRate);
+ ltsyData.SerialiseL(data);
+
+ TRequestStatus requestStatus;
+ TUint rate;
+ // send request
+ packetContext.NotifyConnectionSpeedChange(requestStatus, rate);
+
+ // send completion
+ iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(completeRate, (TInt)rate);
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::NotifyConnectionSpeedChange
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ // send completion
+ iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); //packetContext, packetService, data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCSC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::NotifyConnectionSpeedChange
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::NotifyConnectionSpeedChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConnectionSpeedChange0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::NotifyConnectionSpeedChange
+ //-------------------------------------------------------------------------
+
+ // data for CompleteL
+ TInt completeRate = 9600;
+ TMockLtsyData2 <TInfoName, TInt > ltsyData(contextId, completeRate);
+ ltsyData.SerialiseL(data);
+
+ TRequestStatus requestStatus;
+ TUint rate;
+ // send request
+ packetContext.NotifyConnectionSpeedChange(requestStatus, rate);
+ packetContext.CancelAsyncRequest(EPacketContextNotifyConnectionSpeedChange);
+
+ // send completion
+ iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); //packetContext, packetService, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCSC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyConnectionSpeedChange
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyConnectionSpeedChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConnectionSpeedChange0004L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::NotifyConnectionSpeedChange
+ //-------------------------------------------------------------------------
+ TUint rate;
+ TRequestStatus requestStatus;
+ TRequestStatus requestStatus2;
+ TUint rate2;
+
+
+ // data for CompleteL 1
+ TInt completeRate = 9600;
+ TMockLtsyData2 <TInfoName, TInt > ltsyData(contextId, completeRate);
+ ltsyData.SerialiseL(data);
+
+ // data for CompleteL 2
+ TInt completeRate2 = 4800;
+ TMockLtsyData2 <TInfoName, TInt > ltsyData2(contextId2, completeRate2);
+ ltsyData2.SerialiseL(data2);
+
+ // send first request
+ packetContext.NotifyConnectionSpeedChange(requestStatus, rate);
+
+ // send second request
+ packetContext2.NotifyConnectionSpeedChange(requestStatus2, rate2);
+
+ // sent first completion
+ iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data);
+
+ // sent second completion
+ iMockLTSY.CompleteL (EPacketContextNotifyConnectionSpeedChange, KErrNone, data2);
+
+ // wait for first answer
+ User::WaitForRequest(requestStatus);
+
+ // wait for second answer
+ User::WaitForRequest(requestStatus2);
+
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(completeRate, (TInt)rate);
+ ASSERT_EQUALS(completeRate2, (TInt)rate2);
+
+ CleanupStack::PopAndDestroy(9, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
+
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCDL-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestDelete0001L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+
+ //-------------------------------------------------------------------------
+ // SEND Delete request when ContextStatus is Unknown
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ packetContext.Delete(requestStatus);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+
+ // Set context in Active state
+ SetContextActiveL(contextId);
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::Delete
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+ 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);
+
+ packetContext.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);
+
+ packetContext.Delete(requestStatus);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::Delete when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL (EPacketContextDelete, expectData);
+ iMockLTSY.CompleteL(EPacketContextDelete, KErrNone, data);
+
+ packetContext.Delete(requestStatus);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST D: failure to modify context parameters when context deleted
+ //-------------------------------------------------------------------------
+ packetContext.ModifyActiveContext(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, expectData, data, this
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCDL-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ // Set first context in Active state
+ SetContextActiveL(contextId);
+
+ // Set second context in Active state
+ SetContextActiveL(contextId2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::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
+ packetContext.Delete(requestStatus);
+
+ // send second request
+ packetContext2.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); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, data,data2 this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCDL-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Delete with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Delete and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Set context in Active state
+ SetContextActiveL(contextId);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::Delete
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+ iMockLTSY.ExpectL (EPacketContextDelete, expectData);
+
+ packetContext.Delete(requestStatus);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(5, this); //packetContext, packetService, data, expectData, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCA-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Activate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestActivate0001L()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData, KErrNotSupported);
+
+ packetContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData1(contextId, contextConfig);
+ ltsyData1.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrGeneral, data);
+
+ packetContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::Activate when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
+
+ packetContext.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(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(3, this); // expectData, data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCA-0001b
+@SYMComponent telephony_ctsy
+
+@SYMDEF DEF126915
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate with R99/R4 params
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Activate with R99/R4 context config params
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestActivate0001bL()
+ {
+
+ 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::Activate, using TContextConfigR99_R4, when result is
+ // not cached.
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+
+ RPacketContext::TContextConfigR99_R4 contextConfig;
+ TMockLtsyData2< TInfoName, RPacketContext::TContextConfigR99_R4 > ltsyData1(contextId, contextConfig);
+ ltsyData1.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
+
+ packetContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(3, this); // expectData, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCA-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::Activate
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::Activate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestActivate0002L()
+ {
+
+// This test should test cancellation of Activate
+// 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);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::Activate
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData1(contextId, contextConfig);
+ ltsyData1.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data, 10);
+
+ packetContext.Activate(requestStatus);
+ packetContext.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-PKTC-PCA-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Activate with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestActivate0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // -----------------------------------------------------------------------
+ // call Activate without initialisation of the context
+ // -----------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ packetContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3, this); //packetContext, packetService, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCA-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::Activate
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::Activate
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the first context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+ // initialisation of the second context
+ status = InitContextL(packetContext2, contextId2);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // data for ExpectL for first client
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ // data for CompleteL for first client
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > 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
+ RPacketContext::TContextConfigGPRS contextConfig2;
+ TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData2(contextId2, contextConfig2);
+ ltsyData2.SerialiseL(data2);
+
+ // first request
+ TRequestStatus requestStatus;
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
+ packetContext.Activate(requestStatus);
+
+ // second request
+ TRequestStatus requestStatus2;
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData2);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data2);
+ packetContext2.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-PKTC-PCA-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::Activate with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Activate and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::Activate
+ //-------------------------------------------------------------------------
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+
+ TRequestStatus requestStatus;
+ packetContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(5, this); // data, expectData, packetContext, packetService, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST C1: Successful completion request of
+ // RPacketContext::GetConfig with RPacketContext::TContextConfigGPRS param
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+
+ packetContext.GetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ TBuf8<50> null50;
+ TBuf8<252> nullName;
+ ASSERT_EQUALS(nullName, contextConfig.iAccessPointName);
+ ASSERT_EQUALS(RPacketContext::ENotRequired, contextConfig.iAnonymousAccessReqd);
+ ASSERT_EQUALS(0, contextConfig.iNWIContext);
+ ASSERT_EQUALS(null50, contextConfig.iPdpAddress );
+ ASSERT_EQUALS((TUint)0, contextConfig.iPdpCompression);
+ ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig.iPdpType );
+ ASSERT_EQUALS(0, contextConfig.iUseEdge);
+ ASSERT_EQUALS(RPacketContext::EProtocolNone,contextConfig.iProtocolConfigOption.iAuthInfo.iProtocol);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iChallenge);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iResponse);
+ ASSERT_EQUALS((TUint8)0, contextConfig.iProtocolConfigOption.iId);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+
+ //-------------------------------------------------------------------------
+ // TEST C2: Successful completion request of
+ // RPacketContext::GetConfig with RPacketContext::TContextConfigR99_R4 param
+ //-------------------------------------------------------------------------
+ RPacketContext::TContextConfigR99_R4 contextConfig2;
+ TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
+
+ packetContext.GetConfig(requestStatus, pckgConfig2);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(nullName, contextConfig2.iAccessPointName);
+ ASSERT_EQUALS(0, contextConfig2.iNWIContext);
+ ASSERT_EQUALS(RPacketContext::EBestEffort, contextConfig2.iPFI);
+ ASSERT_EQUALS(null50, contextConfig2.iPdpAddress);
+ ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig2.iPdpType );
+ ASSERT_EQUALS(0, contextConfig2.iUseEdge);
+ ASSERT_EQUALS(RPacketContext::EProtocolNone,contextConfig2.iProtocolConfigOption.iAuthInfo.iProtocol);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iUsername);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iPassword);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iChallenge);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iResponse);
+ ASSERT_EQUALS((TUint8)0, contextConfig2.iProtocolConfigOption.iId);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+ //-------------------------------------------------------------------------
+ // TEST D: RPacketContext::GetConfig again, this time CTSY
+ // will get result from the cache.
+ //-------------------------------------------------------------------------
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //value to Config...
+ RPacketContext::TContextConfigGPRS setConfig;
+ _LIT(KPointName, "Some Name");
+ setConfig.iAccessPointName.Copy(KPointName);
+ setConfig.iAnonymousAccessReqd = RPacketContext::ERequired;
+ setConfig.iNWIContext = ETrue;
+ _LIT(KPdpAdd, "Some Add");
+ setConfig.iPdpAddress.Copy(KPdpAdd);
+ setConfig.iPdpCompression = RPacketContext::KPdpDataCompression;
+ setConfig.iPdpType = RPacketContext::EPdpTypeIPv6;
+ setConfig.iUseEdge = ETrue;
+ setConfig.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
+ _LIT(KUsername, "Some Username");
+ setConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
+ _LIT(KPassword, "Some Password");
+ setConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
+ _LIT(KChallenge, "Challenge");
+ setConfig.iProtocolConfigOption.iChallenge.Copy(KChallenge);
+ _LIT(KResponse, "Response");
+ setConfig.iProtocolConfigOption.iResponse.Copy(KResponse);
+ setConfig.iProtocolConfigOption.iId = 10;
+ _LIT(KPrimaryDns, "Some PrimaryDns");
+ setConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
+ _LIT(KSecondaryDns, "Some SecondaryDns");
+ setConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
+ TPckg<RPacketContext::TContextConfigGPRS> pckgSet(setConfig);
+
+ // Set new value to Config
+ TMockLtsyData1<TInfoName > contexName(contextId);
+ contexName.SerialiseL(data);
+ TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(setConfig, contextId);
+ expExpect.SerialiseL(expectData);
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+ packetContext.SetConfig(requestStatus, pckgSet);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // Get new values
+ packetContext.GetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(setConfig.iAccessPointName, contextConfig.iAccessPointName);
+ ASSERT_EQUALS(setConfig.iAnonymousAccessReqd, contextConfig.iAnonymousAccessReqd);
+ ASSERT_EQUALS(setConfig.iNWIContext, contextConfig.iNWIContext);
+ ASSERT_EQUALS(setConfig.iPdpAddress, contextConfig.iPdpAddress );
+ ASSERT_EQUALS(setConfig.iPdpCompression, contextConfig.iPdpCompression);
+ ASSERT_EQUALS(setConfig.iPdpType, contextConfig.iPdpType );
+ ASSERT_EQUALS(setConfig.iUseEdge, contextConfig.iUseEdge);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iAuthInfo.iProtocol, contextConfig.iProtocolConfigOption.iAuthInfo.iProtocol);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iAuthInfo.iUsername, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iAuthInfo.iPassword, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iChallenge, contextConfig.iProtocolConfigOption.iChallenge);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iResponse, contextConfig.iProtocolConfigOption.iResponse);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iId, contextConfig.iProtocolConfigOption.iId);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(setConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+ CleanupStack::PopAndDestroy(5, this); // expectData, data, packetContext, packetService, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConfig with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetConfig with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetConfig0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::GetConfig
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigCDMA contextConfig;
+ TPckg<RPacketContext::TContextConfigCDMA> pckgConfig(contextConfig);
+
+ packetContext.GetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::GetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetConfig0004L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ // 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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::GetConfig
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+
+ TRequestStatus requestStatus2;
+ RPacketContext::TContextConfigR99_R4 contextConfig2;
+ TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
+
+ // send first request
+ packetContext.GetConfig(requestStatus, pckgConfig);
+ // send second request
+ packetContext2.GetConfig(requestStatus2, pckgConfig2);
+
+ // wait for the first answer
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ TBuf8<50> null50;
+ TBuf8<252> nullName;
+ ASSERT_EQUALS(nullName, contextConfig.iAccessPointName);
+ ASSERT_EQUALS(RPacketContext::ENotRequired, contextConfig.iAnonymousAccessReqd);
+ ASSERT_EQUALS(0, contextConfig.iNWIContext);
+ ASSERT_EQUALS(null50, contextConfig.iPdpAddress );
+ ASSERT_EQUALS((TUint)0, contextConfig.iPdpCompression);
+ ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig.iPdpType );
+ ASSERT_EQUALS(0, contextConfig.iUseEdge);
+ ASSERT_EQUALS(RPacketContext::EProtocolNone, contextConfig.iProtocolConfigOption.iAuthInfo.iProtocol);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iChallenge);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iResponse);
+ ASSERT_EQUALS((TUint8)0, contextConfig.iProtocolConfigOption.iId);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(null50, contextConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+ // wait for the second answer
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(nullName, contextConfig2.iAccessPointName);
+ ASSERT_EQUALS(0, contextConfig2.iNWIContext);
+ ASSERT_EQUALS(RPacketContext::EBestEffort, contextConfig2.iPFI);
+ ASSERT_EQUALS(null50, contextConfig2.iPdpAddress);
+ ASSERT_EQUALS(RPacketContext::EPdpTypeIPv4, contextConfig2.iPdpType );
+ ASSERT_EQUALS(0, contextConfig2.iUseEdge);
+ ASSERT_EQUALS(RPacketContext::EProtocolNone, contextConfig2.iProtocolConfigOption.iAuthInfo.iProtocol);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iUsername);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iAuthInfo.iPassword);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iChallenge);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iResponse);
+ ASSERT_EQUALS((TUint8)0, contextConfig2.iProtocolConfigOption.iId);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iPrimaryDns);
+ ASSERT_EQUALS(null50, contextConfig2.iProtocolConfigOption.iDnsAddresses.iSecondaryDns);
+
+ CleanupStack::PopAndDestroy(7, this); //packetContext2, packetContext, packetService2, packetService, phone2, telServer2, this
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGS-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetStatus
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetStatus
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetStatus0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // test 1: context not inited
+ RPacketContext::TContextStatus contextStatus;
+ packetContext.GetStatus(contextStatus);
+ ASSERT_EQUALS(RPacketContext::EStatusUnknown, contextStatus);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // test2: context inited
+ packetContext.GetStatus(contextStatus);
+ ASSERT_EQUALS(RPacketContext::EStatusInactive, contextStatus);
+
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); //packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGS-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::GetStatus
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::GetStatus
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+/*void CCTsyPacketContextFU::TestGetStatus0002L()
+ {
+
+// This test should test cancellation of GetStatus
+// If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::GetStatus
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if this is not relevant for this API
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ // User::WaitForRequest(mockLtsyStatus);
+ CleanupStack::PopAndDestroy(2); // data, this
+
+ }*/
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGS-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetStatus with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetStatus with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+/*void CCTsyPacketContextFU::TestGetStatus0003L()
+ {
+
+// This test should test sending bad parameter data for GetStatus
+// 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);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::GetStatus
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketContext::GetStatus
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RPacketContext::GetStatus
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ // Done !
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }*/
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGS-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetStatus
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::GetStatus
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+/*void CCTsyPacketContextFU::TestGetStatus0004L()
+ {
+
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ // 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);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::GetStatus
+ //-------------------------------------------------------------------------
+
+ // 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.
+
+
+ // Done !
+ CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
+
+ }*/
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGS-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetStatus with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetStatus and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+/*void CCTsyPacketContextFU::TestGetStatus0005L()
+ {
+
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::GetStatus
+ //-------------------------------------------------------------------------
+
+ // If this API does not have a timeout, then remove this test completely.
+
+ // Done !
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }*/
+
+ /**
+@SYMTestCaseID BA-CTSY-PKTC-PCSC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::SetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::SetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // data for SetContext
+ RPacketContext::TContextConfigGPRS setConfig;
+ _LIT(KPointName, "Some Name");
+ setConfig.iAccessPointName.Copy(KPointName);
+ setConfig.iAnonymousAccessReqd = RPacketContext::ERequired;
+ setConfig.iNWIContext = ETrue;
+ _LIT(KPdpAdd, "Some Add");
+ setConfig.iPdpAddress.Copy(KPdpAdd);
+ setConfig.iPdpCompression = RPacketContext::KPdpDataCompression;
+ setConfig.iPdpType = RPacketContext::EPdpTypeIPv6;
+ setConfig.iUseEdge = ETrue;
+ setConfig.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
+ _LIT(KUsername, "Some Username");
+ setConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername);
+ _LIT(KPassword, "Some Password");
+ setConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword);
+ _LIT(KChallenge, "Challenge");
+ setConfig.iProtocolConfigOption.iChallenge.Copy(KChallenge);
+ _LIT(KResponse, "Response");
+ setConfig.iProtocolConfigOption.iResponse.Copy(KResponse);
+ setConfig.iProtocolConfigOption.iId = 10;
+ _LIT(KPrimaryDns, "Some PrimaryDns");
+ setConfig.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns);
+ _LIT(KSecondaryDns, "Some SecondaryDns");
+ setConfig.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns);
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(setConfig);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(setConfig, contextId);
+ expExpect.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
+
+ packetContext.SetConfig(requestStatus, pckgConfig);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+
+ //-------------------------------------------------------------------------
+ // 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);
+ packetContext.SetConfig(requestStatus, pckgConfig);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::SetConfig when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext.SetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //--------------------------------------------
+ // Successful completion for R99
+ //--------------------------------------------
+ RPacketContext::TContextConfigR99_R4 setConfig99;
+ _LIT(KPointName99, "Some Name99");
+ setConfig99.iAccessPointName.Copy(KPointName99);
+ setConfig99.iNWIContext = ETrue;
+ _LIT(KPdpAdd99, "Some Add99");
+ setConfig99.iPdpAddress.Copy(KPdpAdd99);
+ setConfig99.iPdpType = RPacketContext::EPdpTypeIPv6;
+ setConfig99.iProtocolConfigOption.iAuthInfo.iProtocol = RPacketContext::EProtocolCHAP;
+ _LIT(KUsername99, "Some Username99");
+ setConfig99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(KUsername99);
+ _LIT(KPassword99, "Some Password99");
+ setConfig99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KPassword99);
+ _LIT(KChallenge99, "Challenge99");
+ setConfig99.iProtocolConfigOption.iChallenge.Copy(KChallenge99);
+ _LIT(KResponse99, "Response99");
+ setConfig99.iProtocolConfigOption.iResponse.Copy(KResponse99);
+ setConfig99.iProtocolConfigOption.iId = 10;
+ _LIT(KPrimaryDns99, "Some PrimaryDns99");
+ setConfig99.iProtocolConfigOption.iDnsAddresses.iPrimaryDns.Copy(KPrimaryDns99);
+ _LIT(KSecondaryDns99, "Some SecondaryDns99");
+ setConfig99.iProtocolConfigOption.iDnsAddresses.iSecondaryDns.Copy(KSecondaryDns99);
+ setConfig99.iPFI = RPacketContext::ESignalling;
+ TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig3(setConfig99);
+
+ TMockLtsyData2<RPacketContext::TContextConfigR99_R4, TInfoName > expExpect4(setConfig99, contextId);
+ expectData.Close();
+ expExpect4.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext.SetConfig(requestStatus, pckgConfig3);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //--------------------------------------------
+ // failure to dispatch request for R99
+ //--------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData, KErrNotSupported);
+ //iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, data);
+
+ packetContext.SetConfig(requestStatus, pckgConfig3);
+
+ 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, 0);
+ User::WaitForRequest(mockLtsyStatus);
+
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); //packetContext, packetService
+ CleanupStack::PopAndDestroy(3, this); // data, expectData, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCSC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::SetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::SetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // data for SetConfig
+ RPacketContext::TContextConfigGPRS contextConfig;
+ _LIT(KPdpAdd, "Some Add");
+ contextConfig.iPdpAddress.Copy(KPdpAdd);
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+
+ // data for ExpectL
+ TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(contextConfig, contextId);
+ expExpect.SerialiseL(expectData);
+
+ //data for CompleteL
+ TMockLtsyData1<TInfoName > contexName(contextId);
+ contexName.SerialiseL(data);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ TRequestStatus requestStatus;
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::SetConfig
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 20);
+
+ packetContext.SetConfig(requestStatus, pckgConfig);
+
+ packetContext.CancelAsyncRequest(EPacketContextSetConfig);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ // TSY has started a request and it is not possible to then cancel
+ // this request. (see CMmPacketContextTsy.cpp line 483)
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ User::WaitForRequest(mockLtsyStatus);
+
+ CleanupStack::PopAndDestroy(2);
+ CleanupStack::PopAndDestroy(3, this); // expectData, data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCSC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::SetConfig with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::SetConfig with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestSetConfig0003L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::SetConfig
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TContextConfigCDMA contextConfig;
+ TPckg<RPacketContext::TContextConfigCDMA> pckgConfig(contextConfig);
+
+ TRequestStatus requestStatus;
+
+ packetContext.SetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+
+ //------------------------------------------------
+ //set config for context that was not inited, using GPRS
+ //------------------------------------------------
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService, contextId2);
+ CleanupClosePushL(packetContext2);
+
+
+ RPacketContext::TContextConfigGPRS contextConfig2;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig2(contextConfig2);
+
+ packetContext2.SetConfig(requestStatus, pckgConfig2);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+
+ //------------------------------------------------
+ //set config for context that was not inited, using R99_R4
+ //------------------------------------------------
+ RPacketContext::TContextConfigR99_R4 contextConfig3;
+ TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig3(contextConfig3);
+
+ packetContext2.SetConfig(requestStatus, pckgConfig3);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(1); //packetContext2
+
+ CleanupStack::PopAndDestroy(2); //packetContext packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCSC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::SetConfig
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::SetConfig
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ packetContext2.OpenNewContext(packetService2, contextId2);
+ CleanupClosePushL(packetContext2);
+
+
+ // initialisation of the first context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // initialisation of the second context
+ status = InitContextL(packetContext2, contextId2);
+ ASSERT_EQUALS(KErrNone, status);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::SetConfig
+ //-------------------------------------------------------------------------
+ RPacketContext::TContextConfigGPRS contextConfig;
+ _LIT(KPdpAdd, "Some Add");
+ contextConfig.iPdpAddress.Copy(KPdpAdd);
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+ // for the first ExpectL
+ TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(contextConfig, contextId);
+ expExpect.SerialiseL(expectData);
+
+ RPacketContext::TContextConfigR99_R4 contextConfig2;
+ TPckg<RPacketContext::TContextConfigR99_R4> pckgConfig2(contextConfig2);
+ // for the second ExpectL
+ TMockLtsyData2<RPacketContext::TContextConfigR99_R4, TInfoName > expExpect2(contextConfig2, contextId2);
+ expExpect2.SerialiseL(expectData2);
+
+ // for the first ComleteL
+ TMockLtsyData1< TInfoName > ltsyData(contextId);
+ ltsyData.SerialiseL(data);
+
+ // for the second ComleteL
+ 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);
+
+ packetContext.SetConfig(requestStatus, pckgConfig);
+ packetContext2.SetConfig(requestStatus2, pckgConfig2);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ User::WaitForRequest(mockLtsyStatus);
+
+ // packetContext, packetService, packetContext2, packetService2
+ //one2, telServer2, data2,
+ CleanupStack::PopAndDestroy(2); //expectData2, expectData
+ CleanupStack::PopAndDestroy(9, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCSC-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::SetConfig with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::SetConfig and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::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;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the first context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(contextConfig);
+ TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(contextConfig, contextId);
+ expExpect.SerialiseL(expectData);
+
+ TRequestStatus requestStatus;
+
+ TMockLtsyData1<TInfoName > contexName(contextId);
+ contexName.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+
+ packetContext.SetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+
+ CleanupStack::PopAndDestroy(2); //packetContext packetService,
+ CleanupStack::PopAndDestroy(3, this); // data, expectData, this
+
+ }
+
+
+#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGCI-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetConnectionInfo
+@SYMTestPriority High
+@SYMTestActions Invokes requests to RPacketContext::GetConnectionInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetConnectionInfo0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ TRequestStatus requestStatus;
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
+ RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
+
+ //-------------------------------------------------------------------------
+ // TEST A1: Successful completion of RPacketContext::GetConnectionInfo
+ // request.
+ //-------------------------------------------------------------------------
+
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
+
+ //Get connection info
+ packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1.ExtensionId());
+ ASSERT_EQUALS((TUint32)0, reqConnectionInfoV1.iValid);
+
+ //-------------------------------------------------------------------------
+ // TEST A2: Successful completion of RPacketContext::GetConnectionInfo
+ // request where RPacketContext::TConnectionInfoV1 parameter contains
+ // valid data.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
+ respConnectionInfoV1.iHSDPACategory = 5;
+ respConnectionInfoV1.iValid |= RPacketContext::KHSUPACategory;
+ respConnectionInfoV1.iHSUPACategory = 6;
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData(contextId, respConnectionInfoV1);
+ ltsyData.SerialiseL(data);
+
+ // Change connection information
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //Get connection info
+ packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
+
+ CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGCI-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for canceling RPacketContext::GetConnectionInfo
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetConnectionInfo cancel request
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetConnectionInfo0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ TRequestStatus requestStatus;
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
+ RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
+
+ //-------------------------------------------------------------------------
+ // TEST A1: Cancel RPacketContext::GetConnectionInfo request
+ // successfully.
+ //-------------------------------------------------------------------------
+
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
+
+ //Get connection info
+ packetContext.GetConnectionInfo(requestStatus, pckgReqConnectionInfoV1);
+
+ //Cancel connection info request
+ packetContext.CancelAsyncRequest(EPacketContextGetConnectionInfo);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ //requestStatus should be KErrNone if CTSY completed GetConnectionInfo()
+ //request before cancel request arrived. requestStatus should be KErrCancel
+ //if CTSY received cancel request before before GetConnectionInfo() request
+ //was completed.
+ if ( !( requestStatus.Int() == KErrNone ||
+ requestStatus.Int() == KErrCancel ) )
+ {
+ //Wrong error value. Check fails here.
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ }
+
+ CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCGCI-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetConnectionInfo
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::GetConnectionInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestGetConnectionInfo0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ TRequestStatus requestStatus1;
+ TRequestStatus requestStatus2;
+
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_1;
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_2;
+ RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
+
+ //-------------------------------------------------------------------------
+ // TEST A1: Successful completion of RPacketContext::GetConnectionInfo
+ // request.
+ //-------------------------------------------------------------------------
+
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_1(reqConnectionInfoV1_1);
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_2(reqConnectionInfoV1_2);
+
+ //Get connection info
+ packetContext.GetConnectionInfo(requestStatus1, pckgReqConnectionInfoV1_1);
+ packetContext.GetConnectionInfo(requestStatus2, pckgReqConnectionInfoV1_2);
+
+ User::WaitForRequest(requestStatus1);
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+
+ //Check results
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_1.ExtensionId());
+ ASSERT_EQUALS((TUint32)0, reqConnectionInfoV1_1.iValid);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_2.ExtensionId());
+ ASSERT_EQUALS((TUint32)0, reqConnectionInfoV1_2.iValid);
+
+ //-------------------------------------------------------------------------
+ // TEST A2: Successful completion of RPacketContext::GetConnectionInfo
+ // request where RPacketContext::TConnectionInfoV1 parameter contains
+ // valid data.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
+ respConnectionInfoV1.iHSDPACategory = 5;
+ respConnectionInfoV1.iValid |= RPacketContext::KHSUPACategory;
+ respConnectionInfoV1.iHSUPACategory = 6;
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData(contextId, respConnectionInfoV1);
+ ltsyData.SerialiseL(data);
+
+ // Change connection information
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //Get connection info
+ packetContext.GetConnectionInfo(requestStatus1, pckgReqConnectionInfoV1_1);
+ packetContext.GetConnectionInfo(requestStatus2, pckgReqConnectionInfoV1_2);
+
+ User::WaitForRequest(requestStatus1);
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+
+ //Check results
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+ ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_1.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_1.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_1.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_1.iHSUPACategory);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_2.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_2.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_2.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_2.iHSUPACategory);
+
+ CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCIC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::NotifyConnectionInfoChange
+@SYMTestPriority High
+@SYMTestActions Invokes requests to RPacketContext::NotifyConnectionInfoChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0001L()
+ {
+ INFO_PRINTF1(_L("Testing notification of change in TConnectionInfoV1.iValid .."));
+ TestNotifyConnectionInfoChange0001_workerL(ETrue,EFalse,EFalse);
+ INFO_PRINTF1(_L("Testing notification of change in TConnectionInfoV1.iHSDPACategory .."));
+ TestNotifyConnectionInfoChange0001_workerL(EFalse,ETrue,EFalse);
+ INFO_PRINTF1(_L("Testing notification of change in TConnectionInfoV1.iHSUPACategory .."));
+ TestNotifyConnectionInfoChange0001_workerL(EFalse,EFalse,ETrue);
+ INFO_PRINTF1(_L("Testing that no change leads to no notification .."));
+ TestNotifyConnectionInfoChange0001_workerL(ETrue,ETrue,ETrue,ETrue);
+ INFO_PRINTF1(_L(" All ok!"));
+ }
+
+
+void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0001_workerL(TBool aChangeValid,TBool aChangeHSDPACategory,TBool aChangeHSUPACategory,TBool aResendFirst)
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ TRequestStatus requestStatus;
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
+ RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
+
+ //-------------------------------------------------------------------------
+ // TEST A1: Successful completion of
+ // RPacketContext::NotifyConnectionInfoChange request.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
+
+ //Make NotifyConnectionInfoChange request
+ packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
+
+ //Send response via MockLTSY
+ respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
+ respConnectionInfoV1.iHSDPACategory = 1;
+ respConnectionInfoV1.iHSUPACategory = 0;
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData1(contextId, respConnectionInfoV1);
+ ltsyData1.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //NotifyConnectionInfoChange request is completed to test client
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
+
+
+ // special case to ensure no notification occurs when same data is received twice
+ if(aResendFirst)
+ {
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ }
+
+ //-------------------------------------------------------------------------
+ // TEST A2: Successful completion of
+ // RPacketContext::NotifyConnectionInfoChange request where
+ // RPacketContext::TConnectionInfoV1 parameter data changes.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //Make NotifyConnectionInfoChange request
+ packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
+
+ //Send response via MockLTSY
+ respConnectionInfoV1.iValid = aChangeValid ? (RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory) : RPacketContext::KHSDPACategory ;
+ respConnectionInfoV1.iHSDPACategory = aChangeHSDPACategory ? 5 : 1;
+ respConnectionInfoV1.iHSUPACategory = aChangeHSUPACategory ? 6 : 0;
+
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData2(contextId, respConnectionInfoV1);
+ data.Close();
+ ltsyData2.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //NotifyConnectionInfoChange request is completed to test client
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
+
+ CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCIC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancel RPacketContext::NotifyConnectionInfoChange request
+@SYMTestPriority High
+@SYMTestActions Invokes cancel RPacketContext::NotifyConnectionInfoChange request
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ TRequestStatus requestStatus;
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1;
+ RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
+
+ //-------------------------------------------------------------------------
+ // TEST A1: RPacketContext::NotifyConnectionInfoChange request can be
+ // cancelled successfully.
+ //-------------------------------------------------------------------------
+
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1(reqConnectionInfoV1);
+
+ //Make NotifyConnectionInfoChange request
+ packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
+
+ User::After( 1000 );
+
+ //Cancel NotifyConnectionInfoChange request
+ packetContext.CancelAsyncRequest(EPacketContextNotifyConnectionInfoChange);
+
+ //NotifyConnectionInfoChange request is completed to test client
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST A2: RPacketContext::NotifyConnectionInfoChange request can be
+ // made again after cancelled.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //Send response via MockLTSY. Nothing should happen because
+ //NotifyConnectionInfoChange request has been cancelled.
+ respConnectionInfoV1.iHSDPACategory = 2;
+ respConnectionInfoV1.iHSUPACategory = 3;
+ respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory;
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData(contextId, respConnectionInfoV1);
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ respConnectionInfoV1.iHSDPACategory = 3;
+ respConnectionInfoV1.iHSUPACategory = 4;
+ respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory;
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyDat2(contextId, respConnectionInfoV1);
+ ltsyData.SerialiseL(data);
+
+ //Make NotifyConnectionInfoChange request
+ packetContext.NotifyConnectionInfoChange(requestStatus, pckgReqConnectionInfoV1);
+
+ //Send response again via MockLTSY
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //NotifyConnectionInfoChange request is completed to test client
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1.iHSUPACategory);
+
+ CleanupStack::PopAndDestroy(4, this); // packetContext, packetService, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCNCIC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::NotifyConnectionInfoChange
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::NotifyConnectionInfoChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestNotifyConnectionInfoChange0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //Open new context
+ RPacketService packetService1;
+ OpenPacketServiceL(packetService1);
+ CleanupClosePushL(packetService1);
+
+ TInfoName contextId;
+ RPacketContext packetContext1;
+ packetContext1.OpenNewContext(packetService1, contextId);
+ CleanupClosePushL(packetContext1);
+
+ // Open second client and existing context
+ 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 packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenExistingContext(packetService2, contextId);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ //Open third client and new context
+ RTelServer telServer3;
+ ret = telServer3.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer3);
+
+ RMobilePhone phone3;
+ ret = phone3.Open(telServer3,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone3);
+
+ RPacketService packetService3;
+ ret = packetService3.Open(phone3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService3);
+
+ TInfoName contextId2;
+ RPacketContext packetContext3;
+ packetContext3.OpenNewContext(packetService3, contextId2);
+ CleanupClosePushL(packetContext3);
+
+ TRequestStatus mockLtsyStatus;
+ TRequestStatus requestStatus1;
+ TRequestStatus requestStatus2;
+ TRequestStatus requestStatus3;
+ RPacketContext::TConnectionInfoV1 respConnectionInfoV1;
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_1;
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_1(reqConnectionInfoV1_1);
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_2;
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_2(reqConnectionInfoV1_2);
+ RPacketContext::TConnectionInfoV1 reqConnectionInfoV1_3;
+ TPckg<RPacketContext::TConnectionInfoV1> pckgReqConnectionInfoV1_3(reqConnectionInfoV1_3);
+
+ //-------------------------------------------------------------------------
+ // TEST A1: Successful completion of
+ // RPacketContext::NotifyConnectionInfoChange request for multible clients.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //Make NotifyConnectionInfoChange requests
+ packetContext1.NotifyConnectionInfoChange(requestStatus1, pckgReqConnectionInfoV1_1);
+ packetContext2.NotifyConnectionInfoChange(requestStatus2, pckgReqConnectionInfoV1_2);
+ packetContext3.NotifyConnectionInfoChange(requestStatus3, pckgReqConnectionInfoV1_3);
+
+ //Send response via MockLTSY to first packet context
+ respConnectionInfoV1.iHSDPACategory = 2;
+ respConnectionInfoV1.iHSUPACategory = 3;
+ respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory | RPacketContext::KHSUPACategory;
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData1(contextId, respConnectionInfoV1);
+ ltsyData1.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //NotifyConnectionInfoChange request is completed to the test clients 1 & 2
+ User::WaitForRequest(requestStatus1);
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_1.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_1.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_1.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_1.iHSUPACategory);
+
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_2.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_2.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_2.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_2.iHSUPACategory);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //Call notification again
+ packetContext1.NotifyConnectionInfoChange(requestStatus1, pckgReqConnectionInfoV1_1);
+ packetContext2.NotifyConnectionInfoChange(requestStatus2, pckgReqConnectionInfoV1_2);
+
+ //Send response via MockLTSY to second packet context
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData2(contextId2, respConnectionInfoV1);
+ data.Close();
+ ltsyData2.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //NotifyConnectionInfoChange request is completed to the test client 3
+ User::WaitForRequest(requestStatus3);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+ ASSERT_EQUALS((TInt)TConnectionInfoBase::KConnectionInfoV1, reqConnectionInfoV1_3.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_3.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_3.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_3.iHSUPACategory);
+
+ //Call notification again
+ packetContext3.NotifyConnectionInfoChange(requestStatus3, pckgReqConnectionInfoV1_3);
+
+ //-------------------------------------------------------------------------
+ // TEST A2: Successful completion of
+ // RPacketContext::NotifyConnectionInfoChange request for multiple clients.
+ // RPacketContext::TConnectionInfoV1 parameter data changes.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //Send response via MockLTSY to first packet context
+ respConnectionInfoV1.iValid = RPacketContext::KHSDPACategory;
+ respConnectionInfoV1.iHSDPACategory = 5;
+ respConnectionInfoV1.iValid |= RPacketContext::KHSUPACategory;
+ respConnectionInfoV1.iHSUPACategory = 6;
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData3(contextId, respConnectionInfoV1);
+ data.Close();
+ ltsyData3.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //NotifyConnectionInfoChange request is completed to the test clients 1 & 2
+ User::WaitForRequest(requestStatus1);
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+ ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_1.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_1.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_1.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_1.iHSUPACategory);
+
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_2.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_2.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_2.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_2.iHSUPACategory);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //Call notification again
+ packetContext1.NotifyConnectionInfoChange(requestStatus1, pckgReqConnectionInfoV1_1);
+ packetContext2.NotifyConnectionInfoChange(requestStatus2, pckgReqConnectionInfoV1_2);
+
+ //Send response via MockLTSY to second packet context
+ TMockLtsyData2< TInfoName, RPacketContext::TConnectionInfoV1 > ltsyData4(contextId2, respConnectionInfoV1);
+ data.Close();
+ ltsyData4.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EPacketContextNotifyConnectionInfoChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //NotifyConnectionInfoChange request is completed to the test client 3
+ User::WaitForRequest(requestStatus3);
+ AssertMockLtsyStatusL();
+
+ ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+ ASSERT_EQUALS(respConnectionInfoV1.ExtensionId(), reqConnectionInfoV1_3.ExtensionId());
+ ASSERT_EQUALS(respConnectionInfoV1.iValid, reqConnectionInfoV1_3.iValid);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSDPACategory, reqConnectionInfoV1_3.iHSDPACategory);
+ ASSERT_EQUALS(respConnectionInfoV1.iHSUPACategory, reqConnectionInfoV1_3.iHSUPACategory);
+
+ CleanupStack::PopAndDestroy(12, this); //packetContext3, packetService3, phone3, telServer3,
+ //packetContext2, packetService2, phone2, telServer2,
+ //packetContext1, packetService1, data, this
+ }
+
+#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0001
+@SYMDEF DEF125564
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenNewSecondaryContext0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::SetConfig when result is not cached.
+ //-------------------------------------------------------------------------
+ TInfoName contextIdSecondary;
+ RPacketContext packetContextSecondary;
+ TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContextSecondary);
+
+ //-------------------------------------------------------------------------
+ // Try to Activate SecondaryContext in order to
+ // call CMmPacketQoSGsmWcdmaExt::ProfileAsked()
+ //-------------------------------------------------------------------------
+
+ // initialisation of the secondary context
+ TInt status = InitContextL(packetContextSecondary, contextIdSecondary, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+ AssertMockLtsyStatusL();
+
+ // create new QoS
+ RBuf profileName;
+ CleanupClosePushL(profileName);
+ RPacketQoS packetQoS;
+ packetQoS.OpenNewQoS(packetContextSecondary, profileName);
+ CleanupClosePushL(packetQoS);
+
+
+ // try to activate SecondaryContext in order to call CMmPacketQoSGsmWcdmaExt::ProfileAsked()
+ TRequestStatus requestStatus;
+ packetContextSecondary.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+
+ //-------------------------------------------------------------------------
+ // Try to open too many contexts
+ //-------------------------------------------------------------------------
+ RPacketContext newPacketContext[KMmMaxNumberOfContexts - 2];
+ for (TInt i = 0; i < KMmMaxNumberOfContexts - 2; i++) // -2 -- because there are already 2 contexts
+ {
+ TInfoName newContextIdSecondary;
+ err = newPacketContext[i].OpenNewSecondaryContext(packetService, contextId, newContextIdSecondary);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(newPacketContext[i]);
+ }
+
+ RPacketContext OneMorePacketContext;
+ TInfoName contextIdSecondary1;
+ err = OneMorePacketContext.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary1);
+ TInt expectedError = ( KErrOverflow & 0x0000FFFF ) |
+ ( KErrUmtsMaxNumOfContextExceededByPhone << 16 );
+ ASSERT_EQUALS(expectedError, err);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy( (KMmMaxNumberOfContexts - 2) ); // set of contexts...
+ CleanupStack::PopAndDestroy(8, this); // this...
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0001b
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for Activation of RPacketContext::OpenNewSecondaryContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::Activate after RPacketContext::RemovePacketFilter for SecondaryContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenNewSecondaryContext0001bL()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new primary packet context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // initialisation of the context
+ TInt status = InitContextL(packetContext, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+
+ // data for SetContext
+ RPacketContext::TContextConfigGPRS setConfig;
+ _LIT(KPointName, "Some Name");
+ setConfig.iAccessPointName.Copy(KPointName);
+ TPckg<RPacketContext::TContextConfigGPRS> pckgConfig(setConfig);
+
+ TRequestStatus requestStatus;
+
+ TMockLtsyData2<RPacketContext::TContextConfigGPRS, TInfoName > expExpect(setConfig, contextId);
+ expExpect.SerialiseL(expectData);
+
+ TMockLtsyData1<TInfoName > contextName(contextId);
+ contextName.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketContextSetConfig, expectData);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext.SetConfig(requestStatus, pckgConfig);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ TMockLtsyData1 <TInfoName> expData(contextId);
+ expData.SerialiseL(expectData);
+
+ // Activate this primary context.
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TMockLtsyData2< TInfoName, RPacketContext::TContextConfigGPRS > ltsyData1(contextId, contextConfig);
+ ltsyData1.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextActivate, expectData);
+ iMockLTSY.CompleteL(EPacketContextActivate, KErrNone, data);
+
+ packetContext.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // Open new secondary context
+ TInfoName contextIdSecondary;
+ RPacketContext packetContextSecondary;
+ TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContextSecondary);
+
+ // initialisation of the secondary context
+ status = InitContextL(packetContextSecondary, contextIdSecondary, contextId);
+ ASSERT_EQUALS(KErrNone, status);
+ AssertMockLtsyStatusL();
+
+ // Add filter
+ RPacketContext::TPacketFilterV2 filter;
+ filter.iId = 1;
+ RPacketContext::TPacketFilterV2Pckg filterPckg (filter);
+ err = AddContextPacketFilterL(packetContextSecondary, contextIdSecondary,filter);// ETrue means that this request doesn't reache LTSY
+ ASSERT_EQUALS(KErrNone, err);
+ AssertMockLtsyStatusL();
+
+ // set context Active
+ SetContextActiveL(contextIdSecondary);
+ AssertMockLtsyStatusL();
+
+ // Open and set QoS profile
+ RPacketQoS packetQoSSecondary;
+ RPacketQoS::TQoSGPRSRequested secondaryRequested;
+ err = CreateQoSAndSetProfileParamLC(packetQoSSecondary, packetContextSecondary,
+ contextIdSecondary, secondaryRequested, contextId);// contextId -- is name of "primary" context
+ ASSERT_EQUALS(KErrNone, err);
+ AssertMockLtsyStatusL();
+
+ // Remove the already added packet filter
+ TInt filterId = 1;
+ packetContextSecondary.RemovePacketFilter(requestStatus, filterId);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ // Activate the secondary context
+
+ packetContextSecondary.Activate(requestStatus);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(7, this);
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenNewSecondaryContext0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ RPacketContext packetContextSecondary;
+ TInfoName contextIdSecondary;
+
+ // -----------------------------------------------------------------------
+ // Test with too long ContextId
+ // ----------------------------------------------------------------------
+ TBuf<KMaxInfoName + 1> longContextId;
+ _LIT(KLongId, "qwertyuiopasdfghj");
+ longContextId.Copy(KLongId);
+ TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, longContextId, contextIdSecondary);
+ ASSERT_EQUALS(KErrArgument, err);
+ //We need to close the sub sessiun before we open a new context
+ packetContextSecondary.Close();
+
+
+
+ // -----------------------------------------------------------------------
+ // Previous OpenNewSecondaryContext failed with KErrArgument
+ // so try OpenNewSecondaryContext with correct params
+ // ----------------------------------------------------------------------
+ err = packetContextSecondary.OpenNewSecondaryContext(packetService, contextId, contextIdSecondary);
+ ASSERT_EQUALS(KErrNone, err);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3, this); // this, ...
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0003b
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext with wrong ContextId
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenNewSecondaryContext0003bL()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+
+ // -----------------------------------------------------------------------
+ // Test with wrong ContextId
+ // ----------------------------------------------------------------------
+ RPacketContext packetContextSecondary;
+ TInfoName wrongContextId;
+ _LIT(KSameId, "WrongId");
+ wrongContextId.Copy(KSameId);
+
+ TInfoName contextIdSecondary;
+ TInt err = packetContextSecondary.OpenNewSecondaryContext(packetService, wrongContextId, contextIdSecondary);
+ CleanupClosePushL(packetContextSecondary);
+ ASSERT_EQUALS(KErrArgument, err);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4, this); // this, ...
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONSC-0003c
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewSecondaryContext with with empty PacketService
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenNewSecondaryContext with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenNewSecondaryContext0003cL()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ // -----------------------------------------------------------------------
+ // Test with empty PacketService
+ // -----------------------------------------------------------------------
+ RPacketService emptyPacketService;
+ RPacketContext packetContextSecondary;
+ TInfoName contextIdSecondary;
+ // there should be EEtelPanicNullHandle panic
+ TInt err = packetContextSecondary.OpenNewSecondaryContext(emptyPacketService, contextId, contextIdSecondary);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3, this); // this, ...
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenNewContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenNewContext0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::SetConfig when result is not cached.
+ //------------------------------------------------------------------------
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3, this); // packetContext, packetService, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenNewContext with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenNewContext with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenNewContext0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ //-------------------------------------------------------------------------
+ // Try to open too many contexts
+ //-------------------------------------------------------------------------
+ TInt err = 0;
+ for (TInt i = 0; i < KMmMaxNumberOfContexts; i++)
+ {
+ RPacketContext newPacketContext;
+ TInfoName contextId;
+ err = newPacketContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(newPacketContext);
+ }
+
+ RPacketContext OneMorePacketContext;
+ TInfoName contextId1;
+ err = OneMorePacketContext.OpenNewContext(packetService, contextId1);
+ TInt expectedError = ( KErrOverflow & 0x0000FFFF ) |
+ ( KErrUmtsMaxNumOfContextExceededByPhone << 16 );
+ ASSERT_EQUALS(expectedError, err);
+
+ //-------------------------------------------------------------------------
+ // Use non-created packetService
+ //-------------------------------------------------------------------------
+ RPacketService packetService2;
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+
+ // there should be expected EEtelPanicNullHandle panic
+ packetContext2.OpenNewContext(packetService2, contextId2);
+
+ CleanupStack::PopAndDestroy (KErrUmtsMaxNumOfContextExceededByPhone);
+ CleanupStack::PopAndDestroy(2, this); // packetService1, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONEC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenExistingContext
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenExistingContext
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenExistingContext0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextId);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::SetConfig when result is not cached.
+ //-------------------------------------------------------------------------
+ RPacketContext packetContext2;
+ TInt err = packetContext2.OpenExistingContext(packetService, contextId);
+ CleanupClosePushL(packetContext2);
+ ASSERT_EQUALS(KErrNone, err);
+
+ // -----------------------------------------------------------------------
+ // Test contextId == KStringExternal and iDialUpContext created
+ // ----------------------------------------------------------------------
+ TRequestStatus mockLtsyStatus;
+ // Data for CompleteL
+ TInfoName sndName;
+ TInt sndResult = KErrNotFound;
+ TMockLtsyData2 <TInfoName, TInt > ltsyData(sndName, sndResult);
+ ltsyData.SerialiseL(data);
+
+ // --- create iDialUpContext at first -----------
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ // Issue the Complete...
+ iMockLTSY.CompleteL(EPacketNotifyContextAdded, KErrNone, data);
+ // wait for completion
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ //------------------------------------------
+
+ RPacketContext packetContext3;
+ TInfoName longContextId3;
+ _LIT( KStringExternal, "External" );
+ longContextId3.Copy(KStringExternal);
+ err = packetContext3.OpenExistingContext(packetService, longContextId3);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext3);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(6, this); //packetContext3, packetContext2, packetContext, packetService, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTC-PCONEC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::OpenExistingContext with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::OpenExistingContext with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketContextFU::TestOpenExistingContext0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextId;
+ //-------------------------------------------------------------------------
+ // Test with non-existing context
+ //-------------------------------------------------------------------------
+ _LIT(KSomeContext, "SomeContext");
+ contextId.Copy(KSomeContext);
+ RPacketContext packetContext1;
+ TInt err = packetContext1.OpenExistingContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNotFound, err);
+ AssertMockLtsyStatusL();
+
+ // -----------------------------------------------------------------------
+ // Test with too long ContextId
+ // ----------------------------------------------------------------------
+ RPacketContext packetContext2;
+ TBuf<KMaxInfoName + 1> longContextId;
+ _LIT(KLongId, "qwertyuiopasdfghj");
+ longContextId.Copy(KLongId);
+ err = packetContext2.OpenExistingContext(packetService, longContextId);
+ ASSERT_EQUALS(KErrOverflow, err);
+
+ // -----------------------------------------------------------------------
+ // Test contextId == KStringExternal, but when iDialUpContext is NOT created
+ // ----------------------------------------------------------------------
+ RPacketContext packetContext3;
+ TInfoName longContextId3;
+ _LIT( KStringExternal, "External" );
+ longContextId3.Copy(KStringExternal);
+ err = packetContext3.OpenExistingContext(packetService, longContextId3);
+ ASSERT_EQUALS(KErrNotFound, err);
+
+ //-------------------------------------------------------------------------
+ // Test with epmty contextId
+ //-------------------------------------------------------------------------
+ RPacketContext packetContext4;
+ contextId.Zero();
+ // there should be expected KErrBadName panic
+ err = packetContext4.OpenExistingContext(packetService, contextId);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(1, this); // this
+ }
+