--- a/telephonyserverplugins/common_tsy/test/component/src/cctsypacketqosfu.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsypacketqosfu.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,4357 +1,4357 @@
-// 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 PacketQoS in the Common TSY.
-//
-//
-
-/**
- @file
-*/
-
-#include "cctsypacketqosfu.h"
-#include <ctsy/serviceapi/cmmutility.h> // TContextMisc
-#include <etel.h>
-#include <etelmm.h>
-#include <et_clsvr.h>
-#include <pcktcs.h>
-#include <etelqos.h>
-#include <ctsy/mmtsy_names.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#include "tmockltsydata.h"
-#include <ctsy/serviceapi/gsmerror.h>
-#include "Cmmpacketdef.h"
-
-CTestSuite* CCTsyPacketQoSFU::CreateSuiteL(const TDesC& aName)
- {
- SUB_SUITE;
-
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemoveMediaAuthorization0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemoveMediaAuthorization0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemoveMediaAuthorization0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileParameters0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileParameters0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileParameters0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileCapabilities0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileCapabilities0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileCapabilities0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestCreateNewTFT0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemovePacketFilter0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemovePacketFilter0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetPacketFilterInfo0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetPacketFilterInfo0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetPacketFilterInfo0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestDeleteTFT0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenNewQoS0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenNewQoS0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenExistingQoS0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenExistingQoS0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenExistingQoS0004L);
-
- END_SUITE;
- }
-
-
-//
-// Actual test cases
-//
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddMediaAuthorizationL
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::AddMediaAuthorizationL
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus requestStatus;
- TRequestStatus mockLtsyStatus;
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TInt configurationType = 0;
-
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
- mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuthorization);
-
- mediaAuthorization->iAuthorizationToken = _L8("test");
-
- RPacketContext::CTFTMediaAuthorizationV3::TFlowIdentifier flowId;
- flowId.iIPFlowNumber = 0x100;
- flowId.iMediaComponentNumber = 0x200;
- mediaAuthorization->iFlowIds.Append(flowId);
- flowId.iIPFlowNumber = 0x10;
- flowId.iMediaComponentNumber = 0x20;
- mediaAuthorization->iFlowIds.Append(flowId);
-
- TMockLtsyContextData2< TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
- expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
-
- expExpect.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data, KErrNotSupported);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST for increasing the coverage
- //-------------------------------------------------------------------------
-
- for (TInt index = 0; index < 3; index++)
- {
- RPacketContext::CTFTMediaAuthorizationV3* media= NULL;
- media = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(media);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
- exp(contextConfig, configurationType, contextName2, mediaAuthorization);
-
- data.Close();
- exp.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data, KErrNotSupported);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- CleanupStack::Pop(media);
- }
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
- TMockLtsyData1<TInfoName > contexName(contextName2);
- contexName.SerialiseL(completeData);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, completeData);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::AddMediaAuthorizationL when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST for coverage increasing
- // with context status != Unknown
- //-------------------------------------------------------------------------
-
- // set context status to EStatusActive
- TInt err = SetContextActiveL(contextName2);
- AssertMockLtsyStatusL();
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST for coverage increasing
- // with context status != Unknown
- //-------------------------------------------------------------------------
-
- // set context status to EStatusInactive
- err = SetContextStatusL(contextName2, RPacketContext::EStatusInactive );
-
- // call AddMediaAuthorizationL itself
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- CleanupStack::Pop(mediaAuthorization);
- CleanupStack::PopAndDestroy(3); // packetService1, packetContext1, packetContext2
- CleanupStack::PopAndDestroy(3); // completeData, data, this, dataSerialise
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::AddMediaAuthorizationL
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::AddMediaAuthorizationL
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus requestStatus;
- TRequestStatus mockLtsyStatus;
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::AddMediaAuthorizationL
- //-------------------------------------------------------------------------
- RPacketContext::TContextConfigGPRS contextConfig;
- TInt configurationType = 0;
-
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
- mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuthorization);
-
- TMockLtsyContextData2< TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
- expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
-
- expExpect.SerialiseL(data);
-
- // data CompleteL
- TMockLtsyData1<TInfoName > contexName(contextName2);
- contexName.SerialiseL(completeData);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
-
- packetContext2.CancelAsyncRequest(EPacketAddMediaAuthorization);
-
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- User::WaitForRequest(mockLtsyStatus);
-
- CleanupStack::Pop(mediaAuthorization);
- CleanupStack::PopAndDestroy(3); // packetService1, packetContext1, packetContext2
- CleanupStack::PopAndDestroy(3); //completeData, data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::AddMediaAuthorizationL
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::AddMediaAuthorizationL
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data1;
- CleanupClosePushL(data1);
-
- RBuf8 data2;
- CleanupClosePushL(data2);
- RBuf8 completeData1;
- CleanupClosePushL(completeData1);
-
- RBuf8 completeData2;
- CleanupClosePushL(completeData2);
-
- // Open second client
- RTelServer telServer1;
- TInt ret = telServer1.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer1);
-
- RTelServer telServer1S;
- ret = telServer1S.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer1S);
-
- RTelServer telServer2S;
- ret = telServer2S.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2S);
-
- RMobilePhone phone2;
- ret = phone2.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- RMobilePhone phone1S;
- ret = phone1S.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone1S);
-
- RMobilePhone phone2S;
- ret = phone2S.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2S);
-
- RPacketService packetService1;
- OpenPacketServiceL(packetService1);
- CleanupClosePushL(packetService1);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- RPacketService packetService1S;
- ret = packetService1S.Open(phone1S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService1S);
-
- RPacketService packetService2S;
- ret = packetService2S.Open(phone2S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2S);
-
- TInfoName contextName1;
- RPacketContext packetContext1;
- ret = packetContext1.OpenNewContext(packetService1, contextName1);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext1);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewContext(packetService2, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TInfoName contextName1S;
- RPacketContext packetContext1S;
- ret = packetContext1S.OpenNewSecondaryContext(packetService1S, contextName1, contextName1S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext1S);
-
- TInfoName contextName2S;
- RPacketContext packetContext2S;
- ret = packetContext2S.OpenNewSecondaryContext(packetService2S, contextName2, contextName2S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2S);
-
- TRequestStatus requestStatus1;
- TRequestStatus requestStatus2;
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::AddMediaAuthorizationL
- //-------------------------------------------------------------------------
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TInt configurationType = 0;
-
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
- mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuthorization);
-
- // first client
- TMockLtsyData1<TInfoName > contexName1(contextName1S);
- contexName1.SerialiseL(completeData1);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
- expExpect1(contextConfig, configurationType, contextName1S, mediaAuthorization);
- expExpect1.SerialiseL(data1);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data1);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData1);
-
- packetContext1S.AddMediaAuthorizationL(requestStatus1, *mediaAuthorization);
-
- // second client
- TMockLtsyData1<TInfoName > contexName2(contextName2S);
- contexName2.SerialiseL(completeData2);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
- expExpect2(contextConfig, configurationType, contextName2S, mediaAuthorization);
- expExpect2.SerialiseL(data2);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data2);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData2);
-
- packetContext2S.AddMediaAuthorizationL(requestStatus2, *mediaAuthorization);
-
- User::WaitForRequest(requestStatus1);
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
-
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- CleanupStack::Pop(mediaAuthorization);
- CleanupStack::PopAndDestroy(14);
- CleanupStack::PopAndDestroy(5, this); // data1, data2, this, completeData1, completeData2
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddMediaAuthorizationL with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::AddMediaAuthorizationL and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0005L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus requestStatus;
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TInt configurationType = 0;
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketContext::AddMediaAuthorizationL
- //-------------------------------------------------------------------------
-
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
- mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuthorization);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
- expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
-
- expExpect.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- CleanupStack::Pop(mediaAuthorization);
- CleanupStack::PopAndDestroy(3); // packetService1, packetContext1, packetContext2
- CleanupStack::PopAndDestroy(2); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCRMA-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemoveMediaAuthorization
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::RemoveMediaAuthorization
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestRemoveMediaAuthorization0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // TEST
- //-------------------------------------------------------------------------
-
- _LIT8(KAuthorizationToken, "AuthorizationToken");
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TInt configurationType = 0;
-
- RPacketContext::CTFTMediaAuthorizationV3* media = NULL;
- media = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- media->iAuthorizationToken = KAuthorizationToken;
- CleanupStack::PushL(media);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
- exp(contextConfig, configurationType, contextName2, media);
-
- exp.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data, KErrNotSupported);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *media);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- RPacketContext::TAuthorizationToken authorization1;
- authorization1 = KAuthorizationToken;
-
- packetContext2.RemoveMediaAuthorization(requestStatus, authorization1);
- ASSERT_EQUALS(KErrNone, ret);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST
- //-------------------------------------------------------------------------
-
- RPacketContext::TAuthorizationToken authorizationToken;
- authorizationToken = KAuthorizationToken;
-
- packetContext.RemoveMediaAuthorization(requestStatus, authorizationToken);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST
- //-------------------------------------------------------------------------
-
- // add new MediaAuthorization
- //-------------------------------------------------------------------------
-
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization= NULL;
- mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- mediaAuthorization->iAuthorizationToken = KAuthorizationToken;
- CleanupStack::PushL(mediaAuthorization);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
- expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
- data.Close();
- expExpect.SerialiseL(data);
-
- TMockLtsyData1<TInfoName > contexName(contextName2);
- contexName.SerialiseL(completeData);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- //-------------------------------------------------------------------------
-
- packetContext2.RemoveMediaAuthorization(requestStatus, authorizationToken);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::RemoveMediaAuthorization when result is not cached.
- //-------------------------------------------------------------------------
- packetContext2.RemoveMediaAuthorization(requestStatus, authorizationToken);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotFound, requestStatus.Int());
-
- CleanupStack::Pop(mediaAuthorization);
- CleanupStack::Pop(media);
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(6, this); // data, this, completeData
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCRMA-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemoveMediaAuthorization with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::RemoveMediaAuthorization with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestRemoveMediaAuthorization0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // Test add new MediaAuthorization
- //-------------------------------------------------------------------------
- _LIT8(KAuthorizationToken, "AuthorizationToken");
- _LIT8(KAuthorizationToken2, "Other AuthorizationToken");
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TInt configurationType = 0;
-
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization= NULL;
- mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- mediaAuthorization->iAuthorizationToken = KAuthorizationToken;
- CleanupStack::PushL(mediaAuthorization);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
- expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
-
- TMockLtsyData1<TInfoName > contexName(contextName2);
- contexName.SerialiseL(completeData);
-
- expExpect.SerialiseL(data);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
-
- packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- //-------------------------------------------------------------------------
-
- RPacketContext::TAuthorizationToken authorizationToken;
- authorizationToken = KAuthorizationToken2;
-
- packetContext2.RemoveMediaAuthorization(requestStatus, authorizationToken);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotFound, requestStatus.Int());
-
- CleanupStack::Pop(mediaAuthorization);
- CleanupStack::PopAndDestroy(6, this); // data, completeData, packetService, packetContext, packetContext2, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCRMA-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::RemoveMediaAuthorization
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::RemoveMediaAuthorization
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestRemoveMediaAuthorization0004L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data1;
- CleanupClosePushL(data1);
-
- RBuf8 data2;
- CleanupClosePushL(data2);
-
- RBuf8 completeData1;
- CleanupClosePushL(completeData1);
-
- RBuf8 completeData2;
- CleanupClosePushL(completeData2);
-
- // Open second client
- RTelServer telServer1;
- TInt ret = telServer1.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer1);
-
- RTelServer telServer1S;
- ret = telServer1S.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer1S);
-
- RTelServer telServer2S;
- ret = telServer2S.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2S);
-
- RMobilePhone phone2;
- ret = phone2.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- RMobilePhone phone1S;
- ret = phone1S.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone1S);
-
- RMobilePhone phone2S;
- ret = phone2S.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2S);
-
- RPacketService packetService1;
- OpenPacketServiceL(packetService1);
- CleanupClosePushL(packetService1);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- RPacketService packetService1S;
- ret = packetService1S.Open(phone1S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService1S);
-
- RPacketService packetService2S;
- ret = packetService2S.Open(phone2S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2S);
-
- TInfoName contextName1;
- RPacketContext packetContext1;
- ret = packetContext1.OpenNewContext(packetService1, contextName1);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext1);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewContext(packetService2, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TInfoName contextName1S;
- RPacketContext packetContext1S;
- ret = packetContext1S.OpenNewSecondaryContext(packetService1S, contextName1, contextName1S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext1S);
-
- TInfoName contextName2S;
- RPacketContext packetContext2S;
- ret = packetContext2S.OpenNewSecondaryContext(packetService2S, contextName2, contextName2S);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2S);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::RemoveMediaAuthorization
- //-------------------------------------------------------------------------
-
- _LIT8(KAuthorizationToken1, "AuthorizationToken1");
- _LIT8(KAuthorizationToken2, "AuthorizationToken2");
-
- // add new MediaAuthorization
- //-------------------------------------------------------------------------
- RPacketContext::TContextConfigGPRS contextConfig;
- TInt configurationType = 0;
-
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization1 = NULL;
- mediaAuthorization1 = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- mediaAuthorization1->iAuthorizationToken = KAuthorizationToken1;
- CleanupStack::PushL(mediaAuthorization1);
-
- TMockLtsyData1<TInfoName > contexName1(contextName1S);
- contexName1.SerialiseL(completeData1);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
- expExpect1(contextConfig, configurationType, contextName1S, mediaAuthorization1);
- expExpect1.SerialiseL(data1);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data1);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData1);
-
- packetContext1S.AddMediaAuthorizationL(requestStatus, *mediaAuthorization1);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus1;
- TRequestStatus requestStatus2;
-
- RPacketContext::TAuthorizationToken authorizationToken;
- authorizationToken = KAuthorizationToken1;
-
- packetContext1S.RemoveMediaAuthorization(requestStatus1, authorizationToken);
-
- // add new MediaAuthorization
- //-------------------------------------------------------------------------
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization2 = NULL;
- mediaAuthorization2 = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- mediaAuthorization2->iAuthorizationToken = KAuthorizationToken2;
- CleanupStack::PushL(mediaAuthorization2);
-
- TMockLtsyData1<TInfoName > contexName2(contextName2S);
- contexName2.SerialiseL(completeData2);
-
- TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
- expExpect2(contextConfig, configurationType, contextName2S, mediaAuthorization2);
- expExpect2.SerialiseL(data2);
-
- iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data2);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData2);
-
- packetContext2S.AddMediaAuthorizationL(requestStatus, *mediaAuthorization2);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- //-------------------------------------------------------------------------
-
- authorizationToken = KAuthorizationToken2;
-
- packetContext2S.RemoveMediaAuthorization(requestStatus2, authorizationToken);
-
- User::WaitForRequest(requestStatus1);
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
-
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- CleanupStack::Pop(mediaAuthorization2);
- CleanupStack::Pop(mediaAuthorization1);
- CleanupStack::PopAndDestroy(14);
- CleanupStack::PopAndDestroy(5, this); // data1, data2, this, completeData1, completeData2
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QGPP-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileParameters
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::GetProfileParameters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetProfileParameters0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
-
- RPacketQoS::TQoSGPRSNegotiated packetGPRS;
- TPckg< RPacketQoS::TQoSGPRSNegotiated > profilePckgGPRS = packetGPRS;
- packetQoS.GetProfileParameters(requestStatus, profilePckgGPRS);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- ASSERT_EQUALS(packetGPRS.iPrecedence , RPacketQoS::EUnspecifiedPrecedence);
- ASSERT_EQUALS(packetGPRS.iDelay , RPacketQoS::EUnspecifiedDelayClass);
- ASSERT_EQUALS(packetGPRS.iReliability , RPacketQoS::EUnspecifiedReliabilityClass);
- ASSERT_EQUALS(packetGPRS.iPeakThroughput, RPacketQoS::EUnspecifiedPeakThroughput);
- ASSERT_EQUALS(packetGPRS.iMeanThroughput, RPacketQoS::EUnspecifiedMeanThroughput);
-
- RPacketQoS::TQoSR5Negotiated packetR5;
- TPckg< RPacketQoS::TQoSR5Negotiated > profilePckgR5 = packetR5;
- packetQoS.GetProfileParameters(requestStatus, profilePckgR5);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- ASSERT_EQUALS(packetR5.iSignallingIndication , 0);
- ASSERT_EQUALS(packetR5.iSourceStatisticsDescriptor,
- RPacketQoS::ESourceStatisticsDescriptorUnknown);
- ASSERT_EQUALS(packetR5.iTrafficClass ,
- RPacketQoS::ETrafficClassUnspecified);
- ASSERT_EQUALS(packetR5.iDeliveryOrderReqd ,
- RPacketQoS::EDeliveryOrderUnspecified);
- ASSERT_EQUALS(packetR5.iDeliverErroneousSDU ,
- RPacketQoS::EErroneousSDUDeliveryUnspecified);
- ASSERT_EQUALS(packetR5.iMaxSDUSize , 0);
- ASSERT_EQUALS(packetR5.iMaxRate.iUplinkRate , 0);
- ASSERT_EQUALS(packetR5.iMaxRate.iDownlinkRate , 0);
- ASSERT_EQUALS(packetR5.iBER ,
- RPacketQoS::EBERUnspecified);
- ASSERT_EQUALS(packetR5.iSDUErrorRatio ,
- RPacketQoS::ESDUErrorRatioUnspecified);
- ASSERT_EQUALS(packetR5.iTrafficHandlingPriority ,
- RPacketQoS::ETrafficPriorityUnspecified);
- ASSERT_EQUALS(packetR5.iTransferDelay , 0);
- ASSERT_EQUALS(packetR5.iGuaranteedRate.iDownlinkRate, 0);
- ASSERT_EQUALS(packetR5.iGuaranteedRate.iUplinkRate , 0);
-
- RPacketQoS::TQoSR99_R4Negotiated packetR99;
- TPckg< RPacketQoS::TQoSR99_R4Negotiated > profilePckgR99 = packetR99;
- packetQoS.GetProfileParameters(requestStatus, profilePckgR99);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- ASSERT_EQUALS(packetR99.iTrafficClass ,
- RPacketQoS::ETrafficClassUnspecified);
- ASSERT_EQUALS(packetR99.iDeliveryOrderReqd ,
- RPacketQoS::EDeliveryOrderUnspecified);
- ASSERT_EQUALS(packetR99.iDeliverErroneousSDU ,
- RPacketQoS::EErroneousSDUDeliveryUnspecified);
- ASSERT_EQUALS(packetR99.iMaxSDUSize , 0);
- ASSERT_EQUALS(packetR99.iMaxRate.iUplinkRate , 0);
- ASSERT_EQUALS(packetR99.iMaxRate.iDownlinkRate , 0);
- ASSERT_EQUALS(packetR99.iBER ,
- RPacketQoS::EBERUnspecified);
- ASSERT_EQUALS(packetR99.iSDUErrorRatio ,
- RPacketQoS::ESDUErrorRatioUnspecified);
- ASSERT_EQUALS(packetR99.iTrafficHandlingPriority ,
- RPacketQoS::ETrafficPriorityUnspecified);
- ASSERT_EQUALS(packetR99.iTransferDelay , 0);
- ASSERT_EQUALS(packetR99.iGuaranteedRate.iDownlinkRate, 0);
- ASSERT_EQUALS(packetR99.iGuaranteedRate.iUplinkRate , 0);
-
- //-------------------------------------------------------------------------
- TPacketQoSGPRSNegotiated packetQoSGPRS;
- TPacketQoSR99_R4Negotiated packetQoSR99_R4;
- TPacketQoSR5Negotiated packetQoSR5;
-
- //-------------------------------------------------------------------------
- // Initialization TPacketQoSGPRSNegotiated
- packetQoSGPRS.iPrecedence = RPacketQoS::EPriorityHighPrecedence;
- packetQoSGPRS.iDelay = RPacketQoS::EDelayClass3;
- packetQoSGPRS.iReliability = RPacketQoS::EReliabilityClass2;
- packetQoSGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput16000;
- packetQoSGPRS.iMeanThroughput = RPacketQoS::EMeanThroughput100000;
-
- //-------------------------------------------------------------------------
- // Initialization packetQoSR99_R4
- packetQoSR99_R4.iTrafficClass = RPacketQoS::ETrafficClassBackground;
- packetQoSR99_R4.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
- packetQoSR99_R4.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
- packetQoSR99_R4.iMaxSDUSize = 10;
- packetQoSR99_R4.iMaxRate.iUplinkRate = 20;
- packetQoSR99_R4.iMaxRate.iDownlinkRate = 100;
- packetQoSR99_R4.iBER = RPacketQoS::EBERSixPerHundredMillion;
- packetQoSR99_R4.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
- packetQoSR99_R4.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
- packetQoSR99_R4.iTransferDelay = 1000;
- packetQoSR99_R4.iGuaranteedRate.iDownlinkRate = 5;
- packetQoSR99_R4.iGuaranteedRate.iUplinkRate = 7;
-
- //-------------------------------------------------------------------------
- // Initialization packetQoSR5
- packetQoSR5.iSignallingIndication = ETrue;
- packetQoSR5.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorSpeech;
- packetQoSR5.iTrafficClass = RPacketQoS::ETrafficClassBackground;
- packetQoSR5.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
- packetQoSR5.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
- packetQoSR5.iMaxSDUSize = 12;
- packetQoSR5.iMaxRate.iUplinkRate = 22;
- packetQoSR5.iMaxRate.iDownlinkRate = 102;
- packetQoSR5.iBER = RPacketQoS::EBERSixPerHundredMillion;
- packetQoSR5.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
- packetQoSR5.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
- packetQoSR5.iTransferDelay = 1002;
- packetQoSR5.iGuaranteedRate.iDownlinkRate = 7;
- packetQoSR5.iGuaranteedRate.iUplinkRate = 9;
-
- TMockLtsyPacketQoSData1< TInfoName > mockData(packetQoSGPRS, packetQoSR99_R4,
- packetQoSR5 , contextName);
- mockData.SerialiseL(data);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // TEST RPacketQoS::GetProfileParameters again, this time CTSY
- // will get result from the cache for RPacketQoS::TQoSGPRSNegotiated.
- //-------------------------------------------------------------------------
-
- packetQoS.GetProfileParameters(requestStatus, profilePckgGPRS);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- ASSERT_EQUALS(packetQoSGPRS.iPrecedence , packetGPRS.iPrecedence );
- ASSERT_EQUALS(packetQoSGPRS.iDelay , packetGPRS.iDelay );
- ASSERT_EQUALS(packetQoSGPRS.iReliability , packetGPRS.iReliability );
- ASSERT_EQUALS(packetQoSGPRS.iPeakThroughput, packetGPRS.iPeakThroughput);
- ASSERT_EQUALS(packetQoSGPRS.iMeanThroughput, packetGPRS.iMeanThroughput);
-
- //-------------------------------------------------------------------------
- // TEST RPacketQoS::GetProfileParameters again, this time CTSY
- // will get result from the cache for RPacketQoS::TQoSR5Negotiated.
- //-------------------------------------------------------------------------
-
- packetQoS.GetProfileParameters(requestStatus, profilePckgR5);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- ASSERT_EQUALS(packetQoSR5.iSignallingIndication , packetR5.iSignallingIndication );
- ASSERT_EQUALS(packetQoSR5.iSourceStatisticsDescriptor , packetR5.iSourceStatisticsDescriptor );
- ASSERT_EQUALS(packetQoSR5.iTrafficClass , packetR5.iTrafficClass );
- ASSERT_EQUALS(packetQoSR5.iDeliveryOrderReqd , packetR5.iDeliveryOrderReqd );
- ASSERT_EQUALS(packetQoSR5.iDeliverErroneousSDU , packetR5.iDeliverErroneousSDU );
- ASSERT_EQUALS(packetQoSR5.iMaxSDUSize , packetR5.iMaxSDUSize );
- ASSERT_EQUALS(packetQoSR5.iMaxRate.iUplinkRate , packetR5.iMaxRate.iUplinkRate );
- ASSERT_EQUALS(packetQoSR5.iMaxRate.iDownlinkRate , packetR5.iMaxRate.iDownlinkRate );
- ASSERT_EQUALS(packetQoSR5.iBER , packetR5.iBER );
- ASSERT_EQUALS(packetQoSR5.iSDUErrorRatio , packetR5.iSDUErrorRatio );
- ASSERT_EQUALS(packetQoSR5.iTrafficHandlingPriority , packetR5.iTrafficHandlingPriority );
- ASSERT_EQUALS(packetQoSR5.iTransferDelay , packetR5.iTransferDelay );
- ASSERT_EQUALS(packetQoSR5.iGuaranteedRate.iDownlinkRate, packetR5.iGuaranteedRate.iDownlinkRate);
- ASSERT_EQUALS(packetQoSR5.iGuaranteedRate.iUplinkRate , packetR5.iGuaranteedRate.iUplinkRate );
-
- //-------------------------------------------------------------------------
- // TEST RPacketQoS::GetProfileParameters again, this time CTSY
- // will get result from the cache for RPacketQoS::TQoSR99_R4Negotiated.
- //-------------------------------------------------------------------------
-
- packetQoS.GetProfileParameters(requestStatus, profilePckgR99);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- ASSERT_EQUALS(packetQoSR99_R4.iTrafficClass , packetR99.iTrafficClass );
- ASSERT_EQUALS(packetQoSR99_R4.iDeliveryOrderReqd , packetR99.iDeliveryOrderReqd );
- ASSERT_EQUALS(packetQoSR99_R4.iDeliverErroneousSDU , packetR99.iDeliverErroneousSDU );
- ASSERT_EQUALS(packetQoSR99_R4.iMaxSDUSize , packetR99.iMaxSDUSize );
- ASSERT_EQUALS(packetQoSR99_R4.iMaxRate.iUplinkRate , packetR99.iMaxRate.iUplinkRate );
- ASSERT_EQUALS(packetQoSR99_R4.iMaxRate.iDownlinkRate , packetR99.iMaxRate.iDownlinkRate );
- ASSERT_EQUALS(packetQoSR99_R4.iBER , packetR99.iBER );
- ASSERT_EQUALS(packetQoSR99_R4.iSDUErrorRatio , packetR99.iSDUErrorRatio );
- ASSERT_EQUALS(packetQoSR99_R4.iTrafficHandlingPriority , packetR99.iTrafficHandlingPriority );
- ASSERT_EQUALS(packetQoSR99_R4.iTransferDelay , packetR99.iTransferDelay );
- ASSERT_EQUALS(packetQoSR99_R4.iGuaranteedRate.iDownlinkRate, packetR99.iGuaranteedRate.iDownlinkRate);
- ASSERT_EQUALS(packetQoSR99_R4.iGuaranteedRate.iUplinkRate , packetR99.iGuaranteedRate.iUplinkRate );
-
- CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
- CleanupStack::PopAndDestroy(3, this); // data, this, expectData
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QGPP-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileParameters with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::GetProfileParameters with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetProfileParameters0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketQoS::GetProfileParameters
- //-------------------------------------------------------------------------
-
- RPacketQoS::TQoSCDMA2000Negotiated packetCDMA2000;
- TPckg< RPacketQoS::TQoSCDMA2000Negotiated > profilePckgCDMA2000 = packetCDMA2000;
- packetQoS.GetProfileParameters(requestStatus, profilePckgCDMA2000);
- User::WaitForRequest(requestStatus);
- TInt error = requestStatus.Int();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketQoS::GetProfileParameters
- //-------------------------------------------------------------------------
-
- TBuf8<1> nullDescriptor;
- packetQoS.GetProfileParameters(requestStatus, nullDescriptor);
- User::WaitForRequest(requestStatus);
- error = requestStatus.Int();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QGPP-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::GetProfileParameters
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketQoS::GetProfileParameters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetProfileParameters0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
- TName profileName2;
- TName profileName3;
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- // Open third client
- RTelServer telServer3;
- ret = telServer3.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer3);
-
- RMobilePhone phone2;
- ret = phone2.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- RMobilePhone phone3;
- ret = phone3.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone3);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- RPacketService packetService3;
- ret = packetService3.Open(phone3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService3);
-
- // Open first context
- TInfoName contextId;
- RPacketContext packetContext;
- ret = packetContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewContext(packetService2, contextId2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- // Open third context
- TInfoName contextId3;
- RPacketContext packetContext3;
- ret = packetContext3.OpenNewContext(packetService3, contextId3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext3);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- RPacketQoS packetQoS2;
- ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS2);
-
- RPacketQoS packetQoS3;
- ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS3);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketQoS::GetProfileParameters
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus1;
- TRequestStatus requestStatus2;
- TRequestStatus requestStatus3;
-
- RPacketQoS::TQoSGPRSNegotiated packetGPRS;
- TPckg< RPacketQoS::TQoSGPRSNegotiated > profilePckgGPRS = packetGPRS;
- packetQoS.GetProfileParameters(requestStatus1, profilePckgGPRS);
-
- RPacketQoS::TQoSR99_R4Negotiated packetR99;
- TPckg< RPacketQoS::TQoSR99_R4Negotiated > profilePckgR99 = packetR99;
- packetQoS2.GetProfileParameters(requestStatus2, profilePckgR99);
-
- RPacketQoS::TQoSR5Negotiated packetR5;
- TPckg< RPacketQoS::TQoSR5Negotiated > profilePckgR5 = packetR5;
- packetQoS3.GetProfileParameters(requestStatus3, profilePckgR5);
-
- User::WaitForRequest(requestStatus1);
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- User::WaitForRequest(requestStatus3);
- ASSERT_EQUALS(KErrNone, requestStatus3.Int());
-
- CleanupStack::PopAndDestroy(13);
- CleanupStack::PopAndDestroy(2, this); // this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::NotifyProfileChanged
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::NotifyProfileChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestNotifyProfileChanged0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestNotify;
- TRequestStatus mockLtsyStatus;
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketQoS::NotifyProfileChanged when result is not cached.
- //-------------------------------------------------------------------------
-
- RPacketQoS::TQoSR5Negotiated qosR5Negotiated;
- TPckg< RPacketQoS::TQoSR5Negotiated > pckgQoSR5Negotiated(qosR5Negotiated);
-
- packetQoS.NotifyProfileChanged(requestNotify, pckgQoSR5Negotiated);
-
- ChangeProfileDataL<RPacketQoS::TQoSR5Requested>(packetContext, packetQoS, contextName, data);
-
- User::WaitForRequest(requestNotify);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestNotify.Int());
-
- ASSERT_EQUALS(qosR5Negotiated.iSignallingIndication , 1 );
- ASSERT_EQUALS(qosR5Negotiated.iSourceStatisticsDescriptor , RPacketQoS::ESourceStatisticsDescriptorSpeech);
- ASSERT_EQUALS(qosR5Negotiated.iTrafficClass , RPacketQoS::ETrafficClassStreaming );
- ASSERT_EQUALS(qosR5Negotiated.iDeliveryOrderReqd , RPacketQoS::EDeliveryOrderRequired );
- ASSERT_EQUALS(qosR5Negotiated.iDeliverErroneousSDU , RPacketQoS::EErroneousSDUDeliveryRequired );
- ASSERT_EQUALS(qosR5Negotiated.iMaxSDUSize , 0x100 );
- ASSERT_EQUALS(qosR5Negotiated.iMaxRate.iUplinkRate , 10000 );
- ASSERT_EQUALS(qosR5Negotiated.iMaxRate.iDownlinkRate , 10000 );
- ASSERT_EQUALS(qosR5Negotiated.iBER , RPacketQoS::EBEROnePerHundredThousand );
- ASSERT_EQUALS(qosR5Negotiated.iSDUErrorRatio , RPacketQoS::ESDUErrorRatioOnePerTenThousand );
- ASSERT_EQUALS(qosR5Negotiated.iTrafficHandlingPriority , RPacketQoS::ETrafficPriority2 );
- ASSERT_EQUALS(qosR5Negotiated.iTransferDelay , 1000 );
- ASSERT_EQUALS(qosR5Negotiated.iGuaranteedRate.iDownlinkRate, 1000 );
- ASSERT_EQUALS(qosR5Negotiated.iGuaranteedRate.iUplinkRate , 1000 );
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketQoS::NotifyProfileChanged
- // from LTSY.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketQoS::NotifyProfileChanged
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketQoS::NotifyProfileChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestNotifyProfileChanged0002L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketQoS::NotifyProfileChanged
- //-------------------------------------------------------------------------
- RPacketQoS::TQoSGPRSNegotiated qosGPRSNegotiated;
- TPckg< RPacketQoS::TQoSGPRSNegotiated > pckgQoSGPRSNegotiated(qosGPRSNegotiated);
-
- TRequestStatus requestNotify;
- packetQoS.NotifyProfileChanged(requestNotify, pckgQoSGPRSNegotiated);
-
- packetQoS.CancelAsyncRequest(EPacketQoSNotifyProfileChanged);
-
- User::WaitForRequest(requestNotify);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrCancel, requestNotify.Int());
-
- CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
- CleanupStack::PopAndDestroy(2); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::NotifyProfileChanged with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::NotifyProfileChanged with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestNotifyProfileChanged0003L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestNotify;
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketQoS::NotifyProfileChanged
- //-------------------------------------------------------------------------
-
- RPacketQoS::TQoSCDMA2000Negotiated qosCDMA2000Negotiated;
- TPckg< RPacketQoS::TQoSCDMA2000Negotiated > pckgQoSCDMA2000Negotiated = qosCDMA2000Negotiated;
-
- packetQoS.NotifyProfileChanged(requestNotify, pckgQoSCDMA2000Negotiated);
-
- User::WaitForRequest(requestNotify);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestNotify.Int());
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketQoS::NotifyProfileChanged
- //-------------------------------------------------------------------------
-
- TBuf8<1> nullDes;
-
- packetQoS.NotifyProfileChanged(requestNotify, nullDes);
-
- User::WaitForRequest(requestNotify);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestNotify.Int());
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RPacketQoS::NotifyProfileChanged
- //-------------------------------------------------------------------------
-
- TPacketDataConfigBase packetGPRS;
- TPckg< TPacketDataConfigBase > outOfBoundParameter = packetGPRS;
-
- packetQoS.NotifyProfileChanged(requestNotify, outOfBoundParameter);
-
- User::WaitForRequest(requestNotify);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestNotify.Int());
-
- CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::NotifyProfileChanged
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketQoS::NotifyProfileChanged
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestNotifyProfileChanged0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
- TName profileName2;
- TName profileName3;
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- // Open third client
- RTelServer telServer3;
- ret = telServer3.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer3);
-
- RMobilePhone phone2;
- ret = phone2.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- RMobilePhone phone3;
- ret = phone3.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone3);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- RPacketService packetService3;
- ret = packetService3.Open(phone3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService3);
-
- // Open first context
- TInfoName contextId;
- RPacketContext packetContext;
- ret = packetContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- // Open second context
- TInfoName contextId2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewContext(packetService2, contextId2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- // Open third context
- TInfoName contextId3;
- RPacketContext packetContext3;
- ret = packetContext3.OpenNewContext(packetService3, contextId3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext3);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- RPacketQoS packetQoS2;
- ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS2);
-
- RPacketQoS packetQoS3;
- ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS3);
-
- TRequestStatus requestNotify1;
- TRequestStatus requestNotify2;
- TRequestStatus requestNotify3;
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketQoS::NotifyProfileChanged
- //-------------------------------------------------------------------------
-
- // first client
- RPacketQoS::TQoSGPRSNegotiated qosGPRSNegotiated;
- TPckg< RPacketQoS::TQoSGPRSNegotiated > pckgQoSGPRSNegotiated(qosGPRSNegotiated);
- packetQoS.NotifyProfileChanged(requestNotify1, pckgQoSGPRSNegotiated);
-
- // second client
- RPacketQoS::TQoSR99_R4Negotiated qosR99_R4Negotiated;
- TPckg< RPacketQoS::TQoSR99_R4Negotiated > pckgQoSR99_R4Negotiated(qosR99_R4Negotiated);
- packetQoS2.NotifyProfileChanged(requestNotify2, pckgQoSR99_R4Negotiated);
-
- // third client
- RPacketQoS::TQoSR5Negotiated qosR5Negotiated;
- TPckg< RPacketQoS::TQoSR5Negotiated > pckgQoSR5Negotiated(qosR5Negotiated);
- packetQoS3.NotifyProfileChanged(requestNotify3, pckgQoSR5Negotiated);
-
- ChangeProfileDataL<RPacketQoS::TQoSGPRSRequested>(packetContext, packetQoS, contextId, data);
- User::WaitForRequest(requestNotify1);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestNotify1.Int());
-
- ChangeProfileDataL<RPacketQoS::TQoSR99_R4Requested>(packetContext2, packetQoS2, contextId2, data);
- User::WaitForRequest(requestNotify2);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestNotify2.Int());
-
- ChangeProfileDataL<RPacketQoS::TQoSR5Requested>(packetContext3, packetQoS3, contextId3, data);
- User::WaitForRequest(requestNotify3);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestNotify3.Int());
-
- CleanupStack::PopAndDestroy(13);
- CleanupStack::PopAndDestroy(2, this); // this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::SetProfileParameters
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::SetProfileParameters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestSetProfileParameters0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
- TRequestStatus mockLtsyStatus;
-
- RPacketContext::TContextStatus contextStatus;
-
- RPacketQoS::TQoSGPRSRequested packetGPRS;
- TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
-
- packetGPRS.iReqPrecedence = RPacketQoS::EPriorityLowPrecedence;
- packetGPRS.iMinPrecedence = RPacketQoS::EPriorityLowPrecedence;
- packetGPRS.iReqDelay = RPacketQoS::EDelay360ms;
- packetGPRS.iMinDelay = RPacketQoS::EDelay40ms;
- packetGPRS.iReqReliability = RPacketQoS::EReliabilityClass3;
- packetGPRS.iMinReliability = RPacketQoS::EReliabilityClass4;
- packetGPRS.iReqPeakThroughput = RPacketQoS::EPeakThroughput32000;
- packetGPRS.iMinPeakThroughput = RPacketQoS::EPeakThroughput32000;
- packetGPRS.iReqMeanThroughput = RPacketQoS::EMeanThroughput500000;
- packetGPRS.iMinMeanThroughput = RPacketQoS::EMeanThroughput1000000;
-
- packetContext.GetStatus(contextStatus);
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
- ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
-
- packetContext.GetConfig(requestStatus, pckgContextConfig);
- User::WaitForRequest(requestStatus);
-
- TInfoName primaryContextName;
-
- TContextParams contextParams;
- contextParams.iContextName = contextName;
- contextParams.iContextType = contextConfig.iNWIContext;
- contextParams.iPdpType = contextConfig.iPdpType;
- contextParams.iPrimaryContextName = primaryContextName;
- contextParams.iContextStatus = contextStatus;
-
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
- expExpect(contextParams, packetGPRS);
- expExpect.SerialiseL(expectData);
-
- TMockLtsyData1< TInfoName > contexName(contextName);
- contexName.SerialiseL(completeData);
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrGeneral, completeData);
-
- packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketQoS::SetProfileParameters when result is not cached.
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, completeData);
-
- packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketQoS::SetProfileParameters
- // from LTSY.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, completeData, 0);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST for coverage increasing
- //-------------------------------------------------------------------------
-
- struct TContextMisc completeMisc;
- completeMisc.iStatus = RPacketContext::EStatusActivating;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextName, completeMisc);
- ltsyData.SerialiseL(data);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //refresh data for ExpectL, as iStatus was changed
- packetContext.GetStatus(contextStatus);
- contextParams.iContextStatus = contextStatus;
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
- expExpect2(contextParams, packetGPRS);
- expectData.Close();
- expExpect2.SerialiseL(expectData);
-
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
- packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST coverage increasing
- //-------------------------------------------------------------------------
-
- completeMisc.iStatus = RPacketContext::EStatusActive;
- TMockLtsyData2 <TInfoName, TContextMisc> ltsyData2(contextName, completeMisc);
- data.Close();
- ltsyData2.SerialiseL(data);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- //refresh data for ExpectL, as iStatus was changed
- packetContext.GetStatus(contextStatus);
- contextParams.iContextStatus = contextStatus;
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
- expExpect3(contextParams, packetGPRS);
- expectData.Close();
- expExpect3.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
- //iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data);
-
- packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData, KErrNotSupported);
-
- packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- AssertMockLtsyStatusL();
-
-
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(4, this); // data, this,expectData, completeData
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketQoS::SetProfileParameters
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketQoS::SetProfileParameters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestSetProfileParameters0002L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
-
- RPacketQoS::TQoSGPRSRequested packetGPRS;
- TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
-
- RPacketContext::TContextStatus contextStatus;
- packetContext.GetStatus(contextStatus);
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
- ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
-
- packetContext.GetConfig(requestStatus, pckgContextConfig);
- User::WaitForRequest(requestStatus);
-
- TInfoName primaryContextName;
-
- TContextParams contextParams;
- contextParams.iContextName = contextName;
- contextParams.iContextType = contextConfig.iNWIContext;
- contextParams.iPdpType = contextConfig.iPdpType;
- contextParams.iPrimaryContextName = primaryContextName;
- contextParams.iContextStatus = contextStatus;
-
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
- expExpect(contextParams, packetGPRS);
- expExpect.SerialiseL(expectData);
-
- TMockLtsyData1< TInfoName > contexName(contextName);
- contexName.SerialiseL(data);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketQoS::SetProfileParameters
- //-------------------------------------------------------------------------
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data, 10);
-
- packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
-
- packetQoS.CancelAsyncRequest(EPacketQoSSetProfileParams);
-
- User::WaitForRequest(requestStatus);
-
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- User::WaitForRequest(mockLtsyStatus);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(3, this); // data, this, expectData
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::SetProfileParameters with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::SetProfileParameters with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestSetProfileParameters0003L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
-
- RPacketContext::TContextStatus contextStatus;
- packetContext.GetStatus(contextStatus);
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
- ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
-
- packetContext.GetConfig(requestStatus, pckgContextConfig);
- User::WaitForRequest(requestStatus);
-
- TInfoName primaryContextName;
-
- TContextParams contextParams;
- contextParams.iContextName = contextName;
- contextParams.iContextType = contextConfig.iNWIContext;
- contextParams.iPdpType = contextConfig.iPdpType;
- contextParams.iPrimaryContextName = primaryContextName;
- contextParams.iContextStatus = contextStatus;
-
- TMockLtsyData1< TInfoName > dataContextName(contextName);
- dataContextName.SerialiseL(data);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::AddPacketFilter
- //-------------------------------------------------------------------------
-
- // wrong version of parameter
- RPacketQoS::TQoSCDMA2000Requested packetCDMA2000;
- TPckg< RPacketQoS::TQoSCDMA2000Requested > pckgCDMA2000 = packetCDMA2000;
-
- packetQoS.SetProfileParameters(requestStatus, pckgCDMA2000);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketContext::AddPacketFilter
- //-------------------------------------------------------------------------
-
- TBuf8<1> nullDescriptor;
-
- packetQoS.SetProfileParameters(requestStatus, nullDescriptor);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RPacketQoS::SetProfileParameters
- //-------------------------------------------------------------------------
-
- TPacketDataConfigBase packetGPRS;
- TPckg< TPacketDataConfigBase > parameter = packetGPRS;
-
- packetQoS.SetProfileParameters(requestStatus, parameter);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::SetProfileParameters
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketQoS::SetProfileParameters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestSetProfileParameters0004L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data1;
- CleanupClosePushL(data1);
-
- RBuf8 data2;
- CleanupClosePushL(data2);
-
- RBuf8 data3;
- CleanupClosePushL(data3);
-
- TName profileName1;
- TName profileName2;
- TName profileName3;
-
- RBuf8 expectData1;
- CleanupClosePushL(expectData1);
-
- 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);
-
- // Open third client
- RTelServer telServer3;
- ret = telServer3.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer3);
-
- RMobilePhone phone3;
- ret = phone3.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone3);
-
- RPacketService packetService1;
- OpenPacketServiceL(packetService1);
- CleanupClosePushL(packetService1);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- RPacketService packetService3;
- ret = packetService3.Open(phone3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService3);
-
- TInfoName contextName1;
- RPacketContext packetContext1;
- ret = packetContext1.OpenNewContext(packetService1, contextName1);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext1);
-
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewContext(packetService2, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- TInfoName contextName3;
- RPacketContext packetContext3;
- ret = packetContext3.OpenNewContext(packetService3, contextName3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext3);
-
- RPacketQoS packetQoS1;
- ret = packetQoS1.OpenNewQoS(packetContext1, profileName1);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS1);
-
- RPacketQoS packetQoS2;
- ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS2);
-
- RPacketQoS packetQoS3;
- ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS3);
-
- TRequestStatus requestStatus;
-
- // for packetContext1
- RPacketQoS::TQoSGPRSRequested packetGPRS;
- TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
-
- RPacketContext::TContextStatus contextStatus1;
- packetContext1.GetStatus(contextStatus1);
-
- RPacketContext::TContextConfigGPRS contextConfig1;
- TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig1 =
- ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig1;
-
- packetContext1.GetConfig(requestStatus, pckgContextConfig1);
- User::WaitForRequest(requestStatus);
-
- TInfoName primaryContextName1;
-
- TContextParams contextParams1;
- contextParams1.iContextName = contextName1;
- contextParams1.iContextType = contextConfig1.iNWIContext;
- contextParams1.iPdpType = contextConfig1.iPdpType;
- contextParams1.iPrimaryContextName = primaryContextName1;
- contextParams1.iContextStatus = contextStatus1;
-
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
- expExpect1(contextParams1, packetGPRS);
- expExpect1.SerialiseL(expectData1);
-
- TMockLtsyData1< TInfoName > dataContextName1(contextName1);
- dataContextName1.SerialiseL(data1);
-
- // for packetContext2
- RPacketQoS::TQoSR99_R4Requested packetR99_R4;
- TPckg< RPacketQoS::TQoSR99_R4Requested > profilePckgR99_R4 = packetR99_R4;
-
- RPacketContext::TContextStatus contextStatus2;
- packetContext2.GetStatus(contextStatus2);
-
- RPacketContext::TContextConfigR99_R4 contextConfig2;
- TPckg< RPacketContext::TContextConfigR99_R4 > pckgContextConfig2 =
- ( TPckg< RPacketContext::TContextConfigR99_R4 > ) contextConfig2;
-
- packetContext2.GetConfig(requestStatus, pckgContextConfig2);
- User::WaitForRequest(requestStatus);
-
- TInfoName primaryContextName2;
-
- TContextParams contextParams2;
- contextParams2.iContextName = contextName2;
- contextParams2.iContextType = contextConfig2.iNWIContext;
- contextParams2.iPdpType = contextConfig2.iPdpType;
- contextParams2.iPrimaryContextName = primaryContextName2;
- contextParams2.iContextStatus = contextStatus2;
-
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSR99_R4Requested>
- expExpect2(contextParams2, packetR99_R4);
- expExpect2.SerialiseL(expectData2);
-
- TMockLtsyData1< TInfoName > dataContextName2(contextName2);
- dataContextName2.SerialiseL(data2);
-
- // for packetContext3
- RPacketQoS::TQoSR5Requested packetR5;
- TPckg< RPacketQoS::TQoSR5Requested > profilePckgR5 = packetR5;
-
- RPacketContext::TContextStatus contextStatus3;
- packetContext3.GetStatus(contextStatus3);
-
- RPacketContext::TContextConfigGPRS contextConfig3;
- TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig3 =
- ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig3;
-
- packetContext3.GetConfig(requestStatus, pckgContextConfig3);
- User::WaitForRequest(requestStatus);
-
- TInfoName primaryContextName3;
-
- TContextParams contextParams3;
- contextParams3.iContextName = contextName3;
- contextParams3.iContextType = contextConfig3.iNWIContext;
- contextParams3.iPdpType = contextConfig3.iPdpType;
- contextParams3.iPrimaryContextName = primaryContextName3;
- contextParams3.iContextStatus = contextStatus3;
-
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSR5Requested>
- expExpect3(contextParams3, packetR5);
- expExpect3.SerialiseL(expectData3);
-
- TMockLtsyData1< TInfoName > dataContextName3(contextName3);
- dataContextName3.SerialiseL(data3);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketQoS::SetProfileParameters
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus1;
- TRequestStatus requestStatus2;
- TRequestStatus requestStatus3;
-
- iMockLTSY.ExpectL (EPacketQoSSetProfileParams, expectData1);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data1);
- packetQoS1.SetProfileParameters(requestStatus1, profilePckgGPRS);
-
- iMockLTSY.ExpectL (EPacketQoSSetProfileParams, expectData2);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data2);
- packetQoS2.SetProfileParameters(requestStatus2, profilePckgR99_R4);
-
- iMockLTSY.ExpectL (EPacketQoSSetProfileParams, expectData3);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data3);
- packetQoS3.SetProfileParameters(requestStatus3, profilePckgR5);
-
- User::WaitForRequest(requestStatus1);
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- User::WaitForRequest(requestStatus3);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus3.Int());
-
- CleanupStack::PopAndDestroy(3); // packetQoS1, packetQoS2, packetQoS3
- CleanupStack::PopAndDestroy(3); // packetContext1, packetContext2, packetContext3
- CleanupStack::PopAndDestroy(3); // packetService1, packetService2, packetService3
- CleanupStack::PopAndDestroy(4); // telServer2, telServer3
- // phone2, phone3
- CleanupStack::PopAndDestroy(7, this); // data1, data2, data3, expectData1,
- // expectData2, expectData3,
- // this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::SetProfileParameters with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::SetProfileParameters and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestSetProfileParameters0005L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
-
- RPacketQoS::TQoSGPRSRequested packetGPRS;
- TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
-
- RPacketContext::TContextStatus contextStatus;
- packetContext.GetStatus(contextStatus);
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
- ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
-
- packetContext.GetConfig(requestStatus, pckgContextConfig);
- User::WaitForRequest(requestStatus);
-
- TInfoName primaryContextName;
-
- TContextParams contextParams;
- contextParams.iContextName = contextName;
- contextParams.iContextType = contextConfig.iNWIContext;
- contextParams.iPdpType = contextConfig.iPdpType;
- contextParams.iPrimaryContextName = primaryContextName;
- contextParams.iContextStatus = contextStatus;
-
- TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
- expExpect(contextParams, packetGPRS);
- expExpect.SerialiseL(expectData);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RPacketQoS::SetProfileParameters
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
-
- packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3); // packetServicem, packetContext, packetQoS
- CleanupStack::PopAndDestroy(3, this); // data, this, expectData
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QGPC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileCapabilities
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::GetProfileCapabilities
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetProfileCapabilities0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketQoS::GetProfileCapabilities when result is not cached.
- //-------------------------------------------------------------------------
-
- RPacketQoS::TQoSCapsGPRS capsGPRS;
- TPckg<RPacketQoS::TQoSCapsGPRS> capsGPRSPckg(capsGPRS);
- packetQoS.GetProfileCapabilities(requestStatus, capsGPRSPckg);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(capsGPRS.iPrecedence, KMmPrecedence);
- ASSERT_EQUALS(capsGPRS.iDelay, KMmDelay);
- ASSERT_EQUALS(capsGPRS.iReliability, KMmReliability);
- ASSERT_EQUALS(capsGPRS.iPeak, KMmPeak);
- ASSERT_EQUALS(capsGPRS.iMean, KMmMean);
-
- RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
- TPckg<RPacketQoS::TQoSCapsR99_R4> capsR99_R4Pckg(capsR99_R4);
- packetQoS.GetProfileCapabilities(requestStatus, capsR99_R4Pckg);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(capsR99_R4.iTrafficClass, KMmTrafficClass);
- ASSERT_EQUALS(capsR99_R4.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
- ASSERT_EQUALS(capsR99_R4.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
- ASSERT_EQUALS(capsR99_R4.iBER, KMmBitErrorRatio);
- ASSERT_EQUALS(capsR99_R4.iSDUErrorRatio, KMmSDUErrorRatio);
- ASSERT_EQUALS(capsR99_R4.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
-
- RPacketQoS::TQoSCapsR5 capsR5;
- TPckg<RPacketQoS::TQoSCapsR5> capsR5Pckg(capsR5);
- packetQoS.GetProfileCapabilities(requestStatus, capsR5Pckg);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(capsR5.iTrafficClass, KMmTrafficClass);
- ASSERT_EQUALS(capsR5.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
- ASSERT_EQUALS(capsR5.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
- ASSERT_EQUALS(capsR5.iBER, KMmBitErrorRatio);
- ASSERT_EQUALS(capsR5.iSDUErrorRatio, KMmSDUErrorRatio);
- ASSERT_EQUALS(capsR5.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
-
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QGPC-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileCapabilities with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::GetProfileCapabilities with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetProfileCapabilities0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketQoS::GetProfileCapabilities
- //-------------------------------------------------------------------------
-
- RPacketQoS::TQoSCapsCDMA2000 capsCDMA2000;
- TPckg<RPacketQoS::TQoSCapsCDMA2000> capsCDMA2000Pckg(capsCDMA2000);
-
- packetQoS.GetProfileCapabilities(requestStatus, capsCDMA2000Pckg);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketQoS::GetProfileCapabilities
- //-------------------------------------------------------------------------
-
- TBuf8<1> nullDescriptor;
- packetQoS.GetProfileCapabilities(requestStatus, nullDescriptor);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QGPC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::GetProfileCapabilities
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketQoS::GetProfileCapabilities
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetProfileCapabilities0004L()
- {
- 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);
-
- // Open 3rd client
- RTelServer telServer3;
- ret = telServer3.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer3);
-
- RMobilePhone phone3;
- ret = phone3.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone3);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketQoS::GetProfileCapabilities
- //-------------------------------------------------------------------------
-
- TName profileName;
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- RPacketQoS packetQoS;
- ret = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS);
-
- TName profileName2;
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- // Open new context
- TInfoName contextName2;
- RPacketContext packetContext2;
- ret = packetContext2.OpenNewContext(packetService2, contextName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext2);
-
- RPacketQoS packetQoS2;
- ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS2);
-
- TName profileName3;
-
- RPacketService packetService3;
- ret = packetService3.Open(phone3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService3);
-
- // Open new context
- TInfoName contextName3;
- RPacketContext packetContext3;
- ret = packetContext3.OpenNewContext(packetService3, contextName3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext3);
-
- RPacketQoS packetQoS3;
- ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetQoS3);
-
- TRequestStatus requestStatus;
-
- RPacketQoS::TQoSCapsGPRS capsGPRS;
- TPckg<RPacketQoS::TQoSCapsGPRS> capsGPRSPckg(capsGPRS);
- packetQoS.GetProfileCapabilities(requestStatus, capsGPRSPckg);
-
- TRequestStatus requestStatus2;
-
- RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
- TPckg<RPacketQoS::TQoSCapsR99_R4> capsR99_R4Pckg(capsR99_R4);
- packetQoS2.GetProfileCapabilities(requestStatus2, capsR99_R4Pckg);
-
- TRequestStatus requestStatus3;
-
- RPacketQoS::TQoSCapsR5 capsR5;
- TPckg<RPacketQoS::TQoSCapsR5> capsR5Pckg(capsR5);
- packetQoS3.GetProfileCapabilities(requestStatus3, capsR5Pckg);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(capsGPRS.iPrecedence, KMmPrecedence);
- ASSERT_EQUALS(capsGPRS.iDelay, KMmDelay);
- ASSERT_EQUALS(capsGPRS.iReliability, KMmReliability);
- ASSERT_EQUALS(capsGPRS.iPeak, KMmPeak);
- ASSERT_EQUALS(capsGPRS.iMean, KMmMean);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(capsR99_R4.iTrafficClass, KMmTrafficClass);
- ASSERT_EQUALS(capsR99_R4.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
- ASSERT_EQUALS(capsR99_R4.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
- ASSERT_EQUALS(capsR99_R4.iBER, KMmBitErrorRatio);
- ASSERT_EQUALS(capsR99_R4.iSDUErrorRatio, KMmSDUErrorRatio);
- ASSERT_EQUALS(capsR99_R4.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
-
- User::WaitForRequest(requestStatus3);
- ASSERT_EQUALS(KErrNone, requestStatus3.Int());
- ASSERT_EQUALS(capsR5.iTrafficClass, KMmTrafficClass);
- ASSERT_EQUALS(capsR5.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
- ASSERT_EQUALS(capsR5.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
- ASSERT_EQUALS(capsR5.iBER, KMmBitErrorRatio);
- ASSERT_EQUALS(capsR5.iSDUErrorRatio, KMmSDUErrorRatio);
- ASSERT_EQUALS(capsR5.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
-
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(3); // packetQoS3, packetContext3, packetService3,
- CleanupStack::PopAndDestroy(3); // packetQoS2, packetContext2, packetService2,
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(6, this); // phone3, telServer3, phone2, telServer2, data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCCNT-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::CreateNewTFT
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::CreateNewTFT
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestCreateNewTFT0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt ret = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- packetContext.CreateNewTFT(requestStatus, 8);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2);
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddPacketFilter
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::AddPacketFilter
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddPacketFilter0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::AddPacketFilter
- // from LTSY.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(requestStatus);
- //send completion
- iMockLTSY.CompleteL(EPacketContextAddPacketFilter, KErrNone);
- // wait for completion
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- RPacketContext::TPacketFilterV2 contextFilter;
- contextFilter.iId = 1;// 1 - 8
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
-
- RPacketContext::TContextConfigGPRS configGPRS;
- CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
- <RPacketContext::TPacketFilterV2>( 1 );
- CleanupStack::PushL(filterArray);
-
- contextFilter.iId = 1;
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData( configGPRS, 0, secContextId, filterArray );
-
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data, KErrNotSupported);
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
-
- User::WaitForRequest(requestStatus);
- //ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50101);
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName(secContextId);
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, data);
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::AddPacketFilter when result is not cached.
- //-------------------------------------------------------------------------
-
- SetContextActiveL(secContextId);
- AssertMockLtsyStatusL();
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- SetContextStatusL(secContextId, RPacketContext::EStatusUnknown);
- AssertMockLtsyStatusL();
-
- filterArray->AppendL( contextFilter );
- contextFilter.iId = 2;
- filterArray->AppendL( contextFilter );
- data.Close();
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
-
- User::WaitForRequest(requestStatus);
- //ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50101);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST D: RPacketContext::AddPacketFilter again, this time CTSY
- // will get result from the cache.
- //-------------------------------------------------------------------------
-
- filterArray->Delete(0);
- contextFilter.iId = 4;
- filterArray->AppendL( contextFilter );
- data.Close();
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::AddPacketFilter
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RPacketContext::AddPacketFilter
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddPacketFilter0002L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RPacketContext::AddPacketFilter
- //-------------------------------------------------------------------------
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RPacketContext::TPacketFilterV2 contextFilter;
- contextFilter.iId = 1;// 1 - 8
- //contextFilter.iEvaluationPrecedenceIndex = 0;
-
- RPacketContext::TContextConfigGPRS configGPRS;
- CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
- <RPacketContext::TPacketFilterV2>( 1 );;
- CleanupStack::PushL(filterArray);
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData( configGPRS, 0, secContextId, filterArray );
-
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName(secContextId);
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 10);
- //iMockLTSY.CompleteL(EPacketContextAddPacketFilter, KErrNone, 10);
-
- TRequestStatus requestStatus;
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
-
- //packetContext.AddPacketFilterCancel();
- packetContext.CancelAsyncRequest(EPacketContextAddPacketFilter);
- packetContext.CancelAsyncRequest(EPacketContextSetConfig);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
- CleanupStack::PopAndDestroy(2); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddPacketFilter with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::AddPacketFilter with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddPacketFilter0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RPacketContext::AddPacketFilter
- //-------------------------------------------------------------------------
-
- RPacketContext::TPacketFilterV2 contextFilter;
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
-
- SetContextActiveL(secContextId);
-
- contextFilter.iId = 0;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 9;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 1;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- SetContextStatusL(secContextId, RPacketContext::EStatusActivating);
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 0;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 9;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- SetContextStatusL(secContextId, RPacketContext::EStatusInactive);
-
- contextFilter.iId = 1;// 1 - 8
- packetPrimContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 0;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 9;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- SetContextStatusL(secContextId, RPacketContext::EStatusUnknown);
-
- contextFilter.iId = 1;// 1 - 8
- packetPrimContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 0;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- contextFilter.iId = 9;// 1 - 8
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketContext::AddPacketFilter
- //-------------------------------------------------------------------------
-
- SetContextActiveL(secContextId);
-
- TBuf8<1> nullDescriptor;
- packetContext.AddPacketFilter(requestStatus, nullDescriptor);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::AddPacketFilter
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::AddPacketFilter
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestAddPacketFilter0004L()
- {
- 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::AddPacketFilter
- //-------------------------------------------------------------------------
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- // Open new context2
- TInfoName contextId2;
- TInfoName secContextId2;
- RPacketContext packetPrimContext2;
- err = packetPrimContext2.OpenNewContext(packetService2, contextId2);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext2);
-
- RPacketContext packetContext2;
- err = packetContext2.OpenNewSecondaryContext(packetService2, contextId2, secContextId2);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus requestStatus;
- TRequestStatus requestStatus2;
-
- RPacketContext::TPacketFilterV2 contextFilter;
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
- contextFilter.iId = 1;// 1 - 8
-
- RPacketContext::TContextConfigGPRS configGPRS;
- CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
- <RPacketContext::TPacketFilterV2>( 1 );;
- CleanupStack::PushL(filterArray);
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData( configGPRS, 0, secContextId, filterArray );
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName(secContextId);
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
-
- RPacketContext::TPacketFilterV2 contextFilter2;
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg2(contextFilter2);
- contextFilter2.iId = 2;// 1 - 8
-
- CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray2 = new ( ELeave ) CArrayFixFlat
- <RPacketContext::TPacketFilterV2>( 1 );;
- CleanupStack::PushL(filterArray2);
- filterArray2->AppendL( contextFilter2 );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData2( configGPRS, 0, secContextId2, filterArray2 );
- data.Close();
- packetFilterData2.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName2(secContextId2);
- data.Close();
- contexName2.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext2.AddPacketFilter(requestStatus2, contextFilterPckg2);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(2); // filterArray2, filterArray
- CleanupStack::PopAndDestroy(3); // packetContext2, packetPrimContext2, packetService2
- CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
- CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCRPF-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemovePacketFilter
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::RemovePacketFilter
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestRemovePacketFilter0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RPacketContext::RemovePacketFilter
- // from LTSY.
- //-------------------------------------------------------------------------
-
- iMockLTSY.NotifyTerminated(requestStatus);
- //send completion
- iMockLTSY.CompleteL(EPacketContextRemovePacketFilter, KErrNone);
- // wait for completion
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::RemovePacketFilter when result is not cached.
- //-------------------------------------------------------------------------
-
- RPacketContext::TPacketFilterV2 contextFilter;
- contextFilter.iId = 1;// 1 - 8
-
- RPacketContext::TContextConfigGPRS configGPRS;
- CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
- <RPacketContext::TPacketFilterV2>( 1 );;
- CleanupStack::PushL(filterArray);
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData( configGPRS, 0, secContextId, filterArray );
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName(secContextId);
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- AssertMockLtsyStatusL();
-
- packetContext.RemovePacketFilter(requestStatus, 1);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST D: RPacketContext::RemovePacketFilter again, this time CTSY
- // will get result from the cache.
- //-------------------------------------------------------------------------
-
- packetContext.RemovePacketFilter(requestStatus, 1);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCRPF-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemovePacketFilter with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::RemovePacketFilter with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestRemovePacketFilter0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RPacketContext::AddPacketFilter
- //-------------------------------------------------------------------------
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- packetContext.RemovePacketFilter(requestStatus, 0);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- packetContext.RemovePacketFilter(requestStatus, 1);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- packetContext.RemovePacketFilter(requestStatus, 9);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(3); // packetService, packetPrimContext, packetContext
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCGPFI-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetPacketFilterInfo
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetPacketFilterInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetPacketFilterInfo0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketContext::GetPacketFilterInfo when result is not cached.
- //-------------------------------------------------------------------------
- RPacketContext::TPacketFilterV2 contextFilter;
- contextFilter.iId = 1;// 1 - 8
-
- RPacketContext::TContextConfigGPRS configGPRS;
- CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
- <RPacketContext::TPacketFilterV2>( 1 );;
- CleanupStack::PushL(filterArray);
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData( configGPRS, 0, secContextId, filterArray );
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName(secContextId);
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- RPacketContext::TPacketFilterV2 packetFilter;
- RPacketContext::TPacketFilterV2Pckg filterInfoPckg(packetFilter);
- packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
- User::WaitForRequest(requestStatus);
-
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(contextFilter.iId , packetFilter.iId );
- ASSERT_EQUALS(contextFilter.iEvaluationPrecedenceIndex , packetFilter.iEvaluationPrecedenceIndex );
- ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddr,
- packetFilter.iSrcAddr ,
- sizeof(RPacketContext::TIPAddress)));
- ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddrSubnetMask,
- packetFilter.iSrcAddrSubnetMask,
- sizeof(RPacketContext::TIPAddress)));
- ASSERT_EQUALS(contextFilter.iProtocolNumberOrNextHeader, packetFilter.iProtocolNumberOrNextHeader);
- ASSERT_EQUALS(contextFilter.iSrcPortMin , packetFilter.iSrcPortMin );
- ASSERT_EQUALS(contextFilter.iSrcPortMax , packetFilter.iSrcPortMax );
- ASSERT_EQUALS(contextFilter.iDestPortMin , packetFilter.iDestPortMin );
- ASSERT_EQUALS(contextFilter.iDestPortMax , packetFilter.iDestPortMax );
- ASSERT_EQUALS(contextFilter.iIPSecSPI , packetFilter.iIPSecSPI );
- ASSERT_EQUALS(contextFilter.iTOSorTrafficClass , packetFilter.iTOSorTrafficClass );
- ASSERT_EQUALS(contextFilter.iFlowLabel , packetFilter.iFlowLabel );
-
- //-------------------------------------------------------------------------
- // TEST D: RPacketContext::GetPacketFilterInfo again, this time CTSY
- // will get result from the cache.
- //-------------------------------------------------------------------------
-
- packetContext.RemovePacketFilter(requestStatus, 1);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- iMockLTSY.NotifyTerminated(requestStatus);
- TBuf8<1> rejectionCode(1);
- TMockLtsyData2< TInfoName, TBuf8<1> > modifyContextData(secContextId, rejectionCode);
- data.Close();
- modifyContextData.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- contextFilter.iId = 2;
- filterArray->Reset();
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData2( configGPRS, 0, secContextId, filterArray );
- data.Close();
- packetFilterData2.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
- User::WaitForRequest(requestStatus);
-
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(contextFilter.iId , packetFilter.iId );
- ASSERT_EQUALS(contextFilter.iEvaluationPrecedenceIndex , packetFilter.iEvaluationPrecedenceIndex );
- ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddr,
- packetFilter.iSrcAddr ,
- sizeof(RPacketContext::TIPAddress)));
- ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddrSubnetMask,
- packetFilter.iSrcAddrSubnetMask,
- sizeof(RPacketContext::TIPAddress)));
- ASSERT_EQUALS(contextFilter.iProtocolNumberOrNextHeader, packetFilter.iProtocolNumberOrNextHeader);
- ASSERT_EQUALS(contextFilter.iSrcPortMin , packetFilter.iSrcPortMin );
- ASSERT_EQUALS(contextFilter.iSrcPortMax , packetFilter.iSrcPortMax );
- ASSERT_EQUALS(contextFilter.iDestPortMin , packetFilter.iDestPortMin );
- ASSERT_EQUALS(contextFilter.iDestPortMax , packetFilter.iDestPortMax );
- ASSERT_EQUALS(contextFilter.iIPSecSPI , packetFilter.iIPSecSPI );
- ASSERT_EQUALS(contextFilter.iTOSorTrafficClass , packetFilter.iTOSorTrafficClass );
- ASSERT_EQUALS(contextFilter.iFlowLabel , packetFilter.iFlowLabel );
-
- CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCGPFI-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetPacketFilterInfo with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::GetPacketFilterInfo with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetPacketFilterInfo0003L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RPacketContext::GetPacketFilterInfo
- //-------------------------------------------------------------------------
-
- RPacketContext::TPacketFilterV2 packetFilter;
- RPacketContext::TPacketFilterV2Pckg filterInfoPckg(packetFilter);
-
- packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RPacketContext::GetPacketFilterInfo
- //-------------------------------------------------------------------------
-
- TInt wrongPacketFilter;
- TPckg<TInt> wrongFilterInfoPckg(wrongPacketFilter);
-
- packetContext.GetPacketFilterInfo(requestStatus, 0, wrongFilterInfoPckg);
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketContext::GetPacketFilterInfo
- //-------------------------------------------------------------------------
- TBuf8<1> nullDescriptor;
- packetContext.GetPacketFilterInfo(requestStatus, 0, nullDescriptor);
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrArgument, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCGPFI-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetPacketFilterInfo
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RPacketContext::GetPacketFilterInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestGetPacketFilterInfo0004L()
- {
- 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);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextId;
- TInfoName secContextId;
- RPacketContext packetPrimContext;
- TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext);
-
- RPacketContext packetContext;
- err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- RPacketService packetService2;
- ret = packetService2.Open(phone2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(packetService2);
-
- // Open new context
- TInfoName contextId2;
- TInfoName secContextId2;
- RPacketContext packetPrimContext2;
- err = packetPrimContext2.OpenNewContext(packetService2, contextId2);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetPrimContext2);
-
- RPacketContext packetContext2;
- err = packetContext2.OpenNewSecondaryContext(packetService2, contextId2, secContextId2);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext2);
-
- TRequestStatus requestStatus2;
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RPacketContext::GetPacketFilterInfo
- //-------------------------------------------------------------------------
-
- RPacketContext::TPacketFilterV2 contextFilter;
- contextFilter.iId = 1;// 1 - 8
-
- RPacketContext::TContextConfigGPRS configGPRS;
- CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
- <RPacketContext::TPacketFilterV2>( 1 );;
- CleanupStack::PushL(filterArray);
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData( configGPRS, 0, secContextId, filterArray );
- packetFilterData.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName(secContextId);
- data.Close();
- contexName.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
- packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- //ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50101);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- contextFilter.iId = 2;// 1 - 8
- filterArray->Reset();
- filterArray->AppendL( contextFilter );
-
- TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
- packetFilterData2( configGPRS, 0, secContextId2, filterArray );
- data.Close();
- packetFilterData2.SerialiseL(data);
- iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
-
- TMockLtsyData1<TInfoName > contexName2(secContextId2);
- data.Close();
- contexName2.SerialiseL(data);
- iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
-
- packetContext2.AddPacketFilter(requestStatus, contextFilterPckg);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- RPacketContext::TPacketFilterV2 packetFilter;
- RPacketContext::TPacketFilterV2Pckg filterInfoPckg(packetFilter);
- packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
-
- RPacketContext::TPacketFilterV2 packetFilter2;
- RPacketContext::TPacketFilterV2Pckg filterInfoPckg2(packetFilter2);
- packetContext2.GetPacketFilterInfo(requestStatus2, 0, filterInfoPckg2);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- contextFilter.iId = 1;// 1 - 8
- ASSERT_EQUALS(contextFilterPckg, filterInfoPckg);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- contextFilter.iId = 2;// 1 - 8
- ASSERT_EQUALS(contextFilterPckg, filterInfoPckg2);
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(4); // packetContext2, packetPrimContext2, packetService2, filterArray
- CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
- CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-PCDT-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketContext::DeleteTFT
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketContext::DeleteTFT
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestDeleteTFT0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- packetContext.OpenNewContext(packetService, contextName);
- CleanupClosePushL(packetContext);
-
- TRequestStatus requestStatus;
-
- packetContext.DeleteTFT(requestStatus);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2);
- CleanupStack::PopAndDestroy(2, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QONQ-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenNewQoS
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::OpenNewQoS
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestOpenNewQoS0001L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt err = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketQoS::OpenNewQoS when result is not cached.
- //-------------------------------------------------------------------------
-
- RPacketQoS packetQoS;
- TInfoName profileName;
- err = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, err);
- packetQoS.Close();
-
- //-------------------------------------------------------------------------
- // TEST: Call OpenNewQoS without prior clothing
- // after successful completion of previous call
- //-------------------------------------------------------------------------
-
- err = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, err);
- TInfoName profileName2;
- err = packetQoS.OpenNewQoS(packetContext, profileName2);
- // never get here because of etel panic 11 (EEtelPanicHandleNotClosed)
- ASSERT_TRUE( KErrNone != err );
- packetQoS.Close();
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QONQ-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenNewQoS with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::OpenNewQoS with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestOpenNewQoS0003L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt err = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RPacketQoS::OpenNewQoS
- //-------------------------------------------------------------------------
-
- TBuf<1> buf;
- RPacketQoS packetQoS;
- err = packetQoS.OpenNewQoS(packetContext, buf);
- ASSERT_EQUALS(KErrOverflow, err);
- packetQoS.Close();
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2); // packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QOEQ-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenExistingQoS
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::OpenExistingQoS
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestOpenExistingQoS0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt err = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- // Open new QoS
- RPacketQoS packetQoS;
- TInfoName profileName;
- err = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetQoS);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RPacketQoS::OpenExistingQoS when result is not cached.
- //-------------------------------------------------------------------------
-
- RPacketQoS existingQoS;
- err = existingQoS.OpenExistingQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, err);
- existingQoS.Close();
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QOEQ-0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenExistingQoS with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::OpenExistingQoS with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestOpenExistingQoS0003L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt err = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- // Open new QoS
- RPacketQoS packetQoS;
- TInfoName profileName;
- err = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetQoS);
-
- //-------------------------------------------------------------------------
- // Test passing out of bounds parameters to
- // RPacketQoS::OpenExistingQoS
- //-------------------------------------------------------------------------
-
- TInfoName name;
-
- RPacketQoS existingQoS;
- name.Copy(_L("What's up"));
- err = existingQoS.OpenExistingQoS(packetContext, name);
- ASSERT_EQUALS(KErrNotFound, err);
- existingQoS.Close();
-
- name.Copy(_L(":"));
- err = existingQoS.OpenExistingQoS(packetContext, name);
- ASSERT_EQUALS(KErrNotFound, err);
- existingQoS.Close();
-
- name.Copy(_L("What's up:"));
- err = existingQoS.OpenExistingQoS(packetContext, name);
- ASSERT_EQUALS(KErrNotFound, err);
- existingQoS.Close();
-
- //-------------------------------------------------------------------------
- // Test passing wrong descriptor size to parameter in
- // RPacketQoS::OpenExistingQoS
- //-------------------------------------------------------------------------
-
- TBuf<1> buf;
- err = existingQoS.OpenExistingQoS(packetContext, buf);
- ASSERT_EQUALS(KErrNotFound, err);
- existingQoS.Close();
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-PKTQ-QOEQ-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenExistingQoS with out of bounds parameters
-@SYMTestPriority High
-@SYMTestActions Invokes RPacketQoS::OpenExistingQoS with out of bounds parameters
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyPacketQoSFU::TestOpenExistingQoS0004L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RPacketService packetService;
- OpenPacketServiceL(packetService);
- CleanupClosePushL(packetService);
-
- // Open new context
- TInfoName contextName;
- RPacketContext packetContext;
- TInt err = packetContext.OpenNewContext(packetService, contextName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetContext);
-
- // Open new QoS
- RPacketQoS packetQoS;
- TInfoName profileName;
- err = packetQoS.OpenNewQoS(packetContext, profileName);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(packetQoS);
-
- //-------------------------------------------------------------------------
- // Test passing out of bounds parameters to
- // RPacketQoS::OpenExistingQoS
- //-------------------------------------------------------------------------
-
- TInfoName name;
-
- RPacketQoS existingQoS;
- name.Copy(_L(":"));
- name.Append(profileName);
-
- err = existingQoS.OpenExistingQoS(packetContext, name);
- ASSERT_EQUALS(KErrNotFound, err);
-
- existingQoS.Close();
-
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-template< class T >
-void CCTsyPacketQoSFU::ChangeProfileDataL(RPacketContext& aPacketContext, RPacketQoS& aPacketQoS,
- TInfoName& aContextName, RBuf8& aData)
- {
- RBuf8 profileParamData1;
- CleanupClosePushL(profileParamData1);
-
- RBuf8 profileParamData2;
- CleanupClosePushL(profileParamData2);
-
- // call packetQoS.SetProfileParameters()
- //----------------------------------------------------------------------------
- TRequestStatus requestSetProfile;
-
- T qosRequested;
- TPckg< T > pckgQoSRequested(qosRequested);
-
- RPacketContext::TContextStatus contextStatus;
- aPacketContext.GetStatus(contextStatus);
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
- ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
-
- aPacketContext.GetConfig(requestSetProfile, pckgContextConfig);
- User::WaitForRequest(requestSetProfile);
-
- TInfoName primaryContextName;
-
- TContextParams contextParams;
- contextParams.iContextName = aContextName;
- contextParams.iContextType = contextConfig.iNWIContext;
- contextParams.iPdpType = contextConfig.iPdpType;
- contextParams.iPrimaryContextName = primaryContextName;
- contextParams.iContextStatus = contextStatus;
-
- TMockLtsyData2<TContextParams, T>
- expExpect(contextParams, qosRequested);
- expExpect.SerialiseL(profileParamData1);
-
- TMockLtsyData1< TInfoName > mockLTSYData(aContextName);
- mockLTSYData.SerialiseL(profileParamData2);
-
- iMockLTSY.ExpectL(EPacketQoSSetProfileParams, profileParamData1);
- iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, profileParamData2);
-
- aPacketQoS.SetProfileParameters(requestSetProfile, pckgQoSRequested);
-
- User::WaitForRequest(requestSetProfile);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestSetProfile.Int());
- //----------------------------------------------------------------------------
-
- // call iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, data);
- //----------------------------------------------------------------------------
- TPacketQoSGPRSNegotiated profileCompleteQoSGPRS;
- TPacketQoSR99_R4Negotiated profileQoSR99_R4;
- TPacketQoSR5Negotiated profileQoSR5;
-
- switch(qosRequested.ExtensionId())
- {
- case TPacketDataConfigBase::KConfigGPRS:
- {
- profileCompleteQoSGPRS.iPrecedence = RPacketQoS::EPriorityHighPrecedence;
- profileCompleteQoSGPRS.iDelay = RPacketQoS::EDelayClass3;
- profileCompleteQoSGPRS.iReliability = RPacketQoS::EReliabilityClass2;
- profileCompleteQoSGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput16000;
- profileCompleteQoSGPRS.iMeanThroughput = RPacketQoS::EMeanThroughput100000;
- }
- break;
- case TPacketDataConfigBase::KConfigRel99Rel4:
- {
- profileQoSR99_R4.iTrafficClass = RPacketQoS::ETrafficClassStreaming;
- profileQoSR99_R4.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
- profileQoSR99_R4.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryRequired;
- profileQoSR99_R4.iMaxSDUSize = 0x100;
- profileQoSR99_R4.iMaxRate.iUplinkRate = 10000;
- profileQoSR99_R4.iMaxRate.iDownlinkRate = 10000;
- profileQoSR99_R4.iBER = RPacketQoS::EBEROnePerHundredThousand;
- profileQoSR99_R4.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerTenThousand;
- profileQoSR99_R4.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority2;
- profileQoSR99_R4.iTransferDelay = 1000;
- profileQoSR99_R4.iGuaranteedRate.iUplinkRate = 1000;
- profileQoSR99_R4.iGuaranteedRate.iDownlinkRate = 1000;
- }
- break;
- case TPacketDataConfigBase::KConfigRel5:
- {
- profileQoSR5.iSignallingIndication = ETrue;
- profileQoSR5.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorSpeech;
- profileQoSR5.iTrafficClass = RPacketQoS::ETrafficClassStreaming;
- profileQoSR5.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
- profileQoSR5.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryRequired;
- profileQoSR5.iMaxSDUSize = 0x100;
- profileQoSR5.iMaxRate.iUplinkRate = 10000;
- profileQoSR5.iMaxRate.iDownlinkRate = 10000;
- profileQoSR5.iBER = RPacketQoS::EBEROnePerHundredThousand;
- profileQoSR5.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerTenThousand;
- profileQoSR5.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority2;
- profileQoSR5.iTransferDelay = 1000;
- profileQoSR5.iGuaranteedRate.iUplinkRate = 1000;
- profileQoSR5.iGuaranteedRate.iDownlinkRate = 1000;
- }
- break;
- default:
- break;
- }
-
- TMockLtsyPacketQoSData1< TInfoName > mockData(profileCompleteQoSGPRS,
- profileQoSR99_R4,
- profileQoSR5,
- aContextName);
- aData.Close();
- mockData.SerialiseL(aData);
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, aData);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- //----------------------------------------------------------------------------
-
- CleanupStack::PopAndDestroy(2);
- }
+// 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 PacketQoS in the Common TSY.
+//
+//
+
+/**
+ @file
+*/
+
+#include "cctsypacketqosfu.h"
+#include <ctsy/serviceapi/cmmutility.h> // TContextMisc
+#include <etel.h>
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <pcktcs.h>
+#include <etelqos.h>
+#include <ctsy/mmtsy_names.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include "tmockltsydata.h"
+#include <ctsy/serviceapi/gsmerror.h>
+#include "Cmmpacketdef.h"
+
+CTestSuite* CCTsyPacketQoSFU::CreateSuiteL(const TDesC& aName)
+ {
+ SUB_SUITE;
+
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddMediaAuthorizationL0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemoveMediaAuthorization0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemoveMediaAuthorization0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemoveMediaAuthorization0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileParameters0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileParameters0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileParameters0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestNotifyProfileChanged0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestSetProfileParameters0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileCapabilities0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileCapabilities0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetProfileCapabilities0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestCreateNewTFT0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestAddPacketFilter0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemovePacketFilter0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestRemovePacketFilter0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetPacketFilterInfo0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetPacketFilterInfo0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestGetPacketFilterInfo0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestDeleteTFT0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenNewQoS0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenNewQoS0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenExistingQoS0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenExistingQoS0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyPacketQoSFU, TestOpenExistingQoS0004L);
+
+ END_SUITE;
+ }
+
+
+//
+// Actual test cases
+//
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddMediaAuthorizationL
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::AddMediaAuthorizationL
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus requestStatus;
+ TRequestStatus mockLtsyStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TInt configurationType = 0;
+
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
+ mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuthorization);
+
+ mediaAuthorization->iAuthorizationToken = _L8("test");
+
+ RPacketContext::CTFTMediaAuthorizationV3::TFlowIdentifier flowId;
+ flowId.iIPFlowNumber = 0x100;
+ flowId.iMediaComponentNumber = 0x200;
+ mediaAuthorization->iFlowIds.Append(flowId);
+ flowId.iIPFlowNumber = 0x10;
+ flowId.iMediaComponentNumber = 0x20;
+ mediaAuthorization->iFlowIds.Append(flowId);
+
+ TMockLtsyContextData2< TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
+ expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
+
+ expExpect.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data, KErrNotSupported);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST for increasing the coverage
+ //-------------------------------------------------------------------------
+
+ for (TInt index = 0; index < 3; index++)
+ {
+ RPacketContext::CTFTMediaAuthorizationV3* media= NULL;
+ media = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(media);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
+ exp(contextConfig, configurationType, contextName2, mediaAuthorization);
+
+ data.Close();
+ exp.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data, KErrNotSupported);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ CleanupStack::Pop(media);
+ }
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+ TMockLtsyData1<TInfoName > contexName(contextName2);
+ contexName.SerialiseL(completeData);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, completeData);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::AddMediaAuthorizationL when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST for coverage increasing
+ // with context status != Unknown
+ //-------------------------------------------------------------------------
+
+ // set context status to EStatusActive
+ TInt err = SetContextActiveL(contextName2);
+ AssertMockLtsyStatusL();
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST for coverage increasing
+ // with context status != Unknown
+ //-------------------------------------------------------------------------
+
+ // set context status to EStatusInactive
+ err = SetContextStatusL(contextName2, RPacketContext::EStatusInactive );
+
+ // call AddMediaAuthorizationL itself
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ CleanupStack::Pop(mediaAuthorization);
+ CleanupStack::PopAndDestroy(3); // packetService1, packetContext1, packetContext2
+ CleanupStack::PopAndDestroy(3); // completeData, data, this, dataSerialise
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::AddMediaAuthorizationL
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::AddMediaAuthorizationL
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus requestStatus;
+ TRequestStatus mockLtsyStatus;
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::AddMediaAuthorizationL
+ //-------------------------------------------------------------------------
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TInt configurationType = 0;
+
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
+ mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuthorization);
+
+ TMockLtsyContextData2< TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
+ expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
+
+ expExpect.SerialiseL(data);
+
+ // data CompleteL
+ TMockLtsyData1<TInfoName > contexName(contextName2);
+ contexName.SerialiseL(completeData);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+
+ packetContext2.CancelAsyncRequest(EPacketAddMediaAuthorization);
+
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ User::WaitForRequest(mockLtsyStatus);
+
+ CleanupStack::Pop(mediaAuthorization);
+ CleanupStack::PopAndDestroy(3); // packetService1, packetContext1, packetContext2
+ CleanupStack::PopAndDestroy(3); //completeData, data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::AddMediaAuthorizationL
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::AddMediaAuthorizationL
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data1;
+ CleanupClosePushL(data1);
+
+ RBuf8 data2;
+ CleanupClosePushL(data2);
+ RBuf8 completeData1;
+ CleanupClosePushL(completeData1);
+
+ RBuf8 completeData2;
+ CleanupClosePushL(completeData2);
+
+ // Open second client
+ RTelServer telServer1;
+ TInt ret = telServer1.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer1);
+
+ RTelServer telServer1S;
+ ret = telServer1S.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer1S);
+
+ RTelServer telServer2S;
+ ret = telServer2S.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2S);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ RMobilePhone phone1S;
+ ret = phone1S.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone1S);
+
+ RMobilePhone phone2S;
+ ret = phone2S.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2S);
+
+ RPacketService packetService1;
+ OpenPacketServiceL(packetService1);
+ CleanupClosePushL(packetService1);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ RPacketService packetService1S;
+ ret = packetService1S.Open(phone1S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService1S);
+
+ RPacketService packetService2S;
+ ret = packetService2S.Open(phone2S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2S);
+
+ TInfoName contextName1;
+ RPacketContext packetContext1;
+ ret = packetContext1.OpenNewContext(packetService1, contextName1);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext1);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewContext(packetService2, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TInfoName contextName1S;
+ RPacketContext packetContext1S;
+ ret = packetContext1S.OpenNewSecondaryContext(packetService1S, contextName1, contextName1S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext1S);
+
+ TInfoName contextName2S;
+ RPacketContext packetContext2S;
+ ret = packetContext2S.OpenNewSecondaryContext(packetService2S, contextName2, contextName2S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2S);
+
+ TRequestStatus requestStatus1;
+ TRequestStatus requestStatus2;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::AddMediaAuthorizationL
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TInt configurationType = 0;
+
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
+ mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuthorization);
+
+ // first client
+ TMockLtsyData1<TInfoName > contexName1(contextName1S);
+ contexName1.SerialiseL(completeData1);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
+ expExpect1(contextConfig, configurationType, contextName1S, mediaAuthorization);
+ expExpect1.SerialiseL(data1);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data1);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData1);
+
+ packetContext1S.AddMediaAuthorizationL(requestStatus1, *mediaAuthorization);
+
+ // second client
+ TMockLtsyData1<TInfoName > contexName2(contextName2S);
+ contexName2.SerialiseL(completeData2);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3* >
+ expExpect2(contextConfig, configurationType, contextName2S, mediaAuthorization);
+ expExpect2.SerialiseL(data2);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data2);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData2);
+
+ packetContext2S.AddMediaAuthorizationL(requestStatus2, *mediaAuthorization);
+
+ User::WaitForRequest(requestStatus1);
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ CleanupStack::Pop(mediaAuthorization);
+ CleanupStack::PopAndDestroy(14);
+ CleanupStack::PopAndDestroy(5, this); // data1, data2, this, completeData1, completeData2
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAMA-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddMediaAuthorizationL with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::AddMediaAuthorizationL and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddMediaAuthorizationL0005L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus requestStatus;
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TInt configurationType = 0;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketContext::AddMediaAuthorizationL
+ //-------------------------------------------------------------------------
+
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization = NULL;
+ mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuthorization);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
+ expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
+
+ expExpect.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ CleanupStack::Pop(mediaAuthorization);
+ CleanupStack::PopAndDestroy(3); // packetService1, packetContext1, packetContext2
+ CleanupStack::PopAndDestroy(2); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCRMA-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemoveMediaAuthorization
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::RemoveMediaAuthorization
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestRemoveMediaAuthorization0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST
+ //-------------------------------------------------------------------------
+
+ _LIT8(KAuthorizationToken, "AuthorizationToken");
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TInt configurationType = 0;
+
+ RPacketContext::CTFTMediaAuthorizationV3* media = NULL;
+ media = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ media->iAuthorizationToken = KAuthorizationToken;
+ CleanupStack::PushL(media);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
+ exp(contextConfig, configurationType, contextName2, media);
+
+ exp.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data, KErrNotSupported);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *media);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ RPacketContext::TAuthorizationToken authorization1;
+ authorization1 = KAuthorizationToken;
+
+ packetContext2.RemoveMediaAuthorization(requestStatus, authorization1);
+ ASSERT_EQUALS(KErrNone, ret);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TAuthorizationToken authorizationToken;
+ authorizationToken = KAuthorizationToken;
+
+ packetContext.RemoveMediaAuthorization(requestStatus, authorizationToken);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST
+ //-------------------------------------------------------------------------
+
+ // add new MediaAuthorization
+ //-------------------------------------------------------------------------
+
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization= NULL;
+ mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ mediaAuthorization->iAuthorizationToken = KAuthorizationToken;
+ CleanupStack::PushL(mediaAuthorization);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
+ expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
+ data.Close();
+ expExpect.SerialiseL(data);
+
+ TMockLtsyData1<TInfoName > contexName(contextName2);
+ contexName.SerialiseL(completeData);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ //-------------------------------------------------------------------------
+
+ packetContext2.RemoveMediaAuthorization(requestStatus, authorizationToken);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::RemoveMediaAuthorization when result is not cached.
+ //-------------------------------------------------------------------------
+ packetContext2.RemoveMediaAuthorization(requestStatus, authorizationToken);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotFound, requestStatus.Int());
+
+ CleanupStack::Pop(mediaAuthorization);
+ CleanupStack::Pop(media);
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(6, this); // data, this, completeData
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCRMA-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemoveMediaAuthorization with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::RemoveMediaAuthorization with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestRemoveMediaAuthorization0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewSecondaryContext(packetService, contextName, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // Test add new MediaAuthorization
+ //-------------------------------------------------------------------------
+ _LIT8(KAuthorizationToken, "AuthorizationToken");
+ _LIT8(KAuthorizationToken2, "Other AuthorizationToken");
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TInt configurationType = 0;
+
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization= NULL;
+ mediaAuthorization = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ mediaAuthorization->iAuthorizationToken = KAuthorizationToken;
+ CleanupStack::PushL(mediaAuthorization);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
+ expExpect(contextConfig, configurationType, contextName2, mediaAuthorization);
+
+ TMockLtsyData1<TInfoName > contexName(contextName2);
+ contexName.SerialiseL(completeData);
+
+ expExpect.SerialiseL(data);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData);
+
+ packetContext2.AddMediaAuthorizationL(requestStatus, *mediaAuthorization);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TAuthorizationToken authorizationToken;
+ authorizationToken = KAuthorizationToken2;
+
+ packetContext2.RemoveMediaAuthorization(requestStatus, authorizationToken);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotFound, requestStatus.Int());
+
+ CleanupStack::Pop(mediaAuthorization);
+ CleanupStack::PopAndDestroy(6, this); // data, completeData, packetService, packetContext, packetContext2, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCRMA-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::RemoveMediaAuthorization
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::RemoveMediaAuthorization
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestRemoveMediaAuthorization0004L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data1;
+ CleanupClosePushL(data1);
+
+ RBuf8 data2;
+ CleanupClosePushL(data2);
+
+ RBuf8 completeData1;
+ CleanupClosePushL(completeData1);
+
+ RBuf8 completeData2;
+ CleanupClosePushL(completeData2);
+
+ // Open second client
+ RTelServer telServer1;
+ TInt ret = telServer1.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer1);
+
+ RTelServer telServer1S;
+ ret = telServer1S.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer1S);
+
+ RTelServer telServer2S;
+ ret = telServer2S.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2S);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ RMobilePhone phone1S;
+ ret = phone1S.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone1S);
+
+ RMobilePhone phone2S;
+ ret = phone2S.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2S);
+
+ RPacketService packetService1;
+ OpenPacketServiceL(packetService1);
+ CleanupClosePushL(packetService1);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ RPacketService packetService1S;
+ ret = packetService1S.Open(phone1S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService1S);
+
+ RPacketService packetService2S;
+ ret = packetService2S.Open(phone2S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2S);
+
+ TInfoName contextName1;
+ RPacketContext packetContext1;
+ ret = packetContext1.OpenNewContext(packetService1, contextName1);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext1);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewContext(packetService2, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TInfoName contextName1S;
+ RPacketContext packetContext1S;
+ ret = packetContext1S.OpenNewSecondaryContext(packetService1S, contextName1, contextName1S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext1S);
+
+ TInfoName contextName2S;
+ RPacketContext packetContext2S;
+ ret = packetContext2S.OpenNewSecondaryContext(packetService2S, contextName2, contextName2S);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2S);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::RemoveMediaAuthorization
+ //-------------------------------------------------------------------------
+
+ _LIT8(KAuthorizationToken1, "AuthorizationToken1");
+ _LIT8(KAuthorizationToken2, "AuthorizationToken2");
+
+ // add new MediaAuthorization
+ //-------------------------------------------------------------------------
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TInt configurationType = 0;
+
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization1 = NULL;
+ mediaAuthorization1 = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ mediaAuthorization1->iAuthorizationToken = KAuthorizationToken1;
+ CleanupStack::PushL(mediaAuthorization1);
+
+ TMockLtsyData1<TInfoName > contexName1(contextName1S);
+ contexName1.SerialiseL(completeData1);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
+ expExpect1(contextConfig, configurationType, contextName1S, mediaAuthorization1);
+ expExpect1.SerialiseL(data1);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data1);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData1);
+
+ packetContext1S.AddMediaAuthorizationL(requestStatus, *mediaAuthorization1);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus1;
+ TRequestStatus requestStatus2;
+
+ RPacketContext::TAuthorizationToken authorizationToken;
+ authorizationToken = KAuthorizationToken1;
+
+ packetContext1S.RemoveMediaAuthorization(requestStatus1, authorizationToken);
+
+ // add new MediaAuthorization
+ //-------------------------------------------------------------------------
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuthorization2 = NULL;
+ mediaAuthorization2 = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ mediaAuthorization2->iAuthorizationToken = KAuthorizationToken2;
+ CleanupStack::PushL(mediaAuthorization2);
+
+ TMockLtsyData1<TInfoName > contexName2(contextName2S);
+ contexName2.SerialiseL(completeData2);
+
+ TMockLtsyContextData2<TInfoName, RPacketContext::CTFTMediaAuthorizationV3*>
+ expExpect2(contextConfig, configurationType, contextName2S, mediaAuthorization2);
+ expExpect2.SerialiseL(data2);
+
+ iMockLTSY.ExpectL(EPacketAddMediaAuthorization, data2);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, completeData2);
+
+ packetContext2S.AddMediaAuthorizationL(requestStatus, *mediaAuthorization2);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ //-------------------------------------------------------------------------
+
+ authorizationToken = KAuthorizationToken2;
+
+ packetContext2S.RemoveMediaAuthorization(requestStatus2, authorizationToken);
+
+ User::WaitForRequest(requestStatus1);
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ CleanupStack::Pop(mediaAuthorization2);
+ CleanupStack::Pop(mediaAuthorization1);
+ CleanupStack::PopAndDestroy(14);
+ CleanupStack::PopAndDestroy(5, this); // data1, data2, this, completeData1, completeData2
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QGPP-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileParameters
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::GetProfileParameters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetProfileParameters0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+
+ RPacketQoS::TQoSGPRSNegotiated packetGPRS;
+ TPckg< RPacketQoS::TQoSGPRSNegotiated > profilePckgGPRS = packetGPRS;
+ packetQoS.GetProfileParameters(requestStatus, profilePckgGPRS);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ ASSERT_EQUALS(packetGPRS.iPrecedence , RPacketQoS::EUnspecifiedPrecedence);
+ ASSERT_EQUALS(packetGPRS.iDelay , RPacketQoS::EUnspecifiedDelayClass);
+ ASSERT_EQUALS(packetGPRS.iReliability , RPacketQoS::EUnspecifiedReliabilityClass);
+ ASSERT_EQUALS(packetGPRS.iPeakThroughput, RPacketQoS::EUnspecifiedPeakThroughput);
+ ASSERT_EQUALS(packetGPRS.iMeanThroughput, RPacketQoS::EUnspecifiedMeanThroughput);
+
+ RPacketQoS::TQoSR5Negotiated packetR5;
+ TPckg< RPacketQoS::TQoSR5Negotiated > profilePckgR5 = packetR5;
+ packetQoS.GetProfileParameters(requestStatus, profilePckgR5);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ ASSERT_EQUALS(packetR5.iSignallingIndication , 0);
+ ASSERT_EQUALS(packetR5.iSourceStatisticsDescriptor,
+ RPacketQoS::ESourceStatisticsDescriptorUnknown);
+ ASSERT_EQUALS(packetR5.iTrafficClass ,
+ RPacketQoS::ETrafficClassUnspecified);
+ ASSERT_EQUALS(packetR5.iDeliveryOrderReqd ,
+ RPacketQoS::EDeliveryOrderUnspecified);
+ ASSERT_EQUALS(packetR5.iDeliverErroneousSDU ,
+ RPacketQoS::EErroneousSDUDeliveryUnspecified);
+ ASSERT_EQUALS(packetR5.iMaxSDUSize , 0);
+ ASSERT_EQUALS(packetR5.iMaxRate.iUplinkRate , 0);
+ ASSERT_EQUALS(packetR5.iMaxRate.iDownlinkRate , 0);
+ ASSERT_EQUALS(packetR5.iBER ,
+ RPacketQoS::EBERUnspecified);
+ ASSERT_EQUALS(packetR5.iSDUErrorRatio ,
+ RPacketQoS::ESDUErrorRatioUnspecified);
+ ASSERT_EQUALS(packetR5.iTrafficHandlingPriority ,
+ RPacketQoS::ETrafficPriorityUnspecified);
+ ASSERT_EQUALS(packetR5.iTransferDelay , 0);
+ ASSERT_EQUALS(packetR5.iGuaranteedRate.iDownlinkRate, 0);
+ ASSERT_EQUALS(packetR5.iGuaranteedRate.iUplinkRate , 0);
+
+ RPacketQoS::TQoSR99_R4Negotiated packetR99;
+ TPckg< RPacketQoS::TQoSR99_R4Negotiated > profilePckgR99 = packetR99;
+ packetQoS.GetProfileParameters(requestStatus, profilePckgR99);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ ASSERT_EQUALS(packetR99.iTrafficClass ,
+ RPacketQoS::ETrafficClassUnspecified);
+ ASSERT_EQUALS(packetR99.iDeliveryOrderReqd ,
+ RPacketQoS::EDeliveryOrderUnspecified);
+ ASSERT_EQUALS(packetR99.iDeliverErroneousSDU ,
+ RPacketQoS::EErroneousSDUDeliveryUnspecified);
+ ASSERT_EQUALS(packetR99.iMaxSDUSize , 0);
+ ASSERT_EQUALS(packetR99.iMaxRate.iUplinkRate , 0);
+ ASSERT_EQUALS(packetR99.iMaxRate.iDownlinkRate , 0);
+ ASSERT_EQUALS(packetR99.iBER ,
+ RPacketQoS::EBERUnspecified);
+ ASSERT_EQUALS(packetR99.iSDUErrorRatio ,
+ RPacketQoS::ESDUErrorRatioUnspecified);
+ ASSERT_EQUALS(packetR99.iTrafficHandlingPriority ,
+ RPacketQoS::ETrafficPriorityUnspecified);
+ ASSERT_EQUALS(packetR99.iTransferDelay , 0);
+ ASSERT_EQUALS(packetR99.iGuaranteedRate.iDownlinkRate, 0);
+ ASSERT_EQUALS(packetR99.iGuaranteedRate.iUplinkRate , 0);
+
+ //-------------------------------------------------------------------------
+ TPacketQoSGPRSNegotiated packetQoSGPRS;
+ TPacketQoSR99_R4Negotiated packetQoSR99_R4;
+ TPacketQoSR5Negotiated packetQoSR5;
+
+ //-------------------------------------------------------------------------
+ // Initialization TPacketQoSGPRSNegotiated
+ packetQoSGPRS.iPrecedence = RPacketQoS::EPriorityHighPrecedence;
+ packetQoSGPRS.iDelay = RPacketQoS::EDelayClass3;
+ packetQoSGPRS.iReliability = RPacketQoS::EReliabilityClass2;
+ packetQoSGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput16000;
+ packetQoSGPRS.iMeanThroughput = RPacketQoS::EMeanThroughput100000;
+
+ //-------------------------------------------------------------------------
+ // Initialization packetQoSR99_R4
+ packetQoSR99_R4.iTrafficClass = RPacketQoS::ETrafficClassBackground;
+ packetQoSR99_R4.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
+ packetQoSR99_R4.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
+ packetQoSR99_R4.iMaxSDUSize = 10;
+ packetQoSR99_R4.iMaxRate.iUplinkRate = 20;
+ packetQoSR99_R4.iMaxRate.iDownlinkRate = 100;
+ packetQoSR99_R4.iBER = RPacketQoS::EBERSixPerHundredMillion;
+ packetQoSR99_R4.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
+ packetQoSR99_R4.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
+ packetQoSR99_R4.iTransferDelay = 1000;
+ packetQoSR99_R4.iGuaranteedRate.iDownlinkRate = 5;
+ packetQoSR99_R4.iGuaranteedRate.iUplinkRate = 7;
+
+ //-------------------------------------------------------------------------
+ // Initialization packetQoSR5
+ packetQoSR5.iSignallingIndication = ETrue;
+ packetQoSR5.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorSpeech;
+ packetQoSR5.iTrafficClass = RPacketQoS::ETrafficClassBackground;
+ packetQoSR5.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
+ packetQoSR5.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
+ packetQoSR5.iMaxSDUSize = 12;
+ packetQoSR5.iMaxRate.iUplinkRate = 22;
+ packetQoSR5.iMaxRate.iDownlinkRate = 102;
+ packetQoSR5.iBER = RPacketQoS::EBERSixPerHundredMillion;
+ packetQoSR5.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
+ packetQoSR5.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
+ packetQoSR5.iTransferDelay = 1002;
+ packetQoSR5.iGuaranteedRate.iDownlinkRate = 7;
+ packetQoSR5.iGuaranteedRate.iUplinkRate = 9;
+
+ TMockLtsyPacketQoSData1< TInfoName > mockData(packetQoSGPRS, packetQoSR99_R4,
+ packetQoSR5 , contextName);
+ mockData.SerialiseL(data);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // TEST RPacketQoS::GetProfileParameters again, this time CTSY
+ // will get result from the cache for RPacketQoS::TQoSGPRSNegotiated.
+ //-------------------------------------------------------------------------
+
+ packetQoS.GetProfileParameters(requestStatus, profilePckgGPRS);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ ASSERT_EQUALS(packetQoSGPRS.iPrecedence , packetGPRS.iPrecedence );
+ ASSERT_EQUALS(packetQoSGPRS.iDelay , packetGPRS.iDelay );
+ ASSERT_EQUALS(packetQoSGPRS.iReliability , packetGPRS.iReliability );
+ ASSERT_EQUALS(packetQoSGPRS.iPeakThroughput, packetGPRS.iPeakThroughput);
+ ASSERT_EQUALS(packetQoSGPRS.iMeanThroughput, packetGPRS.iMeanThroughput);
+
+ //-------------------------------------------------------------------------
+ // TEST RPacketQoS::GetProfileParameters again, this time CTSY
+ // will get result from the cache for RPacketQoS::TQoSR5Negotiated.
+ //-------------------------------------------------------------------------
+
+ packetQoS.GetProfileParameters(requestStatus, profilePckgR5);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ ASSERT_EQUALS(packetQoSR5.iSignallingIndication , packetR5.iSignallingIndication );
+ ASSERT_EQUALS(packetQoSR5.iSourceStatisticsDescriptor , packetR5.iSourceStatisticsDescriptor );
+ ASSERT_EQUALS(packetQoSR5.iTrafficClass , packetR5.iTrafficClass );
+ ASSERT_EQUALS(packetQoSR5.iDeliveryOrderReqd , packetR5.iDeliveryOrderReqd );
+ ASSERT_EQUALS(packetQoSR5.iDeliverErroneousSDU , packetR5.iDeliverErroneousSDU );
+ ASSERT_EQUALS(packetQoSR5.iMaxSDUSize , packetR5.iMaxSDUSize );
+ ASSERT_EQUALS(packetQoSR5.iMaxRate.iUplinkRate , packetR5.iMaxRate.iUplinkRate );
+ ASSERT_EQUALS(packetQoSR5.iMaxRate.iDownlinkRate , packetR5.iMaxRate.iDownlinkRate );
+ ASSERT_EQUALS(packetQoSR5.iBER , packetR5.iBER );
+ ASSERT_EQUALS(packetQoSR5.iSDUErrorRatio , packetR5.iSDUErrorRatio );
+ ASSERT_EQUALS(packetQoSR5.iTrafficHandlingPriority , packetR5.iTrafficHandlingPriority );
+ ASSERT_EQUALS(packetQoSR5.iTransferDelay , packetR5.iTransferDelay );
+ ASSERT_EQUALS(packetQoSR5.iGuaranteedRate.iDownlinkRate, packetR5.iGuaranteedRate.iDownlinkRate);
+ ASSERT_EQUALS(packetQoSR5.iGuaranteedRate.iUplinkRate , packetR5.iGuaranteedRate.iUplinkRate );
+
+ //-------------------------------------------------------------------------
+ // TEST RPacketQoS::GetProfileParameters again, this time CTSY
+ // will get result from the cache for RPacketQoS::TQoSR99_R4Negotiated.
+ //-------------------------------------------------------------------------
+
+ packetQoS.GetProfileParameters(requestStatus, profilePckgR99);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ ASSERT_EQUALS(packetQoSR99_R4.iTrafficClass , packetR99.iTrafficClass );
+ ASSERT_EQUALS(packetQoSR99_R4.iDeliveryOrderReqd , packetR99.iDeliveryOrderReqd );
+ ASSERT_EQUALS(packetQoSR99_R4.iDeliverErroneousSDU , packetR99.iDeliverErroneousSDU );
+ ASSERT_EQUALS(packetQoSR99_R4.iMaxSDUSize , packetR99.iMaxSDUSize );
+ ASSERT_EQUALS(packetQoSR99_R4.iMaxRate.iUplinkRate , packetR99.iMaxRate.iUplinkRate );
+ ASSERT_EQUALS(packetQoSR99_R4.iMaxRate.iDownlinkRate , packetR99.iMaxRate.iDownlinkRate );
+ ASSERT_EQUALS(packetQoSR99_R4.iBER , packetR99.iBER );
+ ASSERT_EQUALS(packetQoSR99_R4.iSDUErrorRatio , packetR99.iSDUErrorRatio );
+ ASSERT_EQUALS(packetQoSR99_R4.iTrafficHandlingPriority , packetR99.iTrafficHandlingPriority );
+ ASSERT_EQUALS(packetQoSR99_R4.iTransferDelay , packetR99.iTransferDelay );
+ ASSERT_EQUALS(packetQoSR99_R4.iGuaranteedRate.iDownlinkRate, packetR99.iGuaranteedRate.iDownlinkRate);
+ ASSERT_EQUALS(packetQoSR99_R4.iGuaranteedRate.iUplinkRate , packetR99.iGuaranteedRate.iUplinkRate );
+
+ CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
+ CleanupStack::PopAndDestroy(3, this); // data, this, expectData
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QGPP-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileParameters with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::GetProfileParameters with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetProfileParameters0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketQoS::GetProfileParameters
+ //-------------------------------------------------------------------------
+
+ RPacketQoS::TQoSCDMA2000Negotiated packetCDMA2000;
+ TPckg< RPacketQoS::TQoSCDMA2000Negotiated > profilePckgCDMA2000 = packetCDMA2000;
+ packetQoS.GetProfileParameters(requestStatus, profilePckgCDMA2000);
+ User::WaitForRequest(requestStatus);
+ TInt error = requestStatus.Int();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketQoS::GetProfileParameters
+ //-------------------------------------------------------------------------
+
+ TBuf8<1> nullDescriptor;
+ packetQoS.GetProfileParameters(requestStatus, nullDescriptor);
+ User::WaitForRequest(requestStatus);
+ error = requestStatus.Int();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QGPP-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::GetProfileParameters
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketQoS::GetProfileParameters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetProfileParameters0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+ TName profileName2;
+ TName profileName3;
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ // Open third client
+ RTelServer telServer3;
+ ret = telServer3.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer3);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ RMobilePhone phone3;
+ ret = phone3.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone3);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ RPacketService packetService3;
+ ret = packetService3.Open(phone3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService3);
+
+ // Open first context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ ret = packetContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewContext(packetService2, contextId2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ // Open third context
+ TInfoName contextId3;
+ RPacketContext packetContext3;
+ ret = packetContext3.OpenNewContext(packetService3, contextId3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext3);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ RPacketQoS packetQoS2;
+ ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS2);
+
+ RPacketQoS packetQoS3;
+ ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS3);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketQoS::GetProfileParameters
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus1;
+ TRequestStatus requestStatus2;
+ TRequestStatus requestStatus3;
+
+ RPacketQoS::TQoSGPRSNegotiated packetGPRS;
+ TPckg< RPacketQoS::TQoSGPRSNegotiated > profilePckgGPRS = packetGPRS;
+ packetQoS.GetProfileParameters(requestStatus1, profilePckgGPRS);
+
+ RPacketQoS::TQoSR99_R4Negotiated packetR99;
+ TPckg< RPacketQoS::TQoSR99_R4Negotiated > profilePckgR99 = packetR99;
+ packetQoS2.GetProfileParameters(requestStatus2, profilePckgR99);
+
+ RPacketQoS::TQoSR5Negotiated packetR5;
+ TPckg< RPacketQoS::TQoSR5Negotiated > profilePckgR5 = packetR5;
+ packetQoS3.GetProfileParameters(requestStatus3, profilePckgR5);
+
+ User::WaitForRequest(requestStatus1);
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ User::WaitForRequest(requestStatus3);
+ ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+
+ CleanupStack::PopAndDestroy(13);
+ CleanupStack::PopAndDestroy(2, this); // this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::NotifyProfileChanged
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::NotifyProfileChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestNotifyProfileChanged0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestNotify;
+ TRequestStatus mockLtsyStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketQoS::NotifyProfileChanged when result is not cached.
+ //-------------------------------------------------------------------------
+
+ RPacketQoS::TQoSR5Negotiated qosR5Negotiated;
+ TPckg< RPacketQoS::TQoSR5Negotiated > pckgQoSR5Negotiated(qosR5Negotiated);
+
+ packetQoS.NotifyProfileChanged(requestNotify, pckgQoSR5Negotiated);
+
+ ChangeProfileDataL<RPacketQoS::TQoSR5Requested>(packetContext, packetQoS, contextName, data);
+
+ User::WaitForRequest(requestNotify);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestNotify.Int());
+
+ ASSERT_EQUALS(qosR5Negotiated.iSignallingIndication , 1 );
+ ASSERT_EQUALS(qosR5Negotiated.iSourceStatisticsDescriptor , RPacketQoS::ESourceStatisticsDescriptorSpeech);
+ ASSERT_EQUALS(qosR5Negotiated.iTrafficClass , RPacketQoS::ETrafficClassStreaming );
+ ASSERT_EQUALS(qosR5Negotiated.iDeliveryOrderReqd , RPacketQoS::EDeliveryOrderRequired );
+ ASSERT_EQUALS(qosR5Negotiated.iDeliverErroneousSDU , RPacketQoS::EErroneousSDUDeliveryRequired );
+ ASSERT_EQUALS(qosR5Negotiated.iMaxSDUSize , 0x100 );
+ ASSERT_EQUALS(qosR5Negotiated.iMaxRate.iUplinkRate , 10000 );
+ ASSERT_EQUALS(qosR5Negotiated.iMaxRate.iDownlinkRate , 10000 );
+ ASSERT_EQUALS(qosR5Negotiated.iBER , RPacketQoS::EBEROnePerHundredThousand );
+ ASSERT_EQUALS(qosR5Negotiated.iSDUErrorRatio , RPacketQoS::ESDUErrorRatioOnePerTenThousand );
+ ASSERT_EQUALS(qosR5Negotiated.iTrafficHandlingPriority , RPacketQoS::ETrafficPriority2 );
+ ASSERT_EQUALS(qosR5Negotiated.iTransferDelay , 1000 );
+ ASSERT_EQUALS(qosR5Negotiated.iGuaranteedRate.iDownlinkRate, 1000 );
+ ASSERT_EQUALS(qosR5Negotiated.iGuaranteedRate.iUplinkRate , 1000 );
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketQoS::NotifyProfileChanged
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketQoS::NotifyProfileChanged
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketQoS::NotifyProfileChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestNotifyProfileChanged0002L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketQoS::NotifyProfileChanged
+ //-------------------------------------------------------------------------
+ RPacketQoS::TQoSGPRSNegotiated qosGPRSNegotiated;
+ TPckg< RPacketQoS::TQoSGPRSNegotiated > pckgQoSGPRSNegotiated(qosGPRSNegotiated);
+
+ TRequestStatus requestNotify;
+ packetQoS.NotifyProfileChanged(requestNotify, pckgQoSGPRSNegotiated);
+
+ packetQoS.CancelAsyncRequest(EPacketQoSNotifyProfileChanged);
+
+ User::WaitForRequest(requestNotify);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrCancel, requestNotify.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
+ CleanupStack::PopAndDestroy(2); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::NotifyProfileChanged with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::NotifyProfileChanged with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestNotifyProfileChanged0003L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestNotify;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketQoS::NotifyProfileChanged
+ //-------------------------------------------------------------------------
+
+ RPacketQoS::TQoSCDMA2000Negotiated qosCDMA2000Negotiated;
+ TPckg< RPacketQoS::TQoSCDMA2000Negotiated > pckgQoSCDMA2000Negotiated = qosCDMA2000Negotiated;
+
+ packetQoS.NotifyProfileChanged(requestNotify, pckgQoSCDMA2000Negotiated);
+
+ User::WaitForRequest(requestNotify);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestNotify.Int());
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketQoS::NotifyProfileChanged
+ //-------------------------------------------------------------------------
+
+ TBuf8<1> nullDes;
+
+ packetQoS.NotifyProfileChanged(requestNotify, nullDes);
+
+ User::WaitForRequest(requestNotify);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestNotify.Int());
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RPacketQoS::NotifyProfileChanged
+ //-------------------------------------------------------------------------
+
+ TPacketDataConfigBase packetGPRS;
+ TPckg< TPacketDataConfigBase > outOfBoundParameter = packetGPRS;
+
+ packetQoS.NotifyProfileChanged(requestNotify, outOfBoundParameter);
+
+ User::WaitForRequest(requestNotify);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestNotify.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetService, packetContext, packetQoS
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QNPC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::NotifyProfileChanged
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketQoS::NotifyProfileChanged
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestNotifyProfileChanged0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+ TName profileName2;
+ TName profileName3;
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ // Open third client
+ RTelServer telServer3;
+ ret = telServer3.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer3);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ RMobilePhone phone3;
+ ret = phone3.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone3);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ RPacketService packetService3;
+ ret = packetService3.Open(phone3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService3);
+
+ // Open first context
+ TInfoName contextId;
+ RPacketContext packetContext;
+ ret = packetContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ // Open second context
+ TInfoName contextId2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewContext(packetService2, contextId2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ // Open third context
+ TInfoName contextId3;
+ RPacketContext packetContext3;
+ ret = packetContext3.OpenNewContext(packetService3, contextId3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext3);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ RPacketQoS packetQoS2;
+ ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS2);
+
+ RPacketQoS packetQoS3;
+ ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS3);
+
+ TRequestStatus requestNotify1;
+ TRequestStatus requestNotify2;
+ TRequestStatus requestNotify3;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketQoS::NotifyProfileChanged
+ //-------------------------------------------------------------------------
+
+ // first client
+ RPacketQoS::TQoSGPRSNegotiated qosGPRSNegotiated;
+ TPckg< RPacketQoS::TQoSGPRSNegotiated > pckgQoSGPRSNegotiated(qosGPRSNegotiated);
+ packetQoS.NotifyProfileChanged(requestNotify1, pckgQoSGPRSNegotiated);
+
+ // second client
+ RPacketQoS::TQoSR99_R4Negotiated qosR99_R4Negotiated;
+ TPckg< RPacketQoS::TQoSR99_R4Negotiated > pckgQoSR99_R4Negotiated(qosR99_R4Negotiated);
+ packetQoS2.NotifyProfileChanged(requestNotify2, pckgQoSR99_R4Negotiated);
+
+ // third client
+ RPacketQoS::TQoSR5Negotiated qosR5Negotiated;
+ TPckg< RPacketQoS::TQoSR5Negotiated > pckgQoSR5Negotiated(qosR5Negotiated);
+ packetQoS3.NotifyProfileChanged(requestNotify3, pckgQoSR5Negotiated);
+
+ ChangeProfileDataL<RPacketQoS::TQoSGPRSRequested>(packetContext, packetQoS, contextId, data);
+ User::WaitForRequest(requestNotify1);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestNotify1.Int());
+
+ ChangeProfileDataL<RPacketQoS::TQoSR99_R4Requested>(packetContext2, packetQoS2, contextId2, data);
+ User::WaitForRequest(requestNotify2);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestNotify2.Int());
+
+ ChangeProfileDataL<RPacketQoS::TQoSR5Requested>(packetContext3, packetQoS3, contextId3, data);
+ User::WaitForRequest(requestNotify3);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestNotify3.Int());
+
+ CleanupStack::PopAndDestroy(13);
+ CleanupStack::PopAndDestroy(2, this); // this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::SetProfileParameters
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::SetProfileParameters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestSetProfileParameters0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+ TRequestStatus mockLtsyStatus;
+
+ RPacketContext::TContextStatus contextStatus;
+
+ RPacketQoS::TQoSGPRSRequested packetGPRS;
+ TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
+
+ packetGPRS.iReqPrecedence = RPacketQoS::EPriorityLowPrecedence;
+ packetGPRS.iMinPrecedence = RPacketQoS::EPriorityLowPrecedence;
+ packetGPRS.iReqDelay = RPacketQoS::EDelay360ms;
+ packetGPRS.iMinDelay = RPacketQoS::EDelay40ms;
+ packetGPRS.iReqReliability = RPacketQoS::EReliabilityClass3;
+ packetGPRS.iMinReliability = RPacketQoS::EReliabilityClass4;
+ packetGPRS.iReqPeakThroughput = RPacketQoS::EPeakThroughput32000;
+ packetGPRS.iMinPeakThroughput = RPacketQoS::EPeakThroughput32000;
+ packetGPRS.iReqMeanThroughput = RPacketQoS::EMeanThroughput500000;
+ packetGPRS.iMinMeanThroughput = RPacketQoS::EMeanThroughput1000000;
+
+ packetContext.GetStatus(contextStatus);
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
+ ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
+
+ packetContext.GetConfig(requestStatus, pckgContextConfig);
+ User::WaitForRequest(requestStatus);
+
+ TInfoName primaryContextName;
+
+ TContextParams contextParams;
+ contextParams.iContextName = contextName;
+ contextParams.iContextType = contextConfig.iNWIContext;
+ contextParams.iPdpType = contextConfig.iPdpType;
+ contextParams.iPrimaryContextName = primaryContextName;
+ contextParams.iContextStatus = contextStatus;
+
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
+ expExpect(contextParams, packetGPRS);
+ expExpect.SerialiseL(expectData);
+
+ TMockLtsyData1< TInfoName > contexName(contextName);
+ contexName.SerialiseL(completeData);
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrGeneral, completeData);
+
+ packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketQoS::SetProfileParameters when result is not cached.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, completeData);
+
+ packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketQoS::SetProfileParameters
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, completeData, 0);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST for coverage increasing
+ //-------------------------------------------------------------------------
+
+ struct TContextMisc completeMisc;
+ completeMisc.iStatus = RPacketContext::EStatusActivating;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData(contextName, completeMisc);
+ ltsyData.SerialiseL(data);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //refresh data for ExpectL, as iStatus was changed
+ packetContext.GetStatus(contextStatus);
+ contextParams.iContextStatus = contextStatus;
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
+ expExpect2(contextParams, packetGPRS);
+ expectData.Close();
+ expExpect2.SerialiseL(expectData);
+
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
+ packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST coverage increasing
+ //-------------------------------------------------------------------------
+
+ completeMisc.iStatus = RPacketContext::EStatusActive;
+ TMockLtsyData2 <TInfoName, TContextMisc> ltsyData2(contextName, completeMisc);
+ data.Close();
+ ltsyData2.SerialiseL(data);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketContextNotifyStatusChange, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ //refresh data for ExpectL, as iStatus was changed
+ packetContext.GetStatus(contextStatus);
+ contextParams.iContextStatus = contextStatus;
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
+ expExpect3(contextParams, packetGPRS);
+ expectData.Close();
+ expExpect3.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
+ //iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data);
+
+ packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData, KErrNotSupported);
+
+ packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(4, this); // data, this,expectData, completeData
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketQoS::SetProfileParameters
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketQoS::SetProfileParameters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestSetProfileParameters0002L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+
+ RPacketQoS::TQoSGPRSRequested packetGPRS;
+ TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
+
+ RPacketContext::TContextStatus contextStatus;
+ packetContext.GetStatus(contextStatus);
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
+ ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
+
+ packetContext.GetConfig(requestStatus, pckgContextConfig);
+ User::WaitForRequest(requestStatus);
+
+ TInfoName primaryContextName;
+
+ TContextParams contextParams;
+ contextParams.iContextName = contextName;
+ contextParams.iContextType = contextConfig.iNWIContext;
+ contextParams.iPdpType = contextConfig.iPdpType;
+ contextParams.iPrimaryContextName = primaryContextName;
+ contextParams.iContextStatus = contextStatus;
+
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
+ expExpect(contextParams, packetGPRS);
+ expExpect.SerialiseL(expectData);
+
+ TMockLtsyData1< TInfoName > contexName(contextName);
+ contexName.SerialiseL(data);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketQoS::SetProfileParameters
+ //-------------------------------------------------------------------------
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data, 10);
+
+ packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
+
+ packetQoS.CancelAsyncRequest(EPacketQoSSetProfileParams);
+
+ User::WaitForRequest(requestStatus);
+
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ User::WaitForRequest(mockLtsyStatus);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(3, this); // data, this, expectData
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::SetProfileParameters with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::SetProfileParameters with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestSetProfileParameters0003L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+
+ RPacketContext::TContextStatus contextStatus;
+ packetContext.GetStatus(contextStatus);
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
+ ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
+
+ packetContext.GetConfig(requestStatus, pckgContextConfig);
+ User::WaitForRequest(requestStatus);
+
+ TInfoName primaryContextName;
+
+ TContextParams contextParams;
+ contextParams.iContextName = contextName;
+ contextParams.iContextType = contextConfig.iNWIContext;
+ contextParams.iPdpType = contextConfig.iPdpType;
+ contextParams.iPrimaryContextName = primaryContextName;
+ contextParams.iContextStatus = contextStatus;
+
+ TMockLtsyData1< TInfoName > dataContextName(contextName);
+ dataContextName.SerialiseL(data);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::AddPacketFilter
+ //-------------------------------------------------------------------------
+
+ // wrong version of parameter
+ RPacketQoS::TQoSCDMA2000Requested packetCDMA2000;
+ TPckg< RPacketQoS::TQoSCDMA2000Requested > pckgCDMA2000 = packetCDMA2000;
+
+ packetQoS.SetProfileParameters(requestStatus, pckgCDMA2000);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketContext::AddPacketFilter
+ //-------------------------------------------------------------------------
+
+ TBuf8<1> nullDescriptor;
+
+ packetQoS.SetProfileParameters(requestStatus, nullDescriptor);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RPacketQoS::SetProfileParameters
+ //-------------------------------------------------------------------------
+
+ TPacketDataConfigBase packetGPRS;
+ TPckg< TPacketDataConfigBase > parameter = packetGPRS;
+
+ packetQoS.SetProfileParameters(requestStatus, parameter);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::SetProfileParameters
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketQoS::SetProfileParameters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestSetProfileParameters0004L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data1;
+ CleanupClosePushL(data1);
+
+ RBuf8 data2;
+ CleanupClosePushL(data2);
+
+ RBuf8 data3;
+ CleanupClosePushL(data3);
+
+ TName profileName1;
+ TName profileName2;
+ TName profileName3;
+
+ RBuf8 expectData1;
+ CleanupClosePushL(expectData1);
+
+ 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);
+
+ // Open third client
+ RTelServer telServer3;
+ ret = telServer3.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer3);
+
+ RMobilePhone phone3;
+ ret = phone3.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone3);
+
+ RPacketService packetService1;
+ OpenPacketServiceL(packetService1);
+ CleanupClosePushL(packetService1);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ RPacketService packetService3;
+ ret = packetService3.Open(phone3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService3);
+
+ TInfoName contextName1;
+ RPacketContext packetContext1;
+ ret = packetContext1.OpenNewContext(packetService1, contextName1);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext1);
+
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewContext(packetService2, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ TInfoName contextName3;
+ RPacketContext packetContext3;
+ ret = packetContext3.OpenNewContext(packetService3, contextName3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext3);
+
+ RPacketQoS packetQoS1;
+ ret = packetQoS1.OpenNewQoS(packetContext1, profileName1);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS1);
+
+ RPacketQoS packetQoS2;
+ ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS2);
+
+ RPacketQoS packetQoS3;
+ ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS3);
+
+ TRequestStatus requestStatus;
+
+ // for packetContext1
+ RPacketQoS::TQoSGPRSRequested packetGPRS;
+ TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
+
+ RPacketContext::TContextStatus contextStatus1;
+ packetContext1.GetStatus(contextStatus1);
+
+ RPacketContext::TContextConfigGPRS contextConfig1;
+ TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig1 =
+ ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig1;
+
+ packetContext1.GetConfig(requestStatus, pckgContextConfig1);
+ User::WaitForRequest(requestStatus);
+
+ TInfoName primaryContextName1;
+
+ TContextParams contextParams1;
+ contextParams1.iContextName = contextName1;
+ contextParams1.iContextType = contextConfig1.iNWIContext;
+ contextParams1.iPdpType = contextConfig1.iPdpType;
+ contextParams1.iPrimaryContextName = primaryContextName1;
+ contextParams1.iContextStatus = contextStatus1;
+
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
+ expExpect1(contextParams1, packetGPRS);
+ expExpect1.SerialiseL(expectData1);
+
+ TMockLtsyData1< TInfoName > dataContextName1(contextName1);
+ dataContextName1.SerialiseL(data1);
+
+ // for packetContext2
+ RPacketQoS::TQoSR99_R4Requested packetR99_R4;
+ TPckg< RPacketQoS::TQoSR99_R4Requested > profilePckgR99_R4 = packetR99_R4;
+
+ RPacketContext::TContextStatus contextStatus2;
+ packetContext2.GetStatus(contextStatus2);
+
+ RPacketContext::TContextConfigR99_R4 contextConfig2;
+ TPckg< RPacketContext::TContextConfigR99_R4 > pckgContextConfig2 =
+ ( TPckg< RPacketContext::TContextConfigR99_R4 > ) contextConfig2;
+
+ packetContext2.GetConfig(requestStatus, pckgContextConfig2);
+ User::WaitForRequest(requestStatus);
+
+ TInfoName primaryContextName2;
+
+ TContextParams contextParams2;
+ contextParams2.iContextName = contextName2;
+ contextParams2.iContextType = contextConfig2.iNWIContext;
+ contextParams2.iPdpType = contextConfig2.iPdpType;
+ contextParams2.iPrimaryContextName = primaryContextName2;
+ contextParams2.iContextStatus = contextStatus2;
+
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSR99_R4Requested>
+ expExpect2(contextParams2, packetR99_R4);
+ expExpect2.SerialiseL(expectData2);
+
+ TMockLtsyData1< TInfoName > dataContextName2(contextName2);
+ dataContextName2.SerialiseL(data2);
+
+ // for packetContext3
+ RPacketQoS::TQoSR5Requested packetR5;
+ TPckg< RPacketQoS::TQoSR5Requested > profilePckgR5 = packetR5;
+
+ RPacketContext::TContextStatus contextStatus3;
+ packetContext3.GetStatus(contextStatus3);
+
+ RPacketContext::TContextConfigGPRS contextConfig3;
+ TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig3 =
+ ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig3;
+
+ packetContext3.GetConfig(requestStatus, pckgContextConfig3);
+ User::WaitForRequest(requestStatus);
+
+ TInfoName primaryContextName3;
+
+ TContextParams contextParams3;
+ contextParams3.iContextName = contextName3;
+ contextParams3.iContextType = contextConfig3.iNWIContext;
+ contextParams3.iPdpType = contextConfig3.iPdpType;
+ contextParams3.iPrimaryContextName = primaryContextName3;
+ contextParams3.iContextStatus = contextStatus3;
+
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSR5Requested>
+ expExpect3(contextParams3, packetR5);
+ expExpect3.SerialiseL(expectData3);
+
+ TMockLtsyData1< TInfoName > dataContextName3(contextName3);
+ dataContextName3.SerialiseL(data3);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketQoS::SetProfileParameters
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus1;
+ TRequestStatus requestStatus2;
+ TRequestStatus requestStatus3;
+
+ iMockLTSY.ExpectL (EPacketQoSSetProfileParams, expectData1);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data1);
+ packetQoS1.SetProfileParameters(requestStatus1, profilePckgGPRS);
+
+ iMockLTSY.ExpectL (EPacketQoSSetProfileParams, expectData2);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data2);
+ packetQoS2.SetProfileParameters(requestStatus2, profilePckgR99_R4);
+
+ iMockLTSY.ExpectL (EPacketQoSSetProfileParams, expectData3);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, data3);
+ packetQoS3.SetProfileParameters(requestStatus3, profilePckgR5);
+
+ User::WaitForRequest(requestStatus1);
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ User::WaitForRequest(requestStatus3);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetQoS1, packetQoS2, packetQoS3
+ CleanupStack::PopAndDestroy(3); // packetContext1, packetContext2, packetContext3
+ CleanupStack::PopAndDestroy(3); // packetService1, packetService2, packetService3
+ CleanupStack::PopAndDestroy(4); // telServer2, telServer3
+ // phone2, phone3
+ CleanupStack::PopAndDestroy(7, this); // data1, data2, data3, expectData1,
+ // expectData2, expectData3,
+ // this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QSPP-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::SetProfileParameters with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::SetProfileParameters and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestSetProfileParameters0005L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+
+ RPacketQoS::TQoSGPRSRequested packetGPRS;
+ TPckg< RPacketQoS::TQoSGPRSRequested > profilePckgGPRS = packetGPRS;
+
+ RPacketContext::TContextStatus contextStatus;
+ packetContext.GetStatus(contextStatus);
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
+ ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
+
+ packetContext.GetConfig(requestStatus, pckgContextConfig);
+ User::WaitForRequest(requestStatus);
+
+ TInfoName primaryContextName;
+
+ TContextParams contextParams;
+ contextParams.iContextName = contextName;
+ contextParams.iContextType = contextConfig.iNWIContext;
+ contextParams.iPdpType = contextConfig.iPdpType;
+ contextParams.iPrimaryContextName = primaryContextName;
+ contextParams.iContextStatus = contextStatus;
+
+ TMockLtsyData2<TContextParams, RPacketQoS::TQoSGPRSRequested>
+ expExpect(contextParams, packetGPRS);
+ expExpect.SerialiseL(expectData);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RPacketQoS::SetProfileParameters
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, expectData);
+
+ packetQoS.SetProfileParameters(requestStatus, profilePckgGPRS);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetServicem, packetContext, packetQoS
+ CleanupStack::PopAndDestroy(3, this); // data, this, expectData
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QGPC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileCapabilities
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::GetProfileCapabilities
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetProfileCapabilities0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketQoS::GetProfileCapabilities when result is not cached.
+ //-------------------------------------------------------------------------
+
+ RPacketQoS::TQoSCapsGPRS capsGPRS;
+ TPckg<RPacketQoS::TQoSCapsGPRS> capsGPRSPckg(capsGPRS);
+ packetQoS.GetProfileCapabilities(requestStatus, capsGPRSPckg);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(capsGPRS.iPrecedence, KMmPrecedence);
+ ASSERT_EQUALS(capsGPRS.iDelay, KMmDelay);
+ ASSERT_EQUALS(capsGPRS.iReliability, KMmReliability);
+ ASSERT_EQUALS(capsGPRS.iPeak, KMmPeak);
+ ASSERT_EQUALS(capsGPRS.iMean, KMmMean);
+
+ RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
+ TPckg<RPacketQoS::TQoSCapsR99_R4> capsR99_R4Pckg(capsR99_R4);
+ packetQoS.GetProfileCapabilities(requestStatus, capsR99_R4Pckg);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(capsR99_R4.iTrafficClass, KMmTrafficClass);
+ ASSERT_EQUALS(capsR99_R4.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
+ ASSERT_EQUALS(capsR99_R4.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
+ ASSERT_EQUALS(capsR99_R4.iBER, KMmBitErrorRatio);
+ ASSERT_EQUALS(capsR99_R4.iSDUErrorRatio, KMmSDUErrorRatio);
+ ASSERT_EQUALS(capsR99_R4.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
+
+ RPacketQoS::TQoSCapsR5 capsR5;
+ TPckg<RPacketQoS::TQoSCapsR5> capsR5Pckg(capsR5);
+ packetQoS.GetProfileCapabilities(requestStatus, capsR5Pckg);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(capsR5.iTrafficClass, KMmTrafficClass);
+ ASSERT_EQUALS(capsR5.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
+ ASSERT_EQUALS(capsR5.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
+ ASSERT_EQUALS(capsR5.iBER, KMmBitErrorRatio);
+ ASSERT_EQUALS(capsR5.iSDUErrorRatio, KMmSDUErrorRatio);
+ ASSERT_EQUALS(capsR5.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QGPC-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::GetProfileCapabilities with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::GetProfileCapabilities with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetProfileCapabilities0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketQoS::GetProfileCapabilities
+ //-------------------------------------------------------------------------
+
+ RPacketQoS::TQoSCapsCDMA2000 capsCDMA2000;
+ TPckg<RPacketQoS::TQoSCapsCDMA2000> capsCDMA2000Pckg(capsCDMA2000);
+
+ packetQoS.GetProfileCapabilities(requestStatus, capsCDMA2000Pckg);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketQoS::GetProfileCapabilities
+ //-------------------------------------------------------------------------
+
+ TBuf8<1> nullDescriptor;
+ packetQoS.GetProfileCapabilities(requestStatus, nullDescriptor);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QGPC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketQoS::GetProfileCapabilities
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketQoS::GetProfileCapabilities
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetProfileCapabilities0004L()
+ {
+ 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);
+
+ // Open 3rd client
+ RTelServer telServer3;
+ ret = telServer3.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer3);
+
+ RMobilePhone phone3;
+ ret = phone3.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone3);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketQoS::GetProfileCapabilities
+ //-------------------------------------------------------------------------
+
+ TName profileName;
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ RPacketQoS packetQoS;
+ ret = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS);
+
+ TName profileName2;
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ // Open new context
+ TInfoName contextName2;
+ RPacketContext packetContext2;
+ ret = packetContext2.OpenNewContext(packetService2, contextName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext2);
+
+ RPacketQoS packetQoS2;
+ ret = packetQoS2.OpenNewQoS(packetContext2, profileName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS2);
+
+ TName profileName3;
+
+ RPacketService packetService3;
+ ret = packetService3.Open(phone3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService3);
+
+ // Open new context
+ TInfoName contextName3;
+ RPacketContext packetContext3;
+ ret = packetContext3.OpenNewContext(packetService3, contextName3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext3);
+
+ RPacketQoS packetQoS3;
+ ret = packetQoS3.OpenNewQoS(packetContext3, profileName3);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetQoS3);
+
+ TRequestStatus requestStatus;
+
+ RPacketQoS::TQoSCapsGPRS capsGPRS;
+ TPckg<RPacketQoS::TQoSCapsGPRS> capsGPRSPckg(capsGPRS);
+ packetQoS.GetProfileCapabilities(requestStatus, capsGPRSPckg);
+
+ TRequestStatus requestStatus2;
+
+ RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
+ TPckg<RPacketQoS::TQoSCapsR99_R4> capsR99_R4Pckg(capsR99_R4);
+ packetQoS2.GetProfileCapabilities(requestStatus2, capsR99_R4Pckg);
+
+ TRequestStatus requestStatus3;
+
+ RPacketQoS::TQoSCapsR5 capsR5;
+ TPckg<RPacketQoS::TQoSCapsR5> capsR5Pckg(capsR5);
+ packetQoS3.GetProfileCapabilities(requestStatus3, capsR5Pckg);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(capsGPRS.iPrecedence, KMmPrecedence);
+ ASSERT_EQUALS(capsGPRS.iDelay, KMmDelay);
+ ASSERT_EQUALS(capsGPRS.iReliability, KMmReliability);
+ ASSERT_EQUALS(capsGPRS.iPeak, KMmPeak);
+ ASSERT_EQUALS(capsGPRS.iMean, KMmMean);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(capsR99_R4.iTrafficClass, KMmTrafficClass);
+ ASSERT_EQUALS(capsR99_R4.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
+ ASSERT_EQUALS(capsR99_R4.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
+ ASSERT_EQUALS(capsR99_R4.iBER, KMmBitErrorRatio);
+ ASSERT_EQUALS(capsR99_R4.iSDUErrorRatio, KMmSDUErrorRatio);
+ ASSERT_EQUALS(capsR99_R4.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
+
+ User::WaitForRequest(requestStatus3);
+ ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+ ASSERT_EQUALS(capsR5.iTrafficClass, KMmTrafficClass);
+ ASSERT_EQUALS(capsR5.iDeliveryOrderReqd, KMmDeliveryOrderReqd);
+ ASSERT_EQUALS(capsR5.iDeliverErroneousSDU, KMmErroneousSDUDelivery);
+ ASSERT_EQUALS(capsR5.iBER, KMmBitErrorRatio);
+ ASSERT_EQUALS(capsR5.iSDUErrorRatio, KMmSDUErrorRatio);
+ ASSERT_EQUALS(capsR5.iTrafficHandlingPriority, KMmTrafficHandlingPriority);
+
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(3); // packetQoS3, packetContext3, packetService3,
+ CleanupStack::PopAndDestroy(3); // packetQoS2, packetContext2, packetService2,
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(6, this); // phone3, telServer3, phone2, telServer2, data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCCNT-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::CreateNewTFT
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::CreateNewTFT
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestCreateNewTFT0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt ret = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ packetContext.CreateNewTFT(requestStatus, 8);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2);
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddPacketFilter
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::AddPacketFilter
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddPacketFilter0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::AddPacketFilter
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(requestStatus);
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextAddPacketFilter, KErrNone);
+ // wait for completion
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TPacketFilterV2 contextFilter;
+ contextFilter.iId = 1;// 1 - 8
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
+
+ RPacketContext::TContextConfigGPRS configGPRS;
+ CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
+ <RPacketContext::TPacketFilterV2>( 1 );
+ CleanupStack::PushL(filterArray);
+
+ contextFilter.iId = 1;
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData( configGPRS, 0, secContextId, filterArray );
+
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data, KErrNotSupported);
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+
+ User::WaitForRequest(requestStatus);
+ //ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50101);
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName(secContextId);
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrGeneral, data);
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::AddPacketFilter when result is not cached.
+ //-------------------------------------------------------------------------
+
+ SetContextActiveL(secContextId);
+ AssertMockLtsyStatusL();
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ SetContextStatusL(secContextId, RPacketContext::EStatusUnknown);
+ AssertMockLtsyStatusL();
+
+ filterArray->AppendL( contextFilter );
+ contextFilter.iId = 2;
+ filterArray->AppendL( contextFilter );
+ data.Close();
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+
+ User::WaitForRequest(requestStatus);
+ //ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50101);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST D: RPacketContext::AddPacketFilter again, this time CTSY
+ // will get result from the cache.
+ //-------------------------------------------------------------------------
+
+ filterArray->Delete(0);
+ contextFilter.iId = 4;
+ filterArray->AppendL( contextFilter );
+ data.Close();
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RPacketContext::AddPacketFilter
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RPacketContext::AddPacketFilter
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddPacketFilter0002L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RPacketContext::AddPacketFilter
+ //-------------------------------------------------------------------------
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RPacketContext::TPacketFilterV2 contextFilter;
+ contextFilter.iId = 1;// 1 - 8
+ //contextFilter.iEvaluationPrecedenceIndex = 0;
+
+ RPacketContext::TContextConfigGPRS configGPRS;
+ CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
+ <RPacketContext::TPacketFilterV2>( 1 );;
+ CleanupStack::PushL(filterArray);
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData( configGPRS, 0, secContextId, filterArray );
+
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName(secContextId);
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data, 10);
+ //iMockLTSY.CompleteL(EPacketContextAddPacketFilter, KErrNone, 10);
+
+ TRequestStatus requestStatus;
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+
+ //packetContext.AddPacketFilterCancel();
+ packetContext.CancelAsyncRequest(EPacketContextAddPacketFilter);
+ packetContext.CancelAsyncRequest(EPacketContextSetConfig);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
+ CleanupStack::PopAndDestroy(2); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::AddPacketFilter with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::AddPacketFilter with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddPacketFilter0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RPacketContext::AddPacketFilter
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TPacketFilterV2 contextFilter;
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
+
+ SetContextActiveL(secContextId);
+
+ contextFilter.iId = 0;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 9;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 1;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ SetContextStatusL(secContextId, RPacketContext::EStatusActivating);
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 0;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 9;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ SetContextStatusL(secContextId, RPacketContext::EStatusInactive);
+
+ contextFilter.iId = 1;// 1 - 8
+ packetPrimContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 0;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 9;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ SetContextStatusL(secContextId, RPacketContext::EStatusUnknown);
+
+ contextFilter.iId = 1;// 1 - 8
+ packetPrimContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 0;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ contextFilter.iId = 9;// 1 - 8
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketContext::AddPacketFilter
+ //-------------------------------------------------------------------------
+
+ SetContextActiveL(secContextId);
+
+ TBuf8<1> nullDescriptor;
+ packetContext.AddPacketFilter(requestStatus, nullDescriptor);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCAPF-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::AddPacketFilter
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::AddPacketFilter
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestAddPacketFilter0004L()
+ {
+ 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::AddPacketFilter
+ //-------------------------------------------------------------------------
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ // Open new context2
+ TInfoName contextId2;
+ TInfoName secContextId2;
+ RPacketContext packetPrimContext2;
+ err = packetPrimContext2.OpenNewContext(packetService2, contextId2);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext2);
+
+ RPacketContext packetContext2;
+ err = packetContext2.OpenNewSecondaryContext(packetService2, contextId2, secContextId2);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus requestStatus;
+ TRequestStatus requestStatus2;
+
+ RPacketContext::TPacketFilterV2 contextFilter;
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
+ contextFilter.iId = 1;// 1 - 8
+
+ RPacketContext::TContextConfigGPRS configGPRS;
+ CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
+ <RPacketContext::TPacketFilterV2>( 1 );;
+ CleanupStack::PushL(filterArray);
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData( configGPRS, 0, secContextId, filterArray );
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName(secContextId);
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+
+ RPacketContext::TPacketFilterV2 contextFilter2;
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg2(contextFilter2);
+ contextFilter2.iId = 2;// 1 - 8
+
+ CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray2 = new ( ELeave ) CArrayFixFlat
+ <RPacketContext::TPacketFilterV2>( 1 );;
+ CleanupStack::PushL(filterArray2);
+ filterArray2->AppendL( contextFilter2 );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData2( configGPRS, 0, secContextId2, filterArray2 );
+ data.Close();
+ packetFilterData2.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName2(secContextId2);
+ data.Close();
+ contexName2.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext2.AddPacketFilter(requestStatus2, contextFilterPckg2);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(2); // filterArray2, filterArray
+ CleanupStack::PopAndDestroy(3); // packetContext2, packetPrimContext2, packetService2
+ CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
+ CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCRPF-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemovePacketFilter
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::RemovePacketFilter
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestRemovePacketFilter0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RPacketContext::RemovePacketFilter
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.NotifyTerminated(requestStatus);
+ //send completion
+ iMockLTSY.CompleteL(EPacketContextRemovePacketFilter, KErrNone);
+ // wait for completion
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::RemovePacketFilter when result is not cached.
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TPacketFilterV2 contextFilter;
+ contextFilter.iId = 1;// 1 - 8
+
+ RPacketContext::TContextConfigGPRS configGPRS;
+ CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
+ <RPacketContext::TPacketFilterV2>( 1 );;
+ CleanupStack::PushL(filterArray);
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData( configGPRS, 0, secContextId, filterArray );
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName(secContextId);
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+ packetContext.RemovePacketFilter(requestStatus, 1);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST D: RPacketContext::RemovePacketFilter again, this time CTSY
+ // will get result from the cache.
+ //-------------------------------------------------------------------------
+
+ packetContext.RemovePacketFilter(requestStatus, 1);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCRPF-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::RemovePacketFilter with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::RemovePacketFilter with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestRemovePacketFilter0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RPacketContext::AddPacketFilter
+ //-------------------------------------------------------------------------
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ packetContext.RemovePacketFilter(requestStatus, 0);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ packetContext.RemovePacketFilter(requestStatus, 1);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ packetContext.RemovePacketFilter(requestStatus, 9);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(3); // packetService, packetPrimContext, packetContext
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCGPFI-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetPacketFilterInfo
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetPacketFilterInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetPacketFilterInfo0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketContext::GetPacketFilterInfo when result is not cached.
+ //-------------------------------------------------------------------------
+ RPacketContext::TPacketFilterV2 contextFilter;
+ contextFilter.iId = 1;// 1 - 8
+
+ RPacketContext::TContextConfigGPRS configGPRS;
+ CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
+ <RPacketContext::TPacketFilterV2>( 1 );;
+ CleanupStack::PushL(filterArray);
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData( configGPRS, 0, secContextId, filterArray );
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName(secContextId);
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ RPacketContext::TPacketFilterV2 packetFilter;
+ RPacketContext::TPacketFilterV2Pckg filterInfoPckg(packetFilter);
+ packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
+ User::WaitForRequest(requestStatus);
+
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(contextFilter.iId , packetFilter.iId );
+ ASSERT_EQUALS(contextFilter.iEvaluationPrecedenceIndex , packetFilter.iEvaluationPrecedenceIndex );
+ ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddr,
+ packetFilter.iSrcAddr ,
+ sizeof(RPacketContext::TIPAddress)));
+ ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddrSubnetMask,
+ packetFilter.iSrcAddrSubnetMask,
+ sizeof(RPacketContext::TIPAddress)));
+ ASSERT_EQUALS(contextFilter.iProtocolNumberOrNextHeader, packetFilter.iProtocolNumberOrNextHeader);
+ ASSERT_EQUALS(contextFilter.iSrcPortMin , packetFilter.iSrcPortMin );
+ ASSERT_EQUALS(contextFilter.iSrcPortMax , packetFilter.iSrcPortMax );
+ ASSERT_EQUALS(contextFilter.iDestPortMin , packetFilter.iDestPortMin );
+ ASSERT_EQUALS(contextFilter.iDestPortMax , packetFilter.iDestPortMax );
+ ASSERT_EQUALS(contextFilter.iIPSecSPI , packetFilter.iIPSecSPI );
+ ASSERT_EQUALS(contextFilter.iTOSorTrafficClass , packetFilter.iTOSorTrafficClass );
+ ASSERT_EQUALS(contextFilter.iFlowLabel , packetFilter.iFlowLabel );
+
+ //-------------------------------------------------------------------------
+ // TEST D: RPacketContext::GetPacketFilterInfo again, this time CTSY
+ // will get result from the cache.
+ //-------------------------------------------------------------------------
+
+ packetContext.RemovePacketFilter(requestStatus, 1);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ iMockLTSY.NotifyTerminated(requestStatus);
+ TBuf8<1> rejectionCode(1);
+ TMockLtsyData2< TInfoName, TBuf8<1> > modifyContextData(secContextId, rejectionCode);
+ data.Close();
+ modifyContextData.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextModifyActiveContext, KErrNone, data);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ contextFilter.iId = 2;
+ filterArray->Reset();
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData2( configGPRS, 0, secContextId, filterArray );
+ data.Close();
+ packetFilterData2.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
+ User::WaitForRequest(requestStatus);
+
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(contextFilter.iId , packetFilter.iId );
+ ASSERT_EQUALS(contextFilter.iEvaluationPrecedenceIndex , packetFilter.iEvaluationPrecedenceIndex );
+ ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddr,
+ packetFilter.iSrcAddr ,
+ sizeof(RPacketContext::TIPAddress)));
+ ASSERT_EQUALS(0, memcmp(contextFilter.iSrcAddrSubnetMask,
+ packetFilter.iSrcAddrSubnetMask,
+ sizeof(RPacketContext::TIPAddress)));
+ ASSERT_EQUALS(contextFilter.iProtocolNumberOrNextHeader, packetFilter.iProtocolNumberOrNextHeader);
+ ASSERT_EQUALS(contextFilter.iSrcPortMin , packetFilter.iSrcPortMin );
+ ASSERT_EQUALS(contextFilter.iSrcPortMax , packetFilter.iSrcPortMax );
+ ASSERT_EQUALS(contextFilter.iDestPortMin , packetFilter.iDestPortMin );
+ ASSERT_EQUALS(contextFilter.iDestPortMax , packetFilter.iDestPortMax );
+ ASSERT_EQUALS(contextFilter.iIPSecSPI , packetFilter.iIPSecSPI );
+ ASSERT_EQUALS(contextFilter.iTOSorTrafficClass , packetFilter.iTOSorTrafficClass );
+ ASSERT_EQUALS(contextFilter.iFlowLabel , packetFilter.iFlowLabel );
+
+ CleanupStack::PopAndDestroy(4); // packetContext, packetPrimContext, packetService, filterArray
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCGPFI-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::GetPacketFilterInfo with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::GetPacketFilterInfo with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetPacketFilterInfo0003L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RPacketContext::GetPacketFilterInfo
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TPacketFilterV2 packetFilter;
+ RPacketContext::TPacketFilterV2Pckg filterInfoPckg(packetFilter);
+
+ packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RPacketContext::GetPacketFilterInfo
+ //-------------------------------------------------------------------------
+
+ TInt wrongPacketFilter;
+ TPckg<TInt> wrongFilterInfoPckg(wrongPacketFilter);
+
+ packetContext.GetPacketFilterInfo(requestStatus, 0, wrongFilterInfoPckg);
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketContext::GetPacketFilterInfo
+ //-------------------------------------------------------------------------
+ TBuf8<1> nullDescriptor;
+ packetContext.GetPacketFilterInfo(requestStatus, 0, nullDescriptor);
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCGPFI-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RPacketContext::GetPacketFilterInfo
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RPacketContext::GetPacketFilterInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestGetPacketFilterInfo0004L()
+ {
+ 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);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextId;
+ TInfoName secContextId;
+ RPacketContext packetPrimContext;
+ TInt err = packetPrimContext.OpenNewContext(packetService, contextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext);
+
+ RPacketContext packetContext;
+ err = packetContext.OpenNewSecondaryContext(packetService, contextId, secContextId);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ RPacketService packetService2;
+ ret = packetService2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(packetService2);
+
+ // Open new context
+ TInfoName contextId2;
+ TInfoName secContextId2;
+ RPacketContext packetPrimContext2;
+ err = packetPrimContext2.OpenNewContext(packetService2, contextId2);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetPrimContext2);
+
+ RPacketContext packetContext2;
+ err = packetContext2.OpenNewSecondaryContext(packetService2, contextId2, secContextId2);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext2);
+
+ TRequestStatus requestStatus2;
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RPacketContext::GetPacketFilterInfo
+ //-------------------------------------------------------------------------
+
+ RPacketContext::TPacketFilterV2 contextFilter;
+ contextFilter.iId = 1;// 1 - 8
+
+ RPacketContext::TContextConfigGPRS configGPRS;
+ CArrayFixFlat< RPacketContext::TPacketFilterV2 >* filterArray = new ( ELeave ) CArrayFixFlat
+ <RPacketContext::TPacketFilterV2>( 1 );;
+ CleanupStack::PushL(filterArray);
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData( configGPRS, 0, secContextId, filterArray );
+ packetFilterData.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName(secContextId);
+ data.Close();
+ contexName.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ RPacketContext::TPacketFilterV2Pckg contextFilterPckg(contextFilter);
+ packetContext.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ //ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50101);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ contextFilter.iId = 2;// 1 - 8
+ filterArray->Reset();
+ filterArray->AppendL( contextFilter );
+
+ TMockLtsyContextData2< TInfoName, CArrayFixFlat< RPacketContext::TPacketFilterV2 >* >
+ packetFilterData2( configGPRS, 0, secContextId2, filterArray );
+ data.Close();
+ packetFilterData2.SerialiseL(data);
+ iMockLTSY.ExpectL(EPacketContextAddPacketFilter, data);
+
+ TMockLtsyData1<TInfoName > contexName2(secContextId2);
+ data.Close();
+ contexName2.SerialiseL(data);
+ iMockLTSY.CompleteL(EPacketContextSetConfig, KErrNone, data);
+
+ packetContext2.AddPacketFilter(requestStatus, contextFilterPckg);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ RPacketContext::TPacketFilterV2 packetFilter;
+ RPacketContext::TPacketFilterV2Pckg filterInfoPckg(packetFilter);
+ packetContext.GetPacketFilterInfo(requestStatus, 0, filterInfoPckg);
+
+ RPacketContext::TPacketFilterV2 packetFilter2;
+ RPacketContext::TPacketFilterV2Pckg filterInfoPckg2(packetFilter2);
+ packetContext2.GetPacketFilterInfo(requestStatus2, 0, filterInfoPckg2);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ contextFilter.iId = 1;// 1 - 8
+ ASSERT_EQUALS(contextFilterPckg, filterInfoPckg);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ contextFilter.iId = 2;// 1 - 8
+ ASSERT_EQUALS(contextFilterPckg, filterInfoPckg2);
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(4); // packetContext2, packetPrimContext2, packetService2, filterArray
+ CleanupStack::PopAndDestroy(3); // packetContext, packetPrimContext, packetService
+ CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-PCDT-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketContext::DeleteTFT
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketContext::DeleteTFT
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestDeleteTFT0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ packetContext.OpenNewContext(packetService, contextName);
+ CleanupClosePushL(packetContext);
+
+ TRequestStatus requestStatus;
+
+ packetContext.DeleteTFT(requestStatus);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2);
+ CleanupStack::PopAndDestroy(2, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QONQ-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenNewQoS
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::OpenNewQoS
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestOpenNewQoS0001L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt err = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketQoS::OpenNewQoS when result is not cached.
+ //-------------------------------------------------------------------------
+
+ RPacketQoS packetQoS;
+ TInfoName profileName;
+ err = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, err);
+ packetQoS.Close();
+
+ //-------------------------------------------------------------------------
+ // TEST: Call OpenNewQoS without prior clothing
+ // after successful completion of previous call
+ //-------------------------------------------------------------------------
+
+ err = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, err);
+ TInfoName profileName2;
+ err = packetQoS.OpenNewQoS(packetContext, profileName2);
+ // never get here because of etel panic 11 (EEtelPanicHandleNotClosed)
+ ASSERT_TRUE( KErrNone != err );
+ packetQoS.Close();
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QONQ-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenNewQoS with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::OpenNewQoS with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestOpenNewQoS0003L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt err = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RPacketQoS::OpenNewQoS
+ //-------------------------------------------------------------------------
+
+ TBuf<1> buf;
+ RPacketQoS packetQoS;
+ err = packetQoS.OpenNewQoS(packetContext, buf);
+ ASSERT_EQUALS(KErrOverflow, err);
+ packetQoS.Close();
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2); // packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QOEQ-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenExistingQoS
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::OpenExistingQoS
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestOpenExistingQoS0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt err = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ // Open new QoS
+ RPacketQoS packetQoS;
+ TInfoName profileName;
+ err = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetQoS);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RPacketQoS::OpenExistingQoS when result is not cached.
+ //-------------------------------------------------------------------------
+
+ RPacketQoS existingQoS;
+ err = existingQoS.OpenExistingQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, err);
+ existingQoS.Close();
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QOEQ-0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenExistingQoS with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::OpenExistingQoS with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestOpenExistingQoS0003L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt err = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ // Open new QoS
+ RPacketQoS packetQoS;
+ TInfoName profileName;
+ err = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetQoS);
+
+ //-------------------------------------------------------------------------
+ // Test passing out of bounds parameters to
+ // RPacketQoS::OpenExistingQoS
+ //-------------------------------------------------------------------------
+
+ TInfoName name;
+
+ RPacketQoS existingQoS;
+ name.Copy(_L("What's up"));
+ err = existingQoS.OpenExistingQoS(packetContext, name);
+ ASSERT_EQUALS(KErrNotFound, err);
+ existingQoS.Close();
+
+ name.Copy(_L(":"));
+ err = existingQoS.OpenExistingQoS(packetContext, name);
+ ASSERT_EQUALS(KErrNotFound, err);
+ existingQoS.Close();
+
+ name.Copy(_L("What's up:"));
+ err = existingQoS.OpenExistingQoS(packetContext, name);
+ ASSERT_EQUALS(KErrNotFound, err);
+ existingQoS.Close();
+
+ //-------------------------------------------------------------------------
+ // Test passing wrong descriptor size to parameter in
+ // RPacketQoS::OpenExistingQoS
+ //-------------------------------------------------------------------------
+
+ TBuf<1> buf;
+ err = existingQoS.OpenExistingQoS(packetContext, buf);
+ ASSERT_EQUALS(KErrNotFound, err);
+ existingQoS.Close();
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-PKTQ-QOEQ-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RPacketQoS::OpenExistingQoS with out of bounds parameters
+@SYMTestPriority High
+@SYMTestActions Invokes RPacketQoS::OpenExistingQoS with out of bounds parameters
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPacketQoSFU::TestOpenExistingQoS0004L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RPacketService packetService;
+ OpenPacketServiceL(packetService);
+ CleanupClosePushL(packetService);
+
+ // Open new context
+ TInfoName contextName;
+ RPacketContext packetContext;
+ TInt err = packetContext.OpenNewContext(packetService, contextName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetContext);
+
+ // Open new QoS
+ RPacketQoS packetQoS;
+ TInfoName profileName;
+ err = packetQoS.OpenNewQoS(packetContext, profileName);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(packetQoS);
+
+ //-------------------------------------------------------------------------
+ // Test passing out of bounds parameters to
+ // RPacketQoS::OpenExistingQoS
+ //-------------------------------------------------------------------------
+
+ TInfoName name;
+
+ RPacketQoS existingQoS;
+ name.Copy(_L(":"));
+ name.Append(profileName);
+
+ err = existingQoS.OpenExistingQoS(packetContext, name);
+ ASSERT_EQUALS(KErrNotFound, err);
+
+ existingQoS.Close();
+
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(3); // packetQoS, packetContext, packetService
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+template< class T >
+void CCTsyPacketQoSFU::ChangeProfileDataL(RPacketContext& aPacketContext, RPacketQoS& aPacketQoS,
+ TInfoName& aContextName, RBuf8& aData)
+ {
+ RBuf8 profileParamData1;
+ CleanupClosePushL(profileParamData1);
+
+ RBuf8 profileParamData2;
+ CleanupClosePushL(profileParamData2);
+
+ // call packetQoS.SetProfileParameters()
+ //----------------------------------------------------------------------------
+ TRequestStatus requestSetProfile;
+
+ T qosRequested;
+ TPckg< T > pckgQoSRequested(qosRequested);
+
+ RPacketContext::TContextStatus contextStatus;
+ aPacketContext.GetStatus(contextStatus);
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPckg< RPacketContext::TContextConfigGPRS > pckgContextConfig =
+ ( TPckg< RPacketContext::TContextConfigGPRS > ) contextConfig;
+
+ aPacketContext.GetConfig(requestSetProfile, pckgContextConfig);
+ User::WaitForRequest(requestSetProfile);
+
+ TInfoName primaryContextName;
+
+ TContextParams contextParams;
+ contextParams.iContextName = aContextName;
+ contextParams.iContextType = contextConfig.iNWIContext;
+ contextParams.iPdpType = contextConfig.iPdpType;
+ contextParams.iPrimaryContextName = primaryContextName;
+ contextParams.iContextStatus = contextStatus;
+
+ TMockLtsyData2<TContextParams, T>
+ expExpect(contextParams, qosRequested);
+ expExpect.SerialiseL(profileParamData1);
+
+ TMockLtsyData1< TInfoName > mockLTSYData(aContextName);
+ mockLTSYData.SerialiseL(profileParamData2);
+
+ iMockLTSY.ExpectL(EPacketQoSSetProfileParams, profileParamData1);
+ iMockLTSY.CompleteL(EPacketQoSSetProfileParams, KErrNone, profileParamData2);
+
+ aPacketQoS.SetProfileParameters(requestSetProfile, pckgQoSRequested);
+
+ User::WaitForRequest(requestSetProfile);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestSetProfile.Int());
+ //----------------------------------------------------------------------------
+
+ // call iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, data);
+ //----------------------------------------------------------------------------
+ TPacketQoSGPRSNegotiated profileCompleteQoSGPRS;
+ TPacketQoSR99_R4Negotiated profileQoSR99_R4;
+ TPacketQoSR5Negotiated profileQoSR5;
+
+ switch(qosRequested.ExtensionId())
+ {
+ case TPacketDataConfigBase::KConfigGPRS:
+ {
+ profileCompleteQoSGPRS.iPrecedence = RPacketQoS::EPriorityHighPrecedence;
+ profileCompleteQoSGPRS.iDelay = RPacketQoS::EDelayClass3;
+ profileCompleteQoSGPRS.iReliability = RPacketQoS::EReliabilityClass2;
+ profileCompleteQoSGPRS.iPeakThroughput = RPacketQoS::EPeakThroughput16000;
+ profileCompleteQoSGPRS.iMeanThroughput = RPacketQoS::EMeanThroughput100000;
+ }
+ break;
+ case TPacketDataConfigBase::KConfigRel99Rel4:
+ {
+ profileQoSR99_R4.iTrafficClass = RPacketQoS::ETrafficClassStreaming;
+ profileQoSR99_R4.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
+ profileQoSR99_R4.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryRequired;
+ profileQoSR99_R4.iMaxSDUSize = 0x100;
+ profileQoSR99_R4.iMaxRate.iUplinkRate = 10000;
+ profileQoSR99_R4.iMaxRate.iDownlinkRate = 10000;
+ profileQoSR99_R4.iBER = RPacketQoS::EBEROnePerHundredThousand;
+ profileQoSR99_R4.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerTenThousand;
+ profileQoSR99_R4.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority2;
+ profileQoSR99_R4.iTransferDelay = 1000;
+ profileQoSR99_R4.iGuaranteedRate.iUplinkRate = 1000;
+ profileQoSR99_R4.iGuaranteedRate.iDownlinkRate = 1000;
+ }
+ break;
+ case TPacketDataConfigBase::KConfigRel5:
+ {
+ profileQoSR5.iSignallingIndication = ETrue;
+ profileQoSR5.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorSpeech;
+ profileQoSR5.iTrafficClass = RPacketQoS::ETrafficClassStreaming;
+ profileQoSR5.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
+ profileQoSR5.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryRequired;
+ profileQoSR5.iMaxSDUSize = 0x100;
+ profileQoSR5.iMaxRate.iUplinkRate = 10000;
+ profileQoSR5.iMaxRate.iDownlinkRate = 10000;
+ profileQoSR5.iBER = RPacketQoS::EBEROnePerHundredThousand;
+ profileQoSR5.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerTenThousand;
+ profileQoSR5.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority2;
+ profileQoSR5.iTransferDelay = 1000;
+ profileQoSR5.iGuaranteedRate.iUplinkRate = 1000;
+ profileQoSR5.iGuaranteedRate.iDownlinkRate = 1000;
+ }
+ break;
+ default:
+ break;
+ }
+
+ TMockLtsyPacketQoSData1< TInfoName > mockData(profileCompleteQoSGPRS,
+ profileQoSR99_R4,
+ profileQoSR5,
+ aContextName);
+ aData.Close();
+ mockData.SerialiseL(aData);
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EPacketQoSNotifyProfileChanged, KErrNone, aData);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ //----------------------------------------------------------------------------
+
+ CleanupStack::PopAndDestroy(2);
+ }