--- a/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestpacketcontext.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestpacketcontext.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,14451 +1,14451 @@
-/*
-* Copyright (c) 2007-2008 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:
-*
-*/
-
-
-
-/**
- * Test step definitions for the PacketContext functional unit.
- * @internalTechnology
- */
-
-#include <etelmm.h>
-#include <etelpckt.h>
-#include <pcktcs.h>
-#include "cctsyintegrationtestpacketcontext.h"
-#include "chttpdownload.h"
-
-
-CCTSYIntegrationTestPacketContextBase::CCTSYIntegrationTestPacketContextBase(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr), iPacketServiceTestHelper(*this), iNetworkTestHelper(*this)
-/**
- * Constructor
- */
- {
- }
-
-CCTSYIntegrationTestPacketContextBase::~CCTSYIntegrationTestPacketContextBase()
-/*
- * Destructor
- */
- {
- }
-
-
-void CCTSYIntegrationTestPacketContextBase::SetAttachModeToWhenPossibleAndWaitForAttachL(RPacketService& aPacketService)
-/**
- * Attaches the phone to the packet service by setting the
- * attach mode to RPacketService::EAttachWhenPossible. Requests
- * that the phone attaches to the packet service and waits for
- * attach to complete.
- *
- * @param aPacketService Reference to packet service subsession.
- */
- {
- RPacketService::TAttachMode attachMode;
- CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
-
- TExtEtelRequestStatus notifyServiceStatusChStatus(aPacketService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStatusChStatus);
- RPacketService::TStatus packetServiceStatus;
- aPacketService.NotifyStatusChange(notifyServiceStatusChStatus, packetServiceStatus);
-
- if(attachMode != RPacketService::EAttachWhenPossible)
- {
- CHECK_EQUALS_L(aPacketService.SetAttachMode(RPacketService::EAttachWhenPossible), KErrNone,
- _L("RPacketService::SetAttachMode returned with an error."));
- }
-
- CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
- CHECK_EQUALS_L(attachMode, RPacketService::EAttachWhenPossible, _L("RPacketService::GetAttachMode did not return EAttachWhenPossible."));
-
- // Ensure phone is attached to the packet service (RPacketService::GetStatus returns EStatusAttached).
- RPacketService::TStatus packetStatus;
- CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
-
- // Wait for phone to attach to packet service if it is not attached.
- if (packetStatus != RPacketService::EStatusAttached)
- {
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- aPacketService,
- notifyServiceStatusChStatus,
- packetServiceStatus,
- RPacketService::EStatusAttached,
- KErrNone);
- CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
- CHECK_EQUALS_L(packetStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus did not return EStatusAttached"));
- }
-
- CleanupStack::PopAndDestroy(1, ¬ifyServiceStatusChStatus);
- }
-
-
-TInt CCTSYIntegrationTestPacketContextBase::AddPacketFilterV2ToContextL(RPacketContext& aPacketContext, TInt aId, TInt aErrCode)
-/**
- * Adds a packet filter to context.
- *
- * @param aPacketContext Reference to packet context subsession.
- * @param aId the id of the filter to set, which is also an identifyer to one of three predefined filters
- * @param aErrCode the error code that the AddPacketFilter should return, default KErrNone.
- *
- * @return Request status value returned by
- * RPacketContext::AddPacketFilter call.
- */
- {
- RPacketContext::TPacketFilterV2 packetFilterV2;
- FillPacketFilter(packetFilterV2,aId);
-
- RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
-
- TExtEtelRequestStatus addFilterStatus(aPacketContext, EPacketContextAddPacketFilter);
- CleanupStack::PushL(addFilterStatus);
- aPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeShort), KErrNone,
- _L("RPacketContext::AddPacketFilter timed out"))
- ASSERT_EQUALS(addFilterStatus.Int(), aErrCode,
- _L("RPacketContext::AddPacketFilter did returned the expected value"))
-
- TInt ret = addFilterStatus.Int();
- CleanupStack::PopAndDestroy(&addFilterStatus);
- return ret;
- }
-
-// Helper macro, same as ASSERT_EQUALS but also change a local parameter (ret) to EFalse if the parameters are not equal
-// One should define the variable TBool ret before calling this macro, and then one can use this variable to know if any of the local macros failed.
-#define LOCAL_ASSERT_EQUALS(result,expected,msg) \
- { \
- TBool tempLocalAssertEqualsRet = ((result)==(expected)); \
- ASSERT_TRUE(tempLocalAssertEqualsRet,msg); \
- if(!tempLocalAssertEqualsRet) \
- { \
- ret=EFalse; \
- } \
- }
-
-// Helper macro, same as ASSERT_TRUE but also change a local parameter (ret) to EFalse if the parameters are not equal
-// One should define the variable TBool ret before calling this macro, and then one can use this variable to know if any of the local macros failed.
-#define LOCAL_ASSERT_TRUE(value,msg) LOCAL_ASSERT_EQUALS((TBool)(value),(TBool)ETrue,msg);
-
-
-TUint CCTSYIntegrationTestPacketContextBase::FindLSB(TUint aNumber)
-/**
- * Finds the least significant bit in a number
- *
- * @param aNumber The number
- * @return The LSB of aNumber
- */
- {
- if(aNumber==0)
- {
- return 0;
- }
- TUint bit=1;
- while(ETrue)
- {
- if((aNumber&bit)!=0)
- {
- return bit;
- }
- bit=bit*2;
- }
- }
-
-TUint CCTSYIntegrationTestPacketContextBase::FindMSB(TUint aNumber)
-/**
- * Finds the most significant bit in a number
- *
- * @param aNumber The number
- * @return The MSB of aNumber
- */
- {
- if(aNumber==0)
- {
- return 0;
- }
- TUint bit=1;
- while(ETrue)
- {
- if((aNumber&bit)!=0)
- {
- aNumber=(aNumber^bit);
- if(aNumber==0)
- {
- return bit;
- }
- }
- bit=bit*2;
- }
- }
-
-void CCTSYIntegrationTestPacketContextBase::FillPacketFilter(RPacketContext::TPacketFilterV2 &aFilter, TInt aId)
-/**
- * Fill a packet filter object with actual values.
- *
- * @param aFilter Reference to the structure to fill.
- * @param aId the id of the filter to set, which is also an identifyer to one of three predefined filters
- *
- */
- {
- aFilter.iId = aId;
- switch(aId)
- {
- case 1:
- {
- aFilter.iEvaluationPrecedenceIndex = 0;
- aFilter.iSrcAddr[0] = 0xCF;
- aFilter.iSrcAddr[1] = 0xFF;
- aFilter.iSrcAddr[2] = 0xFF;
- aFilter.iSrcAddr[3] = 0x11;
- aFilter.iSrcAddrSubnetMask[0] = 0xC0;
- aFilter.iSrcAddrSubnetMask[1] = 0xC1;
- aFilter.iSrcAddrSubnetMask[2] = 0xF2;
- aFilter.iSrcAddrSubnetMask[3] = 0x51;
- aFilter.iProtocolNumberOrNextHeader = 6;
- aFilter.iSrcPortMin = 2;
- aFilter.iSrcPortMax = 65000;
- aFilter.iDestPortMin = 8;
- aFilter.iDestPortMax = 65100;
- aFilter.iTOSorTrafficClass = 0x3F8C;
- aFilter.iFlowLabel = 0;
- aFilter.iIPSecSPI = 0;
- break;
- }
- case 2:
- {
- aFilter.iEvaluationPrecedenceIndex = 255;
- aFilter.iSrcAddr[0] = 0x21;
- aFilter.iSrcAddr[1] = 0xD2;
- aFilter.iSrcAddr[2] = 0x3F;
- aFilter.iSrcAddr[3] = 0x1A;
- aFilter.iSrcAddrSubnetMask[0] = 0x2A;
- aFilter.iSrcAddrSubnetMask[1] = 0x2B;
- aFilter.iSrcAddrSubnetMask[2] = 0xFF;
- aFilter.iSrcAddrSubnetMask[3] = 0x3F;
- aFilter.iProtocolNumberOrNextHeader = 8;
- aFilter.iIPSecSPI = 0x0F88F000;
- aFilter.iTOSorTrafficClass = 0x2F77;
- aFilter.iDestPortMax = 0;
- aFilter.iDestPortMin = 0;
- aFilter.iFlowLabel = 0;
- aFilter.iSrcPortMax = 0;
- aFilter.iSrcPortMin = 0;
- break;
- }
- case 3:
- {
- aFilter.iEvaluationPrecedenceIndex = 127;
- aFilter.iSrcAddr[0] = 0xEF;
- aFilter.iSrcAddr[1] = 0xAF;
- aFilter.iSrcAddr[2] = 0xBF;
- aFilter.iSrcAddr[3] = 0x21;
- aFilter.iSrcAddrSubnetMask[0] = 0x10;
- aFilter.iSrcAddrSubnetMask[1] = 0x21;
- aFilter.iSrcAddrSubnetMask[2] = 0x32;
- aFilter.iSrcAddrSubnetMask[3] = 0x41;
- aFilter.iProtocolNumberOrNextHeader = 10;
- aFilter.iSrcPortMin = 0;
- aFilter.iSrcPortMax = 0;
- aFilter.iDestPortMin = 0;
- aFilter.iDestPortMax = 0;
- aFilter.iTOSorTrafficClass = 0x4F8C;
- aFilter.iFlowLabel = 0;
- aFilter.iIPSecSPI = 0;
- }
- case 4:
- {
- aFilter.iEvaluationPrecedenceIndex = 0;
- aFilter.iSrcAddr[0] = 0xD0;
- aFilter.iSrcAddr[1] = 0xFF;
- aFilter.iSrcAddr[2] = 0xFF;
- aFilter.iSrcAddr[3] = 0x11;
- aFilter.iSrcAddrSubnetMask[0] = 0xC1;
- aFilter.iSrcAddrSubnetMask[1] = 0xC1;
- aFilter.iSrcAddrSubnetMask[2] = 0xF2;
- aFilter.iSrcAddrSubnetMask[3] = 0x51;
- aFilter.iProtocolNumberOrNextHeader = 12;
- aFilter.iSrcPortMin = 2;
- aFilter.iSrcPortMax = 65000;
- aFilter.iDestPortMin = 8;
- aFilter.iDestPortMax = 65100;
- aFilter.iTOSorTrafficClass = 0x3F8C;
- aFilter.iFlowLabel = 0;
- aFilter.iIPSecSPI = 0;
- break;
- }
- case 5:
- {
- aFilter.iEvaluationPrecedenceIndex = 127;
- aFilter.iSrcAddr[0] = 0xD1;
- aFilter.iSrcAddr[1] = 0xFF;
- aFilter.iSrcAddr[2] = 0xFF;
- aFilter.iSrcAddr[3] = 0x11;
- aFilter.iSrcAddrSubnetMask[0] = 0xC2;
- aFilter.iSrcAddrSubnetMask[1] = 0xC1;
- aFilter.iSrcAddrSubnetMask[2] = 0xF2;
- aFilter.iSrcAddrSubnetMask[3] = 0x51;
- aFilter.iProtocolNumberOrNextHeader = 14;
- aFilter.iSrcPortMin = 2;
- aFilter.iSrcPortMax = 65000;
- aFilter.iDestPortMin = 8;
- aFilter.iDestPortMax = 65100;
- aFilter.iTOSorTrafficClass = 0x3F8C;
- aFilter.iFlowLabel = 0;
- aFilter.iIPSecSPI = 0;
- break;
- }
- case 6:
- {
- aFilter.iEvaluationPrecedenceIndex = 255;
- aFilter.iSrcAddr[0] = 0xD2;
- aFilter.iSrcAddr[1] = 0xFF;
- aFilter.iSrcAddr[2] = 0xFF;
- aFilter.iSrcAddr[3] = 0x11;
- aFilter.iSrcAddrSubnetMask[0] = 0xC3;
- aFilter.iSrcAddrSubnetMask[1] = 0xC1;
- aFilter.iSrcAddrSubnetMask[2] = 0xF2;
- aFilter.iSrcAddrSubnetMask[3] = 0x51;
- aFilter.iProtocolNumberOrNextHeader = 16;
- aFilter.iSrcPortMin = 2;
- aFilter.iSrcPortMax = 65000;
- aFilter.iDestPortMin = 8;
- aFilter.iDestPortMax = 65100;
- aFilter.iTOSorTrafficClass = 0x3F8C;
- aFilter.iFlowLabel = 0;
- aFilter.iIPSecSPI = 0;
- break;
- }
- case 7:
- {
- aFilter.iEvaluationPrecedenceIndex = 0;
- aFilter.iSrcAddr[0] = 0xD3;
- aFilter.iSrcAddr[1] = 0xFF;
- aFilter.iSrcAddr[2] = 0xFF;
- aFilter.iSrcAddr[3] = 0x11;
- aFilter.iSrcAddrSubnetMask[0] = 0xC4;
- aFilter.iSrcAddrSubnetMask[1] = 0xC1;
- aFilter.iSrcAddrSubnetMask[2] = 0xF2;
- aFilter.iSrcAddrSubnetMask[3] = 0x51;
- aFilter.iProtocolNumberOrNextHeader = 18;
- aFilter.iSrcPortMin = 2;
- aFilter.iSrcPortMax = 65000;
- aFilter.iDestPortMin = 8;
- aFilter.iDestPortMax = 65100;
- aFilter.iTOSorTrafficClass = 0x3F8C;
- aFilter.iFlowLabel = 0;
- aFilter.iIPSecSPI = 0;
- break;
- }
- case 8:
- default:
- {
- aFilter.iEvaluationPrecedenceIndex = 127;
- aFilter.iSrcAddr[0] = 0xD4;
- aFilter.iSrcAddr[1] = 0xFF;
- aFilter.iSrcAddr[2] = 0xFF;
- aFilter.iSrcAddr[3] = 0x11;
- aFilter.iSrcAddrSubnetMask[0] = 0xC5;
- aFilter.iSrcAddrSubnetMask[1] = 0xC1;
- aFilter.iSrcAddrSubnetMask[2] = 0xF2;
- aFilter.iSrcAddrSubnetMask[3] = 0x51;
- aFilter.iProtocolNumberOrNextHeader = 18;
- aFilter.iSrcPortMin = 2;
- aFilter.iSrcPortMax = 65000;
- aFilter.iDestPortMin = 8;
- aFilter.iDestPortMax = 65100;
- aFilter.iTOSorTrafficClass = 0x3F8C;
- aFilter.iFlowLabel = 0;
- aFilter.iIPSecSPI = 0;
- break;
- }
- }
- }
-
-
-TBool CCTSYIntegrationTestPacketContextBase::CompareFilters(const RPacketContext::TPacketFilterV2 &aFilterOne,
- const RPacketContext::TPacketFilterV2 &aFilterTwo)
-/**
- * Compare two packet filter objects.
- *
- * @param aFilterOne Reference to the structure with the first filter.
- * @param aFilterOne Reference to the structure with the second filter.
- *
- * @return ETrue if both filters are the same
- *
- */
- {
- TBool ret = ETrue;
-
- LOCAL_ASSERT_EQUALS(aFilterOne.ExtensionId(), aFilterTwo.ExtensionId() ,_L("RPacketContext::GetPacketFilterInfo returned wrong iExtensionId"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iId, aFilterTwo.iId ,_L("RPacketContext::GetPacketFilterInfo returned wrong iId"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iEvaluationPrecedenceIndex, aFilterTwo.iEvaluationPrecedenceIndex ,_L("RPacketContext::GetPacketFilterInfo returned wrong iEvaluationPrecedenceIndex"));
- for(TInt i=0;i<RPacketContext::KIPAddressSize;++i)
- {
- LOCAL_ASSERT_EQUALS(aFilterOne.iSrcAddr[i], aFilterTwo.iSrcAddr[i] ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcAddr"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iSrcAddrSubnetMask[i], aFilterTwo.iSrcAddrSubnetMask[i] ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcAddrSubnetMask"));
- }
- LOCAL_ASSERT_EQUALS(aFilterOne.iProtocolNumberOrNextHeader, aFilterTwo.iProtocolNumberOrNextHeader ,_L("RPacketContext::GetPacketFilterInfo returned wrong iProtocolNumberOrNextHeader"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iSrcPortMin, aFilterTwo.iSrcPortMin ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcPortMin"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iSrcPortMax, aFilterTwo.iSrcPortMax ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcPortMax"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iDestPortMin, aFilterTwo.iDestPortMin ,_L("RPacketContext::GetPacketFilterInfo returned wrong iDestPortMin"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iDestPortMax, aFilterTwo.iDestPortMax ,_L("RPacketContext::GetPacketFilterInfo returned wrong iDestPortMax"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iIPSecSPI, aFilterTwo.iIPSecSPI ,_L("RPacketContext::GetPacketFilterInfo returned wrong iIPSecSPI"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iTOSorTrafficClass, aFilterTwo.iTOSorTrafficClass ,_L("RPacketContext::GetPacketFilterInfo returned wrong iTOSorTrafficClass"));
- LOCAL_ASSERT_EQUALS(aFilterOne.iFlowLabel, aFilterTwo.iFlowLabel ,_L("RPacketContext::GetPacketFilterInfo returned wrong iFlowLabel"));
-
-
- return ret;
- }
-
-template<>
-void CCTSYIntegrationTestPacketContextBase::FillParametersFromCapabilities(RPacketQoS::TQoSGPRSRequested &aParameters,
- const RPacketQoS::TQoSCapsGPRS &aCapabilities)
-/**
- * fill a RPacketQoS::TQoSGPRSRequested object from a given RPacketQoS::TQoSCapsGPRS capabilities
- *
- * @param aParameters Reference to the structure of the parameters to fill.
- * @param aCapabilities Reference to the structure with the capabilities to use.
- *
- */
- {
- aParameters.iMinDelay = static_cast<RPacketQoS::TQoSDelay>(FindMSB(aCapabilities.iDelay));
- aParameters.iReqDelay = static_cast<RPacketQoS::TQoSDelay>(FindLSB(aCapabilities.iDelay));
- aParameters.iMinMeanThroughput = static_cast<RPacketQoS::TQoSMeanThroughput>(FindMSB(aCapabilities.iMean));
- aParameters.iReqMeanThroughput = static_cast<RPacketQoS::TQoSMeanThroughput>(FindLSB(aCapabilities.iMean));
- aParameters.iMinPeakThroughput = static_cast<RPacketQoS::TQoSPeakThroughput>(FindMSB(aCapabilities.iPeak));
- aParameters.iReqPeakThroughput = static_cast<RPacketQoS::TQoSPeakThroughput>(FindLSB(aCapabilities.iPeak));
- aParameters.iMinReliability = static_cast<RPacketQoS::TQoSReliability>(FindMSB(aCapabilities.iReliability));
- aParameters.iReqReliability = static_cast<RPacketQoS::TQoSReliability>(FindLSB(aCapabilities.iReliability));
- aParameters.iReqPrecedence = static_cast<RPacketQoS::TQoSPrecedence>(FindMSB(aCapabilities.iPrecedence));
- aParameters.iMinPrecedence = static_cast<RPacketQoS::TQoSPrecedence>(FindLSB(aCapabilities.iPrecedence));
-
- }
-
-
-template<>
-void CCTSYIntegrationTestPacketContextBase::FillParametersFromCapabilities(RPacketQoS::TQoSR99_R4Requested &aParameters,
- const RPacketQoS::TQoSCapsR99_R4 &aCapabilities)
-/**
- * fill a RPacketQoS::TQoSR99_R4Requested object from a given RPacketQoS::TQoSCapsR99_R4 capabilities
- *
- * @param aParameters Reference to the structure of the parameters to fill.
- * @param aCapabilities Reference to the structure with the capabilities to use.
- *
- */
- {
- aParameters.iReqTrafficClass = static_cast<RPacketQoS::TTrafficClass>(FindLSB(aCapabilities.iTrafficClass));
- aParameters.iMinTrafficClass = static_cast<RPacketQoS::TTrafficClass>(FindMSB(aCapabilities.iTrafficClass));
- aParameters.iReqDeliveryOrderReqd = static_cast<RPacketQoS::TDeliveryOrder>(FindLSB(aCapabilities.iDeliveryOrderReqd));
- aParameters.iMinDeliveryOrderReqd = static_cast<RPacketQoS::TDeliveryOrder>(FindMSB(aCapabilities.iDeliveryOrderReqd));
- aParameters.iReqDeliverErroneousSDU = static_cast<RPacketQoS::TErroneousSDUDelivery>(FindLSB(aCapabilities.iDeliverErroneousSDU));
- aParameters.iMinDeliverErroneousSDU = static_cast<RPacketQoS::TErroneousSDUDelivery>(FindMSB(aCapabilities.iDeliverErroneousSDU));
- aParameters.iReqMaxSDUSize = 1500; //NOT SURE
- aParameters.iMinAcceptableMaxSDUSize = 100; //NOT SURE
- aParameters.iReqMaxRate.iUplinkRate = 1000; //NOT SURE
- aParameters.iReqMaxRate.iDownlinkRate = 1000; //NOT SURE
- aParameters.iMinAcceptableMaxRate.iUplinkRate = 500; //NOT SURE
- aParameters.iMinAcceptableMaxRate.iDownlinkRate = 500; //NOT SURE
- aParameters.iReqBER = static_cast<RPacketQoS::TBitErrorRatio>(FindLSB(aCapabilities.iBER));
- aParameters.iMaxBER = static_cast<RPacketQoS::TBitErrorRatio>(FindMSB(aCapabilities.iBER));
- aParameters.iReqSDUErrorRatio = static_cast<RPacketQoS::TSDUErrorRatio>(FindLSB(aCapabilities.iSDUErrorRatio));
- aParameters.iMaxSDUErrorRatio = static_cast<RPacketQoS::TSDUErrorRatio>(FindMSB(aCapabilities.iSDUErrorRatio));
- aParameters.iReqTrafficHandlingPriority = static_cast<RPacketQoS::TTrafficHandlingPriority>(FindLSB(aCapabilities.iTrafficHandlingPriority));
- aParameters.iMinTrafficHandlingPriority = static_cast<RPacketQoS::TTrafficHandlingPriority>(FindMSB(aCapabilities.iTrafficHandlingPriority));
- aParameters.iReqTransferDelay = 1000; //NOT SURE
- aParameters.iMaxTransferDelay = 100; //NOT SURE
- aParameters.iReqGuaranteedRate.iUplinkRate = 1000; //NOT SURE
- aParameters.iReqGuaranteedRate.iDownlinkRate = 1000; //NOT SURE
- aParameters.iMinGuaranteedRate.iUplinkRate = 500; //NOT SURE
- aParameters.iMinGuaranteedRate.iDownlinkRate = 500; //NOT SURE
- }
-
-template<>
-void CCTSYIntegrationTestPacketContextBase::FillParametersFromCapabilities(RPacketQoS::TQoSR5Requested &aParameters,
- const RPacketQoS::TQoSCapsR5 &aCapabilities)
-/**
- * fill a RPacketQoS::TQoSR5Requested object from a given RPacketQoS::TQoSCapsR5 capabilities
- *
- * @param aParameters Reference to the structure of the parameters to fill.
- * @param aCapabilities Reference to the structure with the capabilities to use.
- *
- */
- {
- FillParametersFromCapabilities((RPacketQoS::TQoSR99_R4Requested&)aParameters,(const RPacketQoS::TQoSCapsR99_R4 &)aCapabilities);
- aParameters.iSignallingIndication = static_cast<TBool>(aCapabilities.iSignallingIndication);
- aParameters.iSourceStatisticsDescriptor = static_cast<RPacketQoS::TSourceStatisticsDescriptor>(aCapabilities.iSourceStatisticsDescriptor);
- }
-
-
-template<class QOSCAPS>
-void CCTSYIntegrationTestPacketContextBase::GetProfileCapsL(RPacketQoS& aContextQoS, QOSCAPS& aCapabilities)
-/**
- * Get QoS profile capabilities
- *
- * @param aContextQoS Reference RPacketQoS object.
- * @param aCapabilities Reference to QoS capabilities.
- *
- */
- {
- TPckg<QOSCAPS> qosCapsPckg(aCapabilities);
- TExtEtelRequestStatus reqQoSProfileCaps(aContextQoS,EPacketQoSGetProfileCaps);
- CleanupStack::PushL(reqQoSProfileCaps);
- aContextQoS.GetProfileCapabilities(reqQoSProfileCaps, qosCapsPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqQoSProfileCaps, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(reqQoSProfileCaps.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
- CleanupStack::PopAndDestroy(1, &reqQoSProfileCaps);
- }
-
-
-TBool CCTSYIntegrationTestPacketContextBase::ActivateSecondaryPacketContextL(RPacketContext& aSecondaryPacketContext, TPrimaryPacketContextId aPrimaryPacketContextId, TSecondaryPacketContextId aSecondaryPacketContextId)
-/**
- * Activate a secondary packet context
- *
- * @param aSecondaryPacketContext a reference to a context session to activate.
- *
- * @return ETrue if everything is OK, EFalse in any other case
- */
- {
- TBool ret = ETrue;
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aSecondaryPacketContext,1), KErrNone,
- _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- aPrimaryPacketContextId,
- aSecondaryPacketContextId);
-
- // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities timed out."));
- LOCAL_ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::SetProfileParameters timed out."));
- LOCAL_ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
- _L("RPacketQoS::SetProfileParameters returned with error status."));
-
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(aSecondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- aSecondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(aSecondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- aSecondaryPacketContext.Activate(contextActivateStatus);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Activate timed out."));
- LOCAL_ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- aSecondaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(aSecondaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("Packet Context's status expected to be EStatusActive but is not."));
-
- // Pop:
- // contextActivateStatus
- // notifyContextStChStatus
- // setProfileParamStatus
- // getProfileCapStatus
- CleanupStack::PopAndDestroy(4,&getProfileCapStatus);
- return ret;
-
- }
-
-CCTSYIntegrationTestPacketContext0001::CCTSYIntegrationTestPacketContext0001(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0001::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0001::~CCTSYIntegrationTestPacketContext0001()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0001::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0001
- * @SYMFssID BA/CTSY/PKTC-0001
- * @SYMTestCaseDesc Activate and deactivate a primary PDP context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyContextAdded, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps, RPacketContext::GetConfig, RPacketContext::Deactivate, RPacketContext::GetDnsInfo
- * @SYMTestExpectedResults Pass - Activation and deactivation succeeds. Packet service and context statuses are correct.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Get the attach mode so that it can be restored at the end of the test
- RPacketService::TAttachMode attachMode;
- CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Currenlty there are three context configs types: TContextConfigGPRS, TContextConfigCDMA, TContextConfigR99_R4
- // A suitable config should be chosen accoriding to the baseband's capability.
-
- // Get the context config using network info
- // Using Gprs config for now...
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
-
- // Set the context.
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- packetContext.SetConfig(setConfigStatus, configPk);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
- _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
- _L("RPacketContext::SetConfig returned with error status."));
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone,
- _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
- _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0,
- _L("Packet context config has zero length contextId."));
-
- // === Activate packet context ===
- // === Check context and service statuses and notifications ===
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for service's dynamic caps change
- RPacketService::TDynamicCapsFlags dynCaps;
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate packet context with RPacketContext::Activate
- DEBUG_PRINTF1(_L("Activating packet context"));
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext.Activate(contextActivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Check dynamic caps ===
- DEBUG_PRINTF1(_L("Checking Dynamic Caps"));
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
- TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
- TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10060 );
- iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
- packetService,
- notifyServiceDynCapsStatus,
- dynCaps,
- wantedDynCapBits,
- unWantedDynCapBits,
- KErrNone);
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
-
- // === Get context information ===
-
- // Check RPacketContext::GetConfig returns same config as that set
- DEBUG_PRINTF1(_L("Get config information"));
- TExtEtelRequestStatus contextConfigStatus(packetContext, EPacketContextGetConfig);
- CleanupStack::PushL(contextConfigStatus);
- RPacketContext::TContextConfigGPRS getConfig;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
- packetContext.GetConfig(contextConfigStatus, getConfigPk);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::GetConfig timed out."))
- ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone,
- _L("RPacketContext::GetConfig returned an error."));
-
- ASSERT_EQUALS_DES8(getConfig.iAccessPointName, config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
-
- // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
- RPacketContext::TDnsInfoV2 dnsInfo;
- RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
- TExtEtelRequestStatus dnsInfoStatus(packetContext, EPacketContextGetDNSInfo);
- CleanupStack::PushL(dnsInfoStatus);
- packetContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::GetDnsInfo timed out."));
-
- ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetDnsInfo returned an error."));
- ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0,
- _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
- ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0,
- _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
-
- // === Check context and service statuses on Deactivating packect context ===
-
- // Post notification for context's status change
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for service's status change
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Deactivate the context with RPacketContext::Deactivate
- TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- packetContext.Deactivate(contextDeactivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("Packet Context's status expected to be EStatusDeactivating but is not."));
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("Packet Context's status did not return EStatusInactive."));
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
- expectedPacketServiceStatus = RPacketService::EStatusAttached;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusAttached
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Return packet service's attach mode to original setting
- ASSERT_EQUALS(packetService.SetAttachMode(attachMode), KErrNone, _L("RPacketService::SetAttachMode returned with an error."));
-
- CleanupStack::Pop(10, &getNetworkStatus);
- // contextDeactivateStatus
- // dnsInfoStatus
- // contextConfigStatus
- // contextActivateStatus,
- // notifyContextStChStatus,
- // notifyServiceDynCapsStatus
- // notifyServiceStChStatus,
- // setConfigStatus,
- // notifyContextStatus,
- // getNetworkStatus
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0001::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0001");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0002::CCTSYIntegrationTestPacketContext0002(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0002::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0002::~CCTSYIntegrationTestPacketContext0002()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0002::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0002
- * @SYMFssID BA/CTSY/PKTC-0002
- * @SYMTestCaseDesc Activate and deactivate a primary PDP context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::GetContextNameInNif, RPacketService::GetNifInfo, RPacketService::EnumerateContextsInNif, RPacketContext::Deactivate
- * @SYMTestExpectedResults Pass - Activation succeeds. NIF info correct.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify NIF related info from RPacketService correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Get the attach mode so that it can be restored at the end of the test
- RPacketService::TAttachMode attachMode;
- CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsActivate.
-
- // $CTSYProblem.
- // GetDynamicCaps does not return 0x1(KCapsActivate), because KCapsActivate flag is not set yet.
- // CTSY sets KCapsActivate flag during context initialisation.
-
- // Check for the CAPS being returned
- RPacketService::TDynamicCapsFlags dynCaps;
- CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
-
- // RPacketService::TDynamicCapsFlags wantedDynCapBits = RPacketService::KCapsActivate;
- //CHECK_BITS_SET_L(dynCaps, wantedDynCapBits, KNoUnwantedBits, _L("Packet service's KCapsActivate flag not set"));
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Get the context config using network info
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Open a new primary context.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Set a valid context config with RPacketContext::SetConfig
- TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- packetContext.SetConfig(setConfigStatus, configPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0, _L("Packet context config has zero length contextId."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Check that there is one NIF with one primary context belonging to it ===
-
- // Get context info
- TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
- CleanupStack::PushL(getContextInfo);
- RPacketService::TContextInfo contextInfo;
- const TInt index = 0;
- packetService.GetContextInfo(getContextInfo, index, contextInfo);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
- ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
- TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(nifsStatus);
- TInt nifCount = 0;
- const TInt wantedCount = 1;
- packetService.EnumerateNifs(nifsStatus, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned with an error."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
- TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(enumerateContextsInNifStatus);
- TInt contextsInNifCount;
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, contextInfo.iName, contextsInNifCount);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out"));
- ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif returned wrong number of contexts sharing a NIF"));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
- TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(contextNameNifsStatus);
- TInt iIndex = 0;
- TName contextName;
- packetService.GetContextNameInNif(contextNameNifsStatus, contextInfo.iName, iIndex, contextName );
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextInfo.iName, contextName, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
- ASSERT_EQUALS(iIndex, KErrNone, _L("RPacketContext::GetContextNameInNif with aIndex returned with an error"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
-
- TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(nifInfoStatus);
- const TInt nifInfoCount = 0;
- RPacketService::TNifInfoV2 nifInfoV2;
- RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
- ASSERT_EQUALS_DES16(nifInfoV2.iContextName, contextName, _L("RPacketService::GetNifInfo with valid name returned with an error"));
- ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 1, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
- ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketSerivce::GetNifInfo with iNifStatus returned with an error"));
- ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
-
- // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
- // Changed test procedure to check for EInternalContext instead of EExternalContext
- ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type"));
-
- // Post notification for context's status change
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Deactivate the context with RPacketContext::Deactivate
- TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- packetContext.Deactivate(contextDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("RPacketContext::GetStatus returns incorrect status."));
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::EnumerateNifs returns aCount = 0
- TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(enumerateNifsStatus);
- nifCount = 0;
- const TInt wantedEnumerateNifsCount = 1;
- packetService.EnumerateNifs(enumerateNifsStatus, nifCount);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out"));
- ASSERT_EQUALS(nifCount, wantedEnumerateNifsCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // pop
- // getNetworkStatus
- // setConfigStatus
- // notifyContextStatus
- // contextActivateStatus
- // notifyContextStatus
- // notifyContextStChStatus
- // nifsStatus
- // ContextNifsStatus
- // ContextNameNifsStatus
- // nifInfoStatus
- // contextDeactivateStatus
- // enumerateNifsStatus
- CleanupStack::PopAndDestroy(12, &getNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0002::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0002");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0003::CCTSYIntegrationTestPacketContext0003(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0003::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0003::~CCTSYIntegrationTestPacketContext0003()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0003::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0003
- * @SYMFssID BA/CTSY/PKTC-0003
- * @SYMTestCaseDesc Activate and deactivate a primary context (roaming).
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyContextAdded, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps, RPacketContext::GetConfig, RPacketContext::Deactivate, RPacketContext::GetDnsInfo
- * @SYMTestExpectedResults Pass - Primary context is activated then deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Get the registration status and ensure that the phone is camped on a valid cell.
-
- // Ensure phone is attached to packet service.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Check RPacketService::GetNtwkRegStatus returns ERegisteredRoaming
-
- // Set a valid context config with RPacketContext::SetConfig
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
-
- // Activate packet context with RPacketContext::Activate
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
-
- // === Get context information ===
-
- // Check RPacketContext::GetConfig returns same config as that set
-
- // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
-
- // Deactivate the context with RPacketContext::Deactivate
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
-
- // Check RPacketContext::GetStatus returns EStatusInactive
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
-
- // Check RPacketService::GetStatus returns EStatusAttached
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0003::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0003");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0004::CCTSYIntegrationTestPacketContext0004(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0004::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0004::~CCTSYIntegrationTestPacketContext0004()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0004::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0004
- * @SYMFssID BA/CTSY/PKTC-0004
- * @SYMTestCaseDesc Activate and deactivate a primary context (roaming).
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::GetContextNameInNif, RPacketService::GetNifInfo, RPacketService::EnumerateContextsInNif, RPacketContext::Deactivate, RPacketService::EnumerateContextsInNif, RPacketContext::Deactivate
- * @SYMTestExpectedResults Pass - Context activated and deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify NIF related info from RPacketService correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Check RPacketService::GetNtwkRegStatus returns ERegisteredRoaming
-
- // Set a valid context config with RPacketContext::SetConfig
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
-
- // Activate packet context with RPacketContext::Activate
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // === Check that there is one NIF with one primary context belonging to it ===
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
-
- // Deactivate the context with RPacketContext::Deactivate
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
-
- // Check RPacketContext::GetStatus returns EStatusInactive
-
- // Check RPacketService::EnumerateNifs returns aCount = 0
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0004::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0004");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0005::CCTSYIntegrationTestPacketContext0005(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0005::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0005::~CCTSYIntegrationTestPacketContext0005()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0005::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0005
- * @SYMFssID BA/CTSY/PKTC-0005
- * @SYMTestCaseDesc Activate and deactivate an HSDPA context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketContext::SetConfig, RPacketContext::GetDnsInfo
- * @SYMTestExpectedResults Pass - Context activated and deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify packet service status, packet context statuses, dynamic caps has KCapsHSDPA and static caps are correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- //Check if we are on a simulated network
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10083);
- User::Leave(KErrNone);
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure RPacketService::GetStaticCaps returns caps in set of KCapsHSDPASupported
- TUint staticCaps = 0;
- TUint expectedCaps = RPacketService::KCapsHSDPASupported;
- CHECK_EQUALS_L(packetService.GetStaticCaps(staticCaps, RPacketContext::EPdpTypeIPv4), KErrNone, _L("RPacketService::GetStaticCaps returned an error"));
- CHECK_BITS_SET_L(staticCaps, expectedCaps, KNoUnwantedBits, _L("RPacketService::GetStaticCaps did not return correct static caps"));
-
- // Ensure phone is attached to the packet service in an HSDPA enabled cell.
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Open a primary context.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0, _L("Packet context config has zero length contextId."));
-
- // Set a valid context config with RPacketContext::SetConfig
- //Get network info from phone
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- TExtEtelRequestStatus getNetworkStatus (phone,EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium), KErrNone, _L("MobilePhone::GetCurrentNetwork timed out"))
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("MobilePhone::GetCurrentNetwork returned an error"))
-
- // Get the context config using network info
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn,user,pwd;
- iPacketServiceTestHelper.GetGprsSettings(info,apn,user,pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
-
- // set the context using network info
- TExtEtelRequestStatus setConfigStatus (packetContext,EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- packetContext.SetConfig(setConfigStatus,configPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("PacketContext::SetConfig timed out"))
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("PacketContext::SetConfig returned an error."))
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for service's dynamic caps change
- RPacketService::TDynamicCapsFlags dynCaps;
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
- TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer | RPacketService::KCapsHSDPA;
- TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
- packetService,
- notifyServiceDynCapsStatus,
- dynCaps,
- wantedDynCapBits,
- unWantedDynCapBits,
- KErrNone);
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps did not return correct dynamic caps"));
-
- // === Get context information ===
-
- // Check RPacketContext::GetConfig returns same config as that set
- TExtEtelRequestStatus contextConfigStatus(packetContext, EPacketContextGetConfig);
- CleanupStack::PushL(contextConfigStatus);
- RPacketContext::TContextConfigGPRS getConfig;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
- packetContext.GetConfig(contextConfigStatus, getConfigPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
- ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
- ASSERT_EQUALS_DES8(getConfig.iAccessPointName, config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
-
- // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
- RPacketContext::TDnsInfoV2 dnsInfo;
- RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
- TExtEtelRequestStatus dnsInfoStatus(packetContext, EPacketContextGetDNSInfo);
- CleanupStack::PushL(dnsInfoStatus);
- packetContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
- ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
- ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
- ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
-
- // Post notification for context's status change
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for service's status change
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Deactivate the context with RPacketContext::Deactivate
- TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- packetContext.Deactivate(contextDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
- expectedPacketServiceStatus = RPacketService::EStatusAttached;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusAttached
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // pop
- // getNetworkStatus
- // setConfigStatus
- // notifyContextStatus
- // notifyServiceStChStatus
- // notifyContextStChStatus
- // notifyServiceDynCapsStatus
- // contextActivateStatus
- // contextConfigStatus
- // dnsInfoStatus
- // contextDeactivateStatus
-
- CleanupStack::PopAndDestroy(10, &getNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0005::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0005");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0006::CCTSYIntegrationTestPacketContext0006(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0006::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0006::~CCTSYIntegrationTestPacketContext0006()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0006::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0006
- * @SYMFssID BA/CTSY/PKTC-0006
- * @SYMTestCaseDesc Activate and deactivate an EGPRS context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketContext::SetConfig, RPacketContext::GetDnsInfo
- * @SYMTestExpectedResults Pass - Context activated and deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10084);
- User::Leave(KErrNone);
-
-
- //Check if we are on a simulated network to run emergency call tests
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Ensure RPacketService::GetStaticCaps returns caps in set of KCapsEGPRSSupported
- TUint staticCaps = 0;
- TUint expectedCaps = RPacketService::KCapsEGPRSSupported;
- CHECK_EQUALS_L(packetService.GetStaticCaps(staticCaps, RPacketContext::EPdpTypeIPv4), KErrNone, _L("RPacketService::GetStaticCaps returned an error"));
- CHECK_BITS_SET_L(staticCaps, expectedCaps, KNoUnwantedBits, _L("RPacketService::GetStaticCaps did not return correct static caps"));
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Open a primary context.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0, _L("RPacketService::NotifyContextAdded returned zero length contextId."));
-
- // Set a valid context config with iUseEdge = ETrue using RPacketContext::SetConfig
- //Get network info from phone
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- TExtEtelRequestStatus getNetworkStatus (phone,EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium), KErrNone, _L("MobilePhone::GetCurrentNetwork timed out"))
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("MobilePhone::GetCurrentNetwork returned an error"))
-
- // Get the context config using network info
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn,user,pwd;
- iPacketServiceTestHelper.GetGprsSettings(info,apn,user,pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TBool edge = ETrue;
- config.iUseEdge = edge;
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
-
- // set the context using network info
- TExtEtelRequestStatus setConfigStatus (packetContext,EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- packetContext.SetConfig(setConfigStatus,configPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("PacketContext::SetConfig timed out"))
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("PacketContext::SetConfig returned an error."))
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for service's dynamic caps change
- RPacketService::TDynamicCapsFlags dynCaps;
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsEGPRS.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
- TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer | RPacketService::KCapsEGPRS;
- TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
- packetService,
- notifyServiceDynCapsStatus,
- dynCaps,
- wantedDynCapBits,
- unWantedDynCapBits,
- KErrNone);
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsEGPRS
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
-
- // === Get context information ===
-
- // Get context info
- TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
- CleanupStack::PushL(getContextInfo);
- RPacketService::TContextInfo contextInfo;
- const TInt index = 0;
- packetService.GetContextInfo(getContextInfo, index, contextInfo);
-
- // Check RPacketContext::GetConfig returns same config as that set
- TExtEtelRequestStatus contextConfigStatus(packetContext, EPacketContextGetConfig);
- CleanupStack::PushL(contextConfigStatus);
- RPacketContext::TContextConfigGPRS getConfig;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
- packetContext.GetConfig(contextConfigStatus, getConfigPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
- ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
- ASSERT_EQUALS_DES8(getConfig.iAccessPointName, config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS(getConfig.iUseEdge, config.iUseEdge, _L("RPacketContext::GetConfig returns incorrect config data."));
-
- // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
- RPacketContext::TDnsInfoV2 dnsInfo;
- RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
- TExtEtelRequestStatus dnsInfoStatus(packetContext, EPacketContextGetDNSInfo);
- CleanupStack::PushL(dnsInfoStatus);
- packetContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
- ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
- ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
- ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
-
- // === Check that there is one NIF with one primary context belonging to it ===
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
- TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(nifsStatus);
- TInt countValue = 0;
- packetService.EnumerateNifs(nifsStatus, countValue);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(countValue, 1, _L("RPacketContext::EnumerateNifs returned wrong aValue"));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
- TExtEtelRequestStatus contextNifsStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(contextNifsStatus);
- countValue = 0;
- packetService.EnumerateContextsInNif(contextNifsStatus, contextInfo.iName, countValue);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(countValue, 1, _L("RPacketService::EnumerateContextsInNif returned with an error."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
- TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(contextNameNifsStatus);
- TInt ind = 0;
- TName contextName;
- packetService.GetContextNameInNif(contextNameNifsStatus, contextInfo.iName, ind, contextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned an error."));
- ASSERT_EQUALS_DES16(contextName, contextInfo.iName, _L("RPacketService::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
- TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(nifInfoStatus);
- RPacketService::TNifInfoV2 nifInfoV2;
- RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
- packetService.GetNifInfo(nifInfoStatus, countValue, nifInfoV2Pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned an error."));
- ASSERT_EQUALS_DES16(nifInfoV2.iContextName, contextName, _L("RPacketService::GetNifInfo with valid name returned with an error"));
- ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 1, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
- ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo with iNifStatus returned with an error"));
- ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo with iPdpAddress returned with an error"));
- ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo with iContextType returned with an error"));
-
- // Post notification for context's status change
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for service's status change
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Deactivate the context with RPacketContext::Deactivate
- TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- packetContext.Deactivate(contextDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
- expectedPacketServiceStatus = RPacketService::EStatusAttached;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusAttached
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // pop
- // notifyContextStatus
- // getNetworkStatus
- // setConfigStatus
- // notifyServiceStChStatus
- // notifyContextStChStatus
- // notifyServiceDynCapsStatus
- // contextActivateStatus
- // getContextInfo
- // contextConfigStatus
- // dnsInfoStatus
- // NifsStatus
- // contextNifsStatus
- // contextNameNifsStatus
- // NifInfoStatus
- // contextDeactivateStatus
- CleanupStack::PopAndDestroy(15, ¬ifyContextStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0006::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0006");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0007::CCTSYIntegrationTestPacketContext0007(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0007::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0007::~CCTSYIntegrationTestPacketContext0007()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0007::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0007
- * @SYMFssID BA/CTSY/PKTC-0007
- * @SYMTestCaseDesc Activate and deactivate a secondary context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::NotifyDynamicCapsChange, RPacketService::GetStatus, RPacketContext::SetConfig, RPacketContext::GetDnsInfo, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify packet service status, packet context statuses, dynamic caps
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
- // wait until we are on the network
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- //Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure phone is attached to the packet service.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Post notification for the ContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Open a primary context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Open a new secondary context from primary context
- RPacketContext& secondaryPacketContext2 = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext2,1), KErrNone,
- _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- // Note: Using GPRS params
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities timed out."))
- ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities returned with error status."))
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::SetProfileParameters timed out."))
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
- _L("RPacketQoS::SetProfileParameters returned with error status."))
-
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeShort), KErrNone,
- _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
- _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0,
- _L("RPacketService::NotifyContextAdded Packet context config has zero length contextId."));
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Activate primary context with RPacketContext::Activate
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus did not return RPacketService::EStatusActive."));
-
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
- RPacketContext::TContextStatus packetContextStatus;
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext2, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Post notification for for service's dynamic caps change
- RPacketService::TDynamicCapsFlags dynCaps;
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Activate the secondary context.
- TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext2, EPacketContextActivate);
- CleanupStack::PushL(secContextActivateStatus);
- secondaryPacketContext2.Activate(secContextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedSecPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecPacketContextStatus,
- KErrNone);
- secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // -> EStatusActive
- expectedSecPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(secondaryPacketContext2.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
-
- // $CTSYProblem.
- // GetDynamicCaps does not change since the LTSY dose not call the EPacketNotifyDynamicCapsChange when the context is activated
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
-
- // $CTSYProblem.
- // GetDynamicCaps dose not change since the LTSY dose not call the EPacketNotifyDynamicCapsChange when the context is activated
-
- // === Get context information ===
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Check RPacketContext::GetConfig for primary context returns same config as that set
- TExtEtelRequestStatus contextConfigStatus(primaryPacketContext , EPacketContextGetConfig);
- CleanupStack::PushL(contextConfigStatus);
- RPacketContext::TContextConfigGPRS getConfig;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
- primaryPacketContext.GetConfig(contextConfigStatus, getConfigPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::GetConfig timed out."))
- ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone,
- _L("RPacketContext::GetConfig returned an error."));
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- ASSERT_EQUALS_DES8(getConfig.iAccessPointName,
- config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername,
- config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword,
- config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
-
- // Check RPacketContext::GetDnsInfo for primary context returns valid primary and secondary DNS ip addresses
- RPacketContext::TDnsInfoV2 dnsInfoPrimary;
- RPacketContext::TTDnsInfoV2Pckg dnsInfoPrimaryPkg(dnsInfoPrimary);
- TExtEtelRequestStatus dnsInfoStatus(primaryPacketContext, EPacketContextGetDNSInfo);
- CleanupStack::PushL(dnsInfoStatus);
- primaryPacketContext.GetDnsInfo(dnsInfoStatus, dnsInfoPrimaryPkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
- ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
- ASSERT_TRUE(dnsInfoPrimary.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
- ASSERT_TRUE(dnsInfoPrimary.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
-
- // Check RPacketContext::GetDnsInfo for secondary context returns same primary and secondary DNS ip addresses as for the primary context
- RPacketContext::TDnsInfoV2 dnsInfoSecondary;
- RPacketContext::TTDnsInfoV2Pckg dnsInfoSecondaryPkg(dnsInfoSecondary);
- TExtEtelRequestStatus dnsInfoStatus2(secondaryPacketContext2, EPacketContextGetDNSInfo);
- CleanupStack::PushL(dnsInfoStatus2);
- secondaryPacketContext2.GetDnsInfo(dnsInfoStatus2, dnsInfoSecondaryPkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus2, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
- ASSERT_EQUALS(dnsInfoStatus2.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
- ASSERT_TRUE(dnsInfoSecondary.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
- ASSERT_TRUE(dnsInfoSecondary.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
-
- // Compare ip addresses
- ASSERT_EQUALS_DES8(dnsInfoPrimary.iPrimaryDns, dnsInfoSecondary.iPrimaryDns,
- _L("RPacketContext::GetDnsInfo IP addresses mismatch for Primary and Secondary contexts."));
- ASSERT_EQUALS_DES8(dnsInfoPrimary.iSecondaryDns, dnsInfoSecondary.iSecondaryDns,
- _L("RPacketContext::GetDnsInfo IP addresses mismatch for Primary and Secondary contexts."));
-
- // Post notification for context's status change
- secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Deactivate the secondary context with RPacketContext::Deactivate
- TExtEtelRequestStatus secCntxtDeactivateStatus(secondaryPacketContext2, EPacketContextDeactivate);
- CleanupStack::PushL(secCntxtDeactivateStatus);
- secondaryPacketContext2.Deactivate(secCntxtDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(secCntxtDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(secCntxtDeactivateStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusDeactivating -> EStatusInactive
- expectedSecPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecPacketContextStatus,
- KErrNone);
- secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContext2Status = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedPacketContext2Status,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
- ASSERT_EQUALS(secondaryPacketContext2.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusInactive."));
-
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop:
- // secCntxtDeactivateStatus
- // dnsInfoStatus2
- // dnsInfoStatus
- // contextConfigStatus
- // getNetworkStatus
- // secContextActivateStatus
- // notifyServiceDynCapsStatus
- // notifySecContextStChStatus
- // notifyServiceStChStatus
- // setProfileParamStatus
- // getProfileCapStatus
- // notifyContextStatus
- CleanupStack::PopAndDestroy(12,¬ifyContextStatus);
-
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0007::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0007");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0008::CCTSYIntegrationTestPacketContext0008(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0008::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0008::~CCTSYIntegrationTestPacketContext0008()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0008::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0008
- * @SYMFssID BA/CTSY/PKTC-0008
- * @SYMTestCaseDesc Activate and deactivate a secondary context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::EnumerateContextsInNif, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify NIF info from RPacketService correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- //Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure phone is attached to the packet service.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName primaryContextId;
- packetService.NotifyContextAdded(notifyContextStatus, primaryContextId);
-
- // Open a primary packet context
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- CHECK_TRUE_L(primaryContextId.Length() > 0, _L("RPacketService::NotifyContextAdded returned with zero length context name."));
-
- // Post notification for the RPacketService::NotifyContextAdded
- TName secondaryContextId;
- packetService.NotifyContextAdded(notifyContextStatus, secondaryContextId);
-
- // Open a secondary packet context
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- CHECK_TRUE_L(secondaryContextId.Length() > 0, _L("RPacketService::NotifyContextAdded returned with zero length context name."));
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getQoSProfileCapsStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getQoSProfileCapsStatus);
- RPacketQoS::TQoSCapsGPRS qosCaps;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsPckg(qosCaps);
- packetQoS.GetProfileCapabilities(getQoSProfileCapsStatus, qosCapsPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getQoSProfileCapsStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."))
- ASSERT_EQUALS(getQoSProfileCapsStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned error."))
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosReqPckg(qosRequested);
- FillParametersFromCapabilities(qosRequested,qosCaps);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
-
- packetQoS.SetProfileParameters(setProfileParamStatus, qosReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Get network info from phone
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"))
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"))
-
- // Get the context config using network info
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
-
- // Set a valid context config with RPacketContext::SetConfig
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
- TExtEtelRequestStatus setConfigStatus (primaryPacketContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- primaryPacketContext.SetConfig(setConfigStatus,configPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"))
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned an error."))
-
- // Set notify for primary context change
- TExtEtelRequestStatus reqPriContextChangeStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(reqPriContextChangeStatus);
- RPacketContext::TContextStatus primaryPacketContextStatus;
- primaryPacketContext.NotifyStatusChange(reqPriContextChangeStatus, primaryPacketContextStatus);
-
-
- // Activate primary context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- reqPriContextChangeStatus,
- primaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(reqPriContextChangeStatus, primaryPacketContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- reqPriContextChangeStatus,
- primaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned error."));
- ASSERT_EQUALS(primaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive as expected."));
-
-
- // Set notify for secondary context change
- TExtEtelRequestStatus reqSecContextChangeStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(reqSecContextChangeStatus);
- RPacketContext::TContextStatus secondaryPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(reqSecContextChangeStatus, secondaryPacketContextStatus);
-
- // Activate the secondary context.
- TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(secContextActivateStatus);
- secondaryPacketContext.Activate(secContextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeMedium), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- reqSecContextChangeStatus,
- secondaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- secondaryPacketContext.NotifyStatusChange(reqSecContextChangeStatus, secondaryPacketContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- reqSecContextChangeStatus,
- secondaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned error."));
- ASSERT_EQUALS(secondaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive as expected."));
-
- // === Check that there is one NIF with one primary and one secondary context belonging to it ===
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
- TExtEtelRequestStatus reqNifStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(reqNifStatus);
- TInt nifCount = 0;
- packetService.EnumerateNifs(reqNifStatus, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(nifCount, 1, _L("RPacketService::EnumerateNifs did not return 1 as expected"));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
- TExtEtelRequestStatus reqContextNifStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(reqContextNifStatus);
- packetService.EnumerateContextsInNif(reqContextNifStatus, primaryContextId, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqContextNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(nifCount, 2, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected"));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing secondary context name returns aCount = 2
- nifCount = 0;
- packetService.EnumerateContextsInNif(reqContextNifStatus, secondaryContextId, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqContextNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(nifCount, 2, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected"));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns valid context name in aContextName
- TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(contextNameNifsStatus);
- TInt index = 0;
- TName returnedContextName;
- packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned error"));
- ASSERT_TRUE(returnedContextName.Length() > 0, _L("RPacketService::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns valid context name in aContextName
- index = 1;
- packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned error"));
- ASSERT_TRUE(returnedContextName.Length() > 0, _L("RPacketService::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 2 returns an error != KErrNone
- index = 2;
- packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_TRUE(contextNameNifsStatus.Int() != KErrNone, _L("RPacketService::GetContextNameInNif did not return an error as expected"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- TExtEtelRequestStatus reqNifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(reqNifInfoStatus);
- RPacketService::TNifInfoV2 nifInfoV2;
- RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
- index = 0;
- packetService.GetNifInfo(reqNifInfoStatus, index, nifInfoV2Pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqNifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo timed out"));
- ASSERT_EQUALS(reqNifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
- ASSERT_TRUE(nifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with aCount = 0 returned with invalid iContextName"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
- ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo with iNumberOfContexts did not return 2 as expected"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo did not return EStatusActive as expected"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo with iPdpAddress returned with an error"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
- ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo did not return EInternalContext as expected"));
-
- // Deactivate the secondary context with RPacketContext::Deactivate
- TExtEtelRequestStatus secContextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(secContextDeactivateStatus);
- secondaryPacketContext.Deactivate(secContextDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextDeactivateStatus, ETimeMedium), KErrNone, _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(secContextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned error."));
-
- //Release QoS
- iEtelSessionMgr.ReleaseSecondaryPacketContextQoS(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Release packet contexts
- iEtelSessionMgr.ReleaseSecondaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
- iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // notifyContextStatus
- // getQoSProfileCapsStatus
- // setProfileParamStatus
- // getNetworkStatus
- // setConfigStatus
- // reqPriContextChangeStatus
- // contextActivateStatus
- // reqSecContextChangeStatus
- // secContextActivateStatus
- // reqNifStatus
- // reqContextNifStatus
- // contextNameNifsStatus
- // reqNifInfoStatus
- // secContextDeactivateStatus
- CleanupStack::PopAndDestroy(14, ¬ifyContextStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0008::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0008");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0009::CCTSYIntegrationTestPacketContext0009(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0009::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0009::~CCTSYIntegrationTestPacketContext0009()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0009::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0009
- * @SYMFssID BA/CTSY/PKTC-0009
- * @SYMTestCaseDesc Activate and deactivate a secondary context (roaming).
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::NotifyDynamicCapsChange, RPacketService::GetStatus, RPacketContext::SetConfig, RPacketContext::GetDnsInfo, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to packet service.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // Set a valid context config with RPacketContext::SetConfig
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
-
- // Activate primary context with RPacketContext::Activate
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
- // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
-
- // Open a new secondary context from primary context
-
- // Activate the secondary context.
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
-
- // === Get context information ===
-
- // Check RPacketContext::GetConfig for primary context returns same config as that set
-
- // Check RPacketContext::GetDnsInfo for primary context returns valid primary and secondary DNS ip addresses
- // Check RPacketContext::GetDnsInfo for secondary context returns same primary and secondary DNS ip addresses as for the primary context
-
- // Deactivate the secondary context with RPacketContext::Deactivate
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusDeactivating -> EStatusInactive
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
-
- // Check RPacketService::GetStatus for the secondary context returns EStatusActive
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0009::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0009");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0010::CCTSYIntegrationTestPacketContext0010(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0010::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0010::~CCTSYIntegrationTestPacketContext0010()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0010::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0010
- * @SYMFssID BA/CTSY/PKTC-0010
- * @SYMTestCaseDesc Activate and deactivate a secondary context (roaming).
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::EnumerateContextsInNif, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify NIF info from RPacketService correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to the packet service.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // Set a valid context config with RPacketContext::SetConfig
-
- // Activate primary context with RPacketContext::Activate
-
- // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
-
- // Open a new secondary context from primary context
-
- // Activate the secondary context.
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
-
- // === Check that there is one NIF with one primary and one secondary context belonging to it ===
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing secondary context name returns aCount = 2
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns valid context name in aContextName
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns valid context name in aContextName
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 2 returns an error != KErrNone
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
-
- // Deactivate the secondary context with RPacketContext::Deactivate
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0010::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0010");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0011::CCTSYIntegrationTestPacketContext0011(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0011::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0011::~CCTSYIntegrationTestPacketContext0011()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0011::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0011
- * @SYMFssID BA/CTSY/PKTC-0011
- * @SYMTestCaseDesc Activate a context when it is already active.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::Activate, RPacketContext::GetStatus
- * @SYMTestExpectedResults Pass - Error returned on activation.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context status.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- // Ensure a primary PDP context is active.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Activate the active context with RPacketContext::Activate.
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
-
- // Check error is returned.
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_TRUE(contextActivateStatus.Int() != KErrNone, _L("RPacketContext::Activate did not return error as expected."));
-
- // Check RPacketContext::GetStatus returns EStatusActive
- RPacketContext::TContextStatus primaryPacketContextStatus;
- ASSERT_EQUALS(primaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(primaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // contextActivateStatus
- CleanupStack::PopAndDestroy(1, &contextActivateStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0011::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0011");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0012::CCTSYIntegrationTestPacketContext0012(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0012::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0012::~CCTSYIntegrationTestPacketContext0012()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0012::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0012
- * @SYMFssID BA/CTSY/PKTC-0012
- * @SYMTestCaseDesc Re-activate a context after deactivation.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps
- * @SYMTestExpectedResults Pass - Context is deactivated and then reactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context and packet service status, dynamic caps.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Get the attach mode so that it can be restored at the end of the test
- RPacketService::TAttachMode attachMode;
- CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Ensure a PDP context is active.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for service's dynamic caps change
- RPacketService::TDynamicCapsFlags dynCaps;
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Deactivate the PDP context with RPacketContext::Deactivate
- TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- packetContext.Deactivate(contextDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusAttached;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusAttached
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
- // === Check dynamic caps ===
-
- // Check RPacketService::GetDynamicCaps returns caps in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
- TInt wantedDynCapBits = RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsRxCSCall;
- TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps did not return correct dynamic caps"));
-
- // Post notification for service's status change
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Activate a PDP context again.
- // Post notification for context's status change
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50002 );
- // CTSY doesn´t support context re-activation. See cmmpacketcontextgsmwcdmaext.cpp and CMmPacketContextGsmWcdmaExt::ActivateL()
- // Test case is made to leave because of this.
- CHECK_TRUE_L(EFalse, _L("This test has been made to leave intentionally - ***Send message fail, and ctsy cancel it later****"));
- packetContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActive
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("Packet Context's status expected to be EStatusActive but is not."));
-
- // Post notification for context's status change
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
- wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
- unWantedDynCapBits = RPacketService::KCapsManualAttach;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
- packetService,
- notifyServiceDynCapsStatus,
- dynCaps,
- wantedDynCapBits,
- unWantedDynCapBits,
- KErrNone);
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Return packet service's attach mode to original setting
- packetService.SetAttachMode(attachMode);
-
- // pop
- // notifyContextStChStatus
- // notifyServiceStChStatus
- // notifyServiceDynCapsStatus
- // contextDeactivateStatus
- // contextActivateStatus
-
- CleanupStack::PopAndDestroy(5, ¬ifyContextStChStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0012::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0012");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0013::CCTSYIntegrationTestPacketContext0013(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0013::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0013::~CCTSYIntegrationTestPacketContext0013()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0013::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0013
- * @SYMFssID BA/CTSY/PKTC-0013
- * @SYMTestCaseDesc Activate and deactivate two primary contexts.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::GetConfig, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateContexts, RPacketService::GetContextInfo, RPacketContext::GetDnsInfo, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateNifs, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketContext::Deactivate
- * @SYMTestExpectedResults Pass - Two contexts can be simultaneously active.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify it is possible to have two active primary contexts simultaneously.
-
-Verify context and packet service status, NIF related info, DNS and context config info.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Attach to the packet service.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L( iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL( phone ), KErrNone,
- _L("Network is unavailable") );
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Activate a primary context.
- RPacketContext& packetContext1 = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext1);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Open another primary context (referred to in this test as "primary context 2")
- RPacketContext& packetContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext2);
-
- // Set a valid context config for primary context 2 using RPacketContext::SetConfig
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- RPacketContext::TContextConfigGPRS contextConfig;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd, 2);
- contextConfig.iAccessPointName.Copy(apn);
- contextConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- contextConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TPckg<RPacketContext::TContextConfigGPRS> contextConfigPckg(contextConfig);
- TExtEtelRequestStatus setConfigStatus(packetContext2, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- packetContext2.SetConfig(setConfigStatus, contextConfigPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
- _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
- _L("RPacketContext::SetConfig returned with error status."));
-
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone,
- _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
- _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0,
- _L("Packet context config has zero length contextId."));
-
-
- // Post notification for service's dynamic caps change
- RPacketService::TDynamicCapsFlags dynCaps;
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(packetContext2, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
-
- // Activate primary context 2 with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(packetContext2, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext2.Activate(contextActivateStatus);
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Activate timed-out"));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketContext::NotifyStatusChange for primary context 2 completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext2,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
- packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext2,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for primary context 2 returns EStatusActive
- ASSERT_EQUALS(packetContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
-
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange for primary context 2 completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
- // Check RPacketService::NotifyDynamicCapsChange for primary context 2 completes with caps NOT in set of RPacketService::KCapsManualAttach
- TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
- TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
- packetService,
- notifyServiceDynCapsStatus,
- dynCaps,
- wantedDynCapBits,
- unWantedDynCapBits,
- KErrNone);
-
- // Check RPacketService::GetDynamicCaps for primary context 2 returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
- // Check RPacketService::GetDynamicCaps for primary context 2 returns caps NOT in set of RPacketService::KCapsManualAttach
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
-
- // === Get context information ===
-
- // Check RPacketContext::GetConfig for primary context 2 returns same config as that set
- TExtEtelRequestStatus contextConfigStatus(packetContext2, EPacketContextGetConfig);
- CleanupStack::PushL(contextConfigStatus);
- RPacketContext::TContextConfigGPRS getConfig;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
- packetContext2.GetConfig(contextConfigStatus, getConfigPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::GetConfig timed out."));
- ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone,
- _L("RPacketContext::GetConfig returned an error."));
- ASSERT_EQUALS_DES8(getConfig.iAccessPointName, contextConfig.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
-
- // Check RPacketContext::GetDnsInfo for primary context 2 returns valid primary and secondary DNS ip addresses
- RPacketContext::TDnsInfoV2 dnsInfo;
- RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
- TExtEtelRequestStatus dnsInfoStatus(packetContext2, EPacketContextGetDNSInfo);
- CleanupStack::PushL(dnsInfoStatus);
- packetContext2.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::GetDnsInfo timed out."));
- ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetDnsInfo returned an error."));
- ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0,
- _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
- ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0,
- _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
-
- // === Check that there is one NIF with one primary context belonging to it ===
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = name of primary context 2 returns aCount = 1
- TExtEtelRequestStatus enumContextsInfStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(enumContextsInfStatus);
- TInt count=-1;
- packetService.EnumerateContextsInNif(enumContextsInfStatus,contextId,count);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsInfStatus, ETimeMedium), KErrNone,
- _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(enumContextsInfStatus.Int(), KErrNone,
- _L("RPacketService::EnumerateContextsInNif failed."));
- ASSERT_EQUALS(count,1,_L("RPacketService::EnumerateContextsInNif did not return correct number of NIFs."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = name of primary context 2 and aIndex = 0 returns context name which is same as the name of primary context 2
- TBuf<200> contextName;
- TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(getContextNameInNifStatus);
- packetService.GetContextNameInNif(getContextNameInNifStatus,contextId,0,contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone,
- _L("RPacketService::GetContextNameInNif failed."));
- ASSERT_EQUALS_DES16(contextName,contextId,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
-
- // Check RPacketService::EnumerateNifs returns aCount = 2
- TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(enumerateNifsStatus);
- count=-1;
- packetService.EnumerateNifs(enumerateNifsStatus,count);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeMedium), KErrNone,
- _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(enumerateNifsStatus.Int(), KErrNone,
- _L("RPacketService::EnumerateNifs failed."));
- ASSERT_EQUALS(count,2,_L("RPacketService::EnumerateNifs did not return correct number of NIFs."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- TExtEtelRequestStatus getNifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(getNifInfoStatus);
- RPacketService::TNifInfoV2 nifInfo;
- RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
- packetService.GetNifInfo(getNifInfoStatus,0,nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(getNifInfoStatus.Int(), KErrNone,
- _L("RPacketService::GetNifInfo failed."));
- ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo invlaid context name"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
- ASSERT_EQUALS(nifInfo.iNumberOfContexts,1,_L("RPacketService::GetNifInfo wrong number of contexts"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfo.iNifStatus,RPacketContext::EStatusActive,_L("RPacketService::GetNifInfo wrong status"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfo.iPdpAddress.Length()>0,_L("RPacketService::GetNifInfo invlaid PDP address"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
- ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext,_L("RPacketService::GetNifInfo wrong type"));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns valid name in iContextName
- packetService.GetNifInfo(getNifInfoStatus,1,nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(getNifInfoStatus.Int(), KErrNone,
- _L("RPacketService::GetNifInfo failed."));
- ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo invlaid context name"));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns iNumberOfContexts = 1
- ASSERT_EQUALS(nifInfo.iNumberOfContexts,1,_L("RPacketService::GetNifInfo wrong number of contexts"));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfo.iNifStatus,RPacketContext::EStatusActive,_L("RPacketService::GetNifInfo wrong status"));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfo.iPdpAddress.Length()>0,_L("RPacketService::GetNifInfo invlaid PDP address"));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns EExternalContext
- ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext,_L("RPacketService::GetNifInfo wrong type"));
-
- // Post notification for context's status change
- packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Deactivate primary context 2 with RPacketContext::Deactivate
- TExtEtelRequestStatus contextDeactivateStatus(packetContext2, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- packetContext2.Deactivate(contextDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for primary context 2 completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext2,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
- packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext2,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("Packet Context's status expected to be EStatusActivating but is not."));
-
- // Check RPacketContext::GetStatus returns for primary context 2 EStatusInactive
- ASSERT_EQUALS(packetContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetDynamicCaps returns caps in set of RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq
- wantedDynCapBits=RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall;
- unWantedDynCapBits=RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq;
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- //ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop:
- // contextDeactivateStatus
- // getNifInfoStatus
- // enumerateNifsStatus
- // getContextNameInNifStatus
- // enumContextsInfStatus
- // dnsInfoStatus
- // contextConfigStatus
- // contextActivateStatus
- // notifyContextStChStatus
- // notifyServiceDynCapsStatus
- // notifyServiceStChStatus
- // setConfigStatus
- // getNetworkStatus
- // notifyContextStatus
- CleanupStack::PopAndDestroy(14,¬ifyContextStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0013::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0013");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0014::CCTSYIntegrationTestPacketContext0014(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0014::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0014::~CCTSYIntegrationTestPacketContext0014()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0014::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0014
- * @SYMFssID BA/CTSY/PKTC-0014
- * @SYMTestCaseDesc Deactivate a primary context when there is a secondary context active.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps, RPacketService::EnumerateNifs, RPacketContext::Deactivate
- * @SYMTestExpectedResults Pass - Primary and secondary contexts deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify secondary is also deactivated.
-
-Verify packet service status, packet context status, context info, NIF info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- //Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Set the attach mode to EAttachWhenPossible.
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Ensure there is a primary context active and a secondary context active.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- RPacketContext& secondaryPacketContext2 = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
-
- // Activate the secondary context.
- ActivateSecondaryPacketContextL(secondaryPacketContext2);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
-
-
-
- // Post notification for primary context status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for secondary context status change
- TExtEtelRequestStatus notifyContext2StChStatus(secondaryPacketContext2, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContext2StChStatus);
- RPacketContext::TContextStatus packetContextStatus2;
- secondaryPacketContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus2);
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for service's dynamic caps change
- RPacketService::TDynamicCapsFlags dynCaps;
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Deactivate the primary context.
- TExtEtelRequestStatus contextDeactivateStatus(primaryPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- primaryPacketContext.Deactivate(contextDeactivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for primary context completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for primary context returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10061 );
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifyContext2StChStatus,
- packetContextStatus2,
- expectedPacketContextStatus,
- KErrNone);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10062 );
- // Leaving since the cancellation did not work, so ETEL will panic if another notification will be send
- CHECK_TRUE_L(EFalse, _L("This test has been made to leave intentionally - CTSY doesn't have support for Cancelation of NotifyStatusChange"));
- secondaryPacketContext2.NotifyStatusChange(notifyContext2StChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifyContext2StChStatus,
- packetContextStatus2,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
- ASSERT_EQUALS(secondaryPacketContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyStatusChange for primary context completes with EStatusAttached
- RPacketService::TStatus expectedPacketStatus = RPacketService::EStatusAttached;
-
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketStatus,
- KErrNone );
-
- // Check RPacketService::GetStatus for primary context returns EStatusAttached
-
- ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyDynamicCapsChange returns caps in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq
- // Check RPacketService::NotifyDynamicCapsChange returns caps NOT in set of RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall
- TInt wantedDynCapBits = RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq;
- TInt unWantedDynCapBits = RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall;
-
- iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
- packetService,
- notifyServiceDynCapsStatus,
- dynCaps,
- wantedDynCapBits,
- unWantedDynCapBits,
- KErrNone);
-
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall
- // Check RPacketService::GetDynamicCaps returns caps in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps did not return correct dynamic caps"));
-
-
- // Check RPacketService::EnumerateNifs returns aCount = 0
- TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(enumerateNifsStatus);
- TInt nifCount = 0;
- const TInt wantedCount = 0;
- packetService.EnumerateNifs(enumerateNifsStatus, nifCount);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out"));
- ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // PopAndDestroy
- // notifyContextStChStatus
- // notifyContext2StChStatus
- // notifyServiceStChStatus
- // notifyServiceDynCapsStatus
- // contextDeactivateStatus
- // enumerateNifsStatus
- CleanupStack::PopAndDestroy(6, ¬ifyContextStChStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0014::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0014");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0015::CCTSYIntegrationTestPacketContext0015(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0015::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0015::~CCTSYIntegrationTestPacketContext0015()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0015::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0015
- * @SYMFssID BA/CTSY/PKTC-0015
- * @SYMTestCaseDesc Deactivate a secondary context and check that primary context is kept active.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::GetContextInfo, RPacketService::EnumerateContexts
- * @SYMTestExpectedResults Pass - First context remains active. Second context is deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify packet service status, packet context status, context info, NIF info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Set the attach mode to EAttachWhenPossible.
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- TExtEtelRequestStatus notifyContextAddedStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextAddedStatus);
- TName primaryCntxtId;
-
- //post notifier for RPacketService::NotifyContextAdded
- packetService.NotifyContextAdded(notifyContextAddedStatus, primaryCntxtId);
-
- // Ensure there is a primary context active and a secondary context active.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
- CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
-
- TName secondaryCntxtId;
-
- //post notifier for RPacketService::NotifyContextAdded
- packetService.NotifyContextAdded(notifyContextAddedStatus, secondaryCntxtId);
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
- CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
-
- // Activate the secondary context.
- ActivateSecondaryPacketContextL(secondaryPacketContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Post notification for secondary context status change
- TExtEtelRequestStatus notifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus secondaryPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, secondaryPacketContextStatus);
-
- // Deactivate the secondary context.
- TExtEtelRequestStatus contextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- secondaryPacketContext.Deactivate(contextDeactivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifyContextStChStatus,
- secondaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- //repost notifier
- secondaryPacketContext.NotifyStatusChange(contextDeactivateStatus, secondaryPacketContextStatus);
-
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifyContextStChStatus,
- secondaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
- RPacketContext::TContextStatus getPacketContextStatus;
- CHECK_EQUALS_L(secondaryPacketContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- CHECK_EQUALS_L(getPacketContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusInactive."));
-
- // Check RPacketService::GetStatus for primary context returns EStatusActive
- RPacketService::TStatus packetServiceStatus;
- ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketService::EnumerateContexts returns aCount = 2
- TExtEtelRequestStatus enumContextsStatus(packetService, EPacketEnumerateContexts);
- CleanupStack::PushL(enumContextsStatus);
- TInt count = 0;
- TInt max = 0;
- const TInt wantedCount = 2;
- packetService.EnumerateContexts(enumContextsStatus, count, max);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsStatus, ETimeMedium), KErrNone,
- _L("RPacketService::EnumerateContexts timed out."));
- ASSERT_EQUALS(enumContextsStatus.Int(), KErrNone,
- _L("RPacketService::EnumerateContexts returned with an error."));
- ASSERT_EQUALS(count, wantedCount,_L("RPacketService::EnumerateContexts did not return correct number of open contexts."));
-
- // Check RPacketService::GetContextInfo for aIndex = 0 and 1 return the correct context name and status for the primary and secondary context.
- TExtEtelRequestStatus getContextsInfoStatus(packetService, EPacketGetContextInfo);
- CleanupStack::PushL(getContextsInfoStatus);
- RPacketService::TContextInfo primaryContextInfo;
- RPacketService::TContextInfo secondaryContextInfo;
- packetService.GetContextInfo(getContextsInfoStatus, 0, primaryContextInfo);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextsInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextInfo timed out."));
- ASSERT_EQUALS(getContextsInfoStatus.Int(), KErrNone, _L("RPacketService::GetContextInfo returned with an error."));
-
- ASSERT_EQUALS_DES16(primaryContextInfo.iName, primaryCntxtId, _L("RPacketService::GetContextInfo did not return correct iName"));
- ASSERT_EQUALS(primaryContextInfo.iStatus, RPacketContext::EStatusActive, _L("RPacketService::GetContextInfo did not return iStatus EStatusActive"));
-
- packetService.GetContextInfo(getContextsInfoStatus, 1, secondaryContextInfo);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextsInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextInfo timed out."));
- ASSERT_EQUALS(getContextsInfoStatus.Int(), KErrNone, _L("RPacketService::GetContextInfo returned with an error."));
-
- ASSERT_EQUALS_DES16(secondaryContextInfo.iName, secondaryCntxtId, _L("RPacketService::GetContextInfo did not return correct iName"));
- ASSERT_EQUALS(secondaryContextInfo.iStatus, RPacketContext::EStatusInactive, _L("RPacketService::GetContextInfo did not return iStatus EStatusInactive"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- //--PopAndDestroy--
- //notifyContextAddedStatus
- //notifyContextStChStatus
- //contextDeactivateStatus
- //enumContextsStatus
- //getContextsInfoStatus
- CleanupStack::PopAndDestroy(5, ¬ifyContextAddedStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0015::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0015");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0016::CCTSYIntegrationTestPacketContext0016(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0016::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0016::~CCTSYIntegrationTestPacketContext0016()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0016::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0016
- * @SYMFssID BA/CTSY/PKTC-0016
- * @SYMTestCaseDesc Handle network initiated deactivation.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::GetContextInfo, RPacketService::EnumerateContexts
- * @SYMTestExpectedResults Pass - Context 1 is deactivated. Other context is unaffected.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify packet service status, packet context status and context info.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // == Ensure there are two PDP contexts active. ==
-
- //Check if we are on a simulated network
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL( phone ), KErrNone, _L("Network is unavailable"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure phone is attached to the packet service.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- //post notifier for RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextAddedStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextAddedStatus);
- TName contextId1;
- packetService.NotifyContextAdded(notifyContextAddedStatus, contextId1);
-
- // Open primary context 1
- RPacketContext& primaryPacketContext1 = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Check RPacketService::NotifyContextAdded completes
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
- CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
-
- // Activate primary packet context 1
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext1);
- TName contextId2;
-
- //post notifier for RPacketService::NotifyContextAdded
- packetService.NotifyContextAdded(notifyContextAddedStatus, contextId2);
-
- // Open primary context 2
- RPacketContext& primaryPacketContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext2);
-
- // Check RPacketService::NotifyContextAdded completes
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
- CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
-
- // Activate primary packet context 2
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext2,2);
-
- // Check that both primary contexts are active
- RPacketContext::TContextStatus packetContextStatus;
- CHECK_EQUALS_L(primaryPacketContext1.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- CHECK_EQUALS_L(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
- CHECK_EQUALS_L(primaryPacketContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- CHECK_EQUALS_L(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Post notification for the first context's status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext1, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- primaryPacketContext1.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // The simulator sends a PDP context deactivation message saying that context 1 has been deactivated.
- DisplayUserInteractionPromptL(_L("Please send me a deactivation of a packet context request."), ETimeMedium);
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for context 1 completes with EStatusDeactivating
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10067 );
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext1,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("RPacketContext::NotifyStatusChange did not return EStatusDeactivating"));
-
- // -> EStatusInactive
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10067 );
- primaryPacketContext1.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext1,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::NotifyStatusChange did not return EStatusInactive"));
-
- // Check RPacketContext::GetStatus for context 1 returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext1.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::GetStatus for context 2 returns EStatusActive
- ASSERT_EQUALS(primaryPacketContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketService::EnumerateContexts returns aCount = 2
- TExtEtelRequestStatus enumContextsStatus(packetService, EPacketEnumerateContexts);
- CleanupStack::PushL(enumContextsStatus);
- TInt count=-1;
- TInt max=-1;
- packetService.EnumerateContexts(enumContextsStatus,count,max);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsStatus, ETimeMedium), KErrNone,
- _L("RPacketService::EnumerateContexts timed out."));
- ASSERT_EQUALS(enumContextsStatus.Int(), KErrNone,
- _L("RPacketService::EnumerateContexts failed."));
- ASSERT_EQUALS(count,2,_L("RPacketService::EnumerateContexts returned with an error"));
-
- // Check RPacketService::GetContextInfo for aIndex = 0 and 1 return the correct context name and status for the two contexts.
- RPacketService::TContextInfo contextInfo;
- TExtEtelRequestStatus getContextInfoStatus(packetService, EPacketGetContextInfo);
- CleanupStack::PushL(enumContextsStatus);
- packetService.GetContextInfo(getContextInfoStatus,0,contextInfo);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetContextInfo timed out."));
- ASSERT_EQUALS(getContextInfoStatus.Int(), KErrNone,
- _L("RPacketService::GetContextInfo returned with an error"));
- ASSERT_EQUALS_DES16(contextInfo.iName,contextId1,_L("RPacketService::GetContextInfo return wrong value in iName"));
- ASSERT_EQUALS(contextInfo.iStatus,RPacketContext::EStatusInactive,_L("RPacketService::GetContextInfo return wrong value in iStatus"));
- packetService.GetContextInfo(getContextInfoStatus,1,contextInfo);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetContextInfo timed out."));
- ASSERT_EQUALS(getContextInfoStatus.Int(), KErrNone,
- _L("RPacketService::GetContextInfo returned with an error."));
- ASSERT_EQUALS_DES16(contextInfo.iName,contextId2,_L("RPacketService::GetContextInfo return wrong value in iName"));
- ASSERT_EQUALS(contextInfo.iStatus,RPacketContext::EStatusActive,_L("RPacketService::GetContextInfo return wrong value in iStatus"));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop:
- // enumContextsStatus
- // enumContextsStatus
- // notifyContextStChStatus
- // notifyContextAddedStatus
- CleanupStack::PopAndDestroy(4,¬ifyContextAddedStatus);
-
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0016::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0016");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0017::CCTSYIntegrationTestPacketContext0017(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0017::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0017::~CCTSYIntegrationTestPacketContext0017()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0017::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0017
- * @SYMFssID BA/CTSY/PKTC-0017
- * @SYMTestCaseDesc Deactivate a packet context when it is already inactive.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetStatus, RPacketService::GetStatus
- * @SYMTestExpectedResults Pass - Error returned on deactivation.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verfiy error is returned and context stays inactive.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Get the attach mode so that it can be restored at the end of the test
- RPacketService::TAttachMode attachMode;
- CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
-
- // Post notification for primary context status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Deactivate the primary context.
- TExtEtelRequestStatus contextDeactivateStatus(primaryPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- primaryPacketContext.Deactivate(contextDeactivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
- // === Check context status===
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusInactive;
-
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Deactivate the context.
- primaryPacketContext.Deactivate(contextDeactivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
-
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // notifyContextStChStatus
- // contextDeactivateStatus
- CleanupStack::PopAndDestroy(2,¬ifyContextStChStatus);
-
- return TestStepResult();
- }
-
-
-TPtrC CCTSYIntegrationTestPacketContext0017::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0017");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0018::CCTSYIntegrationTestPacketContext0018(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0018::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0018::~CCTSYIntegrationTestPacketContext0018()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0018::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0018
- * @SYMFssID BA/CTSY/PKTC-0018
- * @SYMTestCaseDesc Activate a PDP context with an unknown APN.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetLastErrorCause, RPacketService::GetStatus
- * @SYMTestExpectedResults Pass - It is not possible to activate a context with an incorrect APN.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify activation fails and last error cause returned correctly.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
- RMobilePhone &phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Set attach mode to 'when possible'.
- TExtEtelRequestStatus setAttachModeStatus(packetService, EPacketSetAttachMode);
- CleanupStack::PushL(setAttachModeStatus);
- packetService.SetAttachMode(setAttachModeStatus, RPacketService::EAttachWhenPossible);
-
- // Ensure automatic attach completes successfully.
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(setAttachModeStatus, ETimeLong), KErrNone,
- _L("RPacketService::SetAttachMode timed-out"));
- CHECK_EQUALS_L(setAttachModeStatus.Int(), KErrNone,
- _L("RPacketService::SetAttachMode returned with an error"));
-
- //Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsActivate.
-
- //$CTSYProblem.
- //GetDynamicCaps does not return 0x1(KCapsActivate), because KCapsActivate flag is not set yet.
- //CTSY sets KCapsActivate flag during context initialisation.
-
- //Check for the CAPS being returned
- RPacketService::TDynamicCapsFlags dynCaps;
- CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
-
- //RPacketService::TDynamicCapsFlags wantedDynCapBits = RPacketService::KCapsActivate;
- //CHECK_BITS_SET_L(dynCaps, wantedDynCapBits, KNoUnwantedBits, _L("Packet service's KCapsActivate flag not set"));
-
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Open a new primary context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- RPacketService::TStatus pckSrvcStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Set an incorrect APN when setting the config with RPacketContext::SetConfig
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- _LIT(KFaultApnName, "IncorrectAPNname");
- config.iAccessPointName.Copy(KFaultApnName);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
-
- TExtEtelRequestStatus setConfigStatus (primaryPacketContext,EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- primaryPacketContext.SetConfig(setConfigStatus,configPk);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("PacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("PacketContext::SetConfig returned an error."));
-
- // Activate the context
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("PacketContext::Activate timed out"));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("PacketContext::Activate did not return KErrNone"))
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusInactive.
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
-
- // === Check the status of context is EStatusInactive and that a valid error is returned ===
-
- // Check RPacketContext::GetLastErrorCause returns error != KErrNone
- TInt error;
- ASSERT_EQUALS(primaryPacketContext.GetLastErrorCause(error), KErrNone, _L("RPacketContext::GetLastErrorCause returned with an error."));
- ASSERT_TRUE(error != KErrNone, _L("RPacketContext::GetLastErrorCause returns incorrectly KErrNone."));
-
- // Check RPacketContext::GetStatus returns EStatusInactive.
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetStatus returns EStatusAttached.
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // setAttachModeStatus
- // notifyContextStChStatus
- // setConfigStatus
- // contextActivateStatus
- CleanupStack::PopAndDestroy(4, &setAttachModeStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0018::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0018");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0019::CCTSYIntegrationTestPacketContext0019(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0019::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0019::~CCTSYIntegrationTestPacketContext0019()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0019::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0019
- * @SYMFssID BA/CTSY/PKTC-0019
- * @SYMTestCaseDesc Activate a PDP context with an incorrect password.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetLastErrorCause, RPacketService::GetStatus
- * @SYMTestExpectedResults Pass - Activation fails and error returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify activation fails and last error cause returned correctly.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone,
- _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Set attach mode to 'when possible'.
- TExtEtelRequestStatus setAttachModeStatus(packetService, EPacketSetAttachMode);
- CleanupStack::PushL(setAttachModeStatus);
- packetService.SetAttachMode(setAttachModeStatus, RPacketService::EAttachWhenPossible);
-
- // Ensure automatic attach completes successfully.
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(setAttachModeStatus, ETimeLong), KErrNone,
- _L("RPacketService::SetAttachMode timed-out"));
- CHECK_EQUALS_L(setAttachModeStatus.Int(), KErrNone,
- _L("RPacketService::SetAttachMode returned with an error"));
-
- // Ensure phone has KCapsActivate capability.
-
- //Check for the CAPS being returned
- RPacketService::TDynamicCapsFlags dynCaps;
- CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
-
- //$CTSYProblem.
- //GetDynamicCaps does not return 0x1(KCapsActivate) as it should, because KCapsActivate flag is not set yet.
- //CTSY sets KCapsActivate flag during context initialisation.
- RPacketService::TDynamicCapsFlags wantedDynCapBits = 0x00000000;
- CHECK_BITS_SET_L(dynCaps, wantedDynCapBits, KNoUnwantedBits, _L("Packet service's KCapsActivate flag not set"));
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Open a new primary context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Set an incorrect password when setting the config with RPacketContext::SetConfig
- RPacketContext::TContextConfigGPRS config;
- _LIT(KFaultPwd, "IncorrectPwd");
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KFaultPwd);
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
- TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- primaryPacketContext.SetConfig(setConfigStatus, configPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
- _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
- _L("RPacketContext::SetConfig returned with error status."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- RPacketService::TStatus pckSrvcStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate the context
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("PacketContext::Activate timed out"));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("PacketContext::Activate did not return KErrNone"));
-
- // Check RPacketContext::NotifyStatusChange completes wtih EStatusActivating -> EStatusInactive.
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check that the activation fails and error is returned.
- // Check RPacketContext::GetLastErrorCause returns error != KErrNone
- TInt error;
- ASSERT_EQUALS(primaryPacketContext.GetLastErrorCause(error), KErrNone, _L("RPacketContext::GetLastErrorCause returned with an error."));
- ASSERT_TRUE(error != KErrNone, _L("RPacketContext::GetLastErrorCause returns incorrectly KErrNone."));
-
- // Check RPacketContext::GetStatus returns EStatusInactive.
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetStatus returns EStatusAttached.
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // setAttachModeStatus
- // setConfigStatus
- // notifyContextStChStatus
- // contextActivateStatus
- CleanupStack::PopAndDestroy(4, &setAttachModeStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0019::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0019");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0020::CCTSYIntegrationTestPacketContext0020(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0020::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0020::~CCTSYIntegrationTestPacketContext0020()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0020::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0020
- * @SYMFssID BA/CTSY/PKTC-0020
- * @SYMTestCaseDesc Activate a context when phone is in class C operation and preferred bearer is RPacketService::EBearerPacketSwitched
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::GetPreferredBearer, RPacketContext::OpenNewContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus
- * @SYMTestExpectedResults Pass - Context activated and deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context status and packet service status.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure attach mode to RPacketService::EAttachWhenPossible.
-
- // Ensure MS class is class RPacketService::EMSClassAlternateMode.
-
- // Ensure preferred bearer to
-
- // RPacketService::EBearerPacketSwitched
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Check RPacketService::GetPreferredBearer returns RPacketService::EBearerPacketSwitched
-
- // Set a valid context config using RPacketContext::SetConfig
-
- // Activate packet context with RPacketContext::Activate
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // Deactivate the context
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
-
- // Check RPacketContext::GetStatus returns EStatusInactive
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
-
- // Check RPacketService::GetStatus returns EStatusAttached
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0020::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0020");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0021::CCTSYIntegrationTestPacketContext0021(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0021::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0021::~CCTSYIntegrationTestPacketContext0021()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0021::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0021
- * @SYMFssID BA/CTSY/PKTC-0021
- * @SYMTestCaseDesc Cancel activation before activation is complete.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus
- * @SYMTestExpectedResults Pass - Activation cancelled.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context is not activated and activation cancelled successfully.
-
-Verify subsequent attempt to activate succeeds and therefore roll back from cancelling worked correctly.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Get the context config using network info
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Open a new context
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Set a valid context config using RPacketContext::SetConfig
- TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- packetContext.SetConfig(setConfigStatus, configPk);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0, _L("RPacketService::NotifyContextAdded completed with invalid context name."));
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Activate a context (don't wait for completion)
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Cancel activate with RTelSubSessionBase::CancelAsyncRequest(EPacketContextActivate)
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50003 );
- // When packet context is requested to be activated, there is nothing CTSY can do to cancel activation,
- // because activation has already been sent to the network.
- // CancelAsyncRequest(EPacketContextActivate) returns faulty with KErrNone instead of KErrNotSupported.
- packetContext.CancelAsyncRequest(EPacketContextActivate);
-
- // Check RTelSubSessionBase::CancelAsyncRequest(EPacketContextActivate) returns with KErrNotSupported
- TInt error;
- ASSERT_EQUALS(packetContext.GetLastErrorCause(error), KErrNone, _L("RPacketContext::GetLastErrorCause returned with an error."));
- ASSERT_EQUALS(error, KErrNotSupported, _L("RPacketContext::GetLastErrorCause does not return KErrNotSupported."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // pop
- // getNetworkStatus
- // notifyContextStatus
- // setConfigStatus
- // notifyServicetStChStatus
- // contextActivateStatus
- CleanupStack::PopAndDestroy(5, &getNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0021::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0021");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0022::CCTSYIntegrationTestPacketContext0022(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0022::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0022::~CCTSYIntegrationTestPacketContext0022()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0022::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0022
- * @SYMFssID BA/CTSY/PKTC-0022
- * @SYMTestCaseDesc Activate context when request received from network.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketService::NotifyContextAdded, RPacketService::EnumerateContexts, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps
- * @SYMTestExpectedResults Pass - Context activated on request from network.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify context parameters in TPacketDataConfigBase derived class received correctly.
-
-Verify context added notification produced, number of contexts, dynamic caps, packet service status are all correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to the packet service.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsRxContextActivationReq
- RPacketService::TDynamicCapsFlags dynCaps;
- RPacketService::TDynamicCapsFlags wantedDynCapBits = RPacketService::KCapsRxContextActivationReq;
- CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- CHECK_BITS_SET_L(dynCaps, wantedDynCapBits , KNoUnwantedBits, _L("RPacketService::GetDynamicCaps KCapsRxContextActivationReq flag not set"));
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Post notifications for the RPacketService::NotifyContextActivationRequested
- TExtEtelRequestStatus notifyContextActivationRequestedStatus(packetService, EPacketNotifyContextActivationRequested);
- CleanupStack::PushL(notifyContextActivationRequestedStatus);
- RPacketContext::TContextConfigGPRS requestedConfig;
- TPckg<RPacketContext::TContextConfigGPRS> requestedConfigPckg(requestedConfig);
- packetService.NotifyContextActivationRequested(notifyContextActivationRequestedStatus,requestedConfigPckg);
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for service's dynamic caps change
- TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
- CleanupStack::PushL(notifyServiceDynCapsStatus);
- packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Simulator sends a context activation request to the phone.
- RPacketContext::TContextConfigGPRS config;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- config.iAccessPointName.Copy(apn);
- config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- DisplayUserInteractionPromptL(_L("Please send me a context activation request."), ETimeLong);
-
-
- // $CTSYProblem The LTSY does nothing with the context activation request.
- ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: The LTSY does nothing with the context activation request.<font color=Black>"));
- // Check RPacketService::NotifyContextActivationRequested completes.
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextActivationRequestedStatus, ETimeLong), KErrNone,
- _L("RPacketService::NotifyContextActivationRequested did not complete."));
- ASSERT_EQUALS(notifyContextActivationRequestedStatus.Int(), KErrNone,
- _L("RPacketService::NotifyContextActivationRequested returned with error status."));
-
- // Open a primary context.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Extract the context parameters received and check they are the same as that sent by the simulator.
- ASSERT_EQUALS_DES8(requestedConfig.iAccessPointName, config.iAccessPointName, _L("RPacketService::NotifyContextActivationRequested gave incorrect config data."));
- ASSERT_EQUALS_DES8(requestedConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketService::NotifyContextActivationRequested gave incorrect config data."));
- ASSERT_EQUALS_DES8(requestedConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketService::NotifyContextActivationRequested gave incorrect config data."));
-
- // Use them to set a context config with RPacketContext::SetConfig
- TPckg<RPacketContext::TContextConfigGPRS> configPckg(requestedConfig);
- TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- packetContext.SetConfig(setConfigStatus, configPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
- _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
- _L("RPacketContext::SetConfig returned with error status."));
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone,
- _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
- _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0,
- _L("Packet context config has zero length contextId."));
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
-
- // -> EStatusActive
- packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- packetContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Check dynamic caps ===
-
- // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
- // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
- wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
- TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
- packetService,
- notifyServiceDynCapsStatus,
- dynCaps,
- wantedDynCapBits,
- unWantedDynCapBits,
- KErrNone);
-
- // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
- // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
- ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps Packet service's KCapsActivate flag not set"));
-
- // Check RPacketService::EnumerateContexts returns 1.
- TExtEtelRequestStatus enumContextsStatus(packetService, EPacketEnumerateContexts);
- CleanupStack::PushL(enumContextsStatus);
- TInt count=-1;
- TInt max=-1;
- packetService.EnumerateContexts(enumContextsStatus,count,max);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsStatus, ETimeMedium), KErrNone,
- _L("RPacketService::EnumerateContexts timed out."));
- ASSERT_EQUALS(enumContextsStatus.Int(), KErrNone,
- _L("RPacketService::EnumerateContexts failed."));
- ASSERT_EQUALS(count,1,_L("RPacketService::EnumerateContexts did not returned one."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop:
- // enumContextsStatus
- // contextActivateStatus
- // setConfigStatus
- // notifyContextStChStatus
- // getNetworkStatus
- // notifyServiceDynCapsStatus
- // notifyServiceStChStatus
- // notifyContextStatus
- // notifyContextActivationRequestedStatus
- CleanupStack::PopAndDestroy(9,¬ifyContextActivationRequestedStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0022::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0022");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0023::CCTSYIntegrationTestPacketContext0023(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0023::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0023::~CCTSYIntegrationTestPacketContext0023()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0023::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0023
- * @SYMFssID BA/CTSY/PKTC-0023
- * @SYMTestCaseDesc Activate context when request received from network.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::Activate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketService::EnumerateNifs, RPacketContext::NotifyStatusChange, RPacketContext::SetConfig, RPacketService::EnumerateContextsInNif, RPacketService::NotifyContextActivationRequested, RPacketContext::GetDnsInfo
- * @SYMTestExpectedResults Pass - Context activated on request from network.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify NIF related info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10085);
- User::Leave(KErrNone);
-
- // Ensure phone is attached to the packet service.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsRxContextActivationReq
- RPacketService::TDynamicCapsFlags dynCaps;
- CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- CHECK_BITS_SET_L(dynCaps, RPacketService::KCapsRxContextActivationReq, KNoUnwantedBits, _L("RPacketService::GetStaticCaps did not return correct dynamic caps"));
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // post notifier for RPacketService::NotifyContextActivationRequested
- RPacketContext::TContextConfigGPRS configGPRS;
- TPckg<RPacketContext::TContextConfigGPRS> configPkg(configGPRS);
- TExtEtelRequestStatus notifyContextActivationRequested(packetService , EPacketNotifyContextActivationRequestedCancel);
- CleanupStack::PushL(notifyContextActivationRequested);
- packetService.NotifyContextActivationRequested(notifyContextActivationRequested, configPkg);
-
- // Ask the simulator to send a context activation request
- RPacketContext::TContextConfigGPRS configSimulator;
- TPckg<RPacketContext::TContextConfigGPRS> configSimulatorPkg(configSimulator);
- DisplayUserInteractionPromptL(_L("Simulator needs to send context activation request to this phone."), ETimeMedium);
-
- // Check RPacketService::NotifyContextActivationRequested completes with valid context configuration.
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextActivationRequested, ETimeLong), KErrNone, _L("RPacketService::NotifyContextActivationRequested timed out."));
- ASSERT_EQUALS(notifyContextActivationRequested.Int(), KErrNone, _L("RPacketService::NotifyContextActivationRequested returned with error status."));
- ASSERT_TRUE(configGPRS.iAccessPointName.Length() > 0,_L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iAccessPointName."));
- ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iUsername.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iUsername."));
- ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iPassword.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iPassword."));
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
-
- // Open a primary context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Extract the context parameters received and check they are the same as that sent by the simulator.
- // ETEL PACKET API says that nw may send PDP type requested, PDP address, Access Point Name (APN)
- ASSERT_EQUALS_DES8(configSimulator.iAccessPointName, configGPRS.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS(configSimulator.iPdpType, configGPRS.iPdpType, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(configSimulator.iPdpAddress, configGPRS.iPdpAddress, _L("RPacketContext::GetConfig returns incorrect config data."));
-
-
- // Use them to set a context config with RPacketContext::SetConfig
- TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- primaryPacketContext.SetConfig(setConfigStatus, configPkg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
-
- // Check RPacketService::NotifyContextAdded completes with a valid context name
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- ASSERT_TRUE(contextId.Length() > 0, _L("RPacketService::NotifyContextAdded completed with invalid context name"));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // === Check context statuses ===
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Get context information ===
-
- // Check RPacketContext::GetConfig returns same config as that set
- TExtEtelRequestStatus contextGetConfigStatus(primaryPacketContext, EPacketContextGetConfig);
- CleanupStack::PushL(contextGetConfigStatus);
- RPacketContext::TContextConfigGPRS getConfig;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPkg(getConfig);
- primaryPacketContext.GetConfig(contextGetConfigStatus, getConfigPkg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextGetConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
- ASSERT_EQUALS(contextGetConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
-
- ASSERT_EQUALS_DES8(getConfig.iAccessPointName, configGPRS.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, configGPRS.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
- ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, configGPRS.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
-
- // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
- RPacketContext::TDnsInfoV2 dnsInfo;
- RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
- TExtEtelRequestStatus dnsInfoStatus(primaryPacketContext, EPacketContextGetDNSInfo);
- CleanupStack::PushL(dnsInfoStatus);
- primaryPacketContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
-
- ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
- ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
- ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
-
- // === Check that there is one NIF with one primary context belonging to it ===
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
-
- TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(enumerateNifsStatus);
- TInt nifCount;
- const TInt wantedCount = 1;
- packetService.EnumerateNifs(enumerateNifsStatus, nifCount);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out"));
- ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
-
-
- // Get context info
- TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
- CleanupStack::PushL(getContextInfo);
- RPacketService::TContextInfo contextInfo;
- const TInt index = 0;
- packetService.GetContextInfo(getContextInfo, index, contextInfo);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
- ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
- TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(enumerateContextsInNifStatus);
- TInt contextsInNifCount;
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, contextInfo.iName, contextsInNifCount);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out"));
- ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif returned wrong number of contexts sharing a NIF"));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
- TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(getContextNameInNifStatus);
- TName contextName;
- packetService.GetContextNameInNif(getContextNameInNifStatus, contextInfo.iName, index, contextName);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out"));
- ASSERT_EQUALS_DES16(contextInfo.iName, contextName, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- TExtEtelRequestStatus getNifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(getNifInfoStatus);
- const TInt nifInfoCount = 0;
- RPacketService::TNifInfoV2 nifInfo;
- RPacketService::TNifInfoV2Pckg nifInfoPkg(nifInfo);
- packetService.GetNifInfo(getNifInfoStatus, nifInfoCount, nifInfoPkg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo timed out"));
- ASSERT_TRUE(nifInfo.iContextName.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid context name"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
- ASSERT_EQUALS(nifInfo.iNumberOfContexts, wantedCount, _L("RPacketService::GetNifInfo returned wrong count of contexts"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfo.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo returned wrong NIF status"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfo.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext in iContextType
- ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo returned wrong context type"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // notifyContextActivationRequested
- // setConfigStatus
- // notifyContextStatus
- // notifyContextStChStatus
- // contextActivateStatus
- // contextGetConfigStatus
- // dnsInfoStatus
- // enumerateNifStatus
- // getContextInfo
- // enumerateContextsInNifStatus
- // getContextNameInNifStatus
- // getNifInfoStatus
-
- CleanupStack::PopAndDestroy(12, ¬ifyContextActivationRequested);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0023::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0023");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0024::CCTSYIntegrationTestPacketContext0024(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0024::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0024::~CCTSYIntegrationTestPacketContext0024()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0024::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0024
- * @SYMFssID BA/CTSY/PKTC-0024
- * @SYMTestCaseDesc Reject network requested context activation.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::RejectActivationRequest, RPacketService::EnumerateContexts
- * @SYMTestExpectedResults Pass - Context activation request rejected.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify context parameters in TPacketDataConfigBase derive class received correctly. Verify when network repeated requests for a context activation (up to 5 times), it can be rejected.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10086);
- User::Leave(KErrNone);
-
- // Check that the phone is registered with the network simulator.
- RMobilePhone &mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(mobilePhone);
-
- // Ensure phone is attached to the packet service.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsRxContextActivationReq
- RPacketService::TDynamicCapsFlags dynCaps;
- CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
- CHECK_BITS_SET_L(dynCaps, RPacketService::KCapsRxContextActivationReq, KNoUnwantedBits, _L("RPacketService::GetDynamicCaps returned with incorrect caps"));
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // post notifier for RPacketService::NotifyContextActivationRequested
- RPacketContext::TContextConfigGPRS configGPRS;
- TPckg<RPacketContext::TContextConfigGPRS> configPkg(configGPRS);
- TExtEtelRequestStatus notifyContextActivationRequested(packetService , EPacketNotifyContextActivationRequested);
- CleanupStack::PushL(notifyContextActivationRequested);
- packetService.NotifyContextActivationRequested(notifyContextActivationRequested, configPkg);
-
- // Ask the simulator to send a context activation request
- DisplayUserInteractionPromptL(_L("Simulator needs to send context activation request to this phone."), ETimeMedium);
-
- // Check RPacketService::NotifyContextActivationRequested completes with valid context configuration.
- iPacketServiceTestHelper.WaitForPacketServiceNotifyContextActivationRequested(
- packetService,
- notifyContextActivationRequested,
- configPkg,
- KErrNone );
-
- ASSERT_EQUALS(notifyContextActivationRequested.Int(), KErrNone, _L("RPacketService::NotifyContextActivationRequested returned with error status."));
- ASSERT_TRUE(configGPRS.iAccessPointName.Length() > 0,_L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iAccessPointName."));
- ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iUsername.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iUsername."));
- ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iPassword.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iPassword."));
-
- // Check RPacketService::RejectActivationRequest completes with KErrNone
- TExtEtelRequestStatus rejectActivationRequestStatus(packetService, EPacketRejectActivationRequest);
- CleanupStack::PushL(rejectActivationRequestStatus);
- packetService.RejectActivationRequest(rejectActivationRequestStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(rejectActivationRequestStatus, ETimeLong), KErrNone, _L("RPacketService::RejectActivationRequest timed out"));
- ASSERT_EQUALS(rejectActivationRequestStatus.Int(), KErrNone, _L("RPacketService::RejectActivationRequest returned with error status."));
-
- // Check RPacketService::EnumerateContexts returns 0
- TExtEtelRequestStatus enumerateContextsStatus(packetService, EPacketEnumerateContexts);
- CleanupStack::PushL(enumerateContextsStatus);
- TInt count(0);
- TInt maxAllowed(0);
- const TInt wantedCount = 0;
- packetService.EnumerateContexts(enumerateContextsStatus, count, maxAllowed);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContexts timed out"));
- ASSERT_EQUALS(enumerateContextsStatus.Int(), KErrNone, _L("RPacketService::EnumerateContexts returned with error status."));
- ASSERT_EQUALS(count, wantedCount, _L("RPacketService::EnumerateContexts did not return context count 0 as expected"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // notifyContextActivationRequested
- // rejectActivationRequestStatus
- // enumerateContextsStatus
- CleanupStack::PopAndDestroy(3, ¬ifyContextActivationRequested);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0024::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0024");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0025::CCTSYIntegrationTestPacketContext0025(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0025::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0025::~CCTSYIntegrationTestPacketContext0025()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0025::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0025
- * @SYMFssID BA/CTSY/PKTC-0025
- * @SYMTestCaseDesc Delete a context when it is active.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::Delete, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus
- * @SYMTestExpectedResults Pass - Context is deleted and the status of the contexts reflects this status..
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context status is correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // === Ensure there is an active PDP context. ===
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service.
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Open a new context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Delete the context with RPacketContext::Delete
- TExtEtelRequestStatus deleteStatus(packetService, EPacketContextDelete);
- CleanupStack::PushL(deleteStatus);
- primaryPacketContext.Delete(deleteStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeLong), KErrNone, _L("RPacketContext::Delete timed out"));
-
- // Check an error is returned.
- // $CTSYProblem Adaptation deletes context always if it's status is else than RPacketContext::EStatusUnknown.
- // Checking is changed from NOT KErrNone to KErrNone and GetStatus() checking is changed from EStatusActive to EStatusDeleted
- ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RPacketContext::Delete returned with an error"));
-
- // Check RPacketContext::GetStatus returns EStatusDeleted
- RPacketContext::TContextStatus packetContextStatus;
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeleted, _L("RPacketContext::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // deleteStatus
- CleanupStack::PopAndDestroy(1, &deleteStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0025::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0025");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0026::CCTSYIntegrationTestPacketContext0026(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0026::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0026::~CCTSYIntegrationTestPacketContext0026()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0026::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0026
- * @SYMFssID BA/CTSY/PKTC-0026
- * @SYMTestCaseDesc Delete a context when it has been deactivated.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::Delete
- * @SYMTestExpectedResults Pass - Context deleted.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context status is deleted.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is an active PDP context.
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Open a new context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Activate primary context
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- RPacketContext::TContextStatus packetContextStatus;
- CHECK_EQUALS_L(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
- CHECK_EQUALS_L(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- //Post notifier for packet context status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Deactivate the context.
- TExtEtelRequestStatus contextDeactivateStatus(primaryPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- primaryPacketContext.Deactivate(contextDeactivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Delete the context with RPacketContext::Delete
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- TExtEtelRequestStatus contextDeleteStatus(primaryPacketContext, EPacketContextDelete);
- CleanupStack::PushL(contextDeleteStatus);
- primaryPacketContext.Delete(contextDeleteStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeleteStatus, ETimeLong), KErrNone, _L("RPacketContext::Delete timed out"));
- ASSERT_EQUALS(contextDeleteStatus.Int(), KErrNone, _L("RPacketContext::Delete returned an error"));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusDeleted
- expectedPacketContextStatus = RPacketContext::EStatusDeleted;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusDeleted
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeleted, _L("RPacketContext::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // notifyContextStChStatus
- // contextDeactivateStatus
- // contextDeleteStatus
- CleanupStack::PopAndDestroy(3, ¬ifyContextStChStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0026::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0026");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0027::CCTSYIntegrationTestPacketContext0027(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0027::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0027::~CCTSYIntegrationTestPacketContext0027()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0027::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0027
- * @SYMFssID BA/CTSY/PKTC-0027
- * @SYMTestCaseDesc Dial a voice call while context is active in class B operation.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RCall::Dial, RCall::HangUp, RCall::GetStatus, RCall::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus
- * @SYMTestExpectedResults Pass - Packet service suspends when CS call is made.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context and packet service are suspended when voice call is initiated whilst context is activated
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure MS class is EMSClassSuspensionRequired
-
- // Ensure there is an active PDP context.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Check RPacketService::GetMSClass returns EMSClassSuspensionRequired
-
- // Dial a number that answers.
-
- // === Check call status ===
-
- // Check RCall::NotifyStatusChange completes with EStatusConnected.
-
- // Check RCall::GetStatus returns EStatusConnected.
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusSuspended
-
- // Check RPacketService::GetStatus returns EStatusSuspended
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusSuspended
-
- // Check RPacketContext::GetStatus returns EStatusSuspended
-
- // Hang up call.
-
- // Check RCall::NotifyStatusChange completes with EStatusHangingUp -> EStatusIdle.
-
- // Check RCall::GetStatus returns EStatusIdle.
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0027::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0027");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0028::CCTSYIntegrationTestPacketContext0028(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0028::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0028::~CCTSYIntegrationTestPacketContext0028()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0028::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0028
- * @SYMFssID BA/CTSY/PKTC-0028
- * @SYMTestCaseDesc Get default context params.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetConfig, RPacketService::SetDefaultContextParams, RPacketService::GetContextInfo
- * @SYMTestExpectedResults Pass - Context activated with default params.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context activated without specific config has default context params.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- const TInt gprs = 1;
- const TInt r99 = 2;
- const TInt r5 = 3;
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
-
- // Activate context using RPacketContext::TContextConfigGPRS
- DoTest0028L(packetService, apn, user, pwd, gprs);
-
- // Repeat test with RPacketContext::TContextConfigR99_R4
- DoTest0028L(packetService, apn, user, pwd, r99);
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50004 );
- // Test case is made to leave because CTSY doesn't have support for TContextConfig_R5.
- CHECK_TRUE_L(EFalse, _L("This test has been made to leave intentionally - CTSY doesn't have support for TContextConfig_R5"));
-
- // Repeat test with RPacketContext::TContextConfig_R5
- DoTest0028L(packetService, apn, user, pwd, r5);
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // getNetworkStatus
- CleanupStack::PopAndDestroy(1, &getNetworkStatus);
-
- return TestStepResult();
- }
-
-
-void CCTSYIntegrationTestPacketContext0028::DoTest0028L(RPacketService& aPacketService, TPtrC aApn, TPtrC aUser, TPtrC aPwd, TInt aNWType)
-/**
- * Activates primary packet context with default context parameters.
- * @param aPacketService Reference to packet service.
- * @param aNWType Gprs / R99_R4 / R5.
- */
- {
- TExtEtelRequestStatus reqSetDefaultContextParams(aPacketService, EPacketSetDefaultContextParams);
- CleanupStack::PushL(reqSetDefaultContextParams);
- RPacketContext::TContextConfigGPRS setConfigGprs;
- TPckg<RPacketContext::TContextConfigGPRS> setConfigPkgGprs(setConfigGprs);
- RPacketContext::TContextConfigR99_R4 setConfigR99;
- TPckg<RPacketContext::TContextConfigR99_R4> setConfigPkgR99(setConfigR99);
- RPacketContext::TContextConfig_R5 setConfigR5;
- TPckg<RPacketContext::TContextConfig_R5> setConfigPkgR5(setConfigR5);
-
- switch(aNWType)
- {
- case 1: // GPRS
- // Set valid context params with RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfigGPRS
- setConfigGprs.iAccessPointName.Copy(aApn);
- setConfigGprs.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigGprs.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- aPacketService.SetDefaultContextParams(reqSetDefaultContextParams, setConfigPkgGprs);
- break;
-
- case 2: // R99_R4
- // Set valid context params with RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfigR99_R4
- setConfigR99.iAccessPointName.Copy(aApn);
- setConfigR99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigR99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- aPacketService.SetDefaultContextParams(reqSetDefaultContextParams, setConfigPkgR99);
- break;
-
- case 3: // R5
- // Set valid context params with RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfig_R5
- setConfigR5.iAccessPointName.Copy(aApn);
- setConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- aPacketService.SetDefaultContextParams(reqSetDefaultContextParams, setConfigPkgR5);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqSetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::SetDefaultContextParams timed out"));
- ASSERT_EQUALS(reqSetDefaultContextParams.Int(), KErrNone, _L("RPacketService::SetDefaultContextParams returned with an error"));
-
- // Check RPacketService::GetDefaultContextParams returns same params as that set
- TExtEtelRequestStatus reqGetDefaultContextParams(aPacketService, EPacketGetDefaultContextParams);
- CleanupStack::PushL(reqGetDefaultContextParams);
- RPacketContext::TContextConfigGPRS getConfigGprs;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPkgGprs(getConfigGprs);
- RPacketContext::TContextConfigR99_R4 getConfigR99;
- TPckg<RPacketContext::TContextConfigR99_R4> getConfigPkgR99(getConfigR99);
- RPacketContext::TContextConfig_R5 getConfigR5;
- TPckg<RPacketContext::TContextConfig_R5> getConfigPkgR5(getConfigR5);
-
- switch(aNWType)
- {
- case 1: // GPRS
- aPacketService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgGprs);
- break;
-
- case 2: // R99_R4
- aPacketService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgR99);
- break;
-
- case 3: // R5
- aPacketService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgR5);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqGetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::GetDefaultContextParams timed out"));
- ASSERT_EQUALS(reqGetDefaultContextParams.Int(), KErrNone, _L("RPacketService::GetDefaultContextParams returned with an error"));
-
- TCmpRPacketContextTContextConfigGPRS contextConfigGPRSCmp(getConfigGprs, setConfigGprs, *this);
- TCmpRPacketContextTContextConfigR99_R4 contextConfigR99Cmp(getConfigR99, setConfigR99, *this);
- TCmpRPacketContextTContextConfig_R5 contextConfigR5Cmp(getConfigR5, setConfigR5, *this);
-
- switch(aNWType)
- {
- case 1: // GPRS
- ASSERT_TRUE(contextConfigGPRSCmp.IsEqual(ELogError), _L("RPacketService.GetDefaultContextParams did not return same params as that set"));
- break;
-
- case 2: // R99_R4
- ASSERT_TRUE(contextConfigR99Cmp.IsEqual(ELogError), _L("RPacketService.GetDefaultContextParams did not return same params as that set"));
- break;
-
- case 3: // R5
- ASSERT_TRUE(contextConfigR5Cmp.IsEqual(ELogError), _L("RPacketService.GetDefaultContextParams did not return same params as that set"));
- break;
- }
-
- // Open a new context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(aPacketService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- aPacketService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for primary context status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate a context with RPacketContext::Activate
- //$CTSYProblem SetConfig is required before activation of the context.
- //If SetConfig is not called, Activate returns KErrTimedOut(-33).
- //SetDefaultContextParams sends context parameters common to all contexts to adaptation/LTSY layer.
- //However,for some reason, adaptation does not use these params when Activate is called
- //and requires setting of context specific parameters with SetConfig
- TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- switch(aNWType)
- {
- case 1: // GPRS
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgGprs);
- break;
-
- case 2: // R99_R4
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR99);
- break;
-
- case 3: // R5
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR5);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
-
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- aPacketService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(aPacketService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Get context information ===
-
- // Check RPacketContext::GetConfig returns same config as the default set in RPacketService::SetDefaultContextParams
- TExtEtelRequestStatus contextConfigStatus(primaryPacketContext, EPacketContextGetConfig);
- CleanupStack::PushL(contextConfigStatus);
-
- switch(aNWType)
- {
- case 1: // GPRS
- primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgGprs);
- break;
-
- case 2: // R99_R4
- primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgR99);
- break;
-
- case 3: // R5
- primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgR5);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
- ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
-
- TCmpRPacketContextTContextConfigGPRS contextConfigGPRSCmp2(getConfigGprs, setConfigGprs, *this);
- TCmpRPacketContextTContextConfigR99_R4 contextConfigR99Cmp2(getConfigR99, setConfigR99, *this);
- TCmpRPacketContextTContextConfig_R5 contextConfigR5Cmp2(getConfigR5, setConfigR5, *this);
-
- switch(aNWType)
- {
- case 1: // GPRS
- ASSERT_TRUE(contextConfigGPRSCmp2.IsEqual(ELogError), _L("RPacketService.GetConfig did not return same params as the default set in RPacketService::SetDefaultContextParams"));
- break;
-
- case 2: // R99_R4
- ASSERT_TRUE(contextConfigR99Cmp2.IsEqual(ELogError), _L("RPacketService.GetConfig did not return same params as the default set in RPacketService::SetDefaultContextParams"));
- break;
-
- case 3: // R5
- ASSERT_TRUE(contextConfigR5Cmp2.IsEqual(ELogError), _L("RPacketService.GetConfig did not return same params as the default set in RPacketService::SetDefaultContextParams"));
- break;
- }
-
- // Check RPacketService::EnumerateContexts returns 1.
- TExtEtelRequestStatus enumerateContextsStatus(aPacketService, EPacketEnumerateContexts);
- CleanupStack::PushL(enumerateContextsStatus);
- TInt count(0);
- TInt maxAllowed(0);
- const TInt wantedCount = 1;
- aPacketService.EnumerateContexts(enumerateContextsStatus, count, maxAllowed);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContexts timed out"));
- ASSERT_EQUALS(enumerateContextsStatus.Int(), KErrNone, _L("RPacketService::EnumerateContexts returned with error status."));
- ASSERT_EQUALS(count, wantedCount, _L("RPacketService::EnumerateContexts did not return context count 1 as expected"));
-
- // Check RPacketService::GetContextInfo with aIndex = 0 returns correct name in iName
- TExtEtelRequestStatus getContextInfo(aPacketService, EPacketGetContextInfo);
- CleanupStack::PushL(getContextInfo);
- RPacketService::TContextInfo contextInfo;
- const TInt index = 0;
- aPacketService.GetContextInfo(getContextInfo, index, contextInfo);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
- ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
-
- // Check RPacketService::GetContextInfo with aIndex = 0 returns EStatusActive in iStatus
- ASSERT_EQUALS(contextInfo.iStatus, RPacketContext::EStatusActive, _L("RPacketService::GetContextInfo did not return iStatus RPacketContext::EStatusActive as expected"));
-
- // Release packet context
- iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Pop
- // reqSetDefaultContextParams
- // reqGetDefaultContextParams
- // notifyServiceStChStatus
- // notifyContextStChStatus
- // setConfigStatus
- // contextActivateStatus
- // contextConfigStatus
- // enumerateContextsStatus
- // getContextInfo
- CleanupStack::PopAndDestroy(9, &reqSetDefaultContextParams);
-
- }
-
-
-TPtrC CCTSYIntegrationTestPacketContext0028::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0028");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0029::CCTSYIntegrationTestPacketContext0029(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0029::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0029::~CCTSYIntegrationTestPacketContext0029()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0029::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0029
- * @SYMFssID BA/CTSY/PKTC-0029
- * @SYMTestCaseDesc Set default context params to unsupported type.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::SetDefaultContextParams, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetConfig, RPacketService::SetDefaultContextParams, RPacketService::Open
- * @SYMTestExpectedResults Pass - Context activated with original default params.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context activated without specific config has original default context params (not ones set).
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Get the default context params with RPacketService::GetDefaultContextParams
- RPacketContext::TContextConfigGPRS dummyConfig;
- TPckg<RPacketContext::TContextConfigGPRS> dummyConfigPkgGprs(dummyConfig);
-
- TExtEtelRequestStatus reqGetDummyContextParams(packetService, EPacketGetDefaultContextParams);
- CleanupStack::PushL(reqGetDummyContextParams);
- packetService.GetDefaultContextParams(reqGetDummyContextParams, dummyConfigPkgGprs);
-
- //Check RPacketService::GetDefaultContextParams returns with KErrNotReady
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqGetDummyContextParams, ETimeLong), KErrNone, _L("RPacketService::GetDefaultContextParams timed out"));
- ASSERT_EQUALS(reqGetDummyContextParams.Int(), KErrNotReady, _L("RPacketService::GetDefaultContextParams did not return KErrNotReady"));
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(),
- KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Get the context config using network info
- RPacketContext::TContextConfigGPRS defaultConfig;
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
- defaultConfig.iAccessPointName.Copy(apn);
- defaultConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- defaultConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- TPckg<RPacketContext::TContextConfigGPRS> defaultConfigPkgGprs(defaultConfig);
-
- // Set the default context params with RPacketService::SetDefaultContextParams
- DEBUG_PRINTF1(_L("Setting Default Context Params"));
- TExtEtelRequestStatus regSetInitParams(packetService,EPacketSetDefaultContextParams);
- CleanupStack::PushL(regSetInitParams);
- packetService.SetDefaultContextParams(regSetInitParams, defaultConfigPkgGprs);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(regSetInitParams, ETimeLong), KErrNone, _L("RPacketService::SetDefaultContextParams timed out"));
- ASSERT_EQUALS(regSetInitParams.Int(), KErrNone, _L("RPacketService::SetDefaultContextParams returned with an error"));
-
- // Get the default context params with RPacketService::GetDefaultContextParams check they are the same as what was set
- DEBUG_PRINTF1(_L("Getting Default Context Params"));
- RPacketContext::TContextConfigGPRS getConfig;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPkgGprs(getConfig);
-
- TExtEtelRequestStatus reqGetDefaultContextParams(packetService, EPacketGetDefaultContextParams);
- CleanupStack::PushL(reqGetDefaultContextParams);
- packetService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgGprs);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqGetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::GetDefaultContextParams timed out"));
- ASSERT_EQUALS(reqGetDefaultContextParams.Int(), KErrNone, _L("RPacketService::GetDefaultContextParams returned with an error"));
-
- DEBUG_PRINTF1(_L("Comparing default Context Params"));
- TCmpRPacketContextTContextConfigGPRS contextParamsComparator(defaultConfig, getConfig, *this);
- ASSERT_TRUE(contextParamsComparator.IsEqual(ELogError), _L("RPacketService::GetDefaultContextParams did not return set parameters"));
-
- // Set invalid context parameters using RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfigGPRS
- RPacketContext::TContextConfigGPRS invalidConfig;
- invalidConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
- invalidConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
- _LIT(KFaultyAPN, "Incorrect APN name");
- invalidConfig.iAccessPointName.Copy(KFaultyAPN);
- TPckg<RPacketContext::TContextConfigGPRS> invalidConfigPkgGprs(invalidConfig);
-
- TExtEtelRequestStatus reqSetDefaultContextParams(packetService, EPacketSetDefaultContextParams);
- CleanupStack::PushL(reqSetDefaultContextParams);
- packetService.SetDefaultContextParams(reqSetDefaultContextParams, invalidConfigPkgGprs);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqSetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::SetDefaultContextParams timed out"));
- ASSERT_EQUALS(reqSetDefaultContextParams.Int(), KErrNone, _L("RPacketService::SetDefaultContextParams returned with an error"));
-
-
- // Open a new context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for primary context status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- //$CTSYProblem
- //SetConfig is required before activation of the context.
- //If SetConfig is not called, Activate returns KErrTimedOut(-33).
- //SetDefaultContextParams sends context parameters common to all contexts to adaptation/LTSY layer.
- //However,for some reason, adaptation does not use these params when Activate is called
- //and requires setting of context specific parameters with SetConfig
-
- TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- primaryPacketContext.SetConfig(setConfigStatus, defaultConfigPkgGprs);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
- _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
- _L("RPacketContext::SetConfig returned with error status."));
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
- _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::GetConfig returns same config as the default returned by RPacketService::GetDefaultContextParams
- TExtEtelRequestStatus contextConfigStatus(primaryPacketContext, EPacketContextGetConfig);
- CleanupStack::PushL(contextConfigStatus);
-
- RPacketContext::TContextConfigGPRS getConfigGprs2;
- TPckg<RPacketContext::TContextConfigGPRS> getConfigPkgGprs2(getConfigGprs2);
- primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgGprs2);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."));
-
- TCmpRPacketContextTContextConfigGPRS contextParamsComparatorNumberTwo(defaultConfig, getConfigGprs2, *this);
- ASSERT_TRUE(contextParamsComparatorNumberTwo.IsEqual(ELogError), _L("RPacketService::GetConfig did not return same config as the default returned by RPacketService::GetDefaultContextParams"));
-
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // reqGetDummyContextParams
- // getNetworkStatus
- // regSetInitParams
- // reqGetDefaultContextParams
- // reqSetDefaultContextParams
- // notifyServiceStChStatus
- // notifyContextStChStatus
- // setConfigStatus
- // contextActivateStatus
- // contextConfigStatus
- CleanupStack::PopAndDestroy(10,&reqGetDummyContextParams);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0029::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0029");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0030::CCTSYIntegrationTestPacketContext0030(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0030::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0030::~CCTSYIntegrationTestPacketContext0030()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0030::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0030
- * @SYMFssID BA/CTSY/PKTC-0030
- * @SYMTestCaseDesc Deactivate NIF when there is only one NIF.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::GetStatus, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateContexts, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF
- * @SYMTestExpectedResults Pass - All contexts in NIF deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify primary and secondary contexts in NIF are deactivated when primary context name specified.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is an active primary and secondary context.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- // Check if we are on a simulated network
- CHECK_EQUALS_L( iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL( phone ), KErrNone,
- _L("Network is unavailable") );
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
- TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatus);
- TName contextId;
- packetService.NotifyContextAdded(notifyContextStatus, contextId);
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
- TName secondaryContextId;
- packetService.NotifyContextAdded(notifyContextStatus, secondaryContextId);
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
- CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext),_L("Can't activate the secondary context"));
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
- TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(enumerateNifsStatus);
- TInt count=-1;
- packetService.EnumerateNifs(enumerateNifsStatus,count);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeMedium), KErrNone,
- _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(enumerateNifsStatus.Int(), KErrNone,
- _L("RPacketService::EnumerateNifs failed."));
- ASSERT_EQUALS(count,1,_L("RPacketService::EnumerateNifs did not return correct number of NIFs."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- TExtEtelRequestStatus getNifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(getNifInfoStatus);
- RPacketService::TNifInfoV2 nifInfo;
- RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
- packetService.GetNifInfo(getNifInfoStatus,0,nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(getNifInfoStatus.Int(), KErrNone,
- _L("RPacketService::GetNifInfo failed."));
- ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo invlaid context name"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
- ASSERT_EQUALS(nifInfo.iNumberOfContexts,2,_L("RPacketService::GetNifInfo wrong number of contexts"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfo.iNifStatus,RPacketContext::EStatusActive,_L("RPacketService::GetNifInfo wrong status"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfo.iPdpAddress.Length()>0,_L("RPacketService::GetNifInfo invlaid PDP address"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
- ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext,_L("RPacketService::GetNifInfo wrong type"));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns KErrArgument
- packetService.GetNifInfo(getNifInfoStatus,1,nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(getNifInfoStatus.Int(), KErrArgument,
- _L("RPacketService::GetNifInfo did not failed."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
- TExtEtelRequestStatus enumContextsInfStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(enumContextsInfStatus);
- count=-1;
- packetService.EnumerateContextsInNif(enumContextsInfStatus,contextId,count);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsInfStatus, ETimeMedium), KErrNone,
- _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(enumContextsInfStatus.Int(), KErrNone,
- _L("RPacketService::EnumerateContextsInNif failed."));
- ASSERT_EQUALS(count,2,_L("RPacketService::EnumerateContextsInNif did not return correct number of NIFs."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns aContextName = name of primary context
- TBuf<200> contextName;
- TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(getContextNameInNifStatus);
- packetService.GetContextNameInNif(getContextNameInNifStatus,contextId,0,contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone,
- _L("RPacketService::GetContextNameInNif failed."));
- ASSERT_EQUALS_DES16(contextName,contextId,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns aContextName = name of secondary context
- packetService.GetContextNameInNif(getContextNameInNifStatus,contextId,1,contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone,
- _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone,
- _L("RPacketService::GetContextNameInNif failed."));
- ASSERT_EQUALS_DES16(contextName,secondaryContextId,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for secondary context's status change
- TExtEtelRequestStatus secondaryNotifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(secondaryNotifyContextStChStatus);
- RPacketContext::TContextStatus secondaryPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(secondaryNotifyContextStChStatus, secondaryPacketContextStatus);
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of primary context
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10047);
- ASSERT_EQUALS(1,0, _L("Test leaving because it will cause TSY crash, remove this when defect is fixed"));
- TEST_CHECK_POINT_L(_L("test leaving..."));
- TExtEtelRequestStatus deactivateNifStatus(packetService, EPacketDeactivateNIF);
- CleanupStack::PushL(deactivateNifStatus);
- packetService.DeactivateNIF(deactivateNifStatus,contextId);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNifStatus, ETimeMedium), KErrNone,
- _L("RPacketService::DeactivateNIF timed out."));
- ASSERT_EQUALS(deactivateNifStatus.Int(), KErrNone,
- _L("RPacketService::DeactivateNIF failed."));
-
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for primary context completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for primary context returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- secondaryNotifyContextStChStatus,
- secondaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // -> EStatusInactive
- secondaryPacketContext.NotifyStatusChange(secondaryNotifyContextStChStatus, secondaryPacketContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- secondaryNotifyContextStChStatus,
- secondaryPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusAttached;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusAttached
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
- StartCleanup();
-
- // Pop:
- // deactivateNifStatus
- // notifyServiceStChStatus
- // secondaryNotifyContextStChStatus
- // notifyContextStChStatus
- // getContextNameInNifStatus
- // enumContextsInfStatus
- // getNifInfoStatus
- // enumerateNifsStatus
- // notifyContextStatus
- CleanupStack::PopAndDestroy(9,¬ifyContextStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0030::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0030");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0031::CCTSYIntegrationTestPacketContext0031(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0031::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0031::~CCTSYIntegrationTestPacketContext0031()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0031::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0031
- * @SYMFssID BA/CTSY/PKTC-0031
- * @SYMTestCaseDesc Deactivate NIF when there is only one NIF.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::GetStatus, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateContexts, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF
- * @SYMTestExpectedResults Pass - All contexts in NIF deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify primary and secondary contexts in NIF are deactivated when secondary context name specified.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- //Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // === Ensure there is an active primary and secondary context. ===
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Open a primary PDP context
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Open a secondary PDP context
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
- // Activate the secondary context 1.
- ActivateSecondaryPacketContextL(secondaryPacketContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Get context info
- TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
- CleanupStack::PushL(getContextInfo);
- RPacketService::TContextInfo contextInfo;
- TInt index = 0;
- packetService.GetContextInfo(getContextInfo, index, contextInfo);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
- ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
- index = 1;
- RPacketService::TContextInfo contextInfo2;
- packetService.GetContextInfo(getContextInfo, index, contextInfo2);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
- ASSERT_TRUE(contextInfo2.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
- TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(nifsStatus);
- TInt nifCount = 0;
- const TInt wantedCount = 1;
- packetService.EnumerateNifs(nifsStatus, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned with an error."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(nifInfoStatus);
- TInt nifInfoCount = 0;
- RPacketService::TNifInfoV2 nifInfoV2;
- RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
- ASSERT_TRUE(nifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with valid name returned with an error"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
- ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo returned with incorrect number of contexts"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo returned with incorrect NIF status"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
- // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
- // Changed test procedure to check for EInternalContext instead of EExternalContext
- ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type."));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns KErrArgument
- nifInfoCount = 1;
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrArgument, _L("RPacketService::GetNifInfo did not failed."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
- TExtEtelRequestStatus reqContextNifStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(reqContextNifStatus);
- packetService.EnumerateContextsInNif(reqContextNifStatus, contextInfo.iName, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqContextNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(nifCount, 2, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected"));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns aContextName = name of primary context
- TName contextName;
- TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(getContextNameInNifStatus);
- packetService.GetContextNameInNif(getContextNameInNifStatus, contextInfo.iName, 0, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned with an error."));
- ASSERT_EQUALS_DES16(contextName,contextInfo.iName,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns aContextName = name of secondary context
- packetService.GetContextNameInNif(getContextNameInNifStatus,contextInfo.iName, 1, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned with an error."));
- ASSERT_EQUALS_DES16(contextName, contextInfo2.iName,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // Post notification for primary context status change
- TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Post notification for secondary context status change
- TExtEtelRequestStatus notifySecondaryContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecondaryContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifySecondaryContextStChStatus, secPacketContextStatus);
-
- // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of secondary context
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10047);
- ASSERT_EQUALS(1,0, _L("Test leaving because it will cause TSY crash, remove this when defect is fixed"));
- TEST_CHECK_POINT_L(_L("test leaving..."));
- TExtEtelRequestStatus deactivateNifStatus(packetService, EPacketDeactivateNIF);
- CleanupStack::PushL(deactivateNifStatus);
- packetService.DeactivateNIF(deactivateNifStatus,contextInfo2.iName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNifStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
- ASSERT_EQUALS(deactivateNifStatus.Int(), KErrNone, _L("RPacketService::DeactivateNIF returned with an error."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for primary context completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for primary context returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedSecondaryPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecondaryContextStChStatus,
- secPacketContextStatus,
- expectedSecondaryPacketContextStatus,
- KErrNone);
-
- secondaryPacketContext.NotifyStatusChange(notifySecondaryContextStChStatus, secPacketContextStatus);
- expectedSecondaryPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecondaryContextStChStatus,
- secPacketContextStatus,
- expectedSecondaryPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::NotifyStatusChange completes with EStatusAttached
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusAttached;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusAttached
- ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
- ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop:
- // notifyServiceStChStatus
- // notifyContextStChStatus
- // notifySecondaryContextStChStatus
- // getContextInfo
- // nifsStatus
- // nifInfoStatus
- // reqContextNifStatus
- // getContextNameInNifStatus
- // deactivateNifStatus
- CleanupStack::PopAndDestroy(9,¬ifyServiceStChStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0031::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0031");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0032::CCTSYIntegrationTestPacketContext0032(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0032::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0032::~CCTSYIntegrationTestPacketContext0032()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0032::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0032
- * @SYMFssID BA/CTSY/PKTC-0032
- * @SYMTestCaseDesc Deactivate NIF when there is more than one NIF.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::EnumerateNifs, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketContext::NotifyStatusChange, RPacketService::DeactivateNIF, RPacketService::GetStatus, RPacketService::EnumerateContextsInNif
- * @SYMTestExpectedResults Pass - All contexts in NIF deactivated. Other contexts unaffected.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify primary and secondary contexts in NIF are deactivated when primary context name specified
-
-Verify contexts in another NIF are not affected.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // === Ensure there is an 2 primary contexts active. Each of these must have an active secondary context opened from it. (Primary 1 and secondary 1 in one NIF and primary 2 and secondary 2 in the second NIF.) ===
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- //Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextPrimary1Status(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextPrimary1Status);
-
- // Open a primary PDP context 1
- TName primaryContextId1;
- packetService.NotifyContextAdded(notifyContextPrimary1Status, primaryContextId1);
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextPrimary1Status, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextPrimary1Status.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextPrimary2Status(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextPrimary2Status);
-
- // Open a primary PDP context 2
- TName primaryContextId2;
- packetService.NotifyContextAdded(notifyContextPrimary2Status, primaryContextId2);
- RPacketContext& primaryPacketContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext2);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextPrimary2Status, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextPrimary2Status.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
-
- // Activate primary context 1.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
- // Activate primary context 2.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext2, 2);
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextSecondary1Status(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextSecondary1Status);
-
- // Open a secondary PDP context 1.
- TName secondaryContextId1;
- packetService.NotifyContextAdded(notifyContextSecondary1Status, secondaryContextId1);
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextSecondary1Status, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextSecondary1Status.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
-
- // Post notification for the RPacketService::NotifyContextAdded
- TExtEtelRequestStatus notifyContextSecondary2Status(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextSecondary2Status);
-
- // Open a secondary PDP context 2.
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
-
- // Activate the secondary context 1.
- CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext, KPrimaryPacketContext1, KSecondaryPacketContext1),_L("Can't activate the secondary context"));
-
- // Activate the secondary context 2.
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Check RPacketService::EnumerateNifs returns aCount = 2
- TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(nifsStatus);
- TInt nifCount = 0;
- const TInt wantedCount = 2;
- packetService.EnumerateNifs(nifsStatus, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned with an error."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
- // Check RPacketService::GetNifInfo with aCount = 1 returns valid name in iContextName
- // Check RPacketService::GetNifInfo with aCount = 1 returns iNumberOfContexts = 2
- // Check RPacketService::GetNifInfo with aCount = 1 returns iNifStatus = EStatusActive
- // Check RPacketService::GetNifInfo with aCount = 1 returns valid address in iPdpAddress
- // Check RPacketService::GetNifInfo with aCount = 1 returns EExternalContext
- // Check RPacketService::GetNifInfo with aCount = 2 returns KErrArgument
- TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(nifInfoStatus);
- TInt nifInfoCount = 0;
- RPacketService::TNifInfoV2 nifInfoV2;
- RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
- ASSERT_TRUE(nifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with aCount = 0 returned with invalid iContextName"));
- ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
- ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo with iNifStatus returned with an error"));
- ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
- ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo with iContextType returned with an error"));
-
- nifInfoCount = 1;
- RPacketService::TNifInfoV2 secondNifInfoV2;
- RPacketService::TNifInfoV2Pckg secondNifInfoV2V2Pkg(secondNifInfoV2);
- packetService.GetNifInfo(nifInfoStatus,nifInfoCount,secondNifInfoV2V2Pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with error."));
- ASSERT_TRUE(secondNifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with aCount = 0 returned with invalid iContextName"));
- ASSERT_EQUALS(secondNifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
- ASSERT_EQUALS(secondNifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo with iNifStatus returned with an error"));
- ASSERT_TRUE(secondNifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
- ASSERT_EQUALS(secondNifInfoV2.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo with iContextType returned with an error"));
-
- nifInfoCount = 2;
- packetService.GetNifInfo(nifInfoStatus,nifInfoCount,nifInfoV2Pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrArgument, _L("RPacketService::GetNifInfo did not returned with error."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 1 returns aCount = 2
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 2 returns aCount = 2
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 1 returns aCount = 2
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 2 returns aCount = 2
- TInt wantedNifCount = 2;
- TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(enumerateContextsInNifStatus);
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId1, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected."));
-
- nifCount = 0;
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId2, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected."));
-
- nifCount = 0;
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, secondaryContextId1, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected."));
-
- nifCount = 0;
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 0 returns aContextName = name of primary context 1
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 1 returns aContextName = name of secondary context 1
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 0 returns aContextName = name of primary context 1
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 1 returns aContextName = name of secondary context 1
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 0 returns aContextName = name of primary context 2
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 1 returns aContextName = name of secondary context 2
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 0 returns aContextName = name of primary context 2
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 1 returns aContextName = name of secondary context 2
- TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(contextNameNifsStatus);
- TInt index = 0;
- TName returnedContextName;
- packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId1, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
- ASSERT_EQUALS_DES16(returnedContextName, primaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- index = 1;
- packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId1, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
- ASSERT_EQUALS_DES16(returnedContextName, secondaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- index = 0;
- packetService.GetContextNameInNif(contextNameNifsStatus, secondaryContextId1, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
- ASSERT_EQUALS_DES16(returnedContextName, primaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- index = 1;
- packetService.GetContextNameInNif(contextNameNifsStatus, secondaryContextId1, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
- ASSERT_EQUALS_DES16(returnedContextName, secondaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- index = 0;
- packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId2, index, returnedContextName );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
- ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
- ASSERT_EQUALS_DES16(returnedContextName, primaryContextId2, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
-
- index = 1;
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
-
- index = 0;
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
-
- index = 1;
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
-
- // Post notifications for primary & secondary context status changes
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
- TExtEtelRequestStatus notifyprimaryContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyprimaryContextStChStatus);
- RPacketContext::TContextStatus primaryPacketContextStatus;
- primaryPacketContext.NotifyStatusChange(notifyprimaryContextStChStatus, primaryPacketContextStatus);
-
- TExtEtelRequestStatus notifyprimary2ContextStChStatus(primaryPacketContext2, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyprimary2ContextStChStatus);
- RPacketContext::TContextStatus primaryPacketContext2Status;
- primaryPacketContext2.NotifyStatusChange(notifyprimary2ContextStChStatus, primaryPacketContext2Status);
-
- TExtEtelRequestStatus notifySecondaryContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecondaryContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifySecondaryContextStChStatus, secPacketContextStatus);
-
-
- // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of primary 2
- TExtEtelRequestStatus deactivateNifStatus(packetService, EPacketDeactivateNIF);
- CleanupStack::PushL(deactivateNifStatus);
- packetService.DeactivateNIF(deactivateNifStatus,primaryContextId2);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNifStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
- ASSERT_EQUALS(deactivateNifStatus.Int(), KErrNone, _L("RPacketService::DeactivateNIF returned with error."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for primary 2 completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext2,
- notifyprimary2ContextStChStatus,
- primaryPacketContext2Status,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext2.NotifyStatusChange(notifyprimary2ContextStChStatus, primaryPacketContext2Status);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext2,
- notifyprimary2ContextStChStatus,
- primaryPacketContext2Status,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for primary 2 returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext2.GetStatus(primaryPacketContext2Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(primaryPacketContext2Status, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange for secondary 2 completes with EStatusDeactivating -> EStatusInactive
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
-
- // Check RPacketContext::GetStatus for secondary 2 returns EStatusInactive
- // Check RPacketContext::GetStatus for primary 1 returns EStatusActive
- // Check RPacketContext::GetStatus for secondary 1 returns EStatusActive
- // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
- ASSERT_EQUALS(primaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(primaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop:
- // deactivateNifStatus
- // notifySecondaryContextStChStatus
- // notifyprimary2ContextStChStatus
- // notifyprimaryContextStChStatus
- // contextNameNifsStatus
- // enumerateContextsInNifStatus
- // nifInfoStatus
- // nifsStatus
- // notifyContextSecondary2Status
- // notifyContextSecondary1Status
- // notifyContextPrimary2Status
- // notifyContextPrimary1Status
- CleanupStack::PopAndDestroy(12,¬ifyContextPrimary1Status);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0032::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0032");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0033::CCTSYIntegrationTestPacketContext0033(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0033::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0033::~CCTSYIntegrationTestPacketContext0033()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0033::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0033
- * @SYMFssID BA/CTSY/PKTC-0033
- * @SYMTestCaseDesc Deactivate NIF specifying unknown context name.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::DeactivateNIF, RPacketContext::GetStatus
- * @SYMTestExpectedResults Pass - No NIFs deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context status unaffected.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is an active primary context.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(KMainServer, KMainPhone, KMainPacketService, KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckServiceStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckServiceStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus did not return EStatusActive as expected."));
-
- // Check RPacketContext::GetStatus returns EStatusActive
- RPacketContext::TContextStatus pckContextStatus;
- ASSERT_EQUALS(primaryPacketContext.GetStatus(pckContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(pckContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return EStatusActive as expected."));
-
- // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = unknown context name
- TExtEtelRequestStatus deactiveNIFStatus(packetService, EPacketDeactivateNIF);
- CleanupStack::PushL(deactiveNIFStatus);
- RPacketService::TContextInfo unknownContextInfo;
- unknownContextInfo.iName = _L("unknown123abc");
- packetService.DeactivateNIF(deactiveNIFStatus, unknownContextInfo.iName);
-
- // Check error is returned.
- ASSERT_EQUALS(WaitForRequestWithTimeOut(deactiveNIFStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
- ASSERT_TRUE(deactiveNIFStatus.Int() != KErrNone, _L("RPacketService::DeactivateNIF did not return error as expected."));
-
- // Check RPacketService::GetStatus returns EStatusActive
- ASSERT_EQUALS(packetService.GetStatus(pckServiceStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus did not return EStatusActive as expected."));
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(primaryPacketContext.GetStatus(pckContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(pckContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return EStatusActive as expected."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // deactiveNIFStatus
- CleanupStack::PopAndDestroy(1, &deactiveNIFStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0033::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0033");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0034::CCTSYIntegrationTestPacketContext0034(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0034::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0034::~CCTSYIntegrationTestPacketContext0034()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0034::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0034
- * @SYMFssID BA/CTSY/PKTC-0034
- * @SYMTestCaseDesc Deactivate NIF when there is more than one NIF.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::NotifyAttachModeChange, RPacketService::GetAttachMode, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateContexts, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::DeactivateNIF, RPacketService::GetNifInfo
- * @SYMTestExpectedResults Pass - All contexts in NIF deactivated. Other contexts unaffected.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify primary and secondary contexts in NIF are deactivated when secondary context name specified
-
-Verify contexts in another NIF are not affected.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- //Check if we are on a simulated network
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error."));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure there is an 2 primary contexts active. Each of these must have an active secondary context opened from it. (Primary 1 and secondary 1 in one NIF and primary 2 and secondary 2 in the second NIF.)
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- TName primaryContextId1;
- TName primaryContextId2;
-
- TExtEtelRequestStatus notifyContextStatusPrimary1(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatusPrimary1);
-
- packetService.NotifyContextAdded(notifyContextStatusPrimary1, primaryContextId1);
- RPacketContext& primaryPacketContext1 = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusPrimary1, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextStatusPrimary1.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- CHECK_TRUE_L(primaryContextId1.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
-
- TExtEtelRequestStatus notifyContextStatusPrimary2(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatusPrimary2);
-
- packetService.NotifyContextAdded(notifyContextStatusPrimary2, primaryContextId2);
- RPacketContext& primaryPacketContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext2);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusPrimary2, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextStatusPrimary2.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- CHECK_TRUE_L(primaryContextId2.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
-
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext2, 2);
-
- TName secondaryContextId1;
- TName secondaryContextId2;
- TExtEtelRequestStatus notifyContextStatusSecondary1(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatusSecondary1);
-
- packetService.NotifyContextAdded(notifyContextStatusSecondary1, secondaryContextId1);
- RPacketContext& secondaryPacketContext1 = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusSecondary1, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextStatusSecondary1.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- CHECK_TRUE_L(secondaryContextId1.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
-
- TExtEtelRequestStatus notifyContextStatusSecondary2(packetService, EPacketNotifyContextAdded);
- CleanupStack::PushL(notifyContextStatusSecondary2);
-
- packetService.NotifyContextAdded(notifyContextStatusSecondary2, secondaryContextId2);
- // $CTSYProblem This test cannot be run since LTSY does not allow us to initialise 4 packets contexts
- CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY does not allow us to initialise 4 packets contexts"));
- RPacketContext& secondaryPacketContext2 = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext2,
- KSecondaryPacketContext2);
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusSecondary2, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
- CHECK_EQUALS_L(notifyContextStatusSecondary2.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
- CHECK_TRUE_L(secondaryContextId2.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
-
- CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext1), _L("Can't activate the secondary context"));
- CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext2), _L("Can't activate the secondary context"));
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Check RPacketService::EnumerateNifs returns aCount = 2
- TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
- CleanupStack::PushL(nifsStatus);
- TInt nifCount = 0;
- TInt wantedNifCount = 2;
- packetService.EnumerateNifs(nifsStatus, nifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
- ASSERT_EQUALS(nifsStatus.Int(), KErrNone, _L("RPacketService::EnumerateNifs returned with error."));
- ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- TInt nifInfoCount = 0;
- TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(nifInfoStatus);
- RPacketService::TNifInfoV2 nifInfo;
- RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with error."));
- ASSERT_EQUALS_DES16(nifInfo.iContextName, primaryContextId1, _L("RPacketService::GetNifInfo returned with invalid context name."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
- TInt wantedNumberOfContexts = 2;
- ASSERT_EQUALS(nifInfo.iNumberOfContexts, wantedNumberOfContexts, _L("RPacketService::GetNifInfo returned wrong number of contexts."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfo.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo did not return EStatusActive as expected."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfo.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address."));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
- // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
- // Changed test procedure to check for EInternalContext instead of EExternalContext
- ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type."));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns valid name in iContextName
- nifInfoCount = 1;
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with error."));
- ASSERT_EQUALS_DES16(nifInfo.iContextName, primaryContextId2, _L("RPacketService::GetNifInfo returned with invalid context name."));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns iNumberOfContexts = 2
- ASSERT_EQUALS(nifInfo.iNumberOfContexts,2,_L("RPacketService::GetNifInfo wrong number of contexts."));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns iNifStatus = EStatusActive
- ASSERT_EQUALS(nifInfo.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo did not return EStatusActive as expected."));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns valid address in iPdpAddress
- ASSERT_TRUE(nifInfo.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address."));
-
- // Check RPacketService::GetNifInfo with aCount = 1 returns EExternalContext
- // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
- // Changed test procedure to check for EInternalContext instead of EExternalContext
- ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type."));
-
- // Check RPacketService::GetNifInfo with aCount = 2 returns KErrArgument
- nifInfoCount = 2;
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrArgument, _L("RPacketService::GetNifInfo did not returned an error."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 1 returns aCount = 2
- TInt wantedCount = 2;
- TInt contextsInNifCount = 0;
- TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
- CleanupStack::PushL(enumerateContextsInNifStatus);
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId1, contextsInNifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
- ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 2 returns aCount = 2
- contextsInNifCount = 0;
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId2, contextsInNifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
- ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 1 returns aCount = 2
- contextsInNifCount = 0;
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, secondaryContextId1, contextsInNifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
- ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
-
- // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 2 returns aCount = 2
- contextsInNifCount = 0;
- packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, secondaryContextId2, contextsInNifCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
- ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
- ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 0 returns aContextName = name of primary context 1
- const TInt index0 = 0;
- const TInt index1 = 1;
- TName contextName;
- TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
- CleanupStack::PushL(getContextNameInNifStatus);
- packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId1, index0, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, primaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 1 returns aContextName = name of secondary context 1
- packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId1, index1, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, secondaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 0 returns aContextName = name of primary context 1
- packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId1, index0, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, primaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 1 returns aContextName = name of secondary context 1
- packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId1, index1, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, secondaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 0 returns aContextName = name of primary context 2
- packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId2, index0, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, primaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 1 returns aContextName = name of secondary context 2
- packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId2, index1, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, secondaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 0 returns aContextName = name of primary context 2
- packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId2, index0, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, primaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 1 returns aContextName = name of secondary context 2
- packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId2, index1, contextName);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
- ASSERT_EQUALS_DES16(contextName, secondaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
-
- // Post notifications for primary2 and secondary2 context's status change
- TExtEtelRequestStatus notifyPrimaryContext2StChStatus(primaryPacketContext2, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyPrimaryContext2StChStatus);
- RPacketContext::TContextStatus primaryPacketContext2Status;
- primaryPacketContext2.NotifyStatusChange(notifyPrimaryContext2StChStatus, primaryPacketContext2Status);
-
- TExtEtelRequestStatus notifySecondaryContext2StChStatus(secondaryPacketContext2, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecondaryContext2StChStatus);
- RPacketContext::TContextStatus secondaryPacketContext2Status;
- secondaryPacketContext2.NotifyStatusChange(notifySecondaryContext2StChStatus, secondaryPacketContext2Status);
-
- // Post notifications for primary1 context status change
- TExtEtelRequestStatus notifyPrimaryContext1StChStatus(primaryPacketContext1, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyPrimaryContext1StChStatus);
- RPacketContext::TContextStatus primaryPacketContext1Status;
- primaryPacketContext1.NotifyStatusChange(notifyPrimaryContext1StChStatus, primaryPacketContext1Status);
-
- // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of secondary 2
- TExtEtelRequestStatus deactivateNIFStatus(packetService, EPacketDeactivateNIF);
- CleanupStack::PushL(deactivateNIFStatus);
- packetService.DeactivateNIF(deactivateNIFStatus, secondaryContextId2);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNIFStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
- ASSERT_EQUALS(deactivateNIFStatus.Int(), KErrNone, _L("RPacketService::DeactivateNIF returned with error.."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for primary 2 completes with EStatusDeactivating -> EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext2,
- notifyPrimaryContext2StChStatus,
- primaryPacketContext2Status,
- expectedPacketContextStatus,
- KErrNone);
-
- primaryPacketContext2.NotifyStatusChange(notifyPrimaryContext2StChStatus, primaryPacketContext2Status);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- primaryPacketContext2,
- notifyPrimaryContext2StChStatus,
- primaryPacketContext2Status,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for primary 2 returns EStatusInactive
- ASSERT_EQUALS(primaryPacketContext2.GetStatus(primaryPacketContext2Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(primaryPacketContext2Status, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::NotifyStatusChange for secondary 2 completes with EStatusDeactivating -> EStatusInactive
- expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifySecondaryContext2StChStatus,
- secondaryPacketContext2Status,
- expectedPacketContextStatus,
- KErrNone);
-
- secondaryPacketContext2.NotifyStatusChange(notifySecondaryContext2StChStatus, secondaryPacketContext2Status);
- expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext2,
- notifySecondaryContext2StChStatus,
- secondaryPacketContext2Status,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for secondary 2 returns EStatusInactive
- ASSERT_EQUALS(secondaryPacketContext2.GetStatus(secondaryPacketContext2Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secondaryPacketContext2Status, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::GetStatus for primary 1 returns EStatusActive
- ASSERT_EQUALS(primaryPacketContext1.GetStatus(primaryPacketContext1Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(primaryPacketContext1Status, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::GetStatus for secondary 1 returns EStatusActive
- RPacketContext::TContextStatus secondaryPacketContext1Status;
- ASSERT_EQUALS(secondaryPacketContext1.GetStatus(secondaryPacketContext1Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secondaryPacketContext1Status, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // pop
- // notifyContextStatusPrimary1
- // notifyContextStatusPrimary1
- // notifyContextStatusSecondary1
- // notifyContextStatusSecondary2
- // nifsStatus
- // nifInfoStatus
- // enumerateContextsInNifStatus
- // getContextNameInNifStatus
- // notifyPrimaryContext1StChStatus
- // notifySecondaryContext2StChStatus
- // notifyPrimaryContext1StChStatus
- // deactivateNIFStatus
- CleanupStack::PopAndDestroy(12,¬ifyContextStatusPrimary1);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0034::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0034");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0035::CCTSYIntegrationTestPacketContext0035(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0035::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0035::~CCTSYIntegrationTestPacketContext0035()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0035::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0035
- * @SYMFssID BA/CTSY/PKTC-0035
- * @SYMTestCaseDesc Enumerate NIFs.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketService::EnumerateNifs, RPacketContext::NotifyStatusChange, RPacketContext::SetConfig, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Number of NIFs correct.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify number of NIFs and NIF info correct as contexts are activated. Verify that for each primary context that is activated, number of NIFs increases by 1, if a secondary context is activated number of NIFs does not change.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure packet service is attached,
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new primary context (context 1).
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // Set a valid context config using RPacketContext::SetConfig
-
- // Activate packet context with RPacketContext::Activate
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // Check RPacketService::EnumerateNifs returns aCount = 1
-
- // Open a new primary context (context 2)
-
- // Add a TPacketFilterV3 packet filter to context 2 using RPacketContext::AddPacketFilter
-
- // Open a new QoS from context 2
-
- // Get R5 QoS profile capabilities with RPacketQoS::GetProfileCapabilities
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSR5Requested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // Set a valid context config for context 2 using RPacketContext::SetConfig
-
- // Activate packet context for context 2 with RPacketContext::Activate
-
- // Check RPacketContext::NotifyStatusChange for context 2 completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for context 2 returns EStatusActive
-
- // Check RPacketService::EnumerateNifs returns aCount = 2
-
- // Open a new secondary context from context 1 (this is context 3)
-
- // Set a valid context config for context 3 using RPacketContext::SetConfig
-
- // Activate packet context for context 3 with RPacketContext::Activate
-
- // Check RPacketContext::NotifyStatusChange for context 3 completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for context 3 returns EStatusActive
-
- // Check RPacketService::EnumerateNifs returns aCount = 2
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0035::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0035");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0036::CCTSYIntegrationTestPacketContext0036(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0036::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0036::~CCTSYIntegrationTestPacketContext0036()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0036::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0036
- * @SYMFssID BA/CTSY/PKTC-0036
- * @SYMTestCaseDesc Activate a primary context with packet filter and QoS set up.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketQoS::OpenNewQoS, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileParameters, RPacketQoS::GetProfileCapabilities, RPacketContext::GetProfileName
- * @SYMTestExpectedResults Pass - Packet filter added to context and context activated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify packet filter info and QoS profile info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to the packet service
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new primary context
-
- // Add a TPacketFilterV2 packet filter to the primary context using RPacketContext::AddPacketFilter
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns same packet filter info added to the context
-
- // Open a new QoS from the primary context
-
- // Get profile capabilities with RPacketCotnext::GetProfileCapabilities with aProfileCaps as a packaged RPacketContext::TQoSCapsGPRS
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSR5Requested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
-
- // Set a valid context config using RPacketContext::SetConfig
-
- // Activate packet context with RPacketContext::Activate
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns same packet filter info added to the context
-
- // Repeat test with RPacketContext::TQoSCapsR99_R4 and RPacketContext::TQoSCapsR5 instead of RPacketContext::TQoSCapsGPRS
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0036::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0036");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0037::CCTSYIntegrationTestPacketContext0037(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0037::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0037::~CCTSYIntegrationTestPacketContext0037()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0037::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0037
- * @SYMFssID BA/CTSY/PKTC-0037
- * @SYMTestCaseDesc Modify a primary context with packet filter and QoS.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::ModifyActiveContext, RPacketContext::GetProfileParameters, RPacketContext::GetProfileName, RPacketContext::RemovePacketFilter, RPacketContext::EnumeratePacketFilters, RPacketQoS::SetProfileParameters, RPacketQoS::OpenNewQoS, RPacketContext::AddPacketFilter
- * @SYMTestExpectedResults Pass - Context is modified.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify packet filter info and QoS profile info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is an active primary context.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Add a TPacketFilterV2packet filter to the primary context using RPacketContext::AddPacketFilter
-
- // Open a new QoS from the primary context
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
-
- // Modify the active context with RPacketContext::ModifyActiveContext
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns same packet filter info added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns KErrArgument
-
- // Check RPacketContext::GetProfileParameters returns TQoSGPRSNegotiated parameters.
-
- // Remove packet filter with RPacketContext::RemovePacketFilter.
-
- // Modify the active context with RPacketContext::ModifyActiveContext
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns KErrArgument
-
- // Repeat test with TQoSR99_R4Requested and TQoSR5Requested types in RPacketQoS::SetProfileParameters and checking for TQoSR99_R4Negotiated and TQoSR5Negotiated in RPacketContext::GetProfileParameters respectively.
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0037::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0037");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0038::CCTSYIntegrationTestPacketContext0038(CEtelSessionMgr& aEtelSessionMgr, const TDesC& aName)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(aName);
- if(aName.Find(_L("GRPS")) != KErrNotFound)
- {
- iTestType = EQoSGPRS;
- }
- else if(aName.Find(_L("R4")) != KErrNotFound)
- {
- iTestType = EQoSR4;
- }
- else if(aName.Find(_L("R5")) != KErrNotFound)
- {
- iTestType = EQoSR5;
- }
- }
-
-CCTSYIntegrationTestPacketContext0038::~CCTSYIntegrationTestPacketContext0038()
-/**
- * Destructor.
- */
- {
- }
-
-
-template<class PARAMETERS, class CAPABILITIES, class NEGOTIATED>
- TBool CCTSYIntegrationTestPacketContext0038::ActiveContextL(RPacketContext &aPacketContext,
- RPacketQoS &aPacketQoS,
- PARAMETERS &aParameters,
- CAPABILITIES &aCapabilities,
- NEGOTIATED &aNegotiated)
-
-/**
- * Activate a secondary context. This is actually a single context activation method,
- * the test activate the context three times, each with diffrent type of parameters, capabilities and negotiation objects
- *
- * @param aPacketContext Reference to the secondary context session.
- * @param aPacketQoS Reference to the packet Quality of Service session.
- * @param aParameters Reference to the QoS parameters. Must be TQoSGPRSRequested, TQoSR99_R4Requested or TQoSR5Requested.
- * @param aCapabilities Reference to the QoS capabilities. Must be a TQoSCapsGPRS, TQoSCapsR99_R4 or TQoSCapsR5 respectivley.
- * @param aNegotiated Reference to the QoS nagotiated. Must be a TQoSGPRSNegotiated, t99_r4Negotiated or r5Negotiated respectivley.
- *
- * @return ETrue if the activation went well
- */
- {
- TBool ret = ETrue;
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,1), KErrNone,
- _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Get profile capabilities with RPacketCotnext::GetProfileCapabilities with aProfileCaps as a packaged CAPABILITIES
- TExtEtelRequestStatus getProfileCapStatus(aPacketQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- TPckg<CAPABILITIES> qosCapsPckg(aCapabilities);
- aPacketQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities timed out."));
- LOCAL_ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and PARAMETERS with parameters within range returned by RPacketQoS::GetProfileCapabilities
- TPckg<PARAMETERS> qosReqPckg(aParameters);
- FillParametersFromCapabilities(aParameters,aCapabilities);
- TExtEtelRequestStatus setProfileParamStatus(aPacketQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- aPacketQoS.SetProfileParameters(setProfileParamStatus, qosReqPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::SetProfileParameters timed out."));
- LOCAL_ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
- _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
- TName profileName;
- LOCAL_ASSERT_EQUALS(aPacketContext.GetProfileName(profileName),KErrNone,
- _L("RPacketContext::GetProfileName returned with error status."));
- LOCAL_ASSERT_TRUE(profileName.Length()>0,
- _L("RPacketContext::GetProfileName name length is 0."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(aPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate the secondary context.
- TExtEtelRequestStatus contextActivateStatus(aPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- aPacketContext.Activate(contextActivateStatus);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::Activate timed out."));
- LOCAL_ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- aPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
- aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- aPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- LOCAL_ASSERT_EQUALS(aPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
- TInt count=-1;
- TExtEtelRequestStatus enumeratePacketFiltersChStatus(aPacketContext, EPacketContextEnumeratePacketFilters);
- CleanupStack::PushL(enumeratePacketFiltersChStatus);
- aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersChStatus,count);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersChStatus, ETimeShort), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters timed out"));
- LOCAL_ASSERT_EQUALS(enumeratePacketFiltersChStatus.Int(), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters returned an error"));
- LOCAL_ASSERT_EQUALS(count, 1,
- _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter added to the context
- TExtEtelRequestStatus getPacketFilterInfoStatus(aPacketContext, EPacketContextGetPacketFilterInfo);
- CleanupStack::PushL(getPacketFilterInfoStatus);
- RPacketContext::TPacketFilterV2 packetFilter;
- RPacketContext::TPacketFilterV2Pckg packetFilterPkg(packetFilter);
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
- FillPacketFilter(defaultPacketFilterInfo,1);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns KErrArgument
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
- _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
-
- // Check RPacketContext::GetProfileParameters returns NEGOTIATED parameters.
- TExtEtelRequestStatus getProfileParametersStatus(aPacketQoS, EPacketQoSGetProfileParams);
- CleanupStack::PushL(getProfileParametersStatus);
- TPckg<NEGOTIATED> negotiatedPckg(aNegotiated);
- aPacketQoS.GetProfileParameters(getProfileParametersStatus,negotiatedPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeShort), KErrNone,
- _L("RPacketQoS::GetProfileParameters timed out"));
- LOCAL_ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone,
- _L("RPacketQoS::GetProfileParameters returned an error"));
-
- // Deactivate context.
- TExtEtelRequestStatus deactivateContextStatus(aPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(getProfileParametersStatus);
- aPacketContext.Deactivate(deactivateContextStatus);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateContextStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::Deactivate timed out."));
- LOCAL_ASSERT_EQUALS(deactivateContextStatus.Int(), KErrNone,
- _L("RPacketContext::Deactivate returned with error status."));
-
-
- iEtelSessionMgr.ReleaseSecondaryPacketContext(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext3);
-
- // Pop:
- // deactivateContextStatus
- // getProfileParametersStatus
- // getPacketFilterInfoStatus
- // enumeratePacketFiltersChStatus
- // contextActivateStatus
- // notifyContextStChStatus
- // setProfileParamStatus
- // getProfileCapStatus
- CleanupStack::PopAndDestroy(8,&getProfileCapStatus);
-
- return ret;
- }
-TVerdict CCTSYIntegrationTestPacketContext0038::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0038
- * @SYMFssID BA/CTSY/PKTC-0038
- * @SYMTestCaseDesc Activate a secondary context with packet filter and QoS set up.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetProfileName, RPacketContext::GetStatus, RPacketContext::EnumeratePacketFilters, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext, RPacketQoS::OpenNewQoS, RPacketQoS::SetProfileParameters, RPacketContext::RemovePacketFilter
- * @SYMTestExpectedResults Pass - Packet filter added and removed successfully.Context active.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify packet filter info and QoS profile info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- DEBUG_PRINTF2(_L("Starting with type %d"),iTestType);
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure there is an active primary context.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new secondary context.
- RPacketContext& secondaryPacketContext1 = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS1 = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- RPacketQoS::TQoSGPRSRequested gprsRequested;
- RPacketQoS::TQoSCapsGPRS capsGPRS;
- RPacketQoS::TQoSGPRSNegotiated gprsNegotiated;
-
- RPacketQoS::TQoSR99_R4Requested r99_r4Requested;
- RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
- RPacketQoS::TQoSR99_R4Negotiated t99_r4Negotiated;
- t99_r4Negotiated.iTrafficClass = RPacketQoS::ETrafficClassUnspecified;
- t99_r4Negotiated.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
- t99_r4Negotiated.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
- //t99_r4Negotiated.iMaxSDUSize = 500; //not sure
- //t99_r4Negotiated.iMaxRate.iUplinkRate = 5000; //not sure
- //t99_r4Negotiated.iMaxRate.iDownlinkRate = 5000; //not sure
- t99_r4Negotiated.iBER = RPacketQoS::EBERUnspecified;
- t99_r4Negotiated.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
- t99_r4Negotiated.iTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- //t99_r4Negotiated.iTransferDelay = 110; //not sure
- //t99_r4Negotiated.iGuaranteedRate.iUplinkRate = 5000; //not sure
- //t99_r4Negotiated.iGuaranteedRate.iDownlinkRate = 5000; //not sure
-
- RPacketQoS::TQoSR5Requested r5Requested;
- RPacketQoS::TQoSCapsR5 capsr5;
- RPacketQoS::TQoSR5Negotiated r5Negotiated;
-
- switch(iTestType)
- {
- case EQoSGPRS:
- //Activate The Context using TQoSGPRSRequested, TQoSCapsGPRS and TQoSGPRSNegotiated
- ASSERT_TRUE(ActiveContextL(secondaryPacketContext1,packetQoS1,gprsRequested,capsGPRS,gprsNegotiated),
- _L("CCTSYIntegrationTestPacketContext0038::ActiveContextL failed"));
- break;
- case EQoSR4:
- ASSERT_TRUE(ActiveContextL(secondaryPacketContext1,packetQoS1,r99_r4Requested,capsR99_R4,t99_r4Negotiated),
- _L("CCTSYIntegrationTestPacketContext0038::ActiveContextL failed"));
- break;
- case EQoSR5:
- ASSERT_TRUE(ActiveContextL(secondaryPacketContext1,packetQoS1,r5Requested,capsr5,r5Negotiated),
- _L("CCTSYIntegrationTestPacketContext0038::ActiveContextL failed"));
- break;
- default:
- CHECK_TRUE_L(EFalse, _L("Wrong test type!"));
-
- }
-
-
- // Repeat test with TQoSR99_R4Requested and TQoSR5Requested types in RPacketQoS::SetProfileParameters and checking for TQoSR99_R4Negotiated and TQoSR5Negotiated in RPacketContext::GetProfileParameters respectively.
-
-
- //Activate The Context using TQoSR99_R4Requested, TQoSCapsR99_R4 and TQoSR99_R4Negotiated
-
-
- //Activate The Context using TQoSR5Requested, TQoSCapsR5 and TQoSR5Negotiated
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0038::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0038");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0039::CCTSYIntegrationTestPacketContext0039(CEtelSessionMgr& aEtelSessionMgr, const TDesC& aName)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(aName);
- if(aName.Find(_L("GRPS")) != KErrNotFound)
- {
- iTestType = EQoSGPRS;
- }
- else if(aName.Find(_L("R4")) != KErrNotFound)
- {
- iTestType = EQoSR4;
- }
- else if(aName.Find(_L("R5")) != KErrNotFound)
- {
- iTestType = EQoSR5;
- }
- }
-
-CCTSYIntegrationTestPacketContext0039::~CCTSYIntegrationTestPacketContext0039()
-/**
- * Destructor.
- */
- {
- }
-
-template<class PARAMETERS,class CAPABILITIES,class NEGOTIATED>
- TBool CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL(RPacketContext &aPacketContext,
- RPacketQoS &aPacketQoS,
- PARAMETERS &aParameters,
- CAPABILITIES &aCapabilities,
- NEGOTIATED &aNegotiated)
-/**
- * Activate and modify a secondary context. This is actually a single context activation and modification method,
- * the test activate and modify the context three times, each with diffrent type of parameters, capabilities and negotiation objects
- *
- * @param aPacketContext Reference to the secondary context session.
- * @param aPacketQoS Reference to the packet Quality of Service session.
- * @param aParameters Reference to the QoS parameters. Must be TQoSGPRSRequested, TQoSR99_R4Requested or TQoSR5Requested.
- * @param aCapabilities Reference to the QoS capabilities. Must be a TQoSCapsGPRS, TQoSCapsR99_R4 or TQoSCapsR5 respectivley.
- * @param aNegotiated Reference to the QoS nagotiated. Must be a TQoSGPRSNegotiated, t99_r4Negotiated or r5Negotiated respectivley.
- *
- * @return ETrue if the activation went well
- */
- {
- TBool ret=ETrue;
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,1), KErrNone,
- _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Add a second TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,2), KErrNone,
- _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Get profile capabilities with RPacketCotnext::GetProfileCapabilities with aProfileCaps as a packaged CAPABILITIES
- TExtEtelRequestStatus getProfileCapStatus(aPacketQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- TPckg<CAPABILITIES> qosCapsPckg(aCapabilities);
- aPacketQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities timed out."));
- LOCAL_ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
- _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and PARAMETERS with parameters within range returned by RPacketQoS::GetProfileCapabilities
- TPckg<PARAMETERS> qosReqPckg(aParameters);
- FillParametersFromCapabilities(aParameters,aCapabilities);
- TExtEtelRequestStatus setProfileParamStatus(aPacketQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- aPacketQoS.SetProfileParameters(setProfileParamStatus, qosReqPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
- _L("RPacketQoS::SetProfileParameters timed out."));
- LOCAL_ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
- _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
- TName profileName;
- LOCAL_ASSERT_EQUALS(aPacketContext.GetProfileName(profileName),KErrNone,
- _L("RPacketContext::GetProfileName returned with error status."));
- LOCAL_ASSERT_TRUE(profileName.Length()>0,
- _L("RPacketContext::GetProfileName name length is 0."));
-
- // === Activate a context with two packet filters and QoS ===
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifyContextStChStatus(aPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate the secondary context.
- TExtEtelRequestStatus contextActivateStatus(aPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- aPacketContext.Activate(contextActivateStatus);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::Activate timed out."));
- LOCAL_ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
- _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- aPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
- LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
- aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- aPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- LOCAL_ASSERT_EQUALS(aPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 2
- TInt count=-1;
- TExtEtelRequestStatus enumeratePacketFiltersChStatus(aPacketContext, EPacketContextEnumeratePacketFilters);
- CleanupStack::PushL(enumeratePacketFiltersChStatus);
- aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersChStatus,count);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersChStatus, ETimeShort), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters timed out"));
- LOCAL_ASSERT_EQUALS(enumeratePacketFiltersChStatus.Int(), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters returned an error"));
- LOCAL_ASSERT_EQUALS(count, 2,
- _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- TExtEtelRequestStatus getPacketFilterInfoStatus(aPacketContext, EPacketContextGetPacketFilterInfo);
- CleanupStack::PushL(getPacketFilterInfoStatus);
- RPacketContext::TPacketFilterV2 packetFilter;
- RPacketContext::TPacketFilterV2Pckg packetFilterPkg(packetFilter);
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
- FillPacketFilter(defaultPacketFilterInfo,1);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo,2);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns KErrArgument
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,2,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
- _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
-
- // Check RPacketContext::GetProfileParameters returns NEGOTIATED parameters.
- TExtEtelRequestStatus getProfileParametersStatus(aPacketQoS, EPacketQoSGetProfileParams);
- CleanupStack::PushL(getProfileParametersStatus);
- TPckg<NEGOTIATED> negotiatedPckg(aNegotiated);
- aPacketQoS.GetProfileParameters(getProfileParametersStatus,negotiatedPckg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeShort), KErrNone,
- _L("RPacketQoS::GetProfileParameters timed out"));
- LOCAL_ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone,
- _L("RPacketQoS::GetProfileParameters returned an error"));
-
- // === Add another packet filter and modify the context ===
-
- // Add a third TPacketFilterV3 packet filter to the secondary context using RPacketContext::AddPacketFilter
- LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,3), KErrNone,
- _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- // $CTSYProblem The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext
- ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext.<font color=Black>"));
- TExtEtelRequestStatus modifyActiveContextStatus(aPacketContext, EPacketContextModifyActiveContext);
- CleanupStack::PushL(modifyActiveContextStatus);
- aPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::ModifyActiveContext timed out."));
- LOCAL_ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone,
- _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 3
- aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersChStatus,count);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersChStatus, ETimeShort), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters timed out"));
- LOCAL_ASSERT_EQUALS(enumeratePacketFiltersChStatus.Int(), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters returned an error"));
- LOCAL_ASSERT_EQUALS(count, 3,
- _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo,1);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo,2);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,2,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo,3);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns KErrArgument
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,3,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
- _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
-
- // === Remove a packet filter and modify the context ===
-
- // Remove the third packet filter from the secondary context with RPacketContext::RemovePacketFilter
- TExtEtelRequestStatus removePacketFilterStatus(aPacketContext, EPacketContextRemovePacketFilter);
- CleanupStack::PushL(removePacketFilterStatus);
- aPacketContext.RemovePacketFilter(removePacketFilterStatus,2);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone,
- _L("RPacketContext::RemovePacketFilter timed out"));
- LOCAL_ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone,
- _L("RPacketContext::RemovePacketFilter returned an error"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- aPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::ModifyActiveContext timed out."));
- LOCAL_ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone,
- _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 2
- count=-1;
- TExtEtelRequestStatus enumeratePacketFiltersStatus(aPacketContext, EPacketContextEnumeratePacketFilters);
- CleanupStack::PushL(enumeratePacketFiltersStatus);
- aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus,count);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeShort), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters timed out"));
- LOCAL_ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters returned an error"));
- LOCAL_ASSERT_EQUALS(count, 2,
- _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo,1);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo,2);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns KErrArgument
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,2,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
- _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
-
- // === Remove another packet filter and modify the context ===
-
- // Remove the first packet filter from the secondary context with RPacketContext::RemovePacketFilter
- aPacketContext.RemovePacketFilter(removePacketFilterStatus,0);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone,
- _L("RPacketContext::RemovePacketFilter timed out"));
- LOCAL_ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone,
- _L("RPacketContext::RemovePacketFilter returned an error"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- aPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone,
- _L("RPacketContext::ModifyActiveContext timed out."));
- LOCAL_ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone,
- _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
- count=-1;
- aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus,count);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeShort), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters timed out"));
- LOCAL_ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone,
- _L("RPacketContext::EnumeratePacketFilters returned an error"));
- LOCAL_ASSERT_EQUALS(count, 1,
- _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns second packet filter added to the context
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo,2);
- LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns KErrArgument
- aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
- LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
- _L("RPacketContext::GetPacketFilterInfo timed out"));
- LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
- _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
-
- // Pop:
- // enumeratePacketFiltersStatus
- // removePacketFilterStatus
- // modifyActiveContextStatus
- // getProfileParametersStatus
- // getPacketFilterInfoStatus
- // enumeratePacketFiltersChStatus
- // contextActivateStatus
- // notifyContextStChStatus
- // setProfileParamStatus
- // getProfileCapStatus
- CleanupStack::PopAndDestroy(10,&getProfileCapStatus);
-
- return ret;
- }
-
-
-TVerdict CCTSYIntegrationTestPacketContext0039::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0039
- * @SYMFssID BA/CTSY/PKTC-0039
- * @SYMTestCaseDesc Modify a secondary context with packet filter and QoS.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetProfileName, RPacketContext::GetStatus, RPacketContext::EnumeratePacketFilters, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext, RPacketContext::RemovePacketFilter, RPacketQoS::OpenNewQoS, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Packet filter added and removed successfully.Context modified successfully.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify packet filter info and QoS profile info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- DEBUG_PRINTF2(_L("Starting with type %d"),iTestType);
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure there is an active primary context.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new secondary context.
- RPacketContext& secondaryPacketContext1 = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Open a new QoS from the secodnary context
- RPacketQoS& packetQoS1 = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Activate and modify the context with TQoSGPRSRequested, TQoSCapsGPRS and TQoSGPRSNegotiated
- RPacketQoS::TQoSGPRSRequested gprsRequested;
- RPacketQoS::TQoSCapsGPRS capsGPRS;
- RPacketQoS::TQoSGPRSNegotiated gprsNegotiated;
- RPacketQoS::TQoSR99_R4Requested r99_r4Requested;
- RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
- RPacketQoS::TQoSR99_R4Negotiated t99_r4Negotiated;
- RPacketQoS::TQoSR5Requested r5Requested;
- RPacketQoS::TQoSCapsR5 capsr5;
- RPacketQoS::TQoSR5Negotiated r5Negotiated;
- switch (iTestType)
- {
- case EQoSGPRS:
- ASSERT_TRUE(ActivateAndModifyContextL(secondaryPacketContext1,packetQoS1,gprsRequested,capsGPRS,gprsNegotiated),
- _L("CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL failed"));
- break;
- case EQoSR4:
- ASSERT_TRUE(ActivateAndModifyContextL(secondaryPacketContext1,packetQoS1,r99_r4Requested,capsR99_R4,t99_r4Negotiated),
- _L("CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL failed"));
- break;
- case EQoSR5:
- ASSERT_TRUE(ActivateAndModifyContextL(secondaryPacketContext1,packetQoS1,r5Requested,capsr5,r5Negotiated),
- _L("CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL failed"));
- break;
-
- default:
- CHECK_TRUE_L(EFalse, _L("Wrong test type!"));
- break;
- }
-
- // Repeat test with TQoSR99_R4Requested and TQoSR5Requested types in RPacketQoS::SetProfileParameters and checking for TQoSR99_R4Negotiated and TQoSR5Negotiated in RPacketContext::GetProfileParameters respectively.
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0039::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0039");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0040::CCTSYIntegrationTestPacketContext0040(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0040::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0040::~CCTSYIntegrationTestPacketContext0040()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0040::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0040
- * @SYMFssID BA/CTSY/PKTC-0040
- * @SYMTestCaseDesc Activate a secondary context with the maximum number of packet filters allowed by default TFT.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::Activate
- * @SYMTestExpectedResults Pass - 8 packet filters added. Unable to add 9th packet filter.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify packet filter info and QoS profile info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Check that the phone is registered with the network simulator.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure there is an active primary context.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new secondary context.
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Add 8 TPacketFilterV2 packet filters to the secondary context using RPacketContext::AddPacketFilter each with a different iId.
- // $CTSYProblem Adding 7 filters wil cause the LTSY to crash the board
- for(TInt index = 1; index < 7; index++)
- {
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
- }
-
- // === Attempt to add a 9th filter ===
-
- // Check RPacketContext::AddPacketFilter returns KErrArgument
- // $CTSYProblem Adding 7 filters wil cause the LTSY to crash the board
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
- TName profileName;
- profileName.Zero();
- ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
- ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Activate the secondary context.
- TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(secContextActivateStatus);
- secondaryPacketContext.Activate(secContextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
- expectedSecContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 8
- TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
- CleanupStack::PushL(enumeratePacketFiltersStatus);
- TInt packetFiltersCount(0);
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 8, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns sixth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns seventh packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns eighth packet filter added to the context
- // $CTSYProblem Adding 7 filters wil cause the LTSY to crash the board
- RPacketContext::TPacketFilterV2 getPacketFilterV2;
- RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
- TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
- CleanupStack::PushL(getPacketFilterInfoStatus);
- RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
-
- for (TInt index = 0; index < 6; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 8 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 7, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // getProfileCapStatus
- // setProfileParamStatus
- // notifySecContextStChStatus
- // secContextActivateStatus
- // enumeratePacketFiltersStatus
- // getPacketFilterInfoStatus
- CleanupStack::PopAndDestroy(6, &getProfileCapStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0040::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0040");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0041::CCTSYIntegrationTestPacketContext0041(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0041::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0041::~CCTSYIntegrationTestPacketContext0041()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0041::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0041
- * @SYMFssID BA/CTSY/PKTC-0041
- * @SYMTestCaseDesc Modify a secondary context with the maximum number of packet filters allowed by default TFT.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::GetPacketFilterInfo, RPacketContext::NotifyStatusChange, RPacketContext::ModifyActiveContext, RPacketContext::GetProfileParameters, RPacketContext::GetProfileName, RPacketContext::GetStatus, RPacketContext::RemovePacketFilter, RPacketContext::EnumeratePacketFilters, RPacketQoS::SetProfileParameters, RPacketQoS::OpenNewQoS, RPacketContext::AddPacketFilter
- * @SYMTestExpectedResults Pass - 8 packet filters added. Unable to add 9th packet filter.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify packet filter info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- //Check if we are on a simulated network to run emergency call tests
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure there is an active primary context.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new secondary context.
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Add a TPacketFilterV2 packet filter with iId = 1 to the secondary context using RPacketContext::AddPacketFilter
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
- TName profileName;
- profileName.Zero();
- ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
- ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Activate the secondary context.
- TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(secContextActivateStatus);
- secondaryPacketContext.Activate(secContextActivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
- expectedSecContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
-
- // Add 7 more TPacketFilterV2 packet filters (with iId = 2 to 8) to the secondary context using RPacketContext::AddPacketFilter
- for(TInt index = 2; index < 9; index++)
- {
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
- }
-
- // === Attempt to add a 9th filter to the context ===
-
- // Check RPacketContext::AddPacketFilter with iId = 9 returns KErrArgument
- // $CTSYProblem.
- // PacketContext::AddPacketFilter return KErrGeneral instead of KErrArgument for wrong argument.
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 9,KErrGeneral), KErrGeneral, _L("RPacketContext::AddPacketFilter did not return with an error as expected."));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- // $CTSYProblem The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext
- ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext.<font color=Black>"));
- TExtEtelRequestStatus modifyActiveContextStatus(secondaryPacketContext, EPacketContextModifyActiveContext);
- CleanupStack::PushL(modifyActiveContextStatus);
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 8
- TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
- CleanupStack::PushL(enumeratePacketFiltersStatus);
- TInt packetFiltersCount(0);
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 8, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns sixth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns seventh packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns eighth packet filter added to the context
- RPacketContext::TPacketFilterV2 getPacketFilterV2;
- RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
- TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
- CleanupStack::PushL(getPacketFilterInfoStatus);
- RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
-
- for (TInt index = 0; index < 8; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 8 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 8, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // Remove the filter with iId = 3 using RPacketContext::RemovePacketFilter
- TExtEtelRequestStatus removePacketFilterStatus(secondaryPacketContext, EPacketContextRemovePacketFilter);
- CleanupStack::PushL(removePacketFilterStatus);
- TInt wantedId = 3;
- secondaryPacketContext.RemovePacketFilter(removePacketFilterStatus, wantedId);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone, _L("RPacketContext::RemovePacketFilter timed out"));
- ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone, _L("RPacketContext::RemovePacketFilter returned an error"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 7
- packetFiltersCount = 0;
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 7, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns sixth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns seventh packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns eighth packet filter added to the context
- for (TInt index = 0; index < 7; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
-
- if(index >= 2)
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 2);
- }
- else
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- }
-
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 7, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // === Add a packet filter with the same Id as an existing one (modification of a packet filter) ===
-
- // Add another filter packet filter to the context with iId = 1
- RPacketContext::TPacketFilterV2 packetFilterV2;
- FillPacketFilter(packetFilterV2, 3);
- RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
- TExtEtelRequestStatus addFilterStatus(primaryPacketContext, EPacketContextAddPacketFilter);
- CleanupStack::PushL(addFilterStatus);
- packetFilterV2.iId = 1;
- secondaryPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddPacketFilter timed out"));
- ASSERT_EQUALS(addFilterStatus.Int(), KErrNone, _L("RPacketContext::AddPacketFilter returned an error"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 7
- packetFiltersCount = 0;
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 7, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns newly added packet filter
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns sixth packet filter added to the tcontext
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns seventh packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns eighth packet filter added to the context
- for (TInt index = 0; index < 7; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
-
- if(index == 0)
- {
- FillPacketFilter(defaultPacketFilterInfo, 3);
- defaultPacketFilterInfo.iId = 1;
- }
- else if(index >= 2)
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 2);
- }
- else
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- }
-
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 7, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // === Add a packet filter with iId = 3 (add new one that was removed) ===
-
- // Add another filter packet filter to the context with iId = 3
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 3), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 8
- packetFiltersCount = 0;
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 8, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns sixth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns seventh packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns eighth packet filter added to the context
- for (TInt index = 0; index < 8; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
-
- if(index == 0)
- {
- FillPacketFilter(defaultPacketFilterInfo, 3);
- defaultPacketFilterInfo.iId = 1;
- }
- else
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- }
-
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 8 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 8, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // getProfileCapStatus
- // setProfileParamStatus
- // notifySecContextStChStatus
- // secContextActivateStatus
- // addFilterStatus
- // modifyActiveContextStatus
- // enumeratePacketFiltersStatus
- // getPacketFilterInfoStatus
- // removePacketFilterStatus
- CleanupStack::PopAndDestroy(9, &getProfileCapStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0041::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0041");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0042::CCTSYIntegrationTestPacketContext0042(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0042::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0042::~CCTSYIntegrationTestPacketContext0042()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0042::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0042
- * @SYMFssID BA/CTSY/PKTC-0042
- * @SYMTestCaseDesc Activate a secondary context creating a TFT for the packet filters.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::CreateNewTFT, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::Activate, RPacketContext::DeleteTFT
- * @SYMTestExpectedResults Pass - TFT created and deleted.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify packet filter info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // ==== Ensure there is an active primary context ===
-
- //Check if we are on a simulated network
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Set the attach mode to EAttachWhenPossible.
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Open primary context
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new secondary context.
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Create a new TFT with RPacketContext::CreateNewTFT and aSize = 5
- TExtEtelRequestStatus createNewTFTStatus(secondaryPacketContext, EPacketContextCreateNewTFT);
- CleanupStack::PushL(createNewTFTStatus);
- const TInt size(5);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50005);
- secondaryPacketContext.CreateNewTFT(createNewTFTStatus, size);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::CreateNewTFT timed out"));
- ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::CreateNewTFT returned an error"));
-
- // Add a TPacketFilterV2 packet filter with iId = 1 to the secondary context using RPacketContext::AddPacketFilter
- // Add a TPacketFilterV2 packet filter with iId = 2 to the secondary context using RPacketContext::AddPacketFilter
- // Add a TPacketFilterV2 packet filter with iId = 3 to the secondary context using RPacketContext::AddPacketFilter
- // Add a TPacketFilterV2 packet filter with iId = 4 to the secondary context using RPacketContext::AddPacketFilter
- // Add a TPacketFilterV2 packet filter with iId = 5 to the secondary context using RPacketContext::AddPacketFilter
- for (TInt index = 1; index < 6; index++)
- {
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
- }
-
- // Add a TPacketFilterV2 packet filter with iId = 6 to the secondary context returns KErrArgument
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 6), KErrArgument, _L("RPacketContext::AddPacketFilter did not return with an error as expected."));
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
- TName profileName;
- ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
- ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Activate the secondary context.
- TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(secContextActivateStatus);
- secondaryPacketContext.Activate(secContextActivateStatus);
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
- expectedSecContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 5
- TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
- CleanupStack::PushL(enumeratePacketFiltersStatus);
- TInt packetFiltersCount(0);
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 5, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
- RPacketContext::TPacketFilterV2 getPacketFilterV2;
- RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
- TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
- CleanupStack::PushL(getPacketFilterInfoStatus);
- RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
-
- for (TInt index = 0; index < 5; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns KErrArgument
- TInt index = 5;
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // Repost notification for context's status change
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Deactivate the secondary context.
- TExtEtelRequestStatus contextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- secondaryPacketContext.Deactivate(contextDeactivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus status did not return EStatusInactive."));
-
- // Delete the TFT with RPacketContext::DeleteTFT
- TExtEtelRequestStatus deleteTFTStatus(secondaryPacketContext, EPacketContextDeleteTFT);
- CleanupStack::PushL(deleteTFTStatus);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50006);
- secondaryPacketContext.DeleteTFT(deleteTFTStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::DeleteTFT timed out"));
- ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::DeleteTFT returned an error"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // createNewTFTStatus
- // getProfileCapStatus
- // setProfileParamStatus
- // notifySecContextStChStatus
- // secContextActivateStatus
- // enumeratePacketFiltersStatus
- // getPacketFilterInfoStatus
- // contextDeactivateStatus
- // deleteTFTStatus
- CleanupStack::PopAndDestroy(9, &createNewTFTStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0042::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0042");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0043::CCTSYIntegrationTestPacketContext0043(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0043::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0043::~CCTSYIntegrationTestPacketContext0043()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0043::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0043
- * @SYMFssID BA/CTSY/PKTC-0043
- * @SYMTestCaseDesc Modify a secondary context creating a TFT for the packet filters.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::Activate, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext, RPacketContext::DeleteTFT
- * @SYMTestExpectedResults Pass - TFT created and deleted.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify packet filter info correct.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- //Check if we are on a simulated network to run emergency call tests
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Ensure there is an active primary context.
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new secondary context.
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Create a new TFT with RPacketContext::CreateNewTFT and aSize = 5
- TExtEtelRequestStatus createNewTFTStatus(secondaryPacketContext, EPacketContextCreateNewTFT);
- CleanupStack::PushL(createNewTFTStatus);
- const TInt size(5);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50005);
- secondaryPacketContext.CreateNewTFT(createNewTFTStatus, size);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::CreateNewTFT timed out"));
- ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::CreateNewTFT returned an error"));
-
- // Add a TPacketFilterV2 packet filter with iId = 1 to the secondary context using RPacketContext::AddPacketFilter
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Open a new QoS from the secondary context with
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
- TName profileName;
- ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
- ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Activate the secondary context.
- TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(secContextActivateStatus);
- secondaryPacketContext.Activate(secContextActivateStatus);
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
- expectedSecContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
- TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
- CleanupStack::PushL(enumeratePacketFiltersStatus);
- TInt packetFiltersCount(0);
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 1, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter with iId = 1
- RPacketContext::TPacketFilterV2 getPacketFilterV2;
- RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
- TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
- CleanupStack::PushL(getPacketFilterInfoStatus);
- RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
- FillPacketFilter(defaultPacketFilterInfo, 1);
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 0, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
-
- // Add 4 more TPacketFilterV2 packet filters (with iId = 2 to 5) to the secondary context using RPacketContext::AddPacketFilter
- for(TInt index = 2; index < 6; index++)
- {
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
- }
-
- // === Attempt to add a 6th filter to the context ===
-
- // Check RPacketContext::AddPacketFilter with iId = 6 returns KErrArgument
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 6), KErrArgument, _L("RPacketContext::AddPacketFilter did not return with an error as expected."));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- TExtEtelRequestStatus modifyActiveContextStatus(secondaryPacketContext, EPacketContextModifyActiveContext);
- CleanupStack::PushL(modifyActiveContextStatus);
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 5
- packetFiltersCount = 0;
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 5, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
- for (TInt index = 0; index < 5; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 5, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // Remove the filter with iId = 3 using RPacketContext::RemovePacketFilter
- TExtEtelRequestStatus removePacketFilterStatus(secondaryPacketContext, EPacketContextRemovePacketFilter);
- CleanupStack::PushL(removePacketFilterStatus);
- TInt wantedId = 3;
- secondaryPacketContext.RemovePacketFilter(removePacketFilterStatus, wantedId);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone, _L("RPacketContext::RemovePacketFilter timed out"));
- ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone, _L("RPacketContext::RemovePacketFilter returned an error"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 4
- packetFiltersCount = 0;
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 4, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
- for (TInt index = 0; index < 4; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
-
- if (index >= 2) // Third filter removed earlier in this test
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 2);
- }
- else
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- }
-
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 4, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // === Add a packet filter with the same Id as an existing one (modification of a packet filter) ===
-
- // Add another packet filter to the context with iId = 1
- RPacketContext::TPacketFilterV2 packetFilterV2;
- RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
- TExtEtelRequestStatus addFilterStatus(primaryPacketContext, EPacketContextAddPacketFilter);
- CleanupStack::PushL(addFilterStatus);
- FillPacketFilter(packetFilterV2, 2);
- packetFilterV2.iId = 1;
- secondaryPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddPacketFilter timed out"));
- ASSERT_EQUALS(addFilterStatus.Int(), KErrNone, _L("RPacketContext::AddPacketFilter returned an error"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 4
- packetFiltersCount = 0;
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 4, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter that has just been added
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
- for (TInt index = 0; index < 4; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
-
- if (index == 0)
- {
- FillPacketFilter(defaultPacketFilterInfo, 2);
- packetFilterV2.iId = 1;
- }
- else if (index >= 2) // Third filter removed earlier in this test
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 2);
- }
- else
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- }
-
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 4, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // === Add a packet filter with iId = 3 (add new one that was removed) ===
-
- // Add another filter packet filter to the context with iId = 3
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 3), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
- ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 5
- packetFiltersCount = 0;
- secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
- ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
- ASSERT_EQUALS(packetFiltersCount, 5, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
- for (TInt index = 1; index < 4; index++)
- {
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
-
- if (index == 0)
- {
- FillPacketFilter(defaultPacketFilterInfo, 2);
- packetFilterV2.iId = 1;
- }
- else
- {
- FillPacketFilter(defaultPacketFilterInfo, index + 1);
- }
-
- ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
- }
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns KErrArgument
- secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 5, getPacketFilterV2pkg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
- ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
-
- // Repost notification for context's status change
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Deactivate the secondary context.
- TExtEtelRequestStatus contextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
- CleanupStack::PushL(contextDeactivateStatus);
- secondaryPacketContext.Deactivate(contextDeactivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
- ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusInactive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusInactive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusInactive, _L("Packet Context's status expected to be EStatusActive but is not."));
-
- // Delete the TFT with RPacketContext::DeleteTFT
- TExtEtelRequestStatus deleteTFTStatus(secondaryPacketContext, EPacketContextDeleteTFT);
- CleanupStack::PushL(deleteTFTStatus);
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50006);
- secondaryPacketContext.DeleteTFT(deleteTFTStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::DeleteTFT timed out"));
- ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::DeleteTFT returned an error"));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // createNewTFTStatus
- // getProfileCapStatus
- // setProfileParamStatus
- // notifySecContextStChStatus
- // secContextActivateStatus
- // enumeratePacketFiltersStatus
- // getPacketFilterInfoStatus
- // modifyActiveContextStatus
- // removePacketFilterStatus
- // addFilterStatus
- // contextDeactivateStatus
- // deleteTFTStatus
- CleanupStack::PopAndDestroy(12, &createNewTFTStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0043::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0043");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0044::CCTSYIntegrationTestPacketContext0044(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0044::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0044::~CCTSYIntegrationTestPacketContext0044()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0044::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0044
- * @SYMFssID BA/CTSY/PKTC-0044
- * @SYMTestCaseDesc Modify a context when it is not active.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext
- * @SYMTestExpectedResults Pass - Error returned on attempt to modify a context that is not active.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context status and packet service status and error returned for modify.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new primary context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Modify the context with RPacketContext::ModifyActiveContext
- TExtEtelRequestStatus modifyActiveContextStatus(primaryPacketContext, EPacketContextModifyActiveContext);
- CleanupStack::PushL(modifyActiveContextStatus);
- primaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
-
- // Check error is returned.
- ASSERT_TRUE(modifyActiveContextStatus.Int() != KErrNone, _L("RPacketContext::ModifyActiveContext did not return with an error as expected."));
-
- // Open a new secondary context from the primary
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Modify the secondary context with RPacketContext::ModifyActiveContext
- TExtEtelRequestStatus modifyActiveContextStatus2(secondaryPacketContext, EPacketContextModifyActiveContext);
- CleanupStack::PushL(modifyActiveContextStatus2);
- secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus2);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus2, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
-
- // Check error is returned.
- ASSERT_TRUE(modifyActiveContextStatus2.Int() != KErrNone, _L("RPacketContext::ModifyActiveContext did not return with an error as expected."));
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // modifyActiveContextStatus
- // modifyActiveContextStatus2
- CleanupStack::PopAndDestroy(2, &modifyActiveContextStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0044::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0044");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0045::CCTSYIntegrationTestPacketContext0045(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0045::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0045::~CCTSYIntegrationTestPacketContext0045()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0045::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0045
- * @SYMFssID BA/CTSY/PKTC-0045
- * @SYMTestCaseDesc Add packet filter with same ID as previous packet filter.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::Activate, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext
- * @SYMTestExpectedResults Pass - Old filter replaced.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify existing packet filter is replaced.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is an active primary context.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new primary context.
-
- // Add a TPacketFilterV2 packet filter with iId = 1 to the context using RPacketContext::AddPacketFilter
-
- // Add a TPacketFilterV2 packet filter with iId = 1 but with different values for the other field to the context using RPacketContext::AddPacketFilter
-
- // Set a valid config for the primary context.
-
- // Activate the context.
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter with details equal to those used in second call to RPacketContext::AddPacketFilter
-
- // Add a TPacketFilterV2 packet filter with iId = 1 but with different values for the other field to the context using RPacketContext::AddPacketFilter
-
- // Modify the context
-
- // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
-
- // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter with details equal to those used in third call to RPacketContext::AddPacketFilter
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0045::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0045");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0046::CCTSYIntegrationTestPacketContext0046(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0046::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0046::~CCTSYIntegrationTestPacketContext0046()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0046::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0046
- * @SYMFssID BA/CTSY/PKTC-0046
- * @SYMTestCaseDesc Remove packet filter specifying invalid ID.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::RemovePacketFilter
- * @SYMTestExpectedResults Pass - Error returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify error is returned.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is an active primary context.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Add a TPacketFilterV2 packet filter with iId = 1 to the context using RPacketContext::AddPacketFilter
-
- // Modify the context.
-
- // Remove a packet filter with RPacketContext::RemovePacketFilter and aId = 2
-
- // Check KErrArgument is returned
-
- // Remove a packet filter with RPacketContext::RemovePacketFilter and aId = -1
-
- // Check KErrArgument is returned
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0046::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0046");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0047::CCTSYIntegrationTestPacketContext0047(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0047::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0047::~CCTSYIntegrationTestPacketContext0047()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0047::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0047
- * @SYMFssID BA/CTSY/PKTC-0047
- * @SYMTestCaseDesc Activate a primary context with media auth tokens added but no QoS or packet filters.
- * @SYMTestPriority High
- * @SYMTestActions RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddMediaAuthorizationL, RPacketContext::GetStatus, RPacketContext::SetConfig
- * @SYMTestExpectedResults Pass - Context activated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context is activated.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to the packet service.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a primary context
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
-
- // Set a valid context config using RPacketContext::SetConfig
-
- // Activate the context.
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0047::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0047");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0048::CCTSYIntegrationTestPacketContext0048(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0048::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0048::~CCTSYIntegrationTestPacketContext0048()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0048::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0048
- * @SYMFssID BA/CTSY/PKTC-0048
- * @SYMTestCaseDesc Modify a primary context with media auth tokens added but no QoS or packet filters.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddMediaAuthorizationL, RPacketContext::GetStatus, RPacketContext::SetConfig
- * @SYMTestExpectedResults Pass - Context modified.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context is modified.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to the packet service.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a primary context
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
-
- // Set a valid context config using RPacketContext::SetConfig
-
- // Activate the context.
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // Remove media auth token using RPacketContext::RemoveMediaAuthorization and aAuthorizationToken = identifier used in RPacketContext::AddMediaAuthorizationL
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0048::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0048");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0049::CCTSYIntegrationTestPacketContext0049(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0049::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0049::~CCTSYIntegrationTestPacketContext0049()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0049::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0049
- * @SYMFssID BA/CTSY/PKTC-0049
- * @SYMTestCaseDesc Activate a secondary context with media auth tokens added but no QoS or packet filters.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::AddMediaAuthorizationL, RPacketContext::RemoveMediaAuthorization
- * @SYMTestExpectedResults Pass - Context activated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify context is activated.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is a primary context active which has been activated with QoS and has a packet filter added to it.
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Open a new primary context.
- RPacketContext& primaryContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
- // Open a new QoS for primary context
- RPacketQoS& contextQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // $CTSYProblem Can't add filters to primary context
- //CHECK_EQUALS_L(AddPacketFilterV2ToContextL(primaryContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error"));
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryContext);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Open a new secondary context from the primary.
- RPacketContext& secondaryContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuth);
- TExtEtelRequestStatus requestAddMediaAuthStatus(secondaryContext, EPacketAddMediaAuthorization);
- CleanupStack::PushL(requestAddMediaAuthStatus);
- // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
- CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
- secondaryContext.AddMediaAuthorizationL(requestAddMediaAuthStatus, *mediaAuth);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
- ASSERT_EQUALS(requestAddMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
-
- // Post notifier for RPacketContext::NotifyStatusChange
- TExtEtelRequestStatus notifyContextStChStatus(secondaryContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate packet context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(secondaryContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- secondaryContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- RPacketContext::TContextStatus getPacketContextStatus;
- ASSERT_EQUALS(secondaryContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for Secondary context returned with an error."));
- ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // mediaAuth
- // requestAddMediaAuthStatus
- // notifyContextStChStatus
- // contextActivateStatus
- CleanupStack::PopAndDestroy(4, mediaAuth);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0049::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0049");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0050::CCTSYIntegrationTestPacketContext0050(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0050::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0050::~CCTSYIntegrationTestPacketContext0050()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0050::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0050
- * @SYMFssID BA/CTSY/PKTC-0050
- * @SYMTestCaseDesc Modify a secondary context with media auth tokens added but no QoS or packet filters.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::AddMediaAuthorizationL, RPacketContext::RemoveMediaAuthorization, RPacketContext::ModifyActiveContext
- * @SYMTestExpectedResults Pass - Context modified.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify context is modified.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Ensure there is a primary context active which has been activated with QoS and has a packet filter added to it.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- //Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- RPacketContext& primaryContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- RPacketQoS& primaryQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryContext);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Open a new secondary context from the primary.
- RPacketContext& secondaryContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuth);
- TExtEtelRequestStatus requestAddMediaAuthStatus(secondaryContext, EPacketAddMediaAuthorization);
- CleanupStack::PushL(requestAddMediaAuthStatus);
- // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
- CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
- secondaryContext.AddMediaAuthorizationL(requestAddMediaAuthStatus, *mediaAuth);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
- ASSERT_EQUALS(requestAddMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
-
- // Post notifier for RPacketContext::NotifyStatusChange
- TExtEtelRequestStatus notifyContextStChStatus(secondaryContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate the context.
- TExtEtelRequestStatus contextActivateStatus(secondaryContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- secondaryContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus returns EStatusActive
- RPacketContext::TContextStatus getPacketContextStatus;
- ASSERT_EQUALS(secondaryContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
- ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Remove media auth token using RPacketContext::RemoveMediaAuthorization and aAuthorizationToken = identifier used in RPacketContext::AddMediaAuthorizationL
- TExtEtelRequestStatus requestRemoveMediaAuthStatus(secondaryContext, EPacketRemoveMediaAuthorization);
- CleanupStack::PushL(requestRemoveMediaAuthStatus);
- secondaryContext.RemoveMediaAuthorization(requestRemoveMediaAuthStatus, mediaAuth->iAuthorizationToken);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(requestRemoveMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::RemoveMediaAuthorization timed out"));
- ASSERT_EQUALS(requestRemoveMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::RemoveMediaAuthorization returned an error"));
-
- // Check RPacketContext::GetStatus returns EStatusActive
- ASSERT_EQUALS(secondaryContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
- ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus packetServiceStatus;
- ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop:
- // mediaAuth
- // requestAddMediaAuthStatus
- // notifyContextStChStatus
- // contextActivateStatus
- // requestRemoveMediaAuthStatus
- CleanupStack::PopAndDestroy(5, &mediaAuth);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0050::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0050");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0051::CCTSYIntegrationTestPacketContext0051(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0051::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0051::~CCTSYIntegrationTestPacketContext0051()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0051::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0051
- * @SYMFssID BA/CTSY/PKTC-0051
- * @SYMTestCaseDesc Activate a primary context with QoS, packet filters and media auth tokens.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddMediaAuthorizationL, RPacketContext::SetConfig, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Context activated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context is activated.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to the packet service.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // === Add packet filter ===
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // === Add media auth tokens ===
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
-
- // Set a valid context config with RPacketContext::SetConfig
-
- // Activate primary context with RPacketContext::Activate
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
- // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0051::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0051");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0052::CCTSYIntegrationTestPacketContext0052(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0052::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0052::~CCTSYIntegrationTestPacketContext0052()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0052::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0052
- * @SYMFssID BA/CTSY/PKTC-0052
- * @SYMTestCaseDesc Modify a primary context with QoS, packet filters and media auth tokens.
- * @SYMTestPriority High
- * @SYMTestActions RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileParameters, RPacketQoS::NotifyProfileChanged, RPacketQoS::GetProfileCapabilities, RPacketContext::OpenNewContext, RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::RemovePacketFilter
- * @SYMTestExpectedResults Pass - Context modified.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify context is modified.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is an active primary context.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // === Add packet filter ===
-
- // Add a TPacketFilterV2 packet filter to the primary context using RPacketContext::AddPacketFilter
-
- // === Add QoS ===
-
- // Open a new QoS from the primary context
-
- // Get R5 QoS profile capabilities with RPacketQoS::GetProfileCapabilities
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSR5Requested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // === Add media auth tokens ===
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
-
- // Set a valid context config with RPacketContext::SetConfig
-
- // Activate primary context with RPacketContext::Activate
-
- // === Check context and service statuses ===
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
-
- // Check RPacketService::GetStatus returns EStatusActive
-
- // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for the primary context returns EStatusActive
-
- // === Remove media auth tokens ===
-
- // Remove media authorization with RPacketContext::RemoveMediaAuthorization
-
- // === Add media auth tokens ===
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
-
- // Modify context with RPacketContext::ModifyActiveContext
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0052::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0052");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0053::CCTSYIntegrationTestPacketContext0053(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0053::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0053::~CCTSYIntegrationTestPacketContext0053()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0053::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0053
- * @SYMFssID BA/CTSY/PKTC-0053
- * @SYMTestCaseDesc Activate a secondary context with QoS, packet filters and media auth tokens.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::AddMediaAuthorizationL, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Context activated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify context is activated.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- //Check if we are on a simulated network
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Open primary context
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
- // Open a new secondary context
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // === Add packet filter ===
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // === Add media auth tokens ===
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuth);
- TExtEtelRequestStatus addMediaAuthStatus(secondaryPacketContext, EPacketAddMediaAuthorization);
- CleanupStack::PushL(addMediaAuthStatus);
- // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
- CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
- secondaryPacketContext.AddMediaAuthorizationL(addMediaAuthStatus, *mediaAuth);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(addMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
- ASSERT_EQUALS(addMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
-
- //Post notifier for RPacketContext::NotifyStatusChange
- TExtEtelRequestStatus notifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- secondaryPacketContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- RPacketContext::TContextStatus getPacketContextStatus;
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
- ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // getProfileCapStatus
- // setProfileParamStatus
- // mediaAuth
- // addMediaAuthStatus
- // notifyContextStChStatus
- // contextActivateStatus
- CleanupStack::PopAndDestroy(6, &getProfileCapStatus);
-
- return TestStepResult();
- }
-
-
-TPtrC CCTSYIntegrationTestPacketContext0053::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0053");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0054::CCTSYIntegrationTestPacketContext0054(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0054::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0054::~CCTSYIntegrationTestPacketContext0054()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0054::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0054
- * @SYMFssID BA/CTSY/PKTC-0054
- * @SYMTestCaseDesc Modify a secondary context with QoS, packet filters and media auth tokens.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::AddMediaAuthorizationL, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
- * @SYMTestExpectedResults Pass - Context modified.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/automatic
- *
- * Reason for test: Verify context is modified.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // ==== Ensure there is an active primary context ===
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- //Check if we are on a simulated network
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Set the attach mode to EAttachWhenPossible.
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- // Open primary context
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Activate primary context.
- iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Open a new secondary context
- RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
- // === Add packet filter ===
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- RPacketContext::TPacketFilterV2 packetFilterV2;
- TInt id(1);
- FillPacketFilter(packetFilterV2, id);
- RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
- TExtEtelRequestStatus addFilterStatus(secondaryPacketContext, EPacketContextAddPacketFilter);
- CleanupStack::PushL(addFilterStatus);
- secondaryPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddPacketFilter timed out"));
- ASSERT_EQUALS(addFilterStatus.Int(), KErrNone, _L("RPacketContext::AddPacketFilter returned an error"));
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
- RPacketQoS& contextQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGPRSPckg(qosCapsGPRS);
- TExtEtelRequestStatus reqQoSProfileCaps(contextQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(reqQoSProfileCaps);
- contextQoS.GetProfileCapabilities(reqQoSProfileCaps, qosCapsGPRSPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqQoSProfileCaps, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(reqQoSProfileCaps.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosReqCapsGPRS;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosReqCapsGPRSPckg(qosReqCapsGPRS);
- FillParametersFromCapabilities(qosReqCapsGPRS, qosCapsGPRS);
- TExtEtelRequestStatus reqStatusSetProfileParams(contextQoS,EPacketQoSSetProfileParams);
- CleanupStack::PushL(reqStatusSetProfileParams);
- contextQoS.SetProfileParameters(reqStatusSetProfileParams,qosReqCapsGPRSPckg );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusSetProfileParams, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(reqStatusSetProfileParams.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // === Add media auth tokens ===
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
- RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(mediaAuth);
- TExtEtelRequestStatus requestAddMediaAuthStatus(secondaryPacketContext, EPacketAddMediaAuthorization);
- CleanupStack::PushL(requestAddMediaAuthStatus);
- // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
- CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
- secondaryPacketContext.AddMediaAuthorizationL(requestAddMediaAuthStatus, *mediaAuth);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
- ASSERT_EQUALS(requestAddMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
-
- // Post notifier for RPacketContext::NotifyStatusChange
- TExtEtelRequestStatus notifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyContextStChStatus);
- RPacketContext::TContextStatus packetContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
-
- // Activate context with RPacketContext::Activate
- TExtEtelRequestStatus contextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- secondaryPacketContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // === Check context and service statuses ===
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
- expectedPacketContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifyContextStChStatus,
- packetContextStatus,
- expectedPacketContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- RPacketContext::TContextStatus getPacketContextStatus;
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
- ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // === Remove media auth tokens ===
-
- // Remove media authorization with RPacketContext::RemoveMediaAuthorization
- TExtEtelRequestStatus requestRemoveMediaAuthStatus(secondaryPacketContext, EPacketRemoveMediaAuthorization);
- CleanupStack::PushL(requestRemoveMediaAuthStatus);
- secondaryPacketContext.RemoveMediaAuthorization(requestRemoveMediaAuthStatus, mediaAuth->iAuthorizationToken);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(requestRemoveMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::RemoveMediaAuthorization timed out"));
- ASSERT_EQUALS(requestRemoveMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::RemoveMediaAuthorization returned an error"));
-
- // === Add media auth tokens ===
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
- RPacketContext::CTFTMediaAuthorizationV3* secondMediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
- CleanupStack::PushL(secondMediaAuth);
- TExtEtelRequestStatus requestAddMediaAuthStatusNumberTwo(secondaryPacketContext, EPacketAddMediaAuthorization);
- CleanupStack::PushL(requestAddMediaAuthStatusNumberTwo);
- secondaryPacketContext.AddMediaAuthorizationL(requestAddMediaAuthStatusNumberTwo, *secondMediaAuth);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatusNumberTwo, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
- ASSERT_EQUALS(requestAddMediaAuthStatusNumberTwo.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
-
- // Modify context with RPacketContext::ModifyActiveContext
- TExtEtelRequestStatus requestModifyContext(secondaryPacketContext, EPacketContextModifyActiveContext);
- CleanupStack::PushL(requestModifyContext);
- secondaryPacketContext.ModifyActiveContext(requestModifyContext);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(requestModifyContext, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out"));
- ASSERT_EQUALS(requestModifyContext.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned an error"));
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // addFilterStatus
- // reqQoSProfileCaps
- // reqStatusSetProfileParams
- // mediaAuth
- // requestAddMediaAuthStatus
- // notifyContextStChStatus
- // contextActivateStatus
- // requestRemoveMediaAuthStatus
- // secondMediaAuth
- // requestAddMediaAuthStatusNumberTwo
- // requestModifyContext
-
- CleanupStack::PopAndDestroy(11, &addFilterStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0054::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0054");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0055::CCTSYIntegrationTestPacketContext0055(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0055::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0055::~CCTSYIntegrationTestPacketContext0055()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0055::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0055
- * @SYMFssID BA/CTSY/PKTC-0055
- * @SYMTestCaseDesc Remove media authorization with invalid identifier.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::RemoveMediaAuthorization
- * @SYMTestExpectedResults Pass - Error returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify error is returned.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a primary context.
-
- // Add a media auth token using RPacketContext::AddMediaAuthorizationL
-
- // Remove media authorization with RPacketContext::RemoveMediaAuthorization with invalid identifier in aAuthorizationToken
-
- // Check error is returned.
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0055::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0055");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0056::CCTSYIntegrationTestPacketContext0056(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0056::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0056::~CCTSYIntegrationTestPacketContext0056()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0056::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0056
- * @SYMFssID BA/CTSY/PKTC-0056
- * @SYMTestCaseDesc Activate a context and download data.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenExistingContext, RPacketContext::GetConnectionSpeed, RPacketContext::GetDataVolumeTransferred
- * @SYMTestExpectedResults Pass - Context activated. Data transferred advances.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify connection speed and volume data transferred advances realistically.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Ensure phone is attached to packet service.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // === Send and receive some data and check data transferred advances ===
-
- // Activate context with ESOCK server
- TBuf<140> host(_L("developer.symbian.com"));
- TBuf<140> page(_L("/main/downloads/papers/IMS_Introduction_Part_1.pdf"));
- CHTTPDownload *download = new (ELeave) CHTTPDownload(this);
- CleanupStack::PushL(download);
- ASSERT_TRUE(download->StartDownloadL(host,page),_L("Download Failed"));
-
- // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
- TInt nifInfoCount = 0;
- TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
- CleanupStack::PushL(nifInfoStatus);
- RPacketService::TNifInfoV2 nifInfo;
- RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
- packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
- ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with an error."));
- ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo returned invalid context name."));
- TName contextName = nifInfo.iContextName;
-
- // Open a handle on an existing context with OpenExistingContext
- RPacketContext packetContext;
- ASSERT_EQUALS(packetContext.OpenExistingContext(packetService, contextName), KErrNone, _L("RPacketContext::OpenExistingContext returned with an error."));
-
- // Check RPacketContext::GetConnectionSpeed returns aRate > 0;
- TExtEtelRequestStatus getConnectionSpeedStatus(packetContext, EPacketContextGetConnectionSpeed);
- CleanupStack::PushL(getConnectionSpeedStatus);
- TUint connectionSpeedRate;
- packetContext.GetConnectionSpeed(getConnectionSpeedStatus, connectionSpeedRate);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getConnectionSpeedStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConnectionSpeed timed out."));
- ASSERT_EQUALS(getConnectionSpeedStatus.Int(), KErrNone, _L("RPacketContext::GetConnectionSpeed returned with an error."));
- ASSERT_TRUE(connectionSpeedRate > 0, _L("RPacketContext::GetConnectionSpeed is lower than expected."));
-
- // Repeat this section until download is complete and check that iBytesSent and iBytesReceived is higher than the previous
- RPacketContext::TDataVolume dataVolume;
- TUint32 zeroBytesSent = 0;
- TUint32 zeroBytesReceived = 0;
- while(download->VerifyDownloading())
- {
- packetContext.GetDataVolumeTransferred(dataVolume);
- DEBUG_PRINTF2(_L("sent data: %d bytes"), dataVolume.iBytesSent);
- DEBUG_PRINTF2(_L("received data: %d bytes"), dataVolume.iBytesReceived);
- User::After(KOneSecond*3);
- }
-
- // Check RPacketContext::GetDataVolumeTransferred returns TDataVolume::iBytesSent is higher than the previous
- ASSERT_TRUE(dataVolume.iBytesSent > zeroBytesSent, _L("RPacketContext::GetVolumeDataTransferred returned with no increase in bytes sent."));
- // Check RPacketContext::GetDataVolumeTransferred returns TDataVolume::iBytesReceived is higher than the previous
- ASSERT_TRUE(dataVolume.iBytesReceived > zeroBytesReceived, _L("RPacketContext::GetVolumeDataTransferred returned with no increase in bytes received."));
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // pop
- // download
- // nifInfoStatus
- // getConnectionSpeedStatus
- CleanupStack::PopAndDestroy(3, download);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0056::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0056");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0057::CCTSYIntegrationTestPacketContext0057(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0057::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0057::~CCTSYIntegrationTestPacketContext0057()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0057::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0057
- * @SYMFssID BA/CTSY/PKTC-0057
- * @SYMTestCaseDesc Download data with a primary context and a secondary context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::GetConnectionSpeed, RPacketContext::NotifyConnectionSpeedChange, RPacketContext::NotifyDataTransferred, RPacketContext::GetDataVolumeTransferred, RPacketContext::LoanCommPort, RPacketContext::RecoverCommPort, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileCapabilities, RPacketQoS::OpenNewQoS, RPacketContext::AddPacketFilter
- * @SYMTestExpectedResults Pass - Context activated. Data transferred advances.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify connection speed and volume data transferred advances realistically.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-/*
-
- // Ensure phone is attached to packet service.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Post notification for service's status change
- TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStChStatus);
- RPacketService::TStatus packetServiceStatus;
- packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
-
- // === Activate a primary context ===
-
- // Open a new primary context
- // Set a valid context config using RPacketContext::SetConfig
-
- // Activate context with ESOCK server
- TBuf<140> host(_L("developer.symbian.com"));
- TBuf<140> page(_L("/main/downloads/papers/IMS_Introduction_Part_1.pdf"));
- CHTTPDownload* download = new (ELeave) CHTTPDownload(this);
- CleanupStack::PushL(download);
- ASSERT_TRUE(download->StartDownloadL(host,page),_L("Download Failed"));
-
- // Get context info
- TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
- CleanupStack::PushL(getContextInfo);
- RPacketService::TContextInfo contextInfo;
- TInt index = 0;
- packetService.GetContextInfo(getContextInfo, index, contextInfo);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
- ASSERT_EQUALS(getContextInfo.Int(), KErrNone, _L("RPacketService::GetContextInfo returned an error"));
- ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
-
- // Open a handle on an existing context with OpenExistingContext
- RPacketContext primaryPacketContext;
- ASSERT_EQUALS(primaryPacketContext.OpenExistingContext(packetService, contextInfo.iName), KErrNone, _L("RPacketContext::OpenExistingContext returned with an error."));
-
- // Post notification for RPacketContext::NotifyDataTransferred
- ERR_PRINTF1(_L("<font color=Orange>@CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out."));
- //TExtEtelRequestStatus notifyDataTransferredStatus(primaryPacketContext, EPacketContextNotifyDataTransferred);
- //CleanupStack::PushL(notifyDataTransferredStatus);
- //RPacketContext::TDataVolume primaryDataVolume;
- //primaryPacketContext.NotifyDataTransferred(notifyDataTransferredStatus, primaryDataVolume);
-
- // Check RPacketService::NotifyStatusChange completes with EStatusActive
- RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- packetService,
- notifyServiceStChStatus,
- packetServiceStatus,
- expectedPacketServiceStatus,
- KErrNone);
-
- // Check RPacketService::GetStatus returns EStatusActive
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
-
- // Check RPacketContext::GetStatus returns EStatusActive
- RPacketContext::TContextStatus packetContextStatus;
- ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
-
- // Post notification for the RPacketContext::NotifyConnectionSpeedChange
- TExtEtelRequestStatus notifyConnectionSpeedChangeStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifyConnectionSpeedChangeStatus);
- TUint rate(0);
- primaryPacketContext.NotifyConnectionSpeedChange(notifyConnectionSpeedChangeStatus, rate);
-
- // === Activate a secondary context ===
-
- // Activate secondary context with ESOCK server
- TBuf<140> subHost(_L("developer.symbian.com"));
- TBuf<140> subPage(_L("/main/downloads/papers/SymbianOSv91/Whats_new_in_Symbian_OS_v9.1.pdf"));
- TInt port = 80;
- CHTTPDownload* downloadSecondary = new (ELeave) CHTTPDownload(this);
- CleanupStack::PushL(downloadSecondary);
- // ASSERT_TRUE(downloadSecondary->StartDownloadL(subHost, subPage, port, ETrue), _L("Download Failed"));
- ASSERT_TRUE(downloadSecondary->StartDownloadL(subHost, subPage, port), _L("Download Failed"));
-
-
- // Get secondary context info
- index = 1;
- packetService.GetContextInfo(getContextInfo, index, contextInfo);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
- ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
-
- // Open a handle on an existing secondary context with OpenExistingContext
- RPacketContext secondaryPacketContext;
- ASSERT_EQUALS(secondaryPacketContext.OpenExistingContext(packetService, contextInfo.iName), KErrNone, _L("RPacketContext::OpenExistingContext returned with an error."));
-
- // Post notification for RPacketContext::NotifyDataTransferred
- ERR_PRINTF1(_L("<font color=Orange>@CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out."));
- //TExtEtelRequestStatus notifySecDataTransferredStatus(secondaryPacketContext, EPacketContextNotifyDataTransferred);
- //CleanupStack::PushL(notifySecDataTransferredStatus);
- //RPacketContext::TDataVolume secondaryDataVolume;
- //secondaryPacketContext.NotifyDataTransferred(notifySecDataTransferredStatus, secondaryDataVolume);
-
- // Post notification for the secondary context connection speed change
- TExtEtelRequestStatus notifySecConnectionSpeedChangeStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecConnectionSpeedChangeStatus);
- TUint secRate(0);
- secondaryPacketContext.NotifyConnectionSpeedChange(notifyConnectionSpeedChangeStatus, secRate);
-
- // === Add packet filter ===
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
- ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext,1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
- TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
- CleanupStack::PushL(getProfileCapStatus);
- RPacketQoS::TQoSCapsGPRS qosCapGprs;
- TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
- packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
- ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Post notification for context's status change
- TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
- CleanupStack::PushL(notifySecContextStChStatus);
- RPacketContext::TContextStatus secPacketContextStatus;
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
-
- // Activate context with RPacketContext::Activate
- TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(secContextActivateStatus);
- secondaryPacketContext.Activate(secContextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
- RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
- expectedSecContextStatus = RPacketContext::EStatusActive;
- iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
- secondaryPacketContext,
- notifySecContextStChStatus,
- secPacketContextStatus,
- expectedSecContextStatus,
- KErrNone);
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
- ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
- ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("Packet Context's status expected to be EStatusActive but is not."));
-
- // Loan comm port to the client with RPacketContext::LoanCommPort
-
- // === Send and receive some data and check data transferred advances ===
-
- // Send some data and receive some data to which would go to the primary and the secondary context depending on packet filter values
-
- // Check RPacketContext::NotifyDataTransferred for primary context completes with TDataVolume::iBytesSent > 0
- // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
- //ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyDataTransferredStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyDataTransferred did not complete."));
- //ASSERT_EQUALS(notifyDataTransferredStatus.Int(), KErrNone, _L("RPacketContext::NotifyDataTransferred returned with error status."));
- //ASSERT_TRUE(primaryDataVolume.iBytesSent > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesSent."));
-
- // Check RPacketContext::NotifyDataTransferred for primary context completes with TDataVolume::iBytesReceived > 0
- // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
- //ASSERT_TRUE(primaryDataVolume.iBytesReceived > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesReceived."));
-
- // Check RPacketContext::GetConnectionSpeed for primary context returns aRate > 0
- TExtEtelRequestStatus getConnectionSpeedStatus(primaryPacketContext, EPacketContextGetConnectionSpeed);
- CleanupStack::PushL(getConnectionSpeedStatus);
- TUint connectionSpeedRate;
- primaryPacketContext.GetConnectionSpeed(getConnectionSpeedStatus, connectionSpeedRate);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getConnectionSpeedStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConnectionSpeed timed out."));
- ASSERT_EQUALS(getConnectionSpeedStatus.Int(), KErrNone, _L("RPacketContext::GetConnectionSpeed failed."));
- ASSERT_TRUE(connectionSpeedRate > 0, _L("RPacketContext::GetConnectionSpeed is lower than expected."));
-
- // Check RPacketContext::NotifyConnectionSpeedChange for primary context returns aRate > 0
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyConnectionSpeedChangeStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange timed out."));
- ASSERT_EQUALS(notifyConnectionSpeedChangeStatus.Int(), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange failed."));
- ASSERT_TRUE(rate > 0, _L("RPacketContext::NotifyConnectionSpeedChange returns aRate = 0."));
-
- // Check RPacketContext::NotifyDataTransferred for secondary context completes with TDataVolume::iBytesSent > 0
- // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
- //ASSERT_EQUALS(WaitForRequestWithTimeOut(notifySecDataTransferredStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyDataTransferred did not complete."));
- //ASSERT_EQUALS(notifySecDataTransferredStatus.Int(), KErrNone, _L("RPacketContext::NotifyDataTransferred returned with error status."));
- //ASSERT_TRUE(secondaryDataVolume.iBytesSent > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesSent."));
-
- // Check RPacketContext::NotifyDataTransferred for secondary context completes with TDataVolume::iBytesReceived > 0
- // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
- //ASSERT_TRUE(secondaryDataVolume.iBytesReceived > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesReceived."));
-
- // Check RPacketContext::GetConnectionSpeed for secondary context returns aRate > 0
- TExtEtelRequestStatus getSecConnectionSpeedStatus(secondaryPacketContext, EPacketContextGetConnectionSpeed);
- CleanupStack::PushL(getSecConnectionSpeedStatus);
- secondaryPacketContext.GetConnectionSpeed(getSecConnectionSpeedStatus, connectionSpeedRate);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getSecConnectionSpeedStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConnectionSpeed timed out."));
- ASSERT_EQUALS(getSecConnectionSpeedStatus.Int(), KErrNone, _L("RPacketContext::GetConnectionSpeed failed."));
- ASSERT_TRUE(connectionSpeedRate > 0, _L("RPacketContext::GetConnectionSpeed is lower than expected."));
-
- // Check RPacketContext::NotifyConnectionSpeedChange for secondary context returns aRate > 0
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifySecConnectionSpeedChangeStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange timed out."));
- ASSERT_EQUALS(notifySecConnectionSpeedChangeStatus.Int(), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange failed."));
- ASSERT_TRUE(secRate > 0, _L("RPacketContext::NotifyConnectionSpeedChange returns aRate = 0."));
-
- // Repeat this section 10 times and check that iBytesSent and iBytesReceived is higher than the previous
- RPacketContext::TDataVolume priDataVolume;
- RPacketContext::TDataVolume secDataVolume;
- TUint32 primaryLastBytesSent(0);
- TUint32 primaryLastBytesReceived(0);
- TUint32 secondaryLastBytesSent(0);
- TUint32 secondaryLastBytesReceived(0);
-
- while(download->VerifyDownloading())
- {
- // Check RPacketContext::GetDataVolumeTransferred for primary context returns TDataVolume::iBytesSent is higher than the previous
- primaryPacketContext.GetDataVolumeTransferred(priDataVolume);
- ASSERT_TRUE(priDataVolume.iBytesSent > primaryLastBytesSent, _L("Primary packet context iBytesSend value is not higher than the previous iBytesSend value"));
- primaryLastBytesSent = priDataVolume.iBytesSent;
-
- // Check RPacketContext::GetDataVolumeTransferred for primary context returns TDataVolume::iBytesReceived is higher than the previous
- ASSERT_TRUE(priDataVolume.iBytesReceived > primaryLastBytesReceived, _L("Primary packet context iBytesReceived value is not higher than the previous iBytesReceived value"));
- primaryLastBytesReceived = priDataVolume.iBytesReceived;
-
- // Check RPacketContext::GetDataVolumeTransferred for secondary context returns TDataVolume::iBytesSent is higher than the previous
- secondaryPacketContext.GetDataVolumeTransferred(secDataVolume);
- ASSERT_TRUE(secDataVolume.iBytesSent > secondaryLastBytesSent, _L("Secondary packet context iBytesSend value is not higher than the previous iBytesSend value"));
- secondaryLastBytesSent = secDataVolume.iBytesSent;
-
- // Check RPacketContext::GetDataVolumeTransferred for secondary context returns TDataVolume::iBytesReceived is higher than the previous
- ASSERT_TRUE(secDataVolume.iBytesReceived > secondaryLastBytesReceived, _L("Secondary packet context iBytesReceived value is not higher than the previous iBytesReceived value"));
- secondaryLastBytesReceived = secDataVolume.iBytesReceived;
-
- DEBUG_PRINTF2(_L("Primary context sent data: %d bytes"), primaryLastBytesSent);
- DEBUG_PRINTF2(_L("Primary context received data: %d bytes"), primaryLastBytesReceived);
- DEBUG_PRINTF2(_L("Secondary context sent data: %d bytes"), secondaryLastBytesSent);
- DEBUG_PRINTF2(_L("Secondary context received data: %d bytes"), secondaryLastBytesReceived);
- User::After(KOneSecond*3);
- }
-
- // Release QoS
- iEtelSessionMgr.ReleaseSecondaryPacketContextQoS(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Release packet contexts
- iEtelSessionMgr.ReleaseSecondaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1,
- KSecondaryPacketContext1);
-
- // Release primary packet context
- iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // notifyServiceStChStatus
- // download
- // getContextInfo
- // notifyDataTransferredStatus (@CTSYProblem, commented out)
- // notifyConnectionSpeedChangeStatus
- // downloadSecondary
- // notifySecDataTransferredStatus (@CTSYProblem, commented out)
- // notifySecConnectionSpeedChangeStatus
- // getProfileCapStatus
- // setProfileParamStatus
- // notifySecContextStChStatus
- // secContextActivateStatus
- // getConnectionSpeedStatus
- // getSecConnectionSpeedStatus
- CleanupStack::PopAndDestroy(12, ¬ifyServiceStChStatus);
-*/
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0057::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0057");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0058::CCTSYIntegrationTestPacketContext0058(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0058::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0058::~CCTSYIntegrationTestPacketContext0058()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0058::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0058
- * @SYMFssID BA/CTSY/PKTC-0058
- * @SYMTestCaseDesc Activate a PDP context with the requested QOS equal to the subscribed QoS.
- * @SYMTestPriority High
- * @SYMTestActions RPacketQoS::NotifyProfileChanged, RPacketQoS::GetProfileParameters, RPacketContext::SetConfig, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileCapabilities
- * @SYMTestExpectedResults Pass - A PDP context with subscribed QoS could be activated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify negotiated QoS same as that requested.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
-
- // == Activate a PDP context with the requested QOS equal to the subscribed QoS ==
- DEBUG_PRINTF1(_L("== GPRS =="));
- DoTest0058L(apn, user, pwd, EQoSGPRS);
-
- // === Repeat test for R99_R4 ===
- // Repeat test with TQoSCapsR99_R4 instead of TQoSCapsGPRS, TQoSR99_R4Requested instead of TQoSGPRSRequested and TQoSR99_R4Negotiated instead of TQoSGPRSNegotiated
- DEBUG_PRINTF1(_L("== R99_R4 =="));
- DoTest0058L(apn, user, pwd, EQoSR4);
-
- // === Repeat test for R5 ===
- // Repeat test with TQoSCapsR5 instead of TQoSCapsGPRS, TQoSR5Requested instead of TQoSGPRSRequested, and TQoSR5Negotiated instead of TQoSGPRSNegotiated
- DEBUG_PRINTF1(_L("== R5 =="));
- DoTest0058L(apn, user, pwd, EQoSR5);
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // getNetworkStatus
- CleanupStack::PopAndDestroy(1, &getNetworkStatus);
-
- return TestStepResult();
- }
-
-
-
-
-void CCTSYIntegrationTestPacketContext0058::DoTest0058L(TPtrC& aApn, TPtrC& aUser, TPtrC& aPwd, TInt aQoSCapType)
-/**
- * Activate a PDP context with the requested QOS equal to the subscribed QoS.
- * @param aNWType Gprs / R99_R4 / R5.
- */
- {
-
- // Open a new primary context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Open a new primary context QoS
- RPacketQoS& contextQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Get the QoS profile capabilities with RPacketQoS::GetProfileCapabilities with aProfileCaps of type TQoSCapsGPRS/TQoSCapsR99_R4/TQoSCapsR5.
- RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
- RPacketQoS::TQoSCapsR99_R4 qosCapsR99;
- RPacketQoS::TQoSCapsR5 qosCapsR5;
-
- switch(aQoSCapType)
- {
- case EQoSGPRS:
- GetProfileCapsL(contextQoS, qosCapsGPRS);
- break;
-
- case EQoSR4:
- GetProfileCapsL(contextQoS, qosCapsR99);
- break;
-
- case EQoSR5:
- GetProfileCapsL(contextQoS, qosCapsR5);
- break;
- }
-
- // Set the minimum requested QoS profile parameters to lower than what was returned from GetProfileCapabilities using RPacketQoS::SetProfileParameters
- // with aProfile of type TQoSGPRSRequested/TQoSR99_R4Requested/TQoSR5Requested.
- // Set all iMin... to a lower value than that returned by GetProfileCapabilities and all iReq... to the same value as that returned by GetProfileCapabilities.
- TExtEtelRequestStatus setProfileParametersStatus(contextQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParametersStatus);
- RPacketQoS::TQoSGPRSRequested qoSGPRSRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qoSGPRSRequestedPkg(qoSGPRSRequested);
- RPacketQoS::TQoSR99_R4Requested qoSR99Requested;
- TPckg<RPacketQoS::TQoSR99_R4Requested> qoSR99RequestedPkg(qoSR99Requested);
- RPacketQoS::TQoSR5Requested qoSR5Requested;
- TPckg<RPacketQoS::TQoSR5Requested> qoSR5RequestedPkg(qoSR5Requested);
- RPacketQoS::TBitRate bitRate;
- bitRate.iDownlinkRate = 0;
- bitRate.iUplinkRate = 0;
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- qoSGPRSRequested.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
- qoSGPRSRequested.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
- qoSGPRSRequested.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
- qoSGPRSRequested.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
- qoSGPRSRequested.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
-
- qoSGPRSRequested.iReqDelay = RPacketQoS::EDelayClass3;
- qoSGPRSRequested.iReqMeanThroughput = RPacketQoS::EMeanThroughputBestEffort;
- qoSGPRSRequested.iReqPeakThroughput = RPacketQoS::EPeakThroughput8000;
- qoSGPRSRequested.iReqPrecedence = RPacketQoS::EPriorityMediumPrecedence;
- qoSGPRSRequested.iReqReliability = RPacketQoS::EReliabilityClass3;
- contextQoS.SetProfileParameters(setProfileParametersStatus ,qoSGPRSRequestedPkg);
- break;
-
- case EQoSR4: // R99_R4
- qoSR99Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
- qoSR99Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
- qoSR99Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
- qoSR99Requested.iMinAcceptableMaxSDUSize = 10;
- qoSR99Requested.iMinAcceptableMaxRate = bitRate;
- qoSR99Requested.iMaxBER = RPacketQoS::EBERUnspecified;
- qoSR99Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
- qoSR99Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- qoSR99Requested.iMaxTransferDelay = 4000;
- qoSR99Requested.iMinGuaranteedRate = bitRate;
-
- qoSR99Requested.iReqTrafficClass = RPacketQoS::ETrafficClassInteractive;
- qoSR99Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
- qoSR99Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
- qoSR99Requested.iReqMaxSDUSize = 1500;
- bitRate.iDownlinkRate = 104;
- bitRate.iUplinkRate = 104;
- qoSR99Requested.iReqMaxRate = bitRate;
- qoSR99Requested.iReqBER = RPacketQoS::EBERFourPerThousand;
- qoSR99Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerThousand;
- qoSR99Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
- qoSR99Requested.iReqTransferDelay = 1600;
- bitRate.iDownlinkRate = 10;
- bitRate.iUplinkRate = 10;
- qoSR99Requested.iReqGuaranteedRate = bitRate;
- contextQoS.SetProfileParameters(setProfileParametersStatus ,qoSR99RequestedPkg);
- break;
-
- case EQoSR5: // R5
- qoSR5Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
- qoSR5Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
- qoSR5Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
- qoSR5Requested.iMinAcceptableMaxSDUSize = 10;
- qoSR5Requested.iMinAcceptableMaxRate = bitRate;
- qoSR5Requested.iMaxBER = RPacketQoS::EBERUnspecified;
- qoSR5Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
- qoSR5Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- qoSR5Requested.iMaxTransferDelay = 0;
- qoSR5Requested.iMinGuaranteedRate = bitRate;
-
- qoSR5Requested.iReqTrafficClass = RPacketQoS::ETrafficClassInteractive;
- qoSR5Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
- qoSR5Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
- qoSR5Requested.iReqMaxSDUSize = 1500;
- bitRate.iDownlinkRate = 64;
- bitRate.iUplinkRate = 16;
- qoSR5Requested.iReqMaxRate = bitRate;
- qoSR5Requested.iReqBER = RPacketQoS::EBERFourPerThousand;
- qoSR5Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerTenThousand;
- qoSR5Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
- qoSR5Requested.iReqTransferDelay = 1600;
- qoSR5Requested.iReqGuaranteedRate = bitRate;
- qoSR5Requested.iSignallingIndication = qosCapsR5.iSignallingIndication;
- qoSR5Requested.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
- contextQoS.SetProfileParameters(setProfileParametersStatus ,qoSR5RequestedPkg);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::SetProfileParameters timed out"));
- ASSERT_EQUALS(setProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with an error"));
-
- // Set the context config with RPacketContext::SetConfig
- TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
- RPacketContext::TContextConfigGPRS setConfigGprs;
- TPckg<RPacketContext::TContextConfigGPRS> setConfigPkgGprs(setConfigGprs);
- RPacketContext::TContextConfigR99_R4 setConfigR99;
- TPckg<RPacketContext::TContextConfigR99_R4> setConfigPkgR99(setConfigR99);
- RPacketContext::TContextConfig_R5 setConfigR5;
- TPckg<RPacketContext::TContextConfig_R5> setConfigPkgR5(setConfigR5);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- setConfigGprs.iAccessPointName.Copy(aApn);
- setConfigGprs.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigGprs.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgGprs);
- break;
-
- case EQoSR4: // R99_R4
- setConfigR99.iAccessPointName.Copy(aApn);
- setConfigR99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigR99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR99);
- break;
-
- case EQoSR5: // R5
- setConfigR5.iAccessPointName.Copy(aApn);
- setConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR5);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with an error"));
-
- // Post notification for RPacketQoS::NotifyProfileChanged
- TExtEtelRequestStatus notifyProfileChangedStatus(contextQoS, EPacketQoSNotifyProfileChanged);
- CleanupStack::PushL(notifyProfileChangedStatus);
- RPacketQoS::TQoSGPRSNegotiated qoSGPRSNegotiated;
- TPckg<RPacketQoS::TQoSGPRSNegotiated> qoSGPRSNegotiatedPkg(qoSGPRSNegotiated);
- RPacketQoS::TQoSR99_R4Negotiated qoSR99Negotiated;
- TPckg<RPacketQoS::TQoSR99_R4Negotiated> qoSR99NegotiatedPkg(qoSR99Negotiated);
- RPacketQoS::TQoSR5Negotiated qoSR5Negotiated;
- TPckg<RPacketQoS::TQoSR5Negotiated> qoSR5NegotiatedPkg(qoSR5Negotiated);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- contextQoS.NotifyProfileChanged(notifyProfileChangedStatus, qoSGPRSNegotiatedPkg);
- break;
-
- case EQoSR4: // R99_R4
- contextQoS.NotifyProfileChanged(notifyProfileChangedStatus, qoSR99NegotiatedPkg);
- break;
-
- case EQoSR5: // R5
- contextQoS.NotifyProfileChanged(notifyProfileChangedStatus, qoSR5NegotiatedPkg);
- break;
- }
-
- // Activate the primary context with RPacketContext::Activate.
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketQoS::NotifyProfileChanged returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with same as the requested values used in SetProfileParameters.
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyProfileChangedStatus, ETimeLong), KErrNone, _L("RPacketQoS::NotifyProfileChanged timed out"));
- ASSERT_EQUALS(notifyProfileChangedStatus.Int(), KErrNone, _L("RPacketQoS::NotifyProfileChanged returned with error status."));
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- ASSERT_EQUALS(qoSGPRSNegotiated.iDelay, qoSGPRSRequested.iReqDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iDelay as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iMeanThroughput, qoSGPRSRequested.iReqMeanThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iMeanThroughput as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iPeakThroughput, qoSGPRSRequested.iReqPeakThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iPeakThroughput as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iPrecedence, qoSGPRSRequested.iReqPrecedence, _L("RPacketQoS::NotifyProfileChanged did not return with same iPrecedence as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iReliability, qoSGPRSRequested.iReqReliability, _L("RPacketQoS::NotifyProfileChanged did not return with same iReliability as used in SetProfileParameters"));
- break;
-
- case EQoSR4: // R99_R4
- ASSERT_EQUALS(qoSR99Negotiated.iTrafficClass, qoSR99Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficClass as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iDeliveryOrderReqd, qoSR99Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iDeliverErroneousSDU, qoSR99Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iMaxSDUSize, qoSR99Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxSDUSize as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iDownlinkRate, qoSR99Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iUplinkRate, qoSR99Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iBER, qoSR99Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return with same iBER as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iSDUErrorRatio, qoSR99Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return with same iSDUErrorRatio as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iTrafficHandlingPriority, qoSR99Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iTransferDelay, qoSR99Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iTransferDelay as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iDownlinkRate, qoSR99Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iUplinkRate, qoSR99Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
- break;
-
- case EQoSR5: // R5
- ASSERT_EQUALS(qoSR5Negotiated.iTrafficClass, qoSR5Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficClass as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iDeliveryOrderReqd, qoSR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iDeliverErroneousSDU, qoSR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iMaxSDUSize, qoSR5Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxSDUSize as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iDownlinkRate, qoSR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iUplinkRate, qoSR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iBER, qoSR5Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return with same iBER as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iSDUErrorRatio, qoSR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return with same iSDUErrorRatio as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iTrafficHandlingPriority, qoSR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iTransferDelay, qoSR5Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iTransferDelay as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iDownlinkRate, qoSR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iUplinkRate, qoSR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iSignallingIndication, qoSR5Requested.iSignallingIndication, _L("RPacketQoS::NotifyProfileChanged did not return with same iSignallingIndication as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iSourceStatisticsDescriptor, qoSR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::NotifyProfileChanged did not return with same iSourceStatisticsDescriptor as used in SetProfileParameters"));
- break;
- }
-
- // Check RPacketQoS::GetProfileParameters returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with same as the requested values used in SetProfileParameters.
- TExtEtelRequestStatus getProfileParametersStatus(contextQoS, EPacketQoSGetProfileParams);
- CleanupStack::PushL(getProfileParametersStatus);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- contextQoS.GetProfileParameters(getProfileParametersStatus, qoSGPRSNegotiatedPkg);
- break;
-
- case EQoSR4: // R99_R4
- contextQoS.GetProfileParameters(getProfileParametersStatus, qoSR99NegotiatedPkg);
- break;
-
- case EQoSR5: // R5
- contextQoS.GetProfileParameters(getProfileParametersStatus, qoSR5NegotiatedPkg);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
- ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- ASSERT_EQUALS(qoSGPRSNegotiated.iDelay, qoSGPRSRequested.iReqDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iDelay as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iMeanThroughput, qoSGPRSRequested.iReqMeanThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iMeanThroughput as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iPeakThroughput, qoSGPRSRequested.iReqPeakThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iPeakThroughput as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iPrecedence, qoSGPRSRequested.iReqPrecedence, _L("RPacketQoS::NotifyProfileChanged did not return with same iPrecedence as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSGPRSNegotiated.iReliability, qoSGPRSRequested.iReqReliability, _L("RPacketQoS::NotifyProfileChanged did not return with same iReliability as used in SetProfileParameters"));
- break;
-
- case EQoSR4: // R99_R4
- ASSERT_EQUALS(qoSR99Negotiated.iTrafficClass, qoSR99Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficClass as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iDeliveryOrderReqd, qoSR99Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iDeliverErroneousSDU, qoSR99Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iMaxSDUSize, qoSR99Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return with same iMaxSDUSize as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iDownlinkRate, qoSR99Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iUplinkRate, qoSR99Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iBER, qoSR99Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return with same iBER as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iSDUErrorRatio, qoSR99Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return with same iSDUErrorRatio as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iTrafficHandlingPriority, qoSR99Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iTransferDelay, qoSR99Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return with same iTransferDelay as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iDownlinkRate, qoSR99Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iUplinkRate,qoSR99Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
- break;
-
- case EQoSR5: // R5
- ASSERT_EQUALS(qoSR5Negotiated.iTrafficClass, qoSR5Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficClass as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iDeliveryOrderReqd, qoSR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iDeliverErroneousSDU, qoSR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iMaxSDUSize, qoSR5Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return with same iMaxSDUSize as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iDownlinkRate, qoSR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iUplinkRate, qoSR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iBER, qoSR5Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return with same iBER as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iSDUErrorRatio, qoSR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return with same iSDUErrorRatio as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iTrafficHandlingPriority, qoSR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iTransferDelay, qoSR5Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return with same iTransferDelay as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iDownlinkRate, qoSR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iUplinkRate, qoSR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iSignallingIndication, qoSR5Requested.iSignallingIndication, _L("RPacketQoS::GetProfileParameters did not return with same iSignallingIndication as used in SetProfileParameters"));
- ASSERT_EQUALS(qoSR5Negotiated.iSourceStatisticsDescriptor, qoSR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::GetProfileParameters did not return with same iSourceStatisticsDescriptor as used in SetProfileParameters"));
- break;
- }
-
- // Release primary packet context QoS
- iEtelSessionMgr.ReleasePrimaryPacketContextQoS(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Release primary packet context
- iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Pop
- // setProfileParametersStatus
- // setConfigStatus
- // notifyProfileChangedStatus
- // contextActivateStatus
- // getProfileParametersStatus
- CleanupStack::PopAndDestroy(5, &setProfileParametersStatus);
-
- }
-
-
-TPtrC CCTSYIntegrationTestPacketContext0058::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0058");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0059::CCTSYIntegrationTestPacketContext0059(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0059::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0059::~CCTSYIntegrationTestPacketContext0059()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0059::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0059
- * @SYMFssID BA/CTSY/PKTC-0059
- * @SYMTestCaseDesc Activate a PDP context with requested QoS is better than subscriber QoS (success scenario).
- * @SYMTestPriority High
- * @SYMTestActions RPacketQoS::NotifyProfileChanged, RPacketQoS::GetProfileParameters, RPacketContext::SetConfig, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileCapabilities
- * @SYMTestExpectedResults Pass - A PDP context with subscribed QoS could be activated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify negotiated QoS same as that requested.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
-
- // == Activate a PDP context with the requested QoS better than subscribed QoS ==
- DEBUG_PRINTF1(_L("== GPRS =="));
- DoTest0059L(apn, user, pwd, EQoSGPRS);
-
- // === Repeat test for R99_R4 ===
- // Repeat test with TQoSCapsR99_R4 instead of TQoSCapsGPRS, TQoSR99_R4Requested instead of TQoSGPRSRequested and TQoSR99_R4Negotiated instead of TQoSGPRSNegotiated
- DEBUG_PRINTF1(_L("== R99_R4 =="));
- DoTest0059L(apn, user, pwd, EQoSR4);
-
- // === Repeat test for R5 ===
- // Repeat test with TQoSCapsR5 instead of TQoSCapsGPRS, TQoSR5Requested instead of TQoSGPRSRequested, and TQoSR5Negotiated instead of TQoSGPRSNegotiated
- DEBUG_PRINTF1(_L("== R5 =="));
- DoTest0059L(apn, user, pwd, EQoSR5);
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- //PopAndDestroy
- //getNetWorkStatus
- CleanupStack::PopAndDestroy(1, &getNetworkStatus);
-
- return TestStepResult();
- }
-
-void CCTSYIntegrationTestPacketContext0059::DoTest0059L(TPtrC& aApn, TPtrC& aUser, TPtrC& aPwd, TInt aQoSCapType)
- {
- /**
- * Activate a PDP context with the requested QOS better to the subscribed QoS.
- * @param aQoSCapType Gprs / R99_R4 / R5.
- */
-
- // Open a new primary context.
- RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- //Open a new QoS
- RPacketQoS& contextQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- //Get the QoS profile capabilities with RPacketQoS::GetProfileCapabilities with aProfileCaps of type TQoSCapsGPRS/TQoSCapsR99_R4/TQoSCapsR5
- RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
- RPacketQoS::TQoSCapsR99_R4 qosCapsR99;
- RPacketQoS::TQoSCapsR5 qosCapsR5;
-
- switch(aQoSCapType)
- {
- case EQoSGPRS:
- GetProfileCapsL(contextQoS, qosCapsGPRS);
- break;
-
- case EQoSR4:
- GetProfileCapsL(contextQoS, qosCapsR99);
- break;
-
- case EQoSR5:
- GetProfileCapsL(contextQoS, qosCapsR5);
- break;
- }
-
- RPacketQoS::TQoSGPRSRequested qosReqCapsGPRS;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosReqCapsGPRSPckg(qosReqCapsGPRS);
- RPacketQoS::TQoSR99_R4Requested qosReqCapsR99;
- TPckg<RPacketQoS::TQoSR99_R4Requested> qosReqCapsR99Pckg(qosReqCapsR99);
- RPacketQoS::TQoSR5Requested qosReqCapsR5;
- TPckg<RPacketQoS::TQoSR5Requested> qosReqCapsR5Pckg(qosReqCapsR5);
-
- // Set the minimum requested QoS profile parameters to contain lower(worse) values than those that were returned from GetProfileCapabilities by using SetProfileParameters
- //with aProfile of type TQoSGPRSRequested/TQoSR99_R4Requested/TQoSR5Requested.
- switch(aQoSCapType)
- {
-
- case EQoSGPRS:
- //Min caps
- qosReqCapsGPRS.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
- qosReqCapsGPRS.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
- qosReqCapsGPRS.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
- qosReqCapsGPRS.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
- qosReqCapsGPRS.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
-
- //Req caps
- qosReqCapsGPRS.iReqDelay = RPacketQoS::EDelayClass4;
- qosReqCapsGPRS.iReqMeanThroughput = RPacketQoS::EMeanThroughput100;
- qosReqCapsGPRS.iReqPeakThroughput = RPacketQoS::EPeakThroughput1000;
- qosReqCapsGPRS.iReqPrecedence = RPacketQoS::EPriorityLowPrecedence;
- qosReqCapsGPRS.iReqReliability = RPacketQoS::EReliabilityClass1;
- break;
-
- case EQoSR4:
- //min values
- qosReqCapsR99.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
- qosReqCapsR99.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
- qosReqCapsR99.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
- qosReqCapsR99.iMinAcceptableMaxSDUSize = 1000;
- qosReqCapsR99.iMinAcceptableMaxRate.iDownlinkRate = 0;
- qosReqCapsR99.iMinAcceptableMaxRate.iUplinkRate = 0;
- qosReqCapsR99.iMaxBER = RPacketQoS::EBERUnspecified;
- qosReqCapsR99.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
- qosReqCapsR99.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- qosReqCapsR99.iMaxTransferDelay = 4000;
- qosReqCapsR99.iMinGuaranteedRate.iDownlinkRate = 1;
- qosReqCapsR99.iMinGuaranteedRate.iUplinkRate = 1;
-
- //req values
- qosReqCapsR99.iReqTrafficClass = RPacketQoS::ETrafficClassConversational;
- qosReqCapsR99.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
- qosReqCapsR99.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
- qosReqCapsR99.iReqMaxSDUSize = 1500;
- qosReqCapsR99.iReqMaxRate.iDownlinkRate = 16;
- qosReqCapsR99.iReqMaxRate.iUplinkRate = 16;
- qosReqCapsR99.iReqBER = RPacketQoS::EBERFourPerThousand;
- qosReqCapsR99.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerThousand;
- qosReqCapsR99.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
- qosReqCapsR99.iReqTransferDelay = 1000;
- qosReqCapsR99.iReqGuaranteedRate.iDownlinkRate = 16;
- qosReqCapsR99.iReqGuaranteedRate.iUplinkRate = 16;
- break;
-
- case EQoSR5:
- //min values
- qosReqCapsR5.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
- qosReqCapsR5.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
- qosReqCapsR5.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
- qosReqCapsR5.iMinAcceptableMaxSDUSize = 1000;
- qosReqCapsR5.iMinAcceptableMaxRate.iDownlinkRate = 0;
- qosReqCapsR5.iMinAcceptableMaxRate.iUplinkRate = 0;
- qosReqCapsR5.iMaxBER = RPacketQoS::EBERUnspecified;
- qosReqCapsR5.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
- qosReqCapsR5.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- qosReqCapsR5.iMaxTransferDelay = 4000;
- qosReqCapsR5.iMinGuaranteedRate.iDownlinkRate = 1;
- qosReqCapsR5.iMinGuaranteedRate.iUplinkRate = 1;
-
- //req values
- qosReqCapsR5.iReqTrafficClass = RPacketQoS::ETrafficClassInteractive;
- qosReqCapsR5.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
- qosReqCapsR5.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryRequired;
- qosReqCapsR5.iReqMaxSDUSize = 1500;
- qosReqCapsR5.iReqMaxRate.iDownlinkRate = 16;
- qosReqCapsR5.iReqMaxRate.iUplinkRate = 16;
- qosReqCapsR5.iReqBER = RPacketQoS::EBERFivePerHundred;
- qosReqCapsR5.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
- qosReqCapsR5.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- qosReqCapsR5.iReqTransferDelay = 1000;
- qosReqCapsR5.iReqGuaranteedRate.iDownlinkRate = 16;
- qosReqCapsR5.iReqGuaranteedRate.iUplinkRate = 16;
- qosReqCapsR5.iSignallingIndication = EFalse;
- qosReqCapsR5.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
- break;
-
- }
-
- //Set profile parameters
- TExtEtelRequestStatus reqStatusSetProfileParams(contextQoS,EPacketQoSSetProfileParams);
- CleanupStack::PushL(reqStatusSetProfileParams);
-
- switch(aQoSCapType)
- {
-
- case EQoSGPRS:
- contextQoS.SetProfileParameters(reqStatusSetProfileParams,qosReqCapsGPRSPckg );
- break;
-
- case EQoSR4:
- contextQoS.SetProfileParameters(reqStatusSetProfileParams, qosReqCapsR99Pckg);
- break;
-
- case EQoSR5:
- contextQoS.SetProfileParameters(reqStatusSetProfileParams, qosReqCapsR5Pckg);
- break;
-
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusSetProfileParams, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(reqStatusSetProfileParams.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- //post notifier for NotifyProfileChanged
- TExtEtelRequestStatus reqStatusNotifyProfileCh(contextQoS,EPacketQoSNotifyProfileChanged);
- CleanupStack::PushL(reqStatusNotifyProfileCh);
-
- RPacketQoS::TQoSGPRSNegotiated qosNegCapsGPRS;
- TPckg<RPacketQoS::TQoSGPRSNegotiated> qosNegCapsGPRSPckg(qosNegCapsGPRS);
- RPacketQoS::TQoSR99_R4Negotiated qosNegCapsR99;
- TPckg<RPacketQoS::TQoSR99_R4Negotiated> qosNegCapsR99Pckg(qosNegCapsR99);
- RPacketQoS::TQoSR5Negotiated qosNegCapsR5;
- TPckg<RPacketQoS::TQoSR5Negotiated> qosNegCapsR5Pckg(qosNegCapsR5);
-
- switch(aQoSCapType)
- {
-
- case EQoSGPRS:
- contextQoS.NotifyProfileChanged(reqStatusNotifyProfileCh,qosNegCapsGPRSPckg );
- break;
-
- case EQoSR4:
- contextQoS.NotifyProfileChanged(reqStatusNotifyProfileCh, qosNegCapsR99Pckg);
- break;
-
- case EQoSR5:
- contextQoS.NotifyProfileChanged(reqStatusNotifyProfileCh, qosNegCapsR5Pckg);
- break;
-
- }
-
- // Set the context config with RPacketContext::SetConfig
- TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
-
- RPacketContext::TContextConfigGPRS setConfigGprs;
- TPckg<RPacketContext::TContextConfigGPRS> setConfigPkgGprs(setConfigGprs);
- RPacketContext::TContextConfigR99_R4 setConfigR99;
- TPckg<RPacketContext::TContextConfigR99_R4> setConfigPkgR99(setConfigR99);
- RPacketContext::TContextConfig_R5 setConfigR5;
- TPckg<RPacketContext::TContextConfig_R5> setConfigPkgR5(setConfigR5);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- setConfigGprs.iAccessPointName.Copy(aApn);
- setConfigGprs.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigGprs.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgGprs);
- break;
-
- case EQoSR4: // R99_R4
- setConfigR99.iAccessPointName.Copy(aApn);
- setConfigR99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigR99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR99);
- break;
-
- case EQoSR5: // R5
- setConfigR5.iAccessPointName.Copy(aApn);
- setConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- setConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR5);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with an error"));
-
- //Activate the primary context with RPacketContext::Activate.
- TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- primaryPacketContext.Activate(contextActivateStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- //Check RPacketQoS::NotifyProfileChanged returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated
- //with higher(better) value as the requested minimum value used with SetProfileParameters
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusNotifyProfileCh, ETimeMedium), KErrNone, _L("RPacketQoS::NotifyProfileChanged timed out."));
- ASSERT_EQUALS(reqStatusNotifyProfileCh.Int(), KErrNone, _L("RPacketQoS::NotifyProfileChanged returned with error status."));
-
- switch(aQoSCapType)
- {
-
- case EQoSGPRS:
-
- ASSERT_TRUE(qosNegCapsGPRS.iDelay > qosReqCapsGPRS.iMinDelay, _L("Negotiated QoS iDelay is not better than minimun requested Qos iDelay"));
- ASSERT_TRUE(qosNegCapsGPRS.iMeanThroughput > qosReqCapsGPRS.iMinMeanThroughput, _L("Negotiated QoS iMeanThroughput is not better than minimun requested Qos iMeanThroughput"));
- ASSERT_TRUE(qosNegCapsGPRS.iPeakThroughput > qosReqCapsGPRS.iMinPeakThroughput, _L("Negotiated QoS iPeakThroughput is not better than minimun requested Qos iPeakThroughput"));
- ASSERT_TRUE(qosNegCapsGPRS.iPrecedence > qosReqCapsGPRS.iMinPrecedence, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
- ASSERT_TRUE(qosNegCapsGPRS.iReliability > qosReqCapsGPRS.iMinReliability, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
- break;
-
- case EQoSR4:
-
- ASSERT_TRUE(qosNegCapsR99.iTrafficClass > qosReqCapsR99.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
- ASSERT_TRUE(qosNegCapsR99.iDeliveryOrderReqd > qosReqCapsR99.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
- ASSERT_TRUE(qosNegCapsR99.iDeliverErroneousSDU > qosReqCapsR99.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
- ASSERT_TRUE(qosNegCapsR99.iMaxSDUSize > qosReqCapsR99.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsR99.iMaxRate.iDownlinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsR99.iMaxRate.iUplinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
- ASSERT_TRUE(qosNegCapsR99.iBER > qosReqCapsR99.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsR99.iSDUErrorRatio > qosReqCapsR99.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
- ASSERT_TRUE(qosNegCapsR99.iTrafficHandlingPriority > qosReqCapsR99.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
- ASSERT_TRUE(qosNegCapsR99.iTransferDelay < qosReqCapsR99.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
- ASSERT_TRUE(qosNegCapsR99.iGuaranteedRate.iDownlinkRate > qosReqCapsR99.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsR99.iGuaranteedRate.iUplinkRate > qosReqCapsR99.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
- break;
-
- case EQoSR5:
-
- ASSERT_TRUE(qosNegCapsR5.iTrafficClass > qosReqCapsR5.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
- ASSERT_TRUE(qosNegCapsR5.iDeliveryOrderReqd > qosReqCapsR5.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
- ASSERT_TRUE(qosNegCapsR5.iDeliverErroneousSDU > qosReqCapsR5.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
- ASSERT_TRUE(qosNegCapsR5.iMaxSDUSize > qosReqCapsR5.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsR5.iMaxRate.iDownlinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsR5.iMaxRate.iUplinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
- ASSERT_TRUE(qosNegCapsR5.iBER > qosReqCapsR5.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsR5.iSDUErrorRatio > qosReqCapsR5.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
- ASSERT_TRUE(qosNegCapsR5.iTrafficHandlingPriority > qosReqCapsR5.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
- ASSERT_TRUE(qosNegCapsR5.iTransferDelay < qosReqCapsR5.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
- ASSERT_TRUE(qosNegCapsR5.iGuaranteedRate.iDownlinkRate > qosReqCapsR5.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsR5.iGuaranteedRate.iUplinkRate > qosReqCapsR5.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
- break;
-
- }
-
- RPacketQoS::TQoSGPRSNegotiated qosNegCapsNumberTwoGPRS;
- TPckg<RPacketQoS::TQoSGPRSNegotiated> qosNegCapsNumberTwoGPRSPckg(qosNegCapsNumberTwoGPRS);
- RPacketQoS::TQoSR99_R4Negotiated qosNegCapsNumberTwoR99;
- TPckg<RPacketQoS::TQoSR99_R4Negotiated> qosNegCapsNumberTwoR99Pckg(qosNegCapsNumberTwoR99);
- RPacketQoS::TQoSR5Negotiated qosNegCapsNumberTwoR5;
- TPckg<RPacketQoS::TQoSR5Negotiated> qosNegCapsNumberTwoR5Pckg(qosNegCapsNumberTwoR5);
-
- //Check RPacketQoS::GetProfileParameters returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated
- //with higher(better) value as the requested minimum value used with SetProfileParameters
- TExtEtelRequestStatus reqStatusGetProfileParams(contextQoS,EPacketQoSGetProfileParams);
- CleanupStack::PushL(reqStatusGetProfileParams);
-
- switch(aQoSCapType)
- {
-
- case EQoSGPRS:
- contextQoS.GetProfileParameters(reqStatusGetProfileParams, qosNegCapsNumberTwoGPRSPckg);
- break;
-
- case EQoSR4:
- contextQoS.GetProfileParameters(reqStatusGetProfileParams, qosNegCapsNumberTwoR99Pckg);
- break;
-
- case EQoSR5:
- contextQoS.GetProfileParameters(reqStatusGetProfileParams, qosNegCapsNumberTwoR5Pckg);
- break;
-
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusGetProfileParams, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileParameters timed out."));
- ASSERT_EQUALS(reqStatusGetProfileParams.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with error status."));
-
- switch(aQoSCapType)
- {
-
- case EQoSGPRS:
-
- ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iDelay > qosReqCapsGPRS.iMinDelay, _L("Negotiated QoS iDelay is not better than minimun requested Qos iDelay"));
- ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iMeanThroughput > qosReqCapsGPRS.iMinMeanThroughput, _L("Negotiated QoS iMeanThroughput is not better than minimun requested Qos iMeanThroughput"));
- ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iPeakThroughput > qosReqCapsGPRS.iMinPeakThroughput, _L("Negotiated QoS iPeakThroughput is not better than minimun requested Qos iPeakThroughput"));
- ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iPrecedence > qosReqCapsGPRS.iMinPrecedence, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
- ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iReliability > qosReqCapsGPRS.iMinReliability, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
- break;
-
- case EQoSR4:
-
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iTrafficClass > qosReqCapsR99.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iDeliveryOrderReqd > qosReqCapsR99.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iDeliverErroneousSDU > qosReqCapsR99.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iMaxSDUSize > qosReqCapsR99.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iMaxRate.iDownlinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iMaxRate.iUplinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iBER > qosReqCapsR99.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iSDUErrorRatio > qosReqCapsR99.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iTrafficHandlingPriority > qosReqCapsR99.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iTransferDelay < qosReqCapsR99.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iGuaranteedRate.iDownlinkRate > qosReqCapsR99.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsNumberTwoR99.iGuaranteedRate.iUplinkRate > qosReqCapsR99.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
- break;
-
- case EQoSR5:
-
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iTrafficClass > qosReqCapsR5.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iDeliveryOrderReqd > qosReqCapsR5.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iDeliverErroneousSDU > qosReqCapsR5.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iMaxSDUSize > qosReqCapsR5.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iMaxRate.iDownlinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iMaxRate.iUplinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iBER > qosReqCapsR5.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iSDUErrorRatio > qosReqCapsR5.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iTrafficHandlingPriority > qosReqCapsR5.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iTransferDelay < qosReqCapsR5.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iGuaranteedRate.iDownlinkRate > qosReqCapsR5.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(qosNegCapsNumberTwoR5.iGuaranteedRate.iUplinkRate > qosReqCapsR5.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
- break;
-
- }
-
- //Release QoS
- iEtelSessionMgr.ReleasePrimaryPacketContextQoS(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
-
- // Release packet context
- iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- //PopAndDestroy
- //reqStatusSetProfileParams
- //reqStatusNotifyProfileCh
- //setConfigStatus
- //contextActivateStatus
- //reqStatusGetProfileParams
-
- CleanupStack::PopAndDestroy(5,&reqStatusSetProfileParams);
-
-
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0059::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0059");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0060::CCTSYIntegrationTestPacketContext0060(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0060::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0060::~CCTSYIntegrationTestPacketContext0060()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0060::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0060
- * @SYMFssID BA/CTSY/PKTC-0060
- * @SYMTestCaseDesc Activate a PDP context can be activated with requested QOS better than subscribed QOS (failure scenario).
- * @SYMTestPriority High
- * @SYMTestActions RPacketQos::SetProfileParameters, RPacketContext::Activate, RPacketQos::GetProfileParameters
- * @SYMTestExpectedResults Pass - A PDP context with subscribed QoS could be activated. Negotiated QoS lower than requested.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify negotiated QoS lower than that requested.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
-
- // Ensure phone is attached to the packet service
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
- // Get network info from phone
- TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV1 info;
- RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
- phone.GetCurrentNetwork(getNetworkStatus, infopckg);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- TPtrC apn, user, pwd;
- iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
-
- // == Activate a PDP context with the requested QOS better than subscribed QOS (failure scenario) by using TQoSCapsGPRS, TQoSGPRSRequested, TQoSGPRSNegotiated ==
- DEBUG_PRINTF1(_L("== GPRS =="));
- DoTest0060L(apn, user, pwd, EQoSGPRS);
-
- // === Repeat test for R99_R4 ===
- // Repeat test with TQoSCapsR99_R4 instead of TQoSCapsGPRS, TQoSR99_R4Requested instead of TQoSGPRSRequested and TQoSR99_R4Negotiated instead of TQoSGPRSNegotiated
- DEBUG_PRINTF1(_L("== R99_R4 =="));
- DoTest0060L(apn, user, pwd, EQoSR4);
-
- // === Repeat test for R5 ===
- // Repeat test with TQoSCapsR5 instead of TQoSCapsGPRS, TQoSR5Requested instead of TQoSGPRSRequested, and TQoSR5Negotiated instead of TQoSGPRSNegotiated
- DEBUG_PRINTF1(_L("== R5 =="));
- DoTest0060L(apn, user, pwd, EQoSR5);
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Pop
- // getNetworkStatus
- CleanupStack::PopAndDestroy(1, &getNetworkStatus);
-
- return TestStepResult();
- }
-
-void CCTSYIntegrationTestPacketContext0060::DoTest0060L( TPtrC& aApn, TPtrC& aUser, TPtrC& aPwd, TInt aQoSCapType )
-/**
- * Activates primary packet context with default context parameters.
- * @param aNetworkType Gprs / R99_R4 / R5.
- */
- {
-
- // Open a new primary context.
- RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Open a new QoS from the primary context
- RPacketQoS& packetQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
- KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- //Get the QoS profile capabilities with RPacketQoS::GetProfileCapabilities with aProfileCaps of type TQoSCapsGPRS/TQoSCapsR99_R4/TQoSCapsR5
- RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
- RPacketQoS::TQoSCapsR99_R4 qosCapsR99;
- RPacketQoS::TQoSCapsR5 qosCapsR5;
-
- switch(aQoSCapType)
- {
- case EQoSGPRS:
- GetProfileCapsL(packetQoS, qosCapsGPRS);
- break;
-
- case EQoSR4:
- GetProfileCapsL(packetQoS, qosCapsR99);
- break;
-
- case EQoSR5:
- GetProfileCapsL(packetQoS, qosCapsR5);
- break;
- }
-
-
- // Set the minimum requested QoS profile parameters to lower than what was returned from GetProfileCapabilities using RPacketQoS::SetProfileParameters
- // with aProfile of type TQoSGPRSRequested/TQoSR99_R4Requested/TQoSR5Requested.
- // Set all iMin... to a lower value than that returned by GetProfileCapabilities and all iReq... to a maximum value allowable by the API.
- RPacketQoS::TQoSGPRSRequested qosGprsRequested;
- TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
- RPacketQoS::TQoSR99_R4Requested qosR99_R4Requested;
- TPckg<RPacketQoS::TQoSR99_R4Requested> qosR99_R4ReqPckg(qosR99_R4Requested);
- RPacketQoS::TQoSR5Requested qosR5Requested;
- TPckg<RPacketQoS::TQoSR5Requested> qosR5ReqPckg(qosR5Requested);
- RPacketQoS::TBitRate bitRate;
- bitRate.iDownlinkRate = 0;
- bitRate.iUplinkRate = 0;
-
- TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
- CleanupStack::PushL(setProfileParamStatus);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- //Min caps
- qosGprsRequested.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
- qosGprsRequested.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
- qosGprsRequested.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
- qosGprsRequested.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
- qosGprsRequested.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
- //Request caps
- qosGprsRequested.iReqDelay = RPacketQoS::EDelayClass1;
- qosGprsRequested.iReqMeanThroughput = RPacketQoS::EMeanThroughput50000000;
- qosGprsRequested.iReqPeakThroughput = RPacketQoS::EPeakThroughput256000;
- qosGprsRequested.iReqReliability = RPacketQoS::EReliabilityClass1;
- qosGprsRequested.iReqPrecedence = RPacketQoS::EPriorityHighPrecedence;
- packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
- break;
-
- case EQoSR4: // R99_R4
- //Min caps
- qosR99_R4Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
- qosR99_R4Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
- qosR99_R4Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUNoDetection;
- qosR99_R4Requested.iMinAcceptableMaxSDUSize = 10;
- qosR99_R4Requested.iMinAcceptableMaxRate = bitRate;
- qosR99_R4Requested.iMaxBER = RPacketQoS::EBERUnspecified;
- qosR99_R4Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
- qosR99_R4Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- qosR99_R4Requested.iMaxTransferDelay = 4000;
- qosR99_R4Requested.iMinGuaranteedRate = bitRate;
- //Request caps
- qosR99_R4Requested.iReqTrafficClass = RPacketQoS::ETrafficClassConversational;
- qosR99_R4Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
- qosR99_R4Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUNoDetection;
- qosR99_R4Requested.iReqMaxSDUSize = 1520;
- bitRate.iDownlinkRate = 16000;
- bitRate.iUplinkRate = 16000;
- qosR99_R4Requested.iReqMaxRate = bitRate;
- qosR99_R4Requested.iReqBER = RPacketQoS::EBERSixPerHundredMillion;
- qosR99_R4Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
- qosR99_R4Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority1;
- qosR99_R4Requested.iReqTransferDelay = 10;
- qosR99_R4Requested.iReqGuaranteedRate = bitRate;
- packetQoS.SetProfileParameters(setProfileParamStatus, qosR99_R4ReqPckg);
- break;
-
- case EQoSR5: // R5
- //Min caps
- qosR5Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
- qosR5Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
- qosR5Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
- qosR5Requested.iMinAcceptableMaxSDUSize = 10;
- qosR5Requested.iMinAcceptableMaxRate = bitRate;
- qosR5Requested.iMaxBER = RPacketQoS::EBERUnspecified;
- qosR5Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
- qosR5Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
- qosR5Requested.iMaxTransferDelay = 0;
- qosR5Requested.iMinGuaranteedRate = bitRate;
- //Request caps
- qosR5Requested.iReqTrafficClass = RPacketQoS::ETrafficClassConversational;
- qosR5Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
- qosR5Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUNoDetection;
- qosR5Requested.iReqMaxSDUSize = 1520;
- bitRate.iDownlinkRate = 16000;
- bitRate.iUplinkRate = 16000;
- qosR5Requested.iReqMaxRate = bitRate;
- qosR5Requested.iReqBER = RPacketQoS::EBERSixPerHundredMillion;
- qosR5Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
- qosR5Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority1;
- qosR5Requested.iReqTransferDelay = 10;
- qosR5Requested.iReqGuaranteedRate = bitRate;
- qosR5Requested.iSignallingIndication = ETrue;
- qosR5Requested.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorSpeech;
- packetQoS.SetProfileParameters(setProfileParamStatus, qosR5ReqPckg);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
- ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
-
- // Set the context config with RPacketContext::SetConfig
- RPacketContext::TContextConfigGPRS gprsConfig;
- TPckg<RPacketContext::TContextConfigGPRS> gprsConfigPk(gprsConfig);
- RPacketContext::TContextConfigR99_R4 r99_r4Config;
- TPckg<RPacketContext::TContextConfigR99_R4> r99_r4ConfigPk(r99_r4Config);
- RPacketContext::TContextConfig_R5 r5Config;
- TPckg<RPacketContext::TContextConfig_R5> r5ConfigPk(r5Config);
-
- TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
- CleanupStack::PushL(setConfigStatus);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- gprsConfig.iAccessPointName.Copy(aApn);
- gprsConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- gprsConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- packetContext.SetConfig(setConfigStatus, gprsConfigPk);
- break;
-
- case EQoSR4: // R99_R4
- r99_r4Config.iAccessPointName.Copy(aApn);
- r99_r4Config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- r99_r4Config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- packetContext.SetConfig(setConfigStatus, r99_r4ConfigPk);
- break;
-
- case EQoSR5: // R5
- r5Config.iAccessPointName.Copy(aApn);
- r5Config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
- r5Config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
- packetContext.SetConfig(setConfigStatus, r5ConfigPk);
- break;
- }
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
- ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
-
- //post notifier for NotifyProfileChanged
- TExtEtelRequestStatus notifyProfileChangedStatus (packetQoS, EPacketQoSNotifyProfileChanged);
- CleanupStack::PushL(notifyProfileChangedStatus);
- RPacketQoS::TQoSGPRSNegotiated gprsNegotiatedQoSValues;
- TPckg<RPacketQoS::TQoSGPRSNegotiated> gprsNegotiatedQoSPk(gprsNegotiatedQoSValues);
- RPacketQoS::TQoSR99_R4Negotiated r99_r4NegotiatedQoSValues;
- TPckg<RPacketQoS::TQoSR99_R4Negotiated> r99_r4NegotiatedQoSPk(r99_r4NegotiatedQoSValues);
- RPacketQoS::TQoSR5Negotiated r5NegotiatedQoSValues;
- TPckg<RPacketQoS::TQoSR5Negotiated> r5NegotiatedQoSPk(r5NegotiatedQoSValues);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- packetQoS.NotifyProfileChanged(notifyProfileChangedStatus, gprsNegotiatedQoSPk);
- break;
-
- case EQoSR4: // R99_R4
- packetQoS.NotifyProfileChanged(notifyProfileChangedStatus, r99_r4NegotiatedQoSPk);
- break;
-
- case EQoSR5: // R5
- packetQoS.NotifyProfileChanged(notifyProfileChangedStatus, r5NegotiatedQoSPk);
- break;
- }
-
- // Activate the primary context with RPacketContext::Activate.
- TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
- CleanupStack::PushL(contextActivateStatus);
- packetContext.Activate(contextActivateStatus);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
- ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
-
- // Check RPacketQoS::NotifyProfileChanged returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with lower values than the requested values used in SetProfileParameters.
- ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyProfileChangedStatus, ETimeLong), KErrNone, _L("RPacketQoS::NotifyProfileChanged timed out"));
- ASSERT_EQUALS(notifyProfileChangedStatus.Int(), KErrNone, _L("RPacketQoS::NotifyProfileChanged returned with error status."));
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- ASSERT_TRUE(gprsNegotiatedQoSValues.iDelay > qosGprsRequested.iReqDelay, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDelay."));
- // Network returns EMeanThroughputBestEffort (0x80000) which is is higher than best EMeanThroughput50000000 (0x40000). That is why comparison must be this way
- ASSERT_TRUE(gprsNegotiatedQoSValues.iMeanThroughput > qosGprsRequested.iReqMeanThroughput, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMeanThroughput."));
- ASSERT_TRUE(gprsNegotiatedQoSValues.iPeakThroughput < qosGprsRequested.iReqPeakThroughput, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPeakThroughput."));
- ASSERT_TRUE(gprsNegotiatedQoSValues.iReliability > qosGprsRequested.iReqReliability, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iReliability."));
- ASSERT_TRUE(gprsNegotiatedQoSValues.iPrecedence > qosGprsRequested.iReqPrecedence, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPrecedence."));
- break;
-
- case EQoSR4: // R99_R4
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficClass > qosR99_R4Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliveryOrderReqd > qosR99_R4Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliverErroneousSDU > qosR99_R4Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxSDUSize < qosR99_R4Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR99_R4Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR99_R4Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iBER < qosR99_R4Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iSDUErrorRatio < qosR99_R4Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficHandlingPriority > qosR99_R4Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTransferDelay > qosR99_R4Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR99_R4Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR99_R4Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
- break;
-
- case EQoSR5: // R5
- ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficClass > qosR5Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iDeliveryOrderReqd > qosR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iDeliverErroneousSDU > qosR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iMaxSDUSize < qosR5Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iBER < qosR5Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iSDUErrorRatio < qosR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficHandlingPriority > qosR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iTransferDelay > qosR5Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iSignallingIndication < qosR5Requested.iSignallingIndication, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSignallingIndication."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iSourceStatisticsDescriptor < qosR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSourceStatisticsDescriptor."));
- break;
- }
-
- // Check RPacketQoS::GetProfileParameters returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with lower values than the requested values used in SetProfileParameters.
- TExtEtelRequestStatus getProfileParametersStatus (packetQoS, EPacketQoSGetProfileParams);
- CleanupStack::PushL(getProfileParametersStatus);
-
- switch(aQoSCapType)
- {
- case EQoSGPRS: // GPRS
- packetQoS.GetProfileParameters(getProfileParametersStatus, gprsNegotiatedQoSPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
- ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
- ASSERT_TRUE(gprsNegotiatedQoSValues.iDelay > qosGprsRequested.iReqDelay, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDelay."));
- // Network returns EMeanThroughputBestEffort (0x80000) which is is higher than best EMeanThroughput50000000 (0x40000). That is why comparison must be this way
- ASSERT_TRUE(gprsNegotiatedQoSValues.iMeanThroughput > qosGprsRequested.iReqMeanThroughput, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMeanThroughput."));
- ASSERT_TRUE(gprsNegotiatedQoSValues.iPeakThroughput < qosGprsRequested.iReqPeakThroughput, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPeakThroughput."));
- ASSERT_TRUE(gprsNegotiatedQoSValues.iReliability > qosGprsRequested.iReqReliability, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iReliability."));
- ASSERT_TRUE(gprsNegotiatedQoSValues.iPrecedence > qosGprsRequested.iReqPrecedence, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPrecedence."));
- break;
-
- case EQoSR4: // R99_R4
- packetQoS.GetProfileParameters(getProfileParametersStatus, r99_r4NegotiatedQoSPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
- ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficClass > qosR99_R4Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliveryOrderReqd > qosR99_R4Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliverErroneousSDU > qosR99_R4Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxSDUSize < qosR99_R4Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR99_R4Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR99_R4Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iBER < qosR99_R4Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iSDUErrorRatio < qosR99_R4Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficHandlingPriority > qosR99_R4Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTransferDelay > qosR99_R4Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR99_R4Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR99_R4Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
- break;
-
- case EQoSR5: // R5
- packetQoS.GetProfileParameters(getProfileParametersStatus, r5NegotiatedQoSPk);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
- ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficClass > qosR5Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iDeliveryOrderReqd > qosR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iDeliverErroneousSDU > qosR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iMaxSDUSize < qosR5Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iBER < qosR5Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iSDUErrorRatio < qosR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficHandlingPriority > qosR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iTransferDelay > qosR5Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
- ASSERT_TRUE(r5NegotiatedQoSValues.iSignallingIndication < qosR5Requested.iSignallingIndication, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSignallingIndication."));
- ASSERT_TRUE(r5NegotiatedQoSValues.iSourceStatisticsDescriptor < qosR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSourceStatisticsDescriptor."));
- break;
- }
-
- //Release QoS
- iEtelSessionMgr.ReleasePrimaryPacketContextQoS(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Release packet context
- iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
- KMainPhone,
- KMainPacketService,
- KPrimaryPacketContext1);
-
- // Pop
- // setProfileParamStatus
- // setConfigStatus
- // notifyProfileChangedStatus
- // contextActivateStatus
- // getProfileParametersStatus
- CleanupStack::PopAndDestroy(5, &setProfileParamStatus);
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0060::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0060");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0061::CCTSYIntegrationTestPacketContext0061(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0061::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0061::~CCTSYIntegrationTestPacketContext0061()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0061::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0061
- * @SYMFssID BA/CTSY/PKTC-0061
- * @SYMTestCaseDesc Initialise a context.
- * @SYMTestPriority High
- * @SYMTestActions RPacketContext::InitialiseContext, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::SetConfig, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters, RPacketContext::OpenNewSecondaryContext
- * @SYMTestExpectedResults Pass - RPacketContext::InitialiseContext returns TDataChannelV2 information.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify comm port information received.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure phone is attached to the packet service.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Open a new primary context.
-
- // Initialise the context with RPacketContext::InitialiseContext
-
- // Check RPacketContext::InitialiseContext returns TDataChannelV2::iChannelId of length > 0
- // Check RPacketContext::InitialiseContext returns TDataChannelV2::iCsy of length > 0
- // Check RPacketContext::InitialiseContext returns TDataChannelV2::iPort of length > 0
-
- // Set a valid context config using RPacketContext::SetConfig
-
- // Activate the context
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus returns EStatusActive
-
- // Open a new secondary context
-
- // Initialise the secondary context with RPacketContext::InitialiseContext
-
- // Check RPacketContext::InitialiseContext for the secondary context returns TDataChannelV2::iChannelId of length > 0
- // Check RPacketContext::InitialiseContext for the secondary context returns TDataChannelV2::iCsy of length > 0
- // Check RPacketContext::InitialiseContext for the secondary context returns TDataChannelV2::iPort of length > 0
-
- // === Add packet filter ===
-
- // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
-
- // === Add QoS ===
-
- // Open a new QoS from the secondary context
-
- // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
-
- // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
-
- // Activate the secondary context with RPacketContext::Activate
-
- // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
-
- // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0061::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0061");
- }
-
-
-
-CCTSYIntegrationTestPacketContext0062::CCTSYIntegrationTestPacketContext0062(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestPacketContext0062::GetTestStepName());
- }
-
-CCTSYIntegrationTestPacketContext0062::~CCTSYIntegrationTestPacketContext0062()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestPacketContext0062::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PKTC-0062
- * @SYMFssID BA/CTSY/PKTC-0062
- * @SYMTestCaseDesc Ensure change in QoS from network is handled correct when new QoS is not acceptable.
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - Context is deactivated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify context is deactivated.
- *
- * @return - TVerdict code
- */
- {
-
- ////////////////////////////////////////////////////////////////
- // SET UP
- ////////////////////////////////////////////////////////////////
-
-
- // Ensure there is a primary PDP context active.
-
-
- ////////////////////////////////////////////////////////////////
- // SET UP END
- ////////////////////////////////////////////////////////////////
-
- StartTest();
-
- ////////////////////////////////////////////////////////////////
- // TEST START
- ////////////////////////////////////////////////////////////////
-
-
- // Simulator sends a modify PDP context request message with a QoS that is not acceptable to the phone.
-
- // Check RPacketContext::NotifyStatusChange completes with EStatusInactive
-
-
- ////////////////////////////////////////////////////////////////
- // TEST END
- ////////////////////////////////////////////////////////////////
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestPacketContext0062::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestPacketContext0062");
- }
-
-
-
+/*
+* Copyright (c) 2007-2008 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:
+*
+*/
+
+
+
+/**
+ * Test step definitions for the PacketContext functional unit.
+ * @internalTechnology
+ */
+
+#include <etelmm.h>
+#include <etelpckt.h>
+#include <pcktcs.h>
+#include "cctsyintegrationtestpacketcontext.h"
+#include "chttpdownload.h"
+
+
+CCTSYIntegrationTestPacketContextBase::CCTSYIntegrationTestPacketContextBase(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr), iPacketServiceTestHelper(*this), iNetworkTestHelper(*this)
+/**
+ * Constructor
+ */
+ {
+ }
+
+CCTSYIntegrationTestPacketContextBase::~CCTSYIntegrationTestPacketContextBase()
+/*
+ * Destructor
+ */
+ {
+ }
+
+
+void CCTSYIntegrationTestPacketContextBase::SetAttachModeToWhenPossibleAndWaitForAttachL(RPacketService& aPacketService)
+/**
+ * Attaches the phone to the packet service by setting the
+ * attach mode to RPacketService::EAttachWhenPossible. Requests
+ * that the phone attaches to the packet service and waits for
+ * attach to complete.
+ *
+ * @param aPacketService Reference to packet service subsession.
+ */
+ {
+ RPacketService::TAttachMode attachMode;
+ CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+
+ TExtEtelRequestStatus notifyServiceStatusChStatus(aPacketService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStatusChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ aPacketService.NotifyStatusChange(notifyServiceStatusChStatus, packetServiceStatus);
+
+ if(attachMode != RPacketService::EAttachWhenPossible)
+ {
+ CHECK_EQUALS_L(aPacketService.SetAttachMode(RPacketService::EAttachWhenPossible), KErrNone,
+ _L("RPacketService::SetAttachMode returned with an error."));
+ }
+
+ CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+ CHECK_EQUALS_L(attachMode, RPacketService::EAttachWhenPossible, _L("RPacketService::GetAttachMode did not return EAttachWhenPossible."));
+
+ // Ensure phone is attached to the packet service (RPacketService::GetStatus returns EStatusAttached).
+ RPacketService::TStatus packetStatus;
+ CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
+
+ // Wait for phone to attach to packet service if it is not attached.
+ if (packetStatus != RPacketService::EStatusAttached)
+ {
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ aPacketService,
+ notifyServiceStatusChStatus,
+ packetServiceStatus,
+ RPacketService::EStatusAttached,
+ KErrNone);
+ CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
+ CHECK_EQUALS_L(packetStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus did not return EStatusAttached"));
+ }
+
+ CleanupStack::PopAndDestroy(1, ¬ifyServiceStatusChStatus);
+ }
+
+
+TInt CCTSYIntegrationTestPacketContextBase::AddPacketFilterV2ToContextL(RPacketContext& aPacketContext, TInt aId, TInt aErrCode)
+/**
+ * Adds a packet filter to context.
+ *
+ * @param aPacketContext Reference to packet context subsession.
+ * @param aId the id of the filter to set, which is also an identifyer to one of three predefined filters
+ * @param aErrCode the error code that the AddPacketFilter should return, default KErrNone.
+ *
+ * @return Request status value returned by
+ * RPacketContext::AddPacketFilter call.
+ */
+ {
+ RPacketContext::TPacketFilterV2 packetFilterV2;
+ FillPacketFilter(packetFilterV2,aId);
+
+ RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
+
+ TExtEtelRequestStatus addFilterStatus(aPacketContext, EPacketContextAddPacketFilter);
+ CleanupStack::PushL(addFilterStatus);
+ aPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::AddPacketFilter timed out"))
+ ASSERT_EQUALS(addFilterStatus.Int(), aErrCode,
+ _L("RPacketContext::AddPacketFilter did returned the expected value"))
+
+ TInt ret = addFilterStatus.Int();
+ CleanupStack::PopAndDestroy(&addFilterStatus);
+ return ret;
+ }
+
+// Helper macro, same as ASSERT_EQUALS but also change a local parameter (ret) to EFalse if the parameters are not equal
+// One should define the variable TBool ret before calling this macro, and then one can use this variable to know if any of the local macros failed.
+#define LOCAL_ASSERT_EQUALS(result,expected,msg) \
+ { \
+ TBool tempLocalAssertEqualsRet = ((result)==(expected)); \
+ ASSERT_TRUE(tempLocalAssertEqualsRet,msg); \
+ if(!tempLocalAssertEqualsRet) \
+ { \
+ ret=EFalse; \
+ } \
+ }
+
+// Helper macro, same as ASSERT_TRUE but also change a local parameter (ret) to EFalse if the parameters are not equal
+// One should define the variable TBool ret before calling this macro, and then one can use this variable to know if any of the local macros failed.
+#define LOCAL_ASSERT_TRUE(value,msg) LOCAL_ASSERT_EQUALS((TBool)(value),(TBool)ETrue,msg);
+
+
+TUint CCTSYIntegrationTestPacketContextBase::FindLSB(TUint aNumber)
+/**
+ * Finds the least significant bit in a number
+ *
+ * @param aNumber The number
+ * @return The LSB of aNumber
+ */
+ {
+ if(aNumber==0)
+ {
+ return 0;
+ }
+ TUint bit=1;
+ while(ETrue)
+ {
+ if((aNumber&bit)!=0)
+ {
+ return bit;
+ }
+ bit=bit*2;
+ }
+ }
+
+TUint CCTSYIntegrationTestPacketContextBase::FindMSB(TUint aNumber)
+/**
+ * Finds the most significant bit in a number
+ *
+ * @param aNumber The number
+ * @return The MSB of aNumber
+ */
+ {
+ if(aNumber==0)
+ {
+ return 0;
+ }
+ TUint bit=1;
+ while(ETrue)
+ {
+ if((aNumber&bit)!=0)
+ {
+ aNumber=(aNumber^bit);
+ if(aNumber==0)
+ {
+ return bit;
+ }
+ }
+ bit=bit*2;
+ }
+ }
+
+void CCTSYIntegrationTestPacketContextBase::FillPacketFilter(RPacketContext::TPacketFilterV2 &aFilter, TInt aId)
+/**
+ * Fill a packet filter object with actual values.
+ *
+ * @param aFilter Reference to the structure to fill.
+ * @param aId the id of the filter to set, which is also an identifyer to one of three predefined filters
+ *
+ */
+ {
+ aFilter.iId = aId;
+ switch(aId)
+ {
+ case 1:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 0;
+ aFilter.iSrcAddr[0] = 0xCF;
+ aFilter.iSrcAddr[1] = 0xFF;
+ aFilter.iSrcAddr[2] = 0xFF;
+ aFilter.iSrcAddr[3] = 0x11;
+ aFilter.iSrcAddrSubnetMask[0] = 0xC0;
+ aFilter.iSrcAddrSubnetMask[1] = 0xC1;
+ aFilter.iSrcAddrSubnetMask[2] = 0xF2;
+ aFilter.iSrcAddrSubnetMask[3] = 0x51;
+ aFilter.iProtocolNumberOrNextHeader = 6;
+ aFilter.iSrcPortMin = 2;
+ aFilter.iSrcPortMax = 65000;
+ aFilter.iDestPortMin = 8;
+ aFilter.iDestPortMax = 65100;
+ aFilter.iTOSorTrafficClass = 0x3F8C;
+ aFilter.iFlowLabel = 0;
+ aFilter.iIPSecSPI = 0;
+ break;
+ }
+ case 2:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 255;
+ aFilter.iSrcAddr[0] = 0x21;
+ aFilter.iSrcAddr[1] = 0xD2;
+ aFilter.iSrcAddr[2] = 0x3F;
+ aFilter.iSrcAddr[3] = 0x1A;
+ aFilter.iSrcAddrSubnetMask[0] = 0x2A;
+ aFilter.iSrcAddrSubnetMask[1] = 0x2B;
+ aFilter.iSrcAddrSubnetMask[2] = 0xFF;
+ aFilter.iSrcAddrSubnetMask[3] = 0x3F;
+ aFilter.iProtocolNumberOrNextHeader = 8;
+ aFilter.iIPSecSPI = 0x0F88F000;
+ aFilter.iTOSorTrafficClass = 0x2F77;
+ aFilter.iDestPortMax = 0;
+ aFilter.iDestPortMin = 0;
+ aFilter.iFlowLabel = 0;
+ aFilter.iSrcPortMax = 0;
+ aFilter.iSrcPortMin = 0;
+ break;
+ }
+ case 3:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 127;
+ aFilter.iSrcAddr[0] = 0xEF;
+ aFilter.iSrcAddr[1] = 0xAF;
+ aFilter.iSrcAddr[2] = 0xBF;
+ aFilter.iSrcAddr[3] = 0x21;
+ aFilter.iSrcAddrSubnetMask[0] = 0x10;
+ aFilter.iSrcAddrSubnetMask[1] = 0x21;
+ aFilter.iSrcAddrSubnetMask[2] = 0x32;
+ aFilter.iSrcAddrSubnetMask[3] = 0x41;
+ aFilter.iProtocolNumberOrNextHeader = 10;
+ aFilter.iSrcPortMin = 0;
+ aFilter.iSrcPortMax = 0;
+ aFilter.iDestPortMin = 0;
+ aFilter.iDestPortMax = 0;
+ aFilter.iTOSorTrafficClass = 0x4F8C;
+ aFilter.iFlowLabel = 0;
+ aFilter.iIPSecSPI = 0;
+ }
+ case 4:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 0;
+ aFilter.iSrcAddr[0] = 0xD0;
+ aFilter.iSrcAddr[1] = 0xFF;
+ aFilter.iSrcAddr[2] = 0xFF;
+ aFilter.iSrcAddr[3] = 0x11;
+ aFilter.iSrcAddrSubnetMask[0] = 0xC1;
+ aFilter.iSrcAddrSubnetMask[1] = 0xC1;
+ aFilter.iSrcAddrSubnetMask[2] = 0xF2;
+ aFilter.iSrcAddrSubnetMask[3] = 0x51;
+ aFilter.iProtocolNumberOrNextHeader = 12;
+ aFilter.iSrcPortMin = 2;
+ aFilter.iSrcPortMax = 65000;
+ aFilter.iDestPortMin = 8;
+ aFilter.iDestPortMax = 65100;
+ aFilter.iTOSorTrafficClass = 0x3F8C;
+ aFilter.iFlowLabel = 0;
+ aFilter.iIPSecSPI = 0;
+ break;
+ }
+ case 5:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 127;
+ aFilter.iSrcAddr[0] = 0xD1;
+ aFilter.iSrcAddr[1] = 0xFF;
+ aFilter.iSrcAddr[2] = 0xFF;
+ aFilter.iSrcAddr[3] = 0x11;
+ aFilter.iSrcAddrSubnetMask[0] = 0xC2;
+ aFilter.iSrcAddrSubnetMask[1] = 0xC1;
+ aFilter.iSrcAddrSubnetMask[2] = 0xF2;
+ aFilter.iSrcAddrSubnetMask[3] = 0x51;
+ aFilter.iProtocolNumberOrNextHeader = 14;
+ aFilter.iSrcPortMin = 2;
+ aFilter.iSrcPortMax = 65000;
+ aFilter.iDestPortMin = 8;
+ aFilter.iDestPortMax = 65100;
+ aFilter.iTOSorTrafficClass = 0x3F8C;
+ aFilter.iFlowLabel = 0;
+ aFilter.iIPSecSPI = 0;
+ break;
+ }
+ case 6:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 255;
+ aFilter.iSrcAddr[0] = 0xD2;
+ aFilter.iSrcAddr[1] = 0xFF;
+ aFilter.iSrcAddr[2] = 0xFF;
+ aFilter.iSrcAddr[3] = 0x11;
+ aFilter.iSrcAddrSubnetMask[0] = 0xC3;
+ aFilter.iSrcAddrSubnetMask[1] = 0xC1;
+ aFilter.iSrcAddrSubnetMask[2] = 0xF2;
+ aFilter.iSrcAddrSubnetMask[3] = 0x51;
+ aFilter.iProtocolNumberOrNextHeader = 16;
+ aFilter.iSrcPortMin = 2;
+ aFilter.iSrcPortMax = 65000;
+ aFilter.iDestPortMin = 8;
+ aFilter.iDestPortMax = 65100;
+ aFilter.iTOSorTrafficClass = 0x3F8C;
+ aFilter.iFlowLabel = 0;
+ aFilter.iIPSecSPI = 0;
+ break;
+ }
+ case 7:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 0;
+ aFilter.iSrcAddr[0] = 0xD3;
+ aFilter.iSrcAddr[1] = 0xFF;
+ aFilter.iSrcAddr[2] = 0xFF;
+ aFilter.iSrcAddr[3] = 0x11;
+ aFilter.iSrcAddrSubnetMask[0] = 0xC4;
+ aFilter.iSrcAddrSubnetMask[1] = 0xC1;
+ aFilter.iSrcAddrSubnetMask[2] = 0xF2;
+ aFilter.iSrcAddrSubnetMask[3] = 0x51;
+ aFilter.iProtocolNumberOrNextHeader = 18;
+ aFilter.iSrcPortMin = 2;
+ aFilter.iSrcPortMax = 65000;
+ aFilter.iDestPortMin = 8;
+ aFilter.iDestPortMax = 65100;
+ aFilter.iTOSorTrafficClass = 0x3F8C;
+ aFilter.iFlowLabel = 0;
+ aFilter.iIPSecSPI = 0;
+ break;
+ }
+ case 8:
+ default:
+ {
+ aFilter.iEvaluationPrecedenceIndex = 127;
+ aFilter.iSrcAddr[0] = 0xD4;
+ aFilter.iSrcAddr[1] = 0xFF;
+ aFilter.iSrcAddr[2] = 0xFF;
+ aFilter.iSrcAddr[3] = 0x11;
+ aFilter.iSrcAddrSubnetMask[0] = 0xC5;
+ aFilter.iSrcAddrSubnetMask[1] = 0xC1;
+ aFilter.iSrcAddrSubnetMask[2] = 0xF2;
+ aFilter.iSrcAddrSubnetMask[3] = 0x51;
+ aFilter.iProtocolNumberOrNextHeader = 18;
+ aFilter.iSrcPortMin = 2;
+ aFilter.iSrcPortMax = 65000;
+ aFilter.iDestPortMin = 8;
+ aFilter.iDestPortMax = 65100;
+ aFilter.iTOSorTrafficClass = 0x3F8C;
+ aFilter.iFlowLabel = 0;
+ aFilter.iIPSecSPI = 0;
+ break;
+ }
+ }
+ }
+
+
+TBool CCTSYIntegrationTestPacketContextBase::CompareFilters(const RPacketContext::TPacketFilterV2 &aFilterOne,
+ const RPacketContext::TPacketFilterV2 &aFilterTwo)
+/**
+ * Compare two packet filter objects.
+ *
+ * @param aFilterOne Reference to the structure with the first filter.
+ * @param aFilterOne Reference to the structure with the second filter.
+ *
+ * @return ETrue if both filters are the same
+ *
+ */
+ {
+ TBool ret = ETrue;
+
+ LOCAL_ASSERT_EQUALS(aFilterOne.ExtensionId(), aFilterTwo.ExtensionId() ,_L("RPacketContext::GetPacketFilterInfo returned wrong iExtensionId"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iId, aFilterTwo.iId ,_L("RPacketContext::GetPacketFilterInfo returned wrong iId"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iEvaluationPrecedenceIndex, aFilterTwo.iEvaluationPrecedenceIndex ,_L("RPacketContext::GetPacketFilterInfo returned wrong iEvaluationPrecedenceIndex"));
+ for(TInt i=0;i<RPacketContext::KIPAddressSize;++i)
+ {
+ LOCAL_ASSERT_EQUALS(aFilterOne.iSrcAddr[i], aFilterTwo.iSrcAddr[i] ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcAddr"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iSrcAddrSubnetMask[i], aFilterTwo.iSrcAddrSubnetMask[i] ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcAddrSubnetMask"));
+ }
+ LOCAL_ASSERT_EQUALS(aFilterOne.iProtocolNumberOrNextHeader, aFilterTwo.iProtocolNumberOrNextHeader ,_L("RPacketContext::GetPacketFilterInfo returned wrong iProtocolNumberOrNextHeader"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iSrcPortMin, aFilterTwo.iSrcPortMin ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcPortMin"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iSrcPortMax, aFilterTwo.iSrcPortMax ,_L("RPacketContext::GetPacketFilterInfo returned wrong iSrcPortMax"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iDestPortMin, aFilterTwo.iDestPortMin ,_L("RPacketContext::GetPacketFilterInfo returned wrong iDestPortMin"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iDestPortMax, aFilterTwo.iDestPortMax ,_L("RPacketContext::GetPacketFilterInfo returned wrong iDestPortMax"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iIPSecSPI, aFilterTwo.iIPSecSPI ,_L("RPacketContext::GetPacketFilterInfo returned wrong iIPSecSPI"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iTOSorTrafficClass, aFilterTwo.iTOSorTrafficClass ,_L("RPacketContext::GetPacketFilterInfo returned wrong iTOSorTrafficClass"));
+ LOCAL_ASSERT_EQUALS(aFilterOne.iFlowLabel, aFilterTwo.iFlowLabel ,_L("RPacketContext::GetPacketFilterInfo returned wrong iFlowLabel"));
+
+
+ return ret;
+ }
+
+template<>
+void CCTSYIntegrationTestPacketContextBase::FillParametersFromCapabilities(RPacketQoS::TQoSGPRSRequested &aParameters,
+ const RPacketQoS::TQoSCapsGPRS &aCapabilities)
+/**
+ * fill a RPacketQoS::TQoSGPRSRequested object from a given RPacketQoS::TQoSCapsGPRS capabilities
+ *
+ * @param aParameters Reference to the structure of the parameters to fill.
+ * @param aCapabilities Reference to the structure with the capabilities to use.
+ *
+ */
+ {
+ aParameters.iMinDelay = static_cast<RPacketQoS::TQoSDelay>(FindMSB(aCapabilities.iDelay));
+ aParameters.iReqDelay = static_cast<RPacketQoS::TQoSDelay>(FindLSB(aCapabilities.iDelay));
+ aParameters.iMinMeanThroughput = static_cast<RPacketQoS::TQoSMeanThroughput>(FindMSB(aCapabilities.iMean));
+ aParameters.iReqMeanThroughput = static_cast<RPacketQoS::TQoSMeanThroughput>(FindLSB(aCapabilities.iMean));
+ aParameters.iMinPeakThroughput = static_cast<RPacketQoS::TQoSPeakThroughput>(FindMSB(aCapabilities.iPeak));
+ aParameters.iReqPeakThroughput = static_cast<RPacketQoS::TQoSPeakThroughput>(FindLSB(aCapabilities.iPeak));
+ aParameters.iMinReliability = static_cast<RPacketQoS::TQoSReliability>(FindMSB(aCapabilities.iReliability));
+ aParameters.iReqReliability = static_cast<RPacketQoS::TQoSReliability>(FindLSB(aCapabilities.iReliability));
+ aParameters.iReqPrecedence = static_cast<RPacketQoS::TQoSPrecedence>(FindMSB(aCapabilities.iPrecedence));
+ aParameters.iMinPrecedence = static_cast<RPacketQoS::TQoSPrecedence>(FindLSB(aCapabilities.iPrecedence));
+
+ }
+
+
+template<>
+void CCTSYIntegrationTestPacketContextBase::FillParametersFromCapabilities(RPacketQoS::TQoSR99_R4Requested &aParameters,
+ const RPacketQoS::TQoSCapsR99_R4 &aCapabilities)
+/**
+ * fill a RPacketQoS::TQoSR99_R4Requested object from a given RPacketQoS::TQoSCapsR99_R4 capabilities
+ *
+ * @param aParameters Reference to the structure of the parameters to fill.
+ * @param aCapabilities Reference to the structure with the capabilities to use.
+ *
+ */
+ {
+ aParameters.iReqTrafficClass = static_cast<RPacketQoS::TTrafficClass>(FindLSB(aCapabilities.iTrafficClass));
+ aParameters.iMinTrafficClass = static_cast<RPacketQoS::TTrafficClass>(FindMSB(aCapabilities.iTrafficClass));
+ aParameters.iReqDeliveryOrderReqd = static_cast<RPacketQoS::TDeliveryOrder>(FindLSB(aCapabilities.iDeliveryOrderReqd));
+ aParameters.iMinDeliveryOrderReqd = static_cast<RPacketQoS::TDeliveryOrder>(FindMSB(aCapabilities.iDeliveryOrderReqd));
+ aParameters.iReqDeliverErroneousSDU = static_cast<RPacketQoS::TErroneousSDUDelivery>(FindLSB(aCapabilities.iDeliverErroneousSDU));
+ aParameters.iMinDeliverErroneousSDU = static_cast<RPacketQoS::TErroneousSDUDelivery>(FindMSB(aCapabilities.iDeliverErroneousSDU));
+ aParameters.iReqMaxSDUSize = 1500; //NOT SURE
+ aParameters.iMinAcceptableMaxSDUSize = 100; //NOT SURE
+ aParameters.iReqMaxRate.iUplinkRate = 1000; //NOT SURE
+ aParameters.iReqMaxRate.iDownlinkRate = 1000; //NOT SURE
+ aParameters.iMinAcceptableMaxRate.iUplinkRate = 500; //NOT SURE
+ aParameters.iMinAcceptableMaxRate.iDownlinkRate = 500; //NOT SURE
+ aParameters.iReqBER = static_cast<RPacketQoS::TBitErrorRatio>(FindLSB(aCapabilities.iBER));
+ aParameters.iMaxBER = static_cast<RPacketQoS::TBitErrorRatio>(FindMSB(aCapabilities.iBER));
+ aParameters.iReqSDUErrorRatio = static_cast<RPacketQoS::TSDUErrorRatio>(FindLSB(aCapabilities.iSDUErrorRatio));
+ aParameters.iMaxSDUErrorRatio = static_cast<RPacketQoS::TSDUErrorRatio>(FindMSB(aCapabilities.iSDUErrorRatio));
+ aParameters.iReqTrafficHandlingPriority = static_cast<RPacketQoS::TTrafficHandlingPriority>(FindLSB(aCapabilities.iTrafficHandlingPriority));
+ aParameters.iMinTrafficHandlingPriority = static_cast<RPacketQoS::TTrafficHandlingPriority>(FindMSB(aCapabilities.iTrafficHandlingPriority));
+ aParameters.iReqTransferDelay = 1000; //NOT SURE
+ aParameters.iMaxTransferDelay = 100; //NOT SURE
+ aParameters.iReqGuaranteedRate.iUplinkRate = 1000; //NOT SURE
+ aParameters.iReqGuaranteedRate.iDownlinkRate = 1000; //NOT SURE
+ aParameters.iMinGuaranteedRate.iUplinkRate = 500; //NOT SURE
+ aParameters.iMinGuaranteedRate.iDownlinkRate = 500; //NOT SURE
+ }
+
+template<>
+void CCTSYIntegrationTestPacketContextBase::FillParametersFromCapabilities(RPacketQoS::TQoSR5Requested &aParameters,
+ const RPacketQoS::TQoSCapsR5 &aCapabilities)
+/**
+ * fill a RPacketQoS::TQoSR5Requested object from a given RPacketQoS::TQoSCapsR5 capabilities
+ *
+ * @param aParameters Reference to the structure of the parameters to fill.
+ * @param aCapabilities Reference to the structure with the capabilities to use.
+ *
+ */
+ {
+ FillParametersFromCapabilities((RPacketQoS::TQoSR99_R4Requested&)aParameters,(const RPacketQoS::TQoSCapsR99_R4 &)aCapabilities);
+ aParameters.iSignallingIndication = static_cast<TBool>(aCapabilities.iSignallingIndication);
+ aParameters.iSourceStatisticsDescriptor = static_cast<RPacketQoS::TSourceStatisticsDescriptor>(aCapabilities.iSourceStatisticsDescriptor);
+ }
+
+
+template<class QOSCAPS>
+void CCTSYIntegrationTestPacketContextBase::GetProfileCapsL(RPacketQoS& aContextQoS, QOSCAPS& aCapabilities)
+/**
+ * Get QoS profile capabilities
+ *
+ * @param aContextQoS Reference RPacketQoS object.
+ * @param aCapabilities Reference to QoS capabilities.
+ *
+ */
+ {
+ TPckg<QOSCAPS> qosCapsPckg(aCapabilities);
+ TExtEtelRequestStatus reqQoSProfileCaps(aContextQoS,EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(reqQoSProfileCaps);
+ aContextQoS.GetProfileCapabilities(reqQoSProfileCaps, qosCapsPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqQoSProfileCaps, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(reqQoSProfileCaps.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+ CleanupStack::PopAndDestroy(1, &reqQoSProfileCaps);
+ }
+
+
+TBool CCTSYIntegrationTestPacketContextBase::ActivateSecondaryPacketContextL(RPacketContext& aSecondaryPacketContext, TPrimaryPacketContextId aPrimaryPacketContextId, TSecondaryPacketContextId aSecondaryPacketContextId)
+/**
+ * Activate a secondary packet context
+ *
+ * @param aSecondaryPacketContext a reference to a context session to activate.
+ *
+ * @return ETrue if everything is OK, EFalse in any other case
+ */
+ {
+ TBool ret = ETrue;
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aSecondaryPacketContext,1), KErrNone,
+ _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ aPrimaryPacketContextId,
+ aSecondaryPacketContextId);
+
+ // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities timed out."));
+ LOCAL_ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::SetProfileParameters timed out."));
+ LOCAL_ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
+ _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(aSecondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ aSecondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(aSecondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ aSecondaryPacketContext.Activate(contextActivateStatus);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Activate timed out."));
+ LOCAL_ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ aSecondaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(aSecondaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("Packet Context's status expected to be EStatusActive but is not."));
+
+ // Pop:
+ // contextActivateStatus
+ // notifyContextStChStatus
+ // setProfileParamStatus
+ // getProfileCapStatus
+ CleanupStack::PopAndDestroy(4,&getProfileCapStatus);
+ return ret;
+
+ }
+
+CCTSYIntegrationTestPacketContext0001::CCTSYIntegrationTestPacketContext0001(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0001::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0001::~CCTSYIntegrationTestPacketContext0001()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0001::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0001
+ * @SYMFssID BA/CTSY/PKTC-0001
+ * @SYMTestCaseDesc Activate and deactivate a primary PDP context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyContextAdded, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps, RPacketContext::GetConfig, RPacketContext::Deactivate, RPacketContext::GetDnsInfo
+ * @SYMTestExpectedResults Pass - Activation and deactivation succeeds. Packet service and context statuses are correct.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Get the attach mode so that it can be restored at the end of the test
+ RPacketService::TAttachMode attachMode;
+ CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Currenlty there are three context configs types: TContextConfigGPRS, TContextConfigCDMA, TContextConfigR99_R4
+ // A suitable config should be chosen accoriding to the baseband's capability.
+
+ // Get the context config using network info
+ // Using Gprs config for now...
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+
+ // Set the context.
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ packetContext.SetConfig(setConfigStatus, configPk);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::SetConfig returned with error status."));
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
+ _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0,
+ _L("Packet context config has zero length contextId."));
+
+ // === Activate packet context ===
+ // === Check context and service statuses and notifications ===
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for service's dynamic caps change
+ RPacketService::TDynamicCapsFlags dynCaps;
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate packet context with RPacketContext::Activate
+ DEBUG_PRINTF1(_L("Activating packet context"));
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext.Activate(contextActivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Check dynamic caps ===
+ DEBUG_PRINTF1(_L("Checking Dynamic Caps"));
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+ TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
+ TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10060 );
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
+ packetService,
+ notifyServiceDynCapsStatus,
+ dynCaps,
+ wantedDynCapBits,
+ unWantedDynCapBits,
+ KErrNone);
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
+
+ // === Get context information ===
+
+ // Check RPacketContext::GetConfig returns same config as that set
+ DEBUG_PRINTF1(_L("Get config information"));
+ TExtEtelRequestStatus contextConfigStatus(packetContext, EPacketContextGetConfig);
+ CleanupStack::PushL(contextConfigStatus);
+ RPacketContext::TContextConfigGPRS getConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
+ packetContext.GetConfig(contextConfigStatus, getConfigPk);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::GetConfig timed out."))
+ ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::GetConfig returned an error."));
+
+ ASSERT_EQUALS_DES8(getConfig.iAccessPointName, config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
+
+ // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
+ RPacketContext::TDnsInfoV2 dnsInfo;
+ RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
+ TExtEtelRequestStatus dnsInfoStatus(packetContext, EPacketContextGetDNSInfo);
+ CleanupStack::PushL(dnsInfoStatus);
+ packetContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::GetDnsInfo timed out."));
+
+ ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetDnsInfo returned an error."));
+ ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0,
+ _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
+ ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0,
+ _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
+
+ // === Check context and service statuses on Deactivating packect context ===
+
+ // Post notification for context's status change
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for service's status change
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Deactivate the context with RPacketContext::Deactivate
+ TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ packetContext.Deactivate(contextDeactivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("Packet Context's status expected to be EStatusDeactivating but is not."));
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("Packet Context's status did not return EStatusInactive."));
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+ expectedPacketServiceStatus = RPacketService::EStatusAttached;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Return packet service's attach mode to original setting
+ ASSERT_EQUALS(packetService.SetAttachMode(attachMode), KErrNone, _L("RPacketService::SetAttachMode returned with an error."));
+
+ CleanupStack::Pop(10, &getNetworkStatus);
+ // contextDeactivateStatus
+ // dnsInfoStatus
+ // contextConfigStatus
+ // contextActivateStatus,
+ // notifyContextStChStatus,
+ // notifyServiceDynCapsStatus
+ // notifyServiceStChStatus,
+ // setConfigStatus,
+ // notifyContextStatus,
+ // getNetworkStatus
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0001::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0001");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0002::CCTSYIntegrationTestPacketContext0002(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0002::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0002::~CCTSYIntegrationTestPacketContext0002()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0002::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0002
+ * @SYMFssID BA/CTSY/PKTC-0002
+ * @SYMTestCaseDesc Activate and deactivate a primary PDP context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::GetContextNameInNif, RPacketService::GetNifInfo, RPacketService::EnumerateContextsInNif, RPacketContext::Deactivate
+ * @SYMTestExpectedResults Pass - Activation succeeds. NIF info correct.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify NIF related info from RPacketService correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Get the attach mode so that it can be restored at the end of the test
+ RPacketService::TAttachMode attachMode;
+ CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsActivate.
+
+ // $CTSYProblem.
+ // GetDynamicCaps does not return 0x1(KCapsActivate), because KCapsActivate flag is not set yet.
+ // CTSY sets KCapsActivate flag during context initialisation.
+
+ // Check for the CAPS being returned
+ RPacketService::TDynamicCapsFlags dynCaps;
+ CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+
+ // RPacketService::TDynamicCapsFlags wantedDynCapBits = RPacketService::KCapsActivate;
+ //CHECK_BITS_SET_L(dynCaps, wantedDynCapBits, KNoUnwantedBits, _L("Packet service's KCapsActivate flag not set"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Get the context config using network info
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Open a new primary context.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Set a valid context config with RPacketContext::SetConfig
+ TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ packetContext.SetConfig(setConfigStatus, configPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0, _L("Packet context config has zero length contextId."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Check that there is one NIF with one primary context belonging to it ===
+
+ // Get context info
+ TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
+ CleanupStack::PushL(getContextInfo);
+ RPacketService::TContextInfo contextInfo;
+ const TInt index = 0;
+ packetService.GetContextInfo(getContextInfo, index, contextInfo);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
+ ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+ TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(nifsStatus);
+ TInt nifCount = 0;
+ const TInt wantedCount = 1;
+ packetService.EnumerateNifs(nifsStatus, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned with an error."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
+ TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(enumerateContextsInNifStatus);
+ TInt contextsInNifCount;
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, contextInfo.iName, contextsInNifCount);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out"));
+ ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif returned wrong number of contexts sharing a NIF"));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
+ TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(contextNameNifsStatus);
+ TInt iIndex = 0;
+ TName contextName;
+ packetService.GetContextNameInNif(contextNameNifsStatus, contextInfo.iName, iIndex, contextName );
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextInfo.iName, contextName, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+ ASSERT_EQUALS(iIndex, KErrNone, _L("RPacketContext::GetContextNameInNif with aIndex returned with an error"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
+
+ TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(nifInfoStatus);
+ const TInt nifInfoCount = 0;
+ RPacketService::TNifInfoV2 nifInfoV2;
+ RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
+ ASSERT_EQUALS_DES16(nifInfoV2.iContextName, contextName, _L("RPacketService::GetNifInfo with valid name returned with an error"));
+ ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 1, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
+ ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketSerivce::GetNifInfo with iNifStatus returned with an error"));
+ ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
+
+ // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
+ // Changed test procedure to check for EInternalContext instead of EExternalContext
+ ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type"));
+
+ // Post notification for context's status change
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Deactivate the context with RPacketContext::Deactivate
+ TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ packetContext.Deactivate(contextDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("RPacketContext::GetStatus returns incorrect status."));
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::EnumerateNifs returns aCount = 0
+ TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(enumerateNifsStatus);
+ nifCount = 0;
+ const TInt wantedEnumerateNifsCount = 1;
+ packetService.EnumerateNifs(enumerateNifsStatus, nifCount);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out"));
+ ASSERT_EQUALS(nifCount, wantedEnumerateNifsCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // pop
+ // getNetworkStatus
+ // setConfigStatus
+ // notifyContextStatus
+ // contextActivateStatus
+ // notifyContextStatus
+ // notifyContextStChStatus
+ // nifsStatus
+ // ContextNifsStatus
+ // ContextNameNifsStatus
+ // nifInfoStatus
+ // contextDeactivateStatus
+ // enumerateNifsStatus
+ CleanupStack::PopAndDestroy(12, &getNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0002::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0002");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0003::CCTSYIntegrationTestPacketContext0003(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0003::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0003::~CCTSYIntegrationTestPacketContext0003()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0003::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0003
+ * @SYMFssID BA/CTSY/PKTC-0003
+ * @SYMTestCaseDesc Activate and deactivate a primary context (roaming).
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyContextAdded, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps, RPacketContext::GetConfig, RPacketContext::Deactivate, RPacketContext::GetDnsInfo
+ * @SYMTestExpectedResults Pass - Primary context is activated then deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Get the registration status and ensure that the phone is camped on a valid cell.
+
+ // Ensure phone is attached to packet service.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check RPacketService::GetNtwkRegStatus returns ERegisteredRoaming
+
+ // Set a valid context config with RPacketContext::SetConfig
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+
+ // Activate packet context with RPacketContext::Activate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+
+ // === Get context information ===
+
+ // Check RPacketContext::GetConfig returns same config as that set
+
+ // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
+
+ // Deactivate the context with RPacketContext::Deactivate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0003::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0003");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0004::CCTSYIntegrationTestPacketContext0004(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0004::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0004::~CCTSYIntegrationTestPacketContext0004()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0004::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0004
+ * @SYMFssID BA/CTSY/PKTC-0004
+ * @SYMTestCaseDesc Activate and deactivate a primary context (roaming).
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::GetContextNameInNif, RPacketService::GetNifInfo, RPacketService::EnumerateContextsInNif, RPacketContext::Deactivate, RPacketService::EnumerateContextsInNif, RPacketContext::Deactivate
+ * @SYMTestExpectedResults Pass - Context activated and deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify NIF related info from RPacketService correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check RPacketService::GetNtwkRegStatus returns ERegisteredRoaming
+
+ // Set a valid context config with RPacketContext::SetConfig
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+
+ // Activate packet context with RPacketContext::Activate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // === Check that there is one NIF with one primary context belonging to it ===
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
+
+ // Deactivate the context with RPacketContext::Deactivate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+
+ // Check RPacketService::EnumerateNifs returns aCount = 0
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0004::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0004");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0005::CCTSYIntegrationTestPacketContext0005(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0005::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0005::~CCTSYIntegrationTestPacketContext0005()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0005::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0005
+ * @SYMFssID BA/CTSY/PKTC-0005
+ * @SYMTestCaseDesc Activate and deactivate an HSDPA context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketContext::SetConfig, RPacketContext::GetDnsInfo
+ * @SYMTestExpectedResults Pass - Context activated and deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify packet service status, packet context statuses, dynamic caps has KCapsHSDPA and static caps are correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ //Check if we are on a simulated network
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10083);
+ User::Leave(KErrNone);
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure RPacketService::GetStaticCaps returns caps in set of KCapsHSDPASupported
+ TUint staticCaps = 0;
+ TUint expectedCaps = RPacketService::KCapsHSDPASupported;
+ CHECK_EQUALS_L(packetService.GetStaticCaps(staticCaps, RPacketContext::EPdpTypeIPv4), KErrNone, _L("RPacketService::GetStaticCaps returned an error"));
+ CHECK_BITS_SET_L(staticCaps, expectedCaps, KNoUnwantedBits, _L("RPacketService::GetStaticCaps did not return correct static caps"));
+
+ // Ensure phone is attached to the packet service in an HSDPA enabled cell.
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Open a primary context.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0, _L("Packet context config has zero length contextId."));
+
+ // Set a valid context config with RPacketContext::SetConfig
+ //Get network info from phone
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ TExtEtelRequestStatus getNetworkStatus (phone,EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium), KErrNone, _L("MobilePhone::GetCurrentNetwork timed out"))
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("MobilePhone::GetCurrentNetwork returned an error"))
+
+ // Get the context config using network info
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn,user,pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info,apn,user,pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+
+ // set the context using network info
+ TExtEtelRequestStatus setConfigStatus (packetContext,EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ packetContext.SetConfig(setConfigStatus,configPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("PacketContext::SetConfig timed out"))
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("PacketContext::SetConfig returned an error."))
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for service's dynamic caps change
+ RPacketService::TDynamicCapsFlags dynCaps;
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+ TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer | RPacketService::KCapsHSDPA;
+ TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
+ packetService,
+ notifyServiceDynCapsStatus,
+ dynCaps,
+ wantedDynCapBits,
+ unWantedDynCapBits,
+ KErrNone);
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps did not return correct dynamic caps"));
+
+ // === Get context information ===
+
+ // Check RPacketContext::GetConfig returns same config as that set
+ TExtEtelRequestStatus contextConfigStatus(packetContext, EPacketContextGetConfig);
+ CleanupStack::PushL(contextConfigStatus);
+ RPacketContext::TContextConfigGPRS getConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
+ packetContext.GetConfig(contextConfigStatus, getConfigPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
+ ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
+ ASSERT_EQUALS_DES8(getConfig.iAccessPointName, config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
+
+ // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
+ RPacketContext::TDnsInfoV2 dnsInfo;
+ RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
+ TExtEtelRequestStatus dnsInfoStatus(packetContext, EPacketContextGetDNSInfo);
+ CleanupStack::PushL(dnsInfoStatus);
+ packetContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
+ ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
+ ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
+ ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
+
+ // Post notification for context's status change
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for service's status change
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Deactivate the context with RPacketContext::Deactivate
+ TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ packetContext.Deactivate(contextDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+ expectedPacketServiceStatus = RPacketService::EStatusAttached;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // pop
+ // getNetworkStatus
+ // setConfigStatus
+ // notifyContextStatus
+ // notifyServiceStChStatus
+ // notifyContextStChStatus
+ // notifyServiceDynCapsStatus
+ // contextActivateStatus
+ // contextConfigStatus
+ // dnsInfoStatus
+ // contextDeactivateStatus
+
+ CleanupStack::PopAndDestroy(10, &getNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0005::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0005");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0006::CCTSYIntegrationTestPacketContext0006(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0006::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0006::~CCTSYIntegrationTestPacketContext0006()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0006::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0006
+ * @SYMFssID BA/CTSY/PKTC-0006
+ * @SYMTestCaseDesc Activate and deactivate an EGPRS context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketContext::SetConfig, RPacketContext::GetDnsInfo
+ * @SYMTestExpectedResults Pass - Context activated and deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10084);
+ User::Leave(KErrNone);
+
+
+ //Check if we are on a simulated network to run emergency call tests
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Ensure RPacketService::GetStaticCaps returns caps in set of KCapsEGPRSSupported
+ TUint staticCaps = 0;
+ TUint expectedCaps = RPacketService::KCapsEGPRSSupported;
+ CHECK_EQUALS_L(packetService.GetStaticCaps(staticCaps, RPacketContext::EPdpTypeIPv4), KErrNone, _L("RPacketService::GetStaticCaps returned an error"));
+ CHECK_BITS_SET_L(staticCaps, expectedCaps, KNoUnwantedBits, _L("RPacketService::GetStaticCaps did not return correct static caps"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Open a primary context.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0, _L("RPacketService::NotifyContextAdded returned zero length contextId."));
+
+ // Set a valid context config with iUseEdge = ETrue using RPacketContext::SetConfig
+ //Get network info from phone
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ TExtEtelRequestStatus getNetworkStatus (phone,EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium), KErrNone, _L("MobilePhone::GetCurrentNetwork timed out"))
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("MobilePhone::GetCurrentNetwork returned an error"))
+
+ // Get the context config using network info
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn,user,pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info,apn,user,pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TBool edge = ETrue;
+ config.iUseEdge = edge;
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+
+ // set the context using network info
+ TExtEtelRequestStatus setConfigStatus (packetContext,EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ packetContext.SetConfig(setConfigStatus,configPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("PacketContext::SetConfig timed out"))
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("PacketContext::SetConfig returned an error."))
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for service's dynamic caps change
+ RPacketService::TDynamicCapsFlags dynCaps;
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsEGPRS.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+ TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer | RPacketService::KCapsEGPRS;
+ TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
+ packetService,
+ notifyServiceDynCapsStatus,
+ dynCaps,
+ wantedDynCapBits,
+ unWantedDynCapBits,
+ KErrNone);
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsEGPRS
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
+
+ // === Get context information ===
+
+ // Get context info
+ TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
+ CleanupStack::PushL(getContextInfo);
+ RPacketService::TContextInfo contextInfo;
+ const TInt index = 0;
+ packetService.GetContextInfo(getContextInfo, index, contextInfo);
+
+ // Check RPacketContext::GetConfig returns same config as that set
+ TExtEtelRequestStatus contextConfigStatus(packetContext, EPacketContextGetConfig);
+ CleanupStack::PushL(contextConfigStatus);
+ RPacketContext::TContextConfigGPRS getConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
+ packetContext.GetConfig(contextConfigStatus, getConfigPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
+ ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
+ ASSERT_EQUALS_DES8(getConfig.iAccessPointName, config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS(getConfig.iUseEdge, config.iUseEdge, _L("RPacketContext::GetConfig returns incorrect config data."));
+
+ // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
+ RPacketContext::TDnsInfoV2 dnsInfo;
+ RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
+ TExtEtelRequestStatus dnsInfoStatus(packetContext, EPacketContextGetDNSInfo);
+ CleanupStack::PushL(dnsInfoStatus);
+ packetContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
+ ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
+ ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
+ ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
+
+ // === Check that there is one NIF with one primary context belonging to it ===
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+ TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(nifsStatus);
+ TInt countValue = 0;
+ packetService.EnumerateNifs(nifsStatus, countValue);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(countValue, 1, _L("RPacketContext::EnumerateNifs returned wrong aValue"));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
+ TExtEtelRequestStatus contextNifsStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(contextNifsStatus);
+ countValue = 0;
+ packetService.EnumerateContextsInNif(contextNifsStatus, contextInfo.iName, countValue);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(countValue, 1, _L("RPacketService::EnumerateContextsInNif returned with an error."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
+ TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(contextNameNifsStatus);
+ TInt ind = 0;
+ TName contextName;
+ packetService.GetContextNameInNif(contextNameNifsStatus, contextInfo.iName, ind, contextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned an error."));
+ ASSERT_EQUALS_DES16(contextName, contextInfo.iName, _L("RPacketService::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
+ TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(nifInfoStatus);
+ RPacketService::TNifInfoV2 nifInfoV2;
+ RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
+ packetService.GetNifInfo(nifInfoStatus, countValue, nifInfoV2Pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned an error."));
+ ASSERT_EQUALS_DES16(nifInfoV2.iContextName, contextName, _L("RPacketService::GetNifInfo with valid name returned with an error"));
+ ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 1, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
+ ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo with iNifStatus returned with an error"));
+ ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo with iPdpAddress returned with an error"));
+ ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo with iContextType returned with an error"));
+
+ // Post notification for context's status change
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for service's status change
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Deactivate the context with RPacketContext::Deactivate
+ TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ packetContext.Deactivate(contextDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+ expectedPacketServiceStatus = RPacketService::EStatusAttached;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // pop
+ // notifyContextStatus
+ // getNetworkStatus
+ // setConfigStatus
+ // notifyServiceStChStatus
+ // notifyContextStChStatus
+ // notifyServiceDynCapsStatus
+ // contextActivateStatus
+ // getContextInfo
+ // contextConfigStatus
+ // dnsInfoStatus
+ // NifsStatus
+ // contextNifsStatus
+ // contextNameNifsStatus
+ // NifInfoStatus
+ // contextDeactivateStatus
+ CleanupStack::PopAndDestroy(15, ¬ifyContextStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0006::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0006");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0007::CCTSYIntegrationTestPacketContext0007(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0007::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0007::~CCTSYIntegrationTestPacketContext0007()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0007::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0007
+ * @SYMFssID BA/CTSY/PKTC-0007
+ * @SYMTestCaseDesc Activate and deactivate a secondary context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::NotifyDynamicCapsChange, RPacketService::GetStatus, RPacketContext::SetConfig, RPacketContext::GetDnsInfo, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify packet service status, packet context statuses, dynamic caps
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+ // wait until we are on the network
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ //Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure phone is attached to the packet service.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Post notification for the ContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Open a primary context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Open a new secondary context from primary context
+ RPacketContext& secondaryPacketContext2 = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext2,1), KErrNone,
+ _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ // Note: Using GPRS params
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities timed out."))
+ ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities returned with error status."))
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::SetProfileParameters timed out."))
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
+ _L("RPacketQoS::SetProfileParameters returned with error status."))
+
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeShort), KErrNone,
+ _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
+ _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0,
+ _L("RPacketService::NotifyContextAdded Packet context config has zero length contextId."));
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Activate primary context with RPacketContext::Activate
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus did not return RPacketService::EStatusActive."));
+
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+ RPacketContext::TContextStatus packetContextStatus;
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext2, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Post notification for for service's dynamic caps change
+ RPacketService::TDynamicCapsFlags dynCaps;
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext2, EPacketContextActivate);
+ CleanupStack::PushL(secContextActivateStatus);
+ secondaryPacketContext2.Activate(secContextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedSecPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecPacketContextStatus,
+ KErrNone);
+ secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // -> EStatusActive
+ expectedSecPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(secondaryPacketContext2.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+
+ // $CTSYProblem.
+ // GetDynamicCaps does not change since the LTSY dose not call the EPacketNotifyDynamicCapsChange when the context is activated
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+
+ // $CTSYProblem.
+ // GetDynamicCaps dose not change since the LTSY dose not call the EPacketNotifyDynamicCapsChange when the context is activated
+
+ // === Get context information ===
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Check RPacketContext::GetConfig for primary context returns same config as that set
+ TExtEtelRequestStatus contextConfigStatus(primaryPacketContext , EPacketContextGetConfig);
+ CleanupStack::PushL(contextConfigStatus);
+ RPacketContext::TContextConfigGPRS getConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
+ primaryPacketContext.GetConfig(contextConfigStatus, getConfigPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::GetConfig timed out."))
+ ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::GetConfig returned an error."));
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ ASSERT_EQUALS_DES8(getConfig.iAccessPointName,
+ config.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername,
+ config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword,
+ config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
+
+ // Check RPacketContext::GetDnsInfo for primary context returns valid primary and secondary DNS ip addresses
+ RPacketContext::TDnsInfoV2 dnsInfoPrimary;
+ RPacketContext::TTDnsInfoV2Pckg dnsInfoPrimaryPkg(dnsInfoPrimary);
+ TExtEtelRequestStatus dnsInfoStatus(primaryPacketContext, EPacketContextGetDNSInfo);
+ CleanupStack::PushL(dnsInfoStatus);
+ primaryPacketContext.GetDnsInfo(dnsInfoStatus, dnsInfoPrimaryPkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
+ ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
+ ASSERT_TRUE(dnsInfoPrimary.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
+ ASSERT_TRUE(dnsInfoPrimary.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
+
+ // Check RPacketContext::GetDnsInfo for secondary context returns same primary and secondary DNS ip addresses as for the primary context
+ RPacketContext::TDnsInfoV2 dnsInfoSecondary;
+ RPacketContext::TTDnsInfoV2Pckg dnsInfoSecondaryPkg(dnsInfoSecondary);
+ TExtEtelRequestStatus dnsInfoStatus2(secondaryPacketContext2, EPacketContextGetDNSInfo);
+ CleanupStack::PushL(dnsInfoStatus2);
+ secondaryPacketContext2.GetDnsInfo(dnsInfoStatus2, dnsInfoSecondaryPkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus2, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
+ ASSERT_EQUALS(dnsInfoStatus2.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
+ ASSERT_TRUE(dnsInfoSecondary.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
+ ASSERT_TRUE(dnsInfoSecondary.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
+
+ // Compare ip addresses
+ ASSERT_EQUALS_DES8(dnsInfoPrimary.iPrimaryDns, dnsInfoSecondary.iPrimaryDns,
+ _L("RPacketContext::GetDnsInfo IP addresses mismatch for Primary and Secondary contexts."));
+ ASSERT_EQUALS_DES8(dnsInfoPrimary.iSecondaryDns, dnsInfoSecondary.iSecondaryDns,
+ _L("RPacketContext::GetDnsInfo IP addresses mismatch for Primary and Secondary contexts."));
+
+ // Post notification for context's status change
+ secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Deactivate the secondary context with RPacketContext::Deactivate
+ TExtEtelRequestStatus secCntxtDeactivateStatus(secondaryPacketContext2, EPacketContextDeactivate);
+ CleanupStack::PushL(secCntxtDeactivateStatus);
+ secondaryPacketContext2.Deactivate(secCntxtDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(secCntxtDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(secCntxtDeactivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusDeactivating -> EStatusInactive
+ expectedSecPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecPacketContextStatus,
+ KErrNone);
+ secondaryPacketContext2.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContext2Status = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedPacketContext2Status,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
+ ASSERT_EQUALS(secondaryPacketContext2.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusInactive."));
+
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop:
+ // secCntxtDeactivateStatus
+ // dnsInfoStatus2
+ // dnsInfoStatus
+ // contextConfigStatus
+ // getNetworkStatus
+ // secContextActivateStatus
+ // notifyServiceDynCapsStatus
+ // notifySecContextStChStatus
+ // notifyServiceStChStatus
+ // setProfileParamStatus
+ // getProfileCapStatus
+ // notifyContextStatus
+ CleanupStack::PopAndDestroy(12,¬ifyContextStatus);
+
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0007::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0007");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0008::CCTSYIntegrationTestPacketContext0008(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0008::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0008::~CCTSYIntegrationTestPacketContext0008()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0008::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0008
+ * @SYMFssID BA/CTSY/PKTC-0008
+ * @SYMTestCaseDesc Activate and deactivate a secondary context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::EnumerateContextsInNif, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify NIF info from RPacketService correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ //Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure phone is attached to the packet service.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName primaryContextId;
+ packetService.NotifyContextAdded(notifyContextStatus, primaryContextId);
+
+ // Open a primary packet context
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ CHECK_TRUE_L(primaryContextId.Length() > 0, _L("RPacketService::NotifyContextAdded returned with zero length context name."));
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TName secondaryContextId;
+ packetService.NotifyContextAdded(notifyContextStatus, secondaryContextId);
+
+ // Open a secondary packet context
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ CHECK_TRUE_L(secondaryContextId.Length() > 0, _L("RPacketService::NotifyContextAdded returned with zero length context name."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getQoSProfileCapsStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getQoSProfileCapsStatus);
+ RPacketQoS::TQoSCapsGPRS qosCaps;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsPckg(qosCaps);
+ packetQoS.GetProfileCapabilities(getQoSProfileCapsStatus, qosCapsPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getQoSProfileCapsStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."))
+ ASSERT_EQUALS(getQoSProfileCapsStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned error."))
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosReqPckg(qosRequested);
+ FillParametersFromCapabilities(qosRequested,qosCaps);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Get network info from phone
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"))
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"))
+
+ // Get the context config using network info
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+
+ // Set a valid context config with RPacketContext::SetConfig
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+ TExtEtelRequestStatus setConfigStatus (primaryPacketContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ primaryPacketContext.SetConfig(setConfigStatus,configPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"))
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned an error."))
+
+ // Set notify for primary context change
+ TExtEtelRequestStatus reqPriContextChangeStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(reqPriContextChangeStatus);
+ RPacketContext::TContextStatus primaryPacketContextStatus;
+ primaryPacketContext.NotifyStatusChange(reqPriContextChangeStatus, primaryPacketContextStatus);
+
+
+ // Activate primary context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ reqPriContextChangeStatus,
+ primaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(reqPriContextChangeStatus, primaryPacketContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ reqPriContextChangeStatus,
+ primaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned error."));
+ ASSERT_EQUALS(primaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive as expected."));
+
+
+ // Set notify for secondary context change
+ TExtEtelRequestStatus reqSecContextChangeStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(reqSecContextChangeStatus);
+ RPacketContext::TContextStatus secondaryPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(reqSecContextChangeStatus, secondaryPacketContextStatus);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(secContextActivateStatus);
+ secondaryPacketContext.Activate(secContextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeMedium), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ reqSecContextChangeStatus,
+ secondaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ secondaryPacketContext.NotifyStatusChange(reqSecContextChangeStatus, secondaryPacketContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ reqSecContextChangeStatus,
+ secondaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned error."));
+ ASSERT_EQUALS(secondaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive as expected."));
+
+ // === Check that there is one NIF with one primary and one secondary context belonging to it ===
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+ TExtEtelRequestStatus reqNifStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(reqNifStatus);
+ TInt nifCount = 0;
+ packetService.EnumerateNifs(reqNifStatus, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(nifCount, 1, _L("RPacketService::EnumerateNifs did not return 1 as expected"));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
+ TExtEtelRequestStatus reqContextNifStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(reqContextNifStatus);
+ packetService.EnumerateContextsInNif(reqContextNifStatus, primaryContextId, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqContextNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(nifCount, 2, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected"));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing secondary context name returns aCount = 2
+ nifCount = 0;
+ packetService.EnumerateContextsInNif(reqContextNifStatus, secondaryContextId, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqContextNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(nifCount, 2, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected"));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns valid context name in aContextName
+ TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(contextNameNifsStatus);
+ TInt index = 0;
+ TName returnedContextName;
+ packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned error"));
+ ASSERT_TRUE(returnedContextName.Length() > 0, _L("RPacketService::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns valid context name in aContextName
+ index = 1;
+ packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned error"));
+ ASSERT_TRUE(returnedContextName.Length() > 0, _L("RPacketService::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 2 returns an error != KErrNone
+ index = 2;
+ packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_TRUE(contextNameNifsStatus.Int() != KErrNone, _L("RPacketService::GetContextNameInNif did not return an error as expected"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ TExtEtelRequestStatus reqNifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(reqNifInfoStatus);
+ RPacketService::TNifInfoV2 nifInfoV2;
+ RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
+ index = 0;
+ packetService.GetNifInfo(reqNifInfoStatus, index, nifInfoV2Pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqNifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo timed out"));
+ ASSERT_EQUALS(reqNifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
+ ASSERT_TRUE(nifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with aCount = 0 returned with invalid iContextName"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
+ ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo with iNumberOfContexts did not return 2 as expected"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo did not return EStatusActive as expected"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo with iPdpAddress returned with an error"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
+ ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo did not return EInternalContext as expected"));
+
+ // Deactivate the secondary context with RPacketContext::Deactivate
+ TExtEtelRequestStatus secContextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(secContextDeactivateStatus);
+ secondaryPacketContext.Deactivate(secContextDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextDeactivateStatus, ETimeMedium), KErrNone, _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(secContextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned error."));
+
+ //Release QoS
+ iEtelSessionMgr.ReleaseSecondaryPacketContextQoS(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Release packet contexts
+ iEtelSessionMgr.ReleaseSecondaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+ iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // notifyContextStatus
+ // getQoSProfileCapsStatus
+ // setProfileParamStatus
+ // getNetworkStatus
+ // setConfigStatus
+ // reqPriContextChangeStatus
+ // contextActivateStatus
+ // reqSecContextChangeStatus
+ // secContextActivateStatus
+ // reqNifStatus
+ // reqContextNifStatus
+ // contextNameNifsStatus
+ // reqNifInfoStatus
+ // secContextDeactivateStatus
+ CleanupStack::PopAndDestroy(14, ¬ifyContextStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0008::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0008");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0009::CCTSYIntegrationTestPacketContext0009(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0009::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0009::~CCTSYIntegrationTestPacketContext0009()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0009::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0009
+ * @SYMFssID BA/CTSY/PKTC-0009
+ * @SYMTestCaseDesc Activate and deactivate a secondary context (roaming).
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::NotifyDynamicCapsChange, RPacketService::GetStatus, RPacketContext::SetConfig, RPacketContext::GetDnsInfo, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify packet service status, packet context statuses, dynamic caps.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to packet service.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // Set a valid context config with RPacketContext::SetConfig
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+
+ // Activate primary context with RPacketContext::Activate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+ // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+
+ // Open a new secondary context from primary context
+
+ // Activate the secondary context.
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer | KCapsHSDPA
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+
+ // === Get context information ===
+
+ // Check RPacketContext::GetConfig for primary context returns same config as that set
+
+ // Check RPacketContext::GetDnsInfo for primary context returns valid primary and secondary DNS ip addresses
+ // Check RPacketContext::GetDnsInfo for secondary context returns same primary and secondary DNS ip addresses as for the primary context
+
+ // Deactivate the secondary context with RPacketContext::Deactivate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusDeactivating -> EStatusInactive
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+
+ // Check RPacketService::GetStatus for the secondary context returns EStatusActive
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0009::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0009");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0010::CCTSYIntegrationTestPacketContext0010(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0010::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0010::~CCTSYIntegrationTestPacketContext0010()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0010::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0010
+ * @SYMFssID BA/CTSY/PKTC-0010
+ * @SYMTestCaseDesc Activate and deactivate a secondary context (roaming).
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateNifs, RPacketService::EnumerateContextsInNif, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Secondary context is activated then deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify NIF info from RPacketService correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to the packet service.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // Set a valid context config with RPacketContext::SetConfig
+
+ // Activate primary context with RPacketContext::Activate
+
+ // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+
+ // Open a new secondary context from primary context
+
+ // Activate the secondary context.
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+
+ // === Check that there is one NIF with one primary and one secondary context belonging to it ===
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing secondary context name returns aCount = 2
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns valid context name in aContextName
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns valid context name in aContextName
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 2 returns an error != KErrNone
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
+
+ // Deactivate the secondary context with RPacketContext::Deactivate
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0010::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0010");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0011::CCTSYIntegrationTestPacketContext0011(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0011::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0011::~CCTSYIntegrationTestPacketContext0011()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0011::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0011
+ * @SYMFssID BA/CTSY/PKTC-0011
+ * @SYMTestCaseDesc Activate a context when it is already active.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::Activate, RPacketContext::GetStatus
+ * @SYMTestExpectedResults Pass - Error returned on activation.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context status.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ // Ensure a primary PDP context is active.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Activate the active context with RPacketContext::Activate.
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+
+ // Check error is returned.
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_TRUE(contextActivateStatus.Int() != KErrNone, _L("RPacketContext::Activate did not return error as expected."));
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ RPacketContext::TContextStatus primaryPacketContextStatus;
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(primaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusActive."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // contextActivateStatus
+ CleanupStack::PopAndDestroy(1, &contextActivateStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0011::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0011");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0012::CCTSYIntegrationTestPacketContext0012(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0012::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0012::~CCTSYIntegrationTestPacketContext0012()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0012::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0012
+ * @SYMFssID BA/CTSY/PKTC-0012
+ * @SYMTestCaseDesc Re-activate a context after deactivation.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps
+ * @SYMTestExpectedResults Pass - Context is deactivated and then reactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context and packet service status, dynamic caps.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Get the attach mode so that it can be restored at the end of the test
+ RPacketService::TAttachMode attachMode;
+ CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Ensure a PDP context is active.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for service's dynamic caps change
+ RPacketService::TDynamicCapsFlags dynCaps;
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Deactivate the PDP context with RPacketContext::Deactivate
+ TExtEtelRequestStatus contextDeactivateStatus(packetContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ packetContext.Deactivate(contextDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusAttached;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+ TInt wantedDynCapBits = RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsRxCSCall;
+ TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps did not return correct dynamic caps"));
+
+ // Post notification for service's status change
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Activate a PDP context again.
+ // Post notification for context's status change
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50002 );
+ // CTSY doesn´t support context re-activation. See cmmpacketcontextgsmwcdmaext.cpp and CMmPacketContextGsmWcdmaExt::ActivateL()
+ // Test case is made to leave because of this.
+ CHECK_TRUE_L(EFalse, _L("This test has been made to leave intentionally - ***Send message fail, and ctsy cancel it later****"));
+ packetContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActive
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("Packet Context's status expected to be EStatusActive but is not."));
+
+ // Post notification for context's status change
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+ wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
+ unWantedDynCapBits = RPacketService::KCapsManualAttach;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
+ packetService,
+ notifyServiceDynCapsStatus,
+ dynCaps,
+ wantedDynCapBits,
+ unWantedDynCapBits,
+ KErrNone);
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Return packet service's attach mode to original setting
+ packetService.SetAttachMode(attachMode);
+
+ // pop
+ // notifyContextStChStatus
+ // notifyServiceStChStatus
+ // notifyServiceDynCapsStatus
+ // contextDeactivateStatus
+ // contextActivateStatus
+
+ CleanupStack::PopAndDestroy(5, ¬ifyContextStChStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0012::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0012");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0013::CCTSYIntegrationTestPacketContext0013(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0013::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0013::~CCTSYIntegrationTestPacketContext0013()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0013::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0013
+ * @SYMFssID BA/CTSY/PKTC-0013
+ * @SYMTestCaseDesc Activate and deactivate two primary contexts.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::GetConfig, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::EnumerateContexts, RPacketService::GetContextInfo, RPacketContext::GetDnsInfo, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateNifs, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketContext::Deactivate
+ * @SYMTestExpectedResults Pass - Two contexts can be simultaneously active.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify it is possible to have two active primary contexts simultaneously.
+
+Verify context and packet service status, NIF related info, DNS and context config info.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Attach to the packet service.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L( iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL( phone ), KErrNone,
+ _L("Network is unavailable") );
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Activate a primary context.
+ RPacketContext& packetContext1 = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext1);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Open another primary context (referred to in this test as "primary context 2")
+ RPacketContext& packetContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext2);
+
+ // Set a valid context config for primary context 2 using RPacketContext::SetConfig
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeMedium),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ RPacketContext::TContextConfigGPRS contextConfig;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd, 2);
+ contextConfig.iAccessPointName.Copy(apn);
+ contextConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ contextConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TPckg<RPacketContext::TContextConfigGPRS> contextConfigPckg(contextConfig);
+ TExtEtelRequestStatus setConfigStatus(packetContext2, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ packetContext2.SetConfig(setConfigStatus, contextConfigPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::SetConfig returned with error status."));
+
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
+ _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0,
+ _L("Packet context config has zero length contextId."));
+
+
+ // Post notification for service's dynamic caps change
+ RPacketService::TDynamicCapsFlags dynCaps;
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(packetContext2, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+
+ // Activate primary context 2 with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(packetContext2, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext2.Activate(contextActivateStatus);
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Activate timed-out"));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketContext::NotifyStatusChange for primary context 2 completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext2,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
+ packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext2,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for primary context 2 returns EStatusActive
+ ASSERT_EQUALS(packetContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange for primary context 2 completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
+ // Check RPacketService::NotifyDynamicCapsChange for primary context 2 completes with caps NOT in set of RPacketService::KCapsManualAttach
+ TInt wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
+ TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
+ packetService,
+ notifyServiceDynCapsStatus,
+ dynCaps,
+ wantedDynCapBits,
+ unWantedDynCapBits,
+ KErrNone);
+
+ // Check RPacketService::GetDynamicCaps for primary context 2 returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
+ // Check RPacketService::GetDynamicCaps for primary context 2 returns caps NOT in set of RPacketService::KCapsManualAttach
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
+
+ // === Get context information ===
+
+ // Check RPacketContext::GetConfig for primary context 2 returns same config as that set
+ TExtEtelRequestStatus contextConfigStatus(packetContext2, EPacketContextGetConfig);
+ CleanupStack::PushL(contextConfigStatus);
+ RPacketContext::TContextConfigGPRS getConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPk(getConfig);
+ packetContext2.GetConfig(contextConfigStatus, getConfigPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::GetConfig timed out."));
+ ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::GetConfig returned an error."));
+ ASSERT_EQUALS_DES8(getConfig.iAccessPointName, contextConfig.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, contextConfig.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, contextConfig.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
+
+ // Check RPacketContext::GetDnsInfo for primary context 2 returns valid primary and secondary DNS ip addresses
+ RPacketContext::TDnsInfoV2 dnsInfo;
+ RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
+ TExtEtelRequestStatus dnsInfoStatus(packetContext2, EPacketContextGetDNSInfo);
+ CleanupStack::PushL(dnsInfoStatus);
+ packetContext2.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::GetDnsInfo timed out."));
+ ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetDnsInfo returned an error."));
+ ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0,
+ _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
+ ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0,
+ _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
+
+ // === Check that there is one NIF with one primary context belonging to it ===
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = name of primary context 2 returns aCount = 1
+ TExtEtelRequestStatus enumContextsInfStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(enumContextsInfStatus);
+ TInt count=-1;
+ packetService.EnumerateContextsInNif(enumContextsInfStatus,contextId,count);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsInfStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(enumContextsInfStatus.Int(), KErrNone,
+ _L("RPacketService::EnumerateContextsInNif failed."));
+ ASSERT_EQUALS(count,1,_L("RPacketService::EnumerateContextsInNif did not return correct number of NIFs."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = name of primary context 2 and aIndex = 0 returns context name which is same as the name of primary context 2
+ TBuf<200> contextName;
+ TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(getContextNameInNifStatus);
+ packetService.GetContextNameInNif(getContextNameInNifStatus,contextId,0,contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone,
+ _L("RPacketService::GetContextNameInNif failed."));
+ ASSERT_EQUALS_DES16(contextName,contextId,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
+
+ // Check RPacketService::EnumerateNifs returns aCount = 2
+ TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(enumerateNifsStatus);
+ count=-1;
+ packetService.EnumerateNifs(enumerateNifsStatus,count);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(enumerateNifsStatus.Int(), KErrNone,
+ _L("RPacketService::EnumerateNifs failed."));
+ ASSERT_EQUALS(count,2,_L("RPacketService::EnumerateNifs did not return correct number of NIFs."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ TExtEtelRequestStatus getNifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(getNifInfoStatus);
+ RPacketService::TNifInfoV2 nifInfo;
+ RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
+ packetService.GetNifInfo(getNifInfoStatus,0,nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(getNifInfoStatus.Int(), KErrNone,
+ _L("RPacketService::GetNifInfo failed."));
+ ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo invlaid context name"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
+ ASSERT_EQUALS(nifInfo.iNumberOfContexts,1,_L("RPacketService::GetNifInfo wrong number of contexts"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfo.iNifStatus,RPacketContext::EStatusActive,_L("RPacketService::GetNifInfo wrong status"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfo.iPdpAddress.Length()>0,_L("RPacketService::GetNifInfo invlaid PDP address"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
+ ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext,_L("RPacketService::GetNifInfo wrong type"));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns valid name in iContextName
+ packetService.GetNifInfo(getNifInfoStatus,1,nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(getNifInfoStatus.Int(), KErrNone,
+ _L("RPacketService::GetNifInfo failed."));
+ ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo invlaid context name"));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns iNumberOfContexts = 1
+ ASSERT_EQUALS(nifInfo.iNumberOfContexts,1,_L("RPacketService::GetNifInfo wrong number of contexts"));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfo.iNifStatus,RPacketContext::EStatusActive,_L("RPacketService::GetNifInfo wrong status"));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfo.iPdpAddress.Length()>0,_L("RPacketService::GetNifInfo invlaid PDP address"));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns EExternalContext
+ ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext,_L("RPacketService::GetNifInfo wrong type"));
+
+ // Post notification for context's status change
+ packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Deactivate primary context 2 with RPacketContext::Deactivate
+ TExtEtelRequestStatus contextDeactivateStatus(packetContext2, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ packetContext2.Deactivate(contextDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for primary context 2 completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext2,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
+ packetContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext2,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("Packet Context's status expected to be EStatusActivating but is not."));
+
+ // Check RPacketContext::GetStatus returns for primary context 2 EStatusInactive
+ ASSERT_EQUALS(packetContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq
+ wantedDynCapBits=RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall;
+ unWantedDynCapBits=RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq;
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ //ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("Packet service's KCapsActivate flag not set"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop:
+ // contextDeactivateStatus
+ // getNifInfoStatus
+ // enumerateNifsStatus
+ // getContextNameInNifStatus
+ // enumContextsInfStatus
+ // dnsInfoStatus
+ // contextConfigStatus
+ // contextActivateStatus
+ // notifyContextStChStatus
+ // notifyServiceDynCapsStatus
+ // notifyServiceStChStatus
+ // setConfigStatus
+ // getNetworkStatus
+ // notifyContextStatus
+ CleanupStack::PopAndDestroy(14,¬ifyContextStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0013::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0013");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0014::CCTSYIntegrationTestPacketContext0014(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0014::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0014::~CCTSYIntegrationTestPacketContext0014()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0014::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0014
+ * @SYMFssID BA/CTSY/PKTC-0014
+ * @SYMTestCaseDesc Deactivate a primary context when there is a secondary context active.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps, RPacketService::EnumerateNifs, RPacketContext::Deactivate
+ * @SYMTestExpectedResults Pass - Primary and secondary contexts deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify secondary is also deactivated.
+
+Verify packet service status, packet context status, context info, NIF info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ //Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Set the attach mode to EAttachWhenPossible.
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Ensure there is a primary context active and a secondary context active.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ RPacketContext& secondaryPacketContext2 = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
+
+ // Activate the secondary context.
+ ActivateSecondaryPacketContextL(secondaryPacketContext2);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+
+
+
+ // Post notification for primary context status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for secondary context status change
+ TExtEtelRequestStatus notifyContext2StChStatus(secondaryPacketContext2, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContext2StChStatus);
+ RPacketContext::TContextStatus packetContextStatus2;
+ secondaryPacketContext2.NotifyStatusChange(notifyContextStChStatus, packetContextStatus2);
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for service's dynamic caps change
+ RPacketService::TDynamicCapsFlags dynCaps;
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Deactivate the primary context.
+ TExtEtelRequestStatus contextDeactivateStatus(primaryPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ primaryPacketContext.Deactivate(contextDeactivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for primary context completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for primary context returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10061 );
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifyContext2StChStatus,
+ packetContextStatus2,
+ expectedPacketContextStatus,
+ KErrNone);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10062 );
+ // Leaving since the cancellation did not work, so ETEL will panic if another notification will be send
+ CHECK_TRUE_L(EFalse, _L("This test has been made to leave intentionally - CTSY doesn't have support for Cancelation of NotifyStatusChange"));
+ secondaryPacketContext2.NotifyStatusChange(notifyContext2StChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifyContext2StChStatus,
+ packetContextStatus2,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
+ ASSERT_EQUALS(secondaryPacketContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyStatusChange for primary context completes with EStatusAttached
+ RPacketService::TStatus expectedPacketStatus = RPacketService::EStatusAttached;
+
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketStatus,
+ KErrNone );
+
+ // Check RPacketService::GetStatus for primary context returns EStatusAttached
+
+ ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyDynamicCapsChange returns caps in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq
+ // Check RPacketService::NotifyDynamicCapsChange returns caps NOT in set of RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall
+ TInt wantedDynCapBits = RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq;
+ TInt unWantedDynCapBits = RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall;
+
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
+ packetService,
+ notifyServiceDynCapsStatus,
+ dynCaps,
+ wantedDynCapBits,
+ unWantedDynCapBits,
+ KErrNone);
+
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach | RPacketService::KCapsRxCSCall
+ // Check RPacketService::GetDynamicCaps returns caps in set of RPacketService::KCapsSMSTransfer | RPacketService::KCapsManualDetach | RPacketService::KCapsRxContextActivationReq
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps did not return correct dynamic caps"));
+
+
+ // Check RPacketService::EnumerateNifs returns aCount = 0
+ TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(enumerateNifsStatus);
+ TInt nifCount = 0;
+ const TInt wantedCount = 0;
+ packetService.EnumerateNifs(enumerateNifsStatus, nifCount);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out"));
+ ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // PopAndDestroy
+ // notifyContextStChStatus
+ // notifyContext2StChStatus
+ // notifyServiceStChStatus
+ // notifyServiceDynCapsStatus
+ // contextDeactivateStatus
+ // enumerateNifsStatus
+ CleanupStack::PopAndDestroy(6, ¬ifyContextStChStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0014::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0014");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0015::CCTSYIntegrationTestPacketContext0015(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0015::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0015::~CCTSYIntegrationTestPacketContext0015()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0015::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0015
+ * @SYMFssID BA/CTSY/PKTC-0015
+ * @SYMTestCaseDesc Deactivate a secondary context and check that primary context is kept active.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::GetContextInfo, RPacketService::EnumerateContexts
+ * @SYMTestExpectedResults Pass - First context remains active. Second context is deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify packet service status, packet context status, context info, NIF info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Set the attach mode to EAttachWhenPossible.
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ TExtEtelRequestStatus notifyContextAddedStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextAddedStatus);
+ TName primaryCntxtId;
+
+ //post notifier for RPacketService::NotifyContextAdded
+ packetService.NotifyContextAdded(notifyContextAddedStatus, primaryCntxtId);
+
+ // Ensure there is a primary context active and a secondary context active.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
+ CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
+
+ TName secondaryCntxtId;
+
+ //post notifier for RPacketService::NotifyContextAdded
+ packetService.NotifyContextAdded(notifyContextAddedStatus, secondaryCntxtId);
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
+ CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
+
+ // Activate the secondary context.
+ ActivateSecondaryPacketContextL(secondaryPacketContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Post notification for secondary context status change
+ TExtEtelRequestStatus notifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus secondaryPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, secondaryPacketContextStatus);
+
+ // Deactivate the secondary context.
+ TExtEtelRequestStatus contextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ secondaryPacketContext.Deactivate(contextDeactivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifyContextStChStatus,
+ secondaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ //repost notifier
+ secondaryPacketContext.NotifyStatusChange(contextDeactivateStatus, secondaryPacketContextStatus);
+
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifyContextStChStatus,
+ secondaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
+ RPacketContext::TContextStatus getPacketContextStatus;
+ CHECK_EQUALS_L(secondaryPacketContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ CHECK_EQUALS_L(getPacketContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus did not return RPacketContext::EStatusInactive."));
+
+ // Check RPacketService::GetStatus for primary context returns EStatusActive
+ RPacketService::TStatus packetServiceStatus;
+ ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketService::EnumerateContexts returns aCount = 2
+ TExtEtelRequestStatus enumContextsStatus(packetService, EPacketEnumerateContexts);
+ CleanupStack::PushL(enumContextsStatus);
+ TInt count = 0;
+ TInt max = 0;
+ const TInt wantedCount = 2;
+ packetService.EnumerateContexts(enumContextsStatus, count, max);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::EnumerateContexts timed out."));
+ ASSERT_EQUALS(enumContextsStatus.Int(), KErrNone,
+ _L("RPacketService::EnumerateContexts returned with an error."));
+ ASSERT_EQUALS(count, wantedCount,_L("RPacketService::EnumerateContexts did not return correct number of open contexts."));
+
+ // Check RPacketService::GetContextInfo for aIndex = 0 and 1 return the correct context name and status for the primary and secondary context.
+ TExtEtelRequestStatus getContextsInfoStatus(packetService, EPacketGetContextInfo);
+ CleanupStack::PushL(getContextsInfoStatus);
+ RPacketService::TContextInfo primaryContextInfo;
+ RPacketService::TContextInfo secondaryContextInfo;
+ packetService.GetContextInfo(getContextsInfoStatus, 0, primaryContextInfo);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextsInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextInfo timed out."));
+ ASSERT_EQUALS(getContextsInfoStatus.Int(), KErrNone, _L("RPacketService::GetContextInfo returned with an error."));
+
+ ASSERT_EQUALS_DES16(primaryContextInfo.iName, primaryCntxtId, _L("RPacketService::GetContextInfo did not return correct iName"));
+ ASSERT_EQUALS(primaryContextInfo.iStatus, RPacketContext::EStatusActive, _L("RPacketService::GetContextInfo did not return iStatus EStatusActive"));
+
+ packetService.GetContextInfo(getContextsInfoStatus, 1, secondaryContextInfo);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextsInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextInfo timed out."));
+ ASSERT_EQUALS(getContextsInfoStatus.Int(), KErrNone, _L("RPacketService::GetContextInfo returned with an error."));
+
+ ASSERT_EQUALS_DES16(secondaryContextInfo.iName, secondaryCntxtId, _L("RPacketService::GetContextInfo did not return correct iName"));
+ ASSERT_EQUALS(secondaryContextInfo.iStatus, RPacketContext::EStatusInactive, _L("RPacketService::GetContextInfo did not return iStatus EStatusInactive"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ //--PopAndDestroy--
+ //notifyContextAddedStatus
+ //notifyContextStChStatus
+ //contextDeactivateStatus
+ //enumContextsStatus
+ //getContextsInfoStatus
+ CleanupStack::PopAndDestroy(5, ¬ifyContextAddedStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0015::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0015");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0016::CCTSYIntegrationTestPacketContext0016(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0016::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0016::~CCTSYIntegrationTestPacketContext0016()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0016::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0016
+ * @SYMFssID BA/CTSY/PKTC-0016
+ * @SYMTestCaseDesc Handle network initiated deactivation.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::GetContextInfo, RPacketService::EnumerateContexts
+ * @SYMTestExpectedResults Pass - Context 1 is deactivated. Other context is unaffected.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify packet service status, packet context status and context info.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // == Ensure there are two PDP contexts active. ==
+
+ //Check if we are on a simulated network
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL( phone ), KErrNone, _L("Network is unavailable"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure phone is attached to the packet service.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ //post notifier for RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextAddedStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextAddedStatus);
+ TName contextId1;
+ packetService.NotifyContextAdded(notifyContextAddedStatus, contextId1);
+
+ // Open primary context 1
+ RPacketContext& primaryPacketContext1 = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Check RPacketService::NotifyContextAdded completes
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
+ CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
+
+ // Activate primary packet context 1
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext1);
+ TName contextId2;
+
+ //post notifier for RPacketService::NotifyContextAdded
+ packetService.NotifyContextAdded(notifyContextAddedStatus, contextId2);
+
+ // Open primary context 2
+ RPacketContext& primaryPacketContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext2);
+
+ // Check RPacketService::NotifyContextAdded completes
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextAddedStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded timed out"));
+ CHECK_EQUALS_L(notifyContextAddedStatus.Int(),KErrNone, _L("RPacketService::NotifyContextAdded returned an error"));
+
+ // Activate primary packet context 2
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext2,2);
+
+ // Check that both primary contexts are active
+ RPacketContext::TContextStatus packetContextStatus;
+ CHECK_EQUALS_L(primaryPacketContext1.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ CHECK_EQUALS_L(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+ CHECK_EQUALS_L(primaryPacketContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ CHECK_EQUALS_L(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Post notification for the first context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext1, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ primaryPacketContext1.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // The simulator sends a PDP context deactivation message saying that context 1 has been deactivated.
+ DisplayUserInteractionPromptL(_L("Please send me a deactivation of a packet context request."), ETimeMedium);
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for context 1 completes with EStatusDeactivating
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10067 );
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext1,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeactivating, _L("RPacketContext::NotifyStatusChange did not return EStatusDeactivating"));
+
+ // -> EStatusInactive
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10067 );
+ primaryPacketContext1.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext1,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::NotifyStatusChange did not return EStatusInactive"));
+
+ // Check RPacketContext::GetStatus for context 1 returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext1.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::GetStatus for context 2 returns EStatusActive
+ ASSERT_EQUALS(primaryPacketContext2.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketService::EnumerateContexts returns aCount = 2
+ TExtEtelRequestStatus enumContextsStatus(packetService, EPacketEnumerateContexts);
+ CleanupStack::PushL(enumContextsStatus);
+ TInt count=-1;
+ TInt max=-1;
+ packetService.EnumerateContexts(enumContextsStatus,count,max);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::EnumerateContexts timed out."));
+ ASSERT_EQUALS(enumContextsStatus.Int(), KErrNone,
+ _L("RPacketService::EnumerateContexts failed."));
+ ASSERT_EQUALS(count,2,_L("RPacketService::EnumerateContexts returned with an error"));
+
+ // Check RPacketService::GetContextInfo for aIndex = 0 and 1 return the correct context name and status for the two contexts.
+ RPacketService::TContextInfo contextInfo;
+ TExtEtelRequestStatus getContextInfoStatus(packetService, EPacketGetContextInfo);
+ CleanupStack::PushL(enumContextsStatus);
+ packetService.GetContextInfo(getContextInfoStatus,0,contextInfo);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetContextInfo timed out."));
+ ASSERT_EQUALS(getContextInfoStatus.Int(), KErrNone,
+ _L("RPacketService::GetContextInfo returned with an error"));
+ ASSERT_EQUALS_DES16(contextInfo.iName,contextId1,_L("RPacketService::GetContextInfo return wrong value in iName"));
+ ASSERT_EQUALS(contextInfo.iStatus,RPacketContext::EStatusInactive,_L("RPacketService::GetContextInfo return wrong value in iStatus"));
+ packetService.GetContextInfo(getContextInfoStatus,1,contextInfo);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetContextInfo timed out."));
+ ASSERT_EQUALS(getContextInfoStatus.Int(), KErrNone,
+ _L("RPacketService::GetContextInfo returned with an error."));
+ ASSERT_EQUALS_DES16(contextInfo.iName,contextId2,_L("RPacketService::GetContextInfo return wrong value in iName"));
+ ASSERT_EQUALS(contextInfo.iStatus,RPacketContext::EStatusActive,_L("RPacketService::GetContextInfo return wrong value in iStatus"));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop:
+ // enumContextsStatus
+ // enumContextsStatus
+ // notifyContextStChStatus
+ // notifyContextAddedStatus
+ CleanupStack::PopAndDestroy(4,¬ifyContextAddedStatus);
+
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0016::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0016");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0017::CCTSYIntegrationTestPacketContext0017(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0017::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0017::~CCTSYIntegrationTestPacketContext0017()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0017::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0017
+ * @SYMFssID BA/CTSY/PKTC-0017
+ * @SYMTestCaseDesc Deactivate a packet context when it is already inactive.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetStatus, RPacketService::GetStatus
+ * @SYMTestExpectedResults Pass - Error returned on deactivation.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verfiy error is returned and context stays inactive.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Get the attach mode so that it can be restored at the end of the test
+ RPacketService::TAttachMode attachMode;
+ CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
+
+ // Post notification for primary context status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Deactivate the primary context.
+ TExtEtelRequestStatus contextDeactivateStatus(primaryPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ primaryPacketContext.Deactivate(contextDeactivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+ // === Check context status===
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusInactive;
+
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Deactivate the context.
+ primaryPacketContext.Deactivate(contextDeactivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // notifyContextStChStatus
+ // contextDeactivateStatus
+ CleanupStack::PopAndDestroy(2,¬ifyContextStChStatus);
+
+ return TestStepResult();
+ }
+
+
+TPtrC CCTSYIntegrationTestPacketContext0017::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0017");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0018::CCTSYIntegrationTestPacketContext0018(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0018::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0018::~CCTSYIntegrationTestPacketContext0018()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0018::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0018
+ * @SYMFssID BA/CTSY/PKTC-0018
+ * @SYMTestCaseDesc Activate a PDP context with an unknown APN.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetLastErrorCause, RPacketService::GetStatus
+ * @SYMTestExpectedResults Pass - It is not possible to activate a context with an incorrect APN.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify activation fails and last error cause returned correctly.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+ RMobilePhone &phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Set attach mode to 'when possible'.
+ TExtEtelRequestStatus setAttachModeStatus(packetService, EPacketSetAttachMode);
+ CleanupStack::PushL(setAttachModeStatus);
+ packetService.SetAttachMode(setAttachModeStatus, RPacketService::EAttachWhenPossible);
+
+ // Ensure automatic attach completes successfully.
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(setAttachModeStatus, ETimeLong), KErrNone,
+ _L("RPacketService::SetAttachMode timed-out"));
+ CHECK_EQUALS_L(setAttachModeStatus.Int(), KErrNone,
+ _L("RPacketService::SetAttachMode returned with an error"));
+
+ //Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsActivate.
+
+ //$CTSYProblem.
+ //GetDynamicCaps does not return 0x1(KCapsActivate), because KCapsActivate flag is not set yet.
+ //CTSY sets KCapsActivate flag during context initialisation.
+
+ //Check for the CAPS being returned
+ RPacketService::TDynamicCapsFlags dynCaps;
+ CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+
+ //RPacketService::TDynamicCapsFlags wantedDynCapBits = RPacketService::KCapsActivate;
+ //CHECK_BITS_SET_L(dynCaps, wantedDynCapBits, KNoUnwantedBits, _L("Packet service's KCapsActivate flag not set"));
+
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Open a new primary context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ RPacketService::TStatus pckSrvcStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Set an incorrect APN when setting the config with RPacketContext::SetConfig
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ _LIT(KFaultApnName, "IncorrectAPNname");
+ config.iAccessPointName.Copy(KFaultApnName);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+
+ TExtEtelRequestStatus setConfigStatus (primaryPacketContext,EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ primaryPacketContext.SetConfig(setConfigStatus,configPk);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("PacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("PacketContext::SetConfig returned an error."));
+
+ // Activate the context
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("PacketContext::Activate timed out"));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("PacketContext::Activate did not return KErrNone"))
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusInactive.
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+
+ // === Check the status of context is EStatusInactive and that a valid error is returned ===
+
+ // Check RPacketContext::GetLastErrorCause returns error != KErrNone
+ TInt error;
+ ASSERT_EQUALS(primaryPacketContext.GetLastErrorCause(error), KErrNone, _L("RPacketContext::GetLastErrorCause returned with an error."));
+ ASSERT_TRUE(error != KErrNone, _L("RPacketContext::GetLastErrorCause returns incorrectly KErrNone."));
+
+ // Check RPacketContext::GetStatus returns EStatusInactive.
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetStatus returns EStatusAttached.
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // setAttachModeStatus
+ // notifyContextStChStatus
+ // setConfigStatus
+ // contextActivateStatus
+ CleanupStack::PopAndDestroy(4, &setAttachModeStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0018::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0018");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0019::CCTSYIntegrationTestPacketContext0019(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0019::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0019::~CCTSYIntegrationTestPacketContext0019()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0019::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0019
+ * @SYMFssID BA/CTSY/PKTC-0019
+ * @SYMTestCaseDesc Activate a PDP context with an incorrect password.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetLastErrorCause, RPacketService::GetStatus
+ * @SYMTestExpectedResults Pass - Activation fails and error returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify activation fails and last error cause returned correctly.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone,
+ _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Set attach mode to 'when possible'.
+ TExtEtelRequestStatus setAttachModeStatus(packetService, EPacketSetAttachMode);
+ CleanupStack::PushL(setAttachModeStatus);
+ packetService.SetAttachMode(setAttachModeStatus, RPacketService::EAttachWhenPossible);
+
+ // Ensure automatic attach completes successfully.
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(setAttachModeStatus, ETimeLong), KErrNone,
+ _L("RPacketService::SetAttachMode timed-out"));
+ CHECK_EQUALS_L(setAttachModeStatus.Int(), KErrNone,
+ _L("RPacketService::SetAttachMode returned with an error"));
+
+ // Ensure phone has KCapsActivate capability.
+
+ //Check for the CAPS being returned
+ RPacketService::TDynamicCapsFlags dynCaps;
+ CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+
+ //$CTSYProblem.
+ //GetDynamicCaps does not return 0x1(KCapsActivate) as it should, because KCapsActivate flag is not set yet.
+ //CTSY sets KCapsActivate flag during context initialisation.
+ RPacketService::TDynamicCapsFlags wantedDynCapBits = 0x00000000;
+ CHECK_BITS_SET_L(dynCaps, wantedDynCapBits, KNoUnwantedBits, _L("Packet service's KCapsActivate flag not set"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Open a new primary context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Set an incorrect password when setting the config with RPacketContext::SetConfig
+ RPacketContext::TContextConfigGPRS config;
+ _LIT(KFaultPwd, "IncorrectPwd");
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(KFaultPwd);
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+ TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ primaryPacketContext.SetConfig(setConfigStatus, configPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::SetConfig returned with error status."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ RPacketService::TStatus pckSrvcStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate the context
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("PacketContext::Activate timed out"));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("PacketContext::Activate did not return KErrNone"));
+
+ // Check RPacketContext::NotifyStatusChange completes wtih EStatusActivating -> EStatusInactive.
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check that the activation fails and error is returned.
+ // Check RPacketContext::GetLastErrorCause returns error != KErrNone
+ TInt error;
+ ASSERT_EQUALS(primaryPacketContext.GetLastErrorCause(error), KErrNone, _L("RPacketContext::GetLastErrorCause returned with an error."));
+ ASSERT_TRUE(error != KErrNone, _L("RPacketContext::GetLastErrorCause returns incorrectly KErrNone."));
+
+ // Check RPacketContext::GetStatus returns EStatusInactive.
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetStatus returns EStatusAttached.
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // setAttachModeStatus
+ // setConfigStatus
+ // notifyContextStChStatus
+ // contextActivateStatus
+ CleanupStack::PopAndDestroy(4, &setAttachModeStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0019::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0019");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0020::CCTSYIntegrationTestPacketContext0020(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0020::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0020::~CCTSYIntegrationTestPacketContext0020()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0020::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0020
+ * @SYMFssID BA/CTSY/PKTC-0020
+ * @SYMTestCaseDesc Activate a context when phone is in class C operation and preferred bearer is RPacketService::EBearerPacketSwitched
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::GetPreferredBearer, RPacketContext::OpenNewContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::Deactivate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus
+ * @SYMTestExpectedResults Pass - Context activated and deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context status and packet service status.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure attach mode to RPacketService::EAttachWhenPossible.
+
+ // Ensure MS class is class RPacketService::EMSClassAlternateMode.
+
+ // Ensure preferred bearer to
+
+ // RPacketService::EBearerPacketSwitched
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check RPacketService::GetPreferredBearer returns RPacketService::EBearerPacketSwitched
+
+ // Set a valid context config using RPacketContext::SetConfig
+
+ // Activate packet context with RPacketContext::Activate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // Deactivate the context
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0020::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0020");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0021::CCTSYIntegrationTestPacketContext0021(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0021::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0021::~CCTSYIntegrationTestPacketContext0021()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0021::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0021
+ * @SYMFssID BA/CTSY/PKTC-0021
+ * @SYMTestCaseDesc Cancel activation before activation is complete.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus
+ * @SYMTestExpectedResults Pass - Activation cancelled.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context is not activated and activation cancelled successfully.
+
+Verify subsequent attempt to activate succeeds and therefore roll back from cancelling worked correctly.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Get the context config using network info
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TPckg<RPacketContext::TContextConfigGPRS> configPk(config);
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Open a new context
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Set a valid context config using RPacketContext::SetConfig
+ TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ packetContext.SetConfig(setConfigStatus, configPk);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0, _L("RPacketService::NotifyContextAdded completed with invalid context name."));
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Activate a context (don't wait for completion)
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Cancel activate with RTelSubSessionBase::CancelAsyncRequest(EPacketContextActivate)
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50003 );
+ // When packet context is requested to be activated, there is nothing CTSY can do to cancel activation,
+ // because activation has already been sent to the network.
+ // CancelAsyncRequest(EPacketContextActivate) returns faulty with KErrNone instead of KErrNotSupported.
+ packetContext.CancelAsyncRequest(EPacketContextActivate);
+
+ // Check RTelSubSessionBase::CancelAsyncRequest(EPacketContextActivate) returns with KErrNotSupported
+ TInt error;
+ ASSERT_EQUALS(packetContext.GetLastErrorCause(error), KErrNone, _L("RPacketContext::GetLastErrorCause returned with an error."));
+ ASSERT_EQUALS(error, KErrNotSupported, _L("RPacketContext::GetLastErrorCause does not return KErrNotSupported."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // pop
+ // getNetworkStatus
+ // notifyContextStatus
+ // setConfigStatus
+ // notifyServicetStChStatus
+ // contextActivateStatus
+ CleanupStack::PopAndDestroy(5, &getNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0021::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0021");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0022::CCTSYIntegrationTestPacketContext0022(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0022::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0022::~CCTSYIntegrationTestPacketContext0022()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0022::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0022
+ * @SYMFssID BA/CTSY/PKTC-0022
+ * @SYMTestCaseDesc Activate context when request received from network.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketService::NotifyContextAdded, RPacketService::EnumerateContexts, RPacketContext::Activate, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketService::NotifyDynamicCapsChange, RPacketService::GetDynamicCaps
+ * @SYMTestExpectedResults Pass - Context activated on request from network.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify context parameters in TPacketDataConfigBase derived class received correctly.
+
+Verify context added notification produced, number of contexts, dynamic caps, packet service status are all correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to the packet service.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsRxContextActivationReq
+ RPacketService::TDynamicCapsFlags dynCaps;
+ RPacketService::TDynamicCapsFlags wantedDynCapBits = RPacketService::KCapsRxContextActivationReq;
+ CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ CHECK_BITS_SET_L(dynCaps, wantedDynCapBits , KNoUnwantedBits, _L("RPacketService::GetDynamicCaps KCapsRxContextActivationReq flag not set"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Post notifications for the RPacketService::NotifyContextActivationRequested
+ TExtEtelRequestStatus notifyContextActivationRequestedStatus(packetService, EPacketNotifyContextActivationRequested);
+ CleanupStack::PushL(notifyContextActivationRequestedStatus);
+ RPacketContext::TContextConfigGPRS requestedConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> requestedConfigPckg(requestedConfig);
+ packetService.NotifyContextActivationRequested(notifyContextActivationRequestedStatus,requestedConfigPckg);
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for service's dynamic caps change
+ TExtEtelRequestStatus notifyServiceDynCapsStatus(packetService, EPacketNotifyDynamicCapsChange);
+ CleanupStack::PushL(notifyServiceDynCapsStatus);
+ packetService.NotifyDynamicCapsChange(notifyServiceDynCapsStatus, dynCaps);
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Simulator sends a context activation request to the phone.
+ RPacketContext::TContextConfigGPRS config;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ config.iAccessPointName.Copy(apn);
+ config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ DisplayUserInteractionPromptL(_L("Please send me a context activation request."), ETimeLong);
+
+
+ // $CTSYProblem The LTSY does nothing with the context activation request.
+ ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: The LTSY does nothing with the context activation request.<font color=Black>"));
+ // Check RPacketService::NotifyContextActivationRequested completes.
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextActivationRequestedStatus, ETimeLong), KErrNone,
+ _L("RPacketService::NotifyContextActivationRequested did not complete."));
+ ASSERT_EQUALS(notifyContextActivationRequestedStatus.Int(), KErrNone,
+ _L("RPacketService::NotifyContextActivationRequested returned with error status."));
+
+ // Open a primary context.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(packetContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Extract the context parameters received and check they are the same as that sent by the simulator.
+ ASSERT_EQUALS_DES8(requestedConfig.iAccessPointName, config.iAccessPointName, _L("RPacketService::NotifyContextActivationRequested gave incorrect config data."));
+ ASSERT_EQUALS_DES8(requestedConfig.iProtocolConfigOption.iAuthInfo.iUsername, config.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketService::NotifyContextActivationRequested gave incorrect config data."));
+ ASSERT_EQUALS_DES8(requestedConfig.iProtocolConfigOption.iAuthInfo.iPassword, config.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketService::NotifyContextActivationRequested gave incorrect config data."));
+
+ // Use them to set a context config with RPacketContext::SetConfig
+ TPckg<RPacketContext::TContextConfigGPRS> configPckg(requestedConfig);
+ TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ packetContext.SetConfig(setConfigStatus, configPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::SetConfig returned with error status."));
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone,
+ _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0,
+ _L("Packet context config has zero length contextId."));
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
+
+ // -> EStatusActive
+ packetContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ packetContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Check dynamic caps ===
+
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer.
+ // Check RPacketService::NotifyDynamicCapsChange completes with caps NOT in set of RPacketService::KCapsManualAttach
+ wantedDynCapBits = RPacketService::KCapsRxCSCall | RPacketService::KCapsRxContextActivationReq | RPacketService::KCapsSMSTransfer;
+ TInt unWantedDynCapBits = RPacketService::KCapsManualAttach;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyDynamicCapsChange(
+ packetService,
+ notifyServiceDynCapsStatus,
+ dynCaps,
+ wantedDynCapBits,
+ unWantedDynCapBits,
+ KErrNone);
+
+ // Check RPacketService::GetDynamicCaps returns caps in set of KCapsRxCSCall | KCapsRxContextActivationReq | KCapsSMSTransfer
+ // Check RPacketService::GetDynamicCaps returns caps NOT in set of RPacketService::KCapsManualAttach
+ ASSERT_EQUALS(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ ASSERT_BITS_SET(dynCaps, wantedDynCapBits, unWantedDynCapBits, _L("RPacketService::GetDynamicCaps Packet service's KCapsActivate flag not set"));
+
+ // Check RPacketService::EnumerateContexts returns 1.
+ TExtEtelRequestStatus enumContextsStatus(packetService, EPacketEnumerateContexts);
+ CleanupStack::PushL(enumContextsStatus);
+ TInt count=-1;
+ TInt max=-1;
+ packetService.EnumerateContexts(enumContextsStatus,count,max);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::EnumerateContexts timed out."));
+ ASSERT_EQUALS(enumContextsStatus.Int(), KErrNone,
+ _L("RPacketService::EnumerateContexts failed."));
+ ASSERT_EQUALS(count,1,_L("RPacketService::EnumerateContexts did not returned one."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop:
+ // enumContextsStatus
+ // contextActivateStatus
+ // setConfigStatus
+ // notifyContextStChStatus
+ // getNetworkStatus
+ // notifyServiceDynCapsStatus
+ // notifyServiceStChStatus
+ // notifyContextStatus
+ // notifyContextActivationRequestedStatus
+ CleanupStack::PopAndDestroy(9,¬ifyContextActivationRequestedStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0022::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0022");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0023::CCTSYIntegrationTestPacketContext0023(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0023::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0023::~CCTSYIntegrationTestPacketContext0023()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0023::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0023
+ * @SYMFssID BA/CTSY/PKTC-0023
+ * @SYMTestCaseDesc Activate context when request received from network.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::Activate, RPacketService::NotifyContextAdded, RPacketContext::GetStatus, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketService::EnumerateNifs, RPacketContext::NotifyStatusChange, RPacketContext::SetConfig, RPacketService::EnumerateContextsInNif, RPacketService::NotifyContextActivationRequested, RPacketContext::GetDnsInfo
+ * @SYMTestExpectedResults Pass - Context activated on request from network.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify NIF related info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10085);
+ User::Leave(KErrNone);
+
+ // Ensure phone is attached to the packet service.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsRxContextActivationReq
+ RPacketService::TDynamicCapsFlags dynCaps;
+ CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ CHECK_BITS_SET_L(dynCaps, RPacketService::KCapsRxContextActivationReq, KNoUnwantedBits, _L("RPacketService::GetStaticCaps did not return correct dynamic caps"));
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // post notifier for RPacketService::NotifyContextActivationRequested
+ RPacketContext::TContextConfigGPRS configGPRS;
+ TPckg<RPacketContext::TContextConfigGPRS> configPkg(configGPRS);
+ TExtEtelRequestStatus notifyContextActivationRequested(packetService , EPacketNotifyContextActivationRequestedCancel);
+ CleanupStack::PushL(notifyContextActivationRequested);
+ packetService.NotifyContextActivationRequested(notifyContextActivationRequested, configPkg);
+
+ // Ask the simulator to send a context activation request
+ RPacketContext::TContextConfigGPRS configSimulator;
+ TPckg<RPacketContext::TContextConfigGPRS> configSimulatorPkg(configSimulator);
+ DisplayUserInteractionPromptL(_L("Simulator needs to send context activation request to this phone."), ETimeMedium);
+
+ // Check RPacketService::NotifyContextActivationRequested completes with valid context configuration.
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextActivationRequested, ETimeLong), KErrNone, _L("RPacketService::NotifyContextActivationRequested timed out."));
+ ASSERT_EQUALS(notifyContextActivationRequested.Int(), KErrNone, _L("RPacketService::NotifyContextActivationRequested returned with error status."));
+ ASSERT_TRUE(configGPRS.iAccessPointName.Length() > 0,_L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iAccessPointName."));
+ ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iUsername.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iUsername."));
+ ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iPassword.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iPassword."));
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+
+ // Open a primary context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Extract the context parameters received and check they are the same as that sent by the simulator.
+ // ETEL PACKET API says that nw may send PDP type requested, PDP address, Access Point Name (APN)
+ ASSERT_EQUALS_DES8(configSimulator.iAccessPointName, configGPRS.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS(configSimulator.iPdpType, configGPRS.iPdpType, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(configSimulator.iPdpAddress, configGPRS.iPdpAddress, _L("RPacketContext::GetConfig returns incorrect config data."));
+
+
+ // Use them to set a context config with RPacketContext::SetConfig
+ TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ primaryPacketContext.SetConfig(setConfigStatus, configPkg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
+
+ // Check RPacketService::NotifyContextAdded completes with a valid context name
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyContextStatus, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ ASSERT_EQUALS(notifyContextStatus.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ ASSERT_TRUE(contextId.Length() > 0, _L("RPacketService::NotifyContextAdded completed with invalid context name"));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context statuses ===
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Get context information ===
+
+ // Check RPacketContext::GetConfig returns same config as that set
+ TExtEtelRequestStatus contextGetConfigStatus(primaryPacketContext, EPacketContextGetConfig);
+ CleanupStack::PushL(contextGetConfigStatus);
+ RPacketContext::TContextConfigGPRS getConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPkg(getConfig);
+ primaryPacketContext.GetConfig(contextGetConfigStatus, getConfigPkg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextGetConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
+ ASSERT_EQUALS(contextGetConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
+
+ ASSERT_EQUALS_DES8(getConfig.iAccessPointName, configGPRS.iAccessPointName, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iUsername, configGPRS.iProtocolConfigOption.iAuthInfo.iUsername, _L("RPacketContext::GetConfig returns incorrect config data."));
+ ASSERT_EQUALS_DES8(getConfig.iProtocolConfigOption.iAuthInfo.iPassword, configGPRS.iProtocolConfigOption.iAuthInfo.iPassword, _L("RPacketContext::GetConfig returns incorrect config data."));
+
+ // Check RPacketContext::GetDnsInfo returns valid primary and secondary DNS ip addresses
+ RPacketContext::TDnsInfoV2 dnsInfo;
+ RPacketContext::TTDnsInfoV2Pckg dnsInfoPkg(dnsInfo);
+ TExtEtelRequestStatus dnsInfoStatus(primaryPacketContext, EPacketContextGetDNSInfo);
+ CleanupStack::PushL(dnsInfoStatus);
+ primaryPacketContext.GetDnsInfo(dnsInfoStatus, dnsInfoPkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dnsInfoStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetDnsInfo timed out."));
+
+ ASSERT_EQUALS(dnsInfoStatus.Int(), KErrNone, _L("RPacketContext::GetDnsInfo returned an error."));
+ ASSERT_TRUE(dnsInfo.iPrimaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length PrimaryDns."));
+ ASSERT_TRUE(dnsInfo.iSecondaryDns.Length() > 0, _L("RPacketContext::GetDnsInfo returned with zero length SecondaryDns."));
+
+ // === Check that there is one NIF with one primary context belonging to it ===
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+
+ TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(enumerateNifsStatus);
+ TInt nifCount;
+ const TInt wantedCount = 1;
+ packetService.EnumerateNifs(enumerateNifsStatus, nifCount);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out"));
+ ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
+
+
+ // Get context info
+ TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
+ CleanupStack::PushL(getContextInfo);
+ RPacketService::TContextInfo contextInfo;
+ const TInt index = 0;
+ packetService.GetContextInfo(getContextInfo, index, contextInfo);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
+ ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing context name returns aCount = 1
+ TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(enumerateContextsInNifStatus);
+ TInt contextsInNifCount;
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, contextInfo.iName, contextsInNifCount);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out"));
+ ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif returned wrong number of contexts sharing a NIF"));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing context name and aIndex = 0 returns aContextName which is same as aExistingContextName
+ TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(getContextNameInNifStatus);
+ TName contextName;
+ packetService.GetContextNameInNif(getContextNameInNifStatus, contextInfo.iName, index, contextName);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out"));
+ ASSERT_EQUALS_DES16(contextInfo.iName, contextName, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ TExtEtelRequestStatus getNifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(getNifInfoStatus);
+ const TInt nifInfoCount = 0;
+ RPacketService::TNifInfoV2 nifInfo;
+ RPacketService::TNifInfoV2Pckg nifInfoPkg(nifInfo);
+ packetService.GetNifInfo(getNifInfoStatus, nifInfoCount, nifInfoPkg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo timed out"));
+ ASSERT_TRUE(nifInfo.iContextName.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid context name"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 1
+ ASSERT_EQUALS(nifInfo.iNumberOfContexts, wantedCount, _L("RPacketService::GetNifInfo returned wrong count of contexts"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfo.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo returned wrong NIF status"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfo.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext in iContextType
+ ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo returned wrong context type"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // notifyContextActivationRequested
+ // setConfigStatus
+ // notifyContextStatus
+ // notifyContextStChStatus
+ // contextActivateStatus
+ // contextGetConfigStatus
+ // dnsInfoStatus
+ // enumerateNifStatus
+ // getContextInfo
+ // enumerateContextsInNifStatus
+ // getContextNameInNifStatus
+ // getNifInfoStatus
+
+ CleanupStack::PopAndDestroy(12, ¬ifyContextActivationRequested);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0023::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0023");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0024::CCTSYIntegrationTestPacketContext0024(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0024::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0024::~CCTSYIntegrationTestPacketContext0024()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0024::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0024
+ * @SYMFssID BA/CTSY/PKTC-0024
+ * @SYMTestCaseDesc Reject network requested context activation.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::RejectActivationRequest, RPacketService::EnumerateContexts
+ * @SYMTestExpectedResults Pass - Context activation request rejected.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify context parameters in TPacketDataConfigBase derive class received correctly. Verify when network repeated requests for a context activation (up to 5 times), it can be rejected.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10086);
+ User::Leave(KErrNone);
+
+ // Check that the phone is registered with the network simulator.
+ RMobilePhone &mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(mobilePhone);
+
+ // Ensure phone is attached to the packet service.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Ensure RPacketService::GetDynamicCaps returns caps in set of KCapsRxContextActivationReq
+ RPacketService::TDynamicCapsFlags dynCaps;
+ CHECK_EQUALS_L(packetService.GetDynamicCaps(dynCaps), KErrNone, _L("RPacketService::GetDynamicCaps returned with an error"));
+ CHECK_BITS_SET_L(dynCaps, RPacketService::KCapsRxContextActivationReq, KNoUnwantedBits, _L("RPacketService::GetDynamicCaps returned with incorrect caps"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // post notifier for RPacketService::NotifyContextActivationRequested
+ RPacketContext::TContextConfigGPRS configGPRS;
+ TPckg<RPacketContext::TContextConfigGPRS> configPkg(configGPRS);
+ TExtEtelRequestStatus notifyContextActivationRequested(packetService , EPacketNotifyContextActivationRequested);
+ CleanupStack::PushL(notifyContextActivationRequested);
+ packetService.NotifyContextActivationRequested(notifyContextActivationRequested, configPkg);
+
+ // Ask the simulator to send a context activation request
+ DisplayUserInteractionPromptL(_L("Simulator needs to send context activation request to this phone."), ETimeMedium);
+
+ // Check RPacketService::NotifyContextActivationRequested completes with valid context configuration.
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyContextActivationRequested(
+ packetService,
+ notifyContextActivationRequested,
+ configPkg,
+ KErrNone );
+
+ ASSERT_EQUALS(notifyContextActivationRequested.Int(), KErrNone, _L("RPacketService::NotifyContextActivationRequested returned with error status."));
+ ASSERT_TRUE(configGPRS.iAccessPointName.Length() > 0,_L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iAccessPointName."));
+ ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iUsername.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iUsername."));
+ ASSERT_TRUE(configGPRS.iProtocolConfigOption.iAuthInfo.iPassword.Length() > 0, _L("RPacketService::NotifyContextActivationRequested returned from Simulator with incorrect or zero length iPassword."));
+
+ // Check RPacketService::RejectActivationRequest completes with KErrNone
+ TExtEtelRequestStatus rejectActivationRequestStatus(packetService, EPacketRejectActivationRequest);
+ CleanupStack::PushL(rejectActivationRequestStatus);
+ packetService.RejectActivationRequest(rejectActivationRequestStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(rejectActivationRequestStatus, ETimeLong), KErrNone, _L("RPacketService::RejectActivationRequest timed out"));
+ ASSERT_EQUALS(rejectActivationRequestStatus.Int(), KErrNone, _L("RPacketService::RejectActivationRequest returned with error status."));
+
+ // Check RPacketService::EnumerateContexts returns 0
+ TExtEtelRequestStatus enumerateContextsStatus(packetService, EPacketEnumerateContexts);
+ CleanupStack::PushL(enumerateContextsStatus);
+ TInt count(0);
+ TInt maxAllowed(0);
+ const TInt wantedCount = 0;
+ packetService.EnumerateContexts(enumerateContextsStatus, count, maxAllowed);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContexts timed out"));
+ ASSERT_EQUALS(enumerateContextsStatus.Int(), KErrNone, _L("RPacketService::EnumerateContexts returned with error status."));
+ ASSERT_EQUALS(count, wantedCount, _L("RPacketService::EnumerateContexts did not return context count 0 as expected"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // notifyContextActivationRequested
+ // rejectActivationRequestStatus
+ // enumerateContextsStatus
+ CleanupStack::PopAndDestroy(3, ¬ifyContextActivationRequested);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0024::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0024");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0025::CCTSYIntegrationTestPacketContext0025(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0025::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0025::~CCTSYIntegrationTestPacketContext0025()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0025::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0025
+ * @SYMFssID BA/CTSY/PKTC-0025
+ * @SYMTestCaseDesc Delete a context when it is active.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::Delete, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus
+ * @SYMTestExpectedResults Pass - Context is deleted and the status of the contexts reflects this status..
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context status is correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // === Ensure there is an active PDP context. ===
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service.
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Open a new context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Delete the context with RPacketContext::Delete
+ TExtEtelRequestStatus deleteStatus(packetService, EPacketContextDelete);
+ CleanupStack::PushL(deleteStatus);
+ primaryPacketContext.Delete(deleteStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeLong), KErrNone, _L("RPacketContext::Delete timed out"));
+
+ // Check an error is returned.
+ // $CTSYProblem Adaptation deletes context always if it's status is else than RPacketContext::EStatusUnknown.
+ // Checking is changed from NOT KErrNone to KErrNone and GetStatus() checking is changed from EStatusActive to EStatusDeleted
+ ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RPacketContext::Delete returned with an error"));
+
+ // Check RPacketContext::GetStatus returns EStatusDeleted
+ RPacketContext::TContextStatus packetContextStatus;
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeleted, _L("RPacketContext::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // deleteStatus
+ CleanupStack::PopAndDestroy(1, &deleteStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0025::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0025");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0026::CCTSYIntegrationTestPacketContext0026(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0026::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0026::~CCTSYIntegrationTestPacketContext0026()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0026::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0026
+ * @SYMFssID BA/CTSY/PKTC-0026
+ * @SYMTestCaseDesc Delete a context when it has been deactivated.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::Delete
+ * @SYMTestExpectedResults Pass - Context deleted.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context status is deleted.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is an active PDP context.
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Open a new context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Activate primary context
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ RPacketContext::TContextStatus packetContextStatus;
+ CHECK_EQUALS_L(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
+ CHECK_EQUALS_L(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ //Post notifier for packet context status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Deactivate the context.
+ TExtEtelRequestStatus contextDeactivateStatus(primaryPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ primaryPacketContext.Deactivate(contextDeactivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Delete the context with RPacketContext::Delete
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ TExtEtelRequestStatus contextDeleteStatus(primaryPacketContext, EPacketContextDelete);
+ CleanupStack::PushL(contextDeleteStatus);
+ primaryPacketContext.Delete(contextDeleteStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeleteStatus, ETimeLong), KErrNone, _L("RPacketContext::Delete timed out"));
+ ASSERT_EQUALS(contextDeleteStatus.Int(), KErrNone, _L("RPacketContext::Delete returned an error"));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusDeleted
+ expectedPacketContextStatus = RPacketContext::EStatusDeleted;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusDeleted
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusDeleted, _L("RPacketContext::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // notifyContextStChStatus
+ // contextDeactivateStatus
+ // contextDeleteStatus
+ CleanupStack::PopAndDestroy(3, ¬ifyContextStChStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0026::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0026");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0027::CCTSYIntegrationTestPacketContext0027(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0027::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0027::~CCTSYIntegrationTestPacketContext0027()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0027::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0027
+ * @SYMFssID BA/CTSY/PKTC-0027
+ * @SYMTestCaseDesc Dial a voice call while context is active in class B operation.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RCall::Dial, RCall::HangUp, RCall::GetStatus, RCall::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus
+ * @SYMTestExpectedResults Pass - Packet service suspends when CS call is made.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context and packet service are suspended when voice call is initiated whilst context is activated
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure MS class is EMSClassSuspensionRequired
+
+ // Ensure there is an active PDP context.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check RPacketService::GetMSClass returns EMSClassSuspensionRequired
+
+ // Dial a number that answers.
+
+ // === Check call status ===
+
+ // Check RCall::NotifyStatusChange completes with EStatusConnected.
+
+ // Check RCall::GetStatus returns EStatusConnected.
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusSuspended
+
+ // Check RPacketService::GetStatus returns EStatusSuspended
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusSuspended
+
+ // Check RPacketContext::GetStatus returns EStatusSuspended
+
+ // Hang up call.
+
+ // Check RCall::NotifyStatusChange completes with EStatusHangingUp -> EStatusIdle.
+
+ // Check RCall::GetStatus returns EStatusIdle.
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0027::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0027");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0028::CCTSYIntegrationTestPacketContext0028(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0028::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0028::~CCTSYIntegrationTestPacketContext0028()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0028::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0028
+ * @SYMFssID BA/CTSY/PKTC-0028
+ * @SYMTestCaseDesc Get default context params.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetConfig, RPacketService::SetDefaultContextParams, RPacketService::GetContextInfo
+ * @SYMTestExpectedResults Pass - Context activated with default params.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context activated without specific config has default context params.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ const TInt gprs = 1;
+ const TInt r99 = 2;
+ const TInt r5 = 3;
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+
+ // Activate context using RPacketContext::TContextConfigGPRS
+ DoTest0028L(packetService, apn, user, pwd, gprs);
+
+ // Repeat test with RPacketContext::TContextConfigR99_R4
+ DoTest0028L(packetService, apn, user, pwd, r99);
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50004 );
+ // Test case is made to leave because CTSY doesn't have support for TContextConfig_R5.
+ CHECK_TRUE_L(EFalse, _L("This test has been made to leave intentionally - CTSY doesn't have support for TContextConfig_R5"));
+
+ // Repeat test with RPacketContext::TContextConfig_R5
+ DoTest0028L(packetService, apn, user, pwd, r5);
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // getNetworkStatus
+ CleanupStack::PopAndDestroy(1, &getNetworkStatus);
+
+ return TestStepResult();
+ }
+
+
+void CCTSYIntegrationTestPacketContext0028::DoTest0028L(RPacketService& aPacketService, TPtrC aApn, TPtrC aUser, TPtrC aPwd, TInt aNWType)
+/**
+ * Activates primary packet context with default context parameters.
+ * @param aPacketService Reference to packet service.
+ * @param aNWType Gprs / R99_R4 / R5.
+ */
+ {
+ TExtEtelRequestStatus reqSetDefaultContextParams(aPacketService, EPacketSetDefaultContextParams);
+ CleanupStack::PushL(reqSetDefaultContextParams);
+ RPacketContext::TContextConfigGPRS setConfigGprs;
+ TPckg<RPacketContext::TContextConfigGPRS> setConfigPkgGprs(setConfigGprs);
+ RPacketContext::TContextConfigR99_R4 setConfigR99;
+ TPckg<RPacketContext::TContextConfigR99_R4> setConfigPkgR99(setConfigR99);
+ RPacketContext::TContextConfig_R5 setConfigR5;
+ TPckg<RPacketContext::TContextConfig_R5> setConfigPkgR5(setConfigR5);
+
+ switch(aNWType)
+ {
+ case 1: // GPRS
+ // Set valid context params with RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfigGPRS
+ setConfigGprs.iAccessPointName.Copy(aApn);
+ setConfigGprs.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigGprs.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ aPacketService.SetDefaultContextParams(reqSetDefaultContextParams, setConfigPkgGprs);
+ break;
+
+ case 2: // R99_R4
+ // Set valid context params with RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfigR99_R4
+ setConfigR99.iAccessPointName.Copy(aApn);
+ setConfigR99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigR99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ aPacketService.SetDefaultContextParams(reqSetDefaultContextParams, setConfigPkgR99);
+ break;
+
+ case 3: // R5
+ // Set valid context params with RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfig_R5
+ setConfigR5.iAccessPointName.Copy(aApn);
+ setConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ aPacketService.SetDefaultContextParams(reqSetDefaultContextParams, setConfigPkgR5);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqSetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::SetDefaultContextParams timed out"));
+ ASSERT_EQUALS(reqSetDefaultContextParams.Int(), KErrNone, _L("RPacketService::SetDefaultContextParams returned with an error"));
+
+ // Check RPacketService::GetDefaultContextParams returns same params as that set
+ TExtEtelRequestStatus reqGetDefaultContextParams(aPacketService, EPacketGetDefaultContextParams);
+ CleanupStack::PushL(reqGetDefaultContextParams);
+ RPacketContext::TContextConfigGPRS getConfigGprs;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPkgGprs(getConfigGprs);
+ RPacketContext::TContextConfigR99_R4 getConfigR99;
+ TPckg<RPacketContext::TContextConfigR99_R4> getConfigPkgR99(getConfigR99);
+ RPacketContext::TContextConfig_R5 getConfigR5;
+ TPckg<RPacketContext::TContextConfig_R5> getConfigPkgR5(getConfigR5);
+
+ switch(aNWType)
+ {
+ case 1: // GPRS
+ aPacketService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgGprs);
+ break;
+
+ case 2: // R99_R4
+ aPacketService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgR99);
+ break;
+
+ case 3: // R5
+ aPacketService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgR5);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqGetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::GetDefaultContextParams timed out"));
+ ASSERT_EQUALS(reqGetDefaultContextParams.Int(), KErrNone, _L("RPacketService::GetDefaultContextParams returned with an error"));
+
+ TCmpRPacketContextTContextConfigGPRS contextConfigGPRSCmp(getConfigGprs, setConfigGprs, *this);
+ TCmpRPacketContextTContextConfigR99_R4 contextConfigR99Cmp(getConfigR99, setConfigR99, *this);
+ TCmpRPacketContextTContextConfig_R5 contextConfigR5Cmp(getConfigR5, setConfigR5, *this);
+
+ switch(aNWType)
+ {
+ case 1: // GPRS
+ ASSERT_TRUE(contextConfigGPRSCmp.IsEqual(ELogError), _L("RPacketService.GetDefaultContextParams did not return same params as that set"));
+ break;
+
+ case 2: // R99_R4
+ ASSERT_TRUE(contextConfigR99Cmp.IsEqual(ELogError), _L("RPacketService.GetDefaultContextParams did not return same params as that set"));
+ break;
+
+ case 3: // R5
+ ASSERT_TRUE(contextConfigR5Cmp.IsEqual(ELogError), _L("RPacketService.GetDefaultContextParams did not return same params as that set"));
+ break;
+ }
+
+ // Open a new context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(aPacketService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ aPacketService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for primary context status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate a context with RPacketContext::Activate
+ //$CTSYProblem SetConfig is required before activation of the context.
+ //If SetConfig is not called, Activate returns KErrTimedOut(-33).
+ //SetDefaultContextParams sends context parameters common to all contexts to adaptation/LTSY layer.
+ //However,for some reason, adaptation does not use these params when Activate is called
+ //and requires setting of context specific parameters with SetConfig
+ TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ switch(aNWType)
+ {
+ case 1: // GPRS
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgGprs);
+ break;
+
+ case 2: // R99_R4
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR99);
+ break;
+
+ case 3: // R5
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR5);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
+
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ aPacketService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(aPacketService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Get context information ===
+
+ // Check RPacketContext::GetConfig returns same config as the default set in RPacketService::SetDefaultContextParams
+ TExtEtelRequestStatus contextConfigStatus(primaryPacketContext, EPacketContextGetConfig);
+ CleanupStack::PushL(contextConfigStatus);
+
+ switch(aNWType)
+ {
+ case 1: // GPRS
+ primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgGprs);
+ break;
+
+ case 2: // R99_R4
+ primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgR99);
+ break;
+
+ case 3: // R5
+ primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgR5);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."))
+ ASSERT_EQUALS(contextConfigStatus.Int(), KErrNone, _L("RPacketContext::GetConfig returned an error."));
+
+ TCmpRPacketContextTContextConfigGPRS contextConfigGPRSCmp2(getConfigGprs, setConfigGprs, *this);
+ TCmpRPacketContextTContextConfigR99_R4 contextConfigR99Cmp2(getConfigR99, setConfigR99, *this);
+ TCmpRPacketContextTContextConfig_R5 contextConfigR5Cmp2(getConfigR5, setConfigR5, *this);
+
+ switch(aNWType)
+ {
+ case 1: // GPRS
+ ASSERT_TRUE(contextConfigGPRSCmp2.IsEqual(ELogError), _L("RPacketService.GetConfig did not return same params as the default set in RPacketService::SetDefaultContextParams"));
+ break;
+
+ case 2: // R99_R4
+ ASSERT_TRUE(contextConfigR99Cmp2.IsEqual(ELogError), _L("RPacketService.GetConfig did not return same params as the default set in RPacketService::SetDefaultContextParams"));
+ break;
+
+ case 3: // R5
+ ASSERT_TRUE(contextConfigR5Cmp2.IsEqual(ELogError), _L("RPacketService.GetConfig did not return same params as the default set in RPacketService::SetDefaultContextParams"));
+ break;
+ }
+
+ // Check RPacketService::EnumerateContexts returns 1.
+ TExtEtelRequestStatus enumerateContextsStatus(aPacketService, EPacketEnumerateContexts);
+ CleanupStack::PushL(enumerateContextsStatus);
+ TInt count(0);
+ TInt maxAllowed(0);
+ const TInt wantedCount = 1;
+ aPacketService.EnumerateContexts(enumerateContextsStatus, count, maxAllowed);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContexts timed out"));
+ ASSERT_EQUALS(enumerateContextsStatus.Int(), KErrNone, _L("RPacketService::EnumerateContexts returned with error status."));
+ ASSERT_EQUALS(count, wantedCount, _L("RPacketService::EnumerateContexts did not return context count 1 as expected"));
+
+ // Check RPacketService::GetContextInfo with aIndex = 0 returns correct name in iName
+ TExtEtelRequestStatus getContextInfo(aPacketService, EPacketGetContextInfo);
+ CleanupStack::PushL(getContextInfo);
+ RPacketService::TContextInfo contextInfo;
+ const TInt index = 0;
+ aPacketService.GetContextInfo(getContextInfo, index, contextInfo);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
+ ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
+
+ // Check RPacketService::GetContextInfo with aIndex = 0 returns EStatusActive in iStatus
+ ASSERT_EQUALS(contextInfo.iStatus, RPacketContext::EStatusActive, _L("RPacketService::GetContextInfo did not return iStatus RPacketContext::EStatusActive as expected"));
+
+ // Release packet context
+ iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Pop
+ // reqSetDefaultContextParams
+ // reqGetDefaultContextParams
+ // notifyServiceStChStatus
+ // notifyContextStChStatus
+ // setConfigStatus
+ // contextActivateStatus
+ // contextConfigStatus
+ // enumerateContextsStatus
+ // getContextInfo
+ CleanupStack::PopAndDestroy(9, &reqSetDefaultContextParams);
+
+ }
+
+
+TPtrC CCTSYIntegrationTestPacketContext0028::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0028");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0029::CCTSYIntegrationTestPacketContext0029(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0029::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0029::~CCTSYIntegrationTestPacketContext0029()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0029::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0029
+ * @SYMFssID BA/CTSY/PKTC-0029
+ * @SYMTestCaseDesc Set default context params to unsupported type.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::SetDefaultContextParams, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::GetConfig, RPacketService::SetDefaultContextParams, RPacketService::Open
+ * @SYMTestExpectedResults Pass - Context activated with original default params.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context activated without specific config has original default context params (not ones set).
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Get the default context params with RPacketService::GetDefaultContextParams
+ RPacketContext::TContextConfigGPRS dummyConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> dummyConfigPkgGprs(dummyConfig);
+
+ TExtEtelRequestStatus reqGetDummyContextParams(packetService, EPacketGetDefaultContextParams);
+ CleanupStack::PushL(reqGetDummyContextParams);
+ packetService.GetDefaultContextParams(reqGetDummyContextParams, dummyConfigPkgGprs);
+
+ //Check RPacketService::GetDefaultContextParams returns with KErrNotReady
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqGetDummyContextParams, ETimeLong), KErrNone, _L("RPacketService::GetDefaultContextParams timed out"));
+ ASSERT_EQUALS(reqGetDummyContextParams.Int(), KErrNotReady, _L("RPacketService::GetDefaultContextParams did not return KErrNotReady"));
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(),
+ KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Get the context config using network info
+ RPacketContext::TContextConfigGPRS defaultConfig;
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+ defaultConfig.iAccessPointName.Copy(apn);
+ defaultConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ defaultConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ TPckg<RPacketContext::TContextConfigGPRS> defaultConfigPkgGprs(defaultConfig);
+
+ // Set the default context params with RPacketService::SetDefaultContextParams
+ DEBUG_PRINTF1(_L("Setting Default Context Params"));
+ TExtEtelRequestStatus regSetInitParams(packetService,EPacketSetDefaultContextParams);
+ CleanupStack::PushL(regSetInitParams);
+ packetService.SetDefaultContextParams(regSetInitParams, defaultConfigPkgGprs);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(regSetInitParams, ETimeLong), KErrNone, _L("RPacketService::SetDefaultContextParams timed out"));
+ ASSERT_EQUALS(regSetInitParams.Int(), KErrNone, _L("RPacketService::SetDefaultContextParams returned with an error"));
+
+ // Get the default context params with RPacketService::GetDefaultContextParams check they are the same as what was set
+ DEBUG_PRINTF1(_L("Getting Default Context Params"));
+ RPacketContext::TContextConfigGPRS getConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPkgGprs(getConfig);
+
+ TExtEtelRequestStatus reqGetDefaultContextParams(packetService, EPacketGetDefaultContextParams);
+ CleanupStack::PushL(reqGetDefaultContextParams);
+ packetService.GetDefaultContextParams(reqGetDefaultContextParams, getConfigPkgGprs);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqGetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::GetDefaultContextParams timed out"));
+ ASSERT_EQUALS(reqGetDefaultContextParams.Int(), KErrNone, _L("RPacketService::GetDefaultContextParams returned with an error"));
+
+ DEBUG_PRINTF1(_L("Comparing default Context Params"));
+ TCmpRPacketContextTContextConfigGPRS contextParamsComparator(defaultConfig, getConfig, *this);
+ ASSERT_TRUE(contextParamsComparator.IsEqual(ELogError), _L("RPacketService::GetDefaultContextParams did not return set parameters"));
+
+ // Set invalid context parameters using RPacketService::SetDefaultContextParams and using RPacketContext::TContextConfigGPRS
+ RPacketContext::TContextConfigGPRS invalidConfig;
+ invalidConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(user);
+ invalidConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(pwd);
+ _LIT(KFaultyAPN, "Incorrect APN name");
+ invalidConfig.iAccessPointName.Copy(KFaultyAPN);
+ TPckg<RPacketContext::TContextConfigGPRS> invalidConfigPkgGprs(invalidConfig);
+
+ TExtEtelRequestStatus reqSetDefaultContextParams(packetService, EPacketSetDefaultContextParams);
+ CleanupStack::PushL(reqSetDefaultContextParams);
+ packetService.SetDefaultContextParams(reqSetDefaultContextParams, invalidConfigPkgGprs);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqSetDefaultContextParams, ETimeLong), KErrNone, _L("RPacketService::SetDefaultContextParams timed out"));
+ ASSERT_EQUALS(reqSetDefaultContextParams.Int(), KErrNone, _L("RPacketService::SetDefaultContextParams returned with an error"));
+
+
+ // Open a new context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for primary context status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ //$CTSYProblem
+ //SetConfig is required before activation of the context.
+ //If SetConfig is not called, Activate returns KErrTimedOut(-33).
+ //SetDefaultContextParams sends context parameters common to all contexts to adaptation/LTSY layer.
+ //However,for some reason, adaptation does not use these params when Activate is called
+ //and requires setting of context specific parameters with SetConfig
+
+ TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ primaryPacketContext.SetConfig(setConfigStatus, defaultConfigPkgGprs);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone,
+ _L("RPacketContext::SetConfig returned with error status."));
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone,
+ _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::GetConfig returns same config as the default returned by RPacketService::GetDefaultContextParams
+ TExtEtelRequestStatus contextConfigStatus(primaryPacketContext, EPacketContextGetConfig);
+ CleanupStack::PushL(contextConfigStatus);
+
+ RPacketContext::TContextConfigGPRS getConfigGprs2;
+ TPckg<RPacketContext::TContextConfigGPRS> getConfigPkgGprs2(getConfigGprs2);
+ primaryPacketContext.GetConfig(contextConfigStatus, getConfigPkgGprs2);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextConfigStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConfig timed out."));
+
+ TCmpRPacketContextTContextConfigGPRS contextParamsComparatorNumberTwo(defaultConfig, getConfigGprs2, *this);
+ ASSERT_TRUE(contextParamsComparatorNumberTwo.IsEqual(ELogError), _L("RPacketService::GetConfig did not return same config as the default returned by RPacketService::GetDefaultContextParams"));
+
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // reqGetDummyContextParams
+ // getNetworkStatus
+ // regSetInitParams
+ // reqGetDefaultContextParams
+ // reqSetDefaultContextParams
+ // notifyServiceStChStatus
+ // notifyContextStChStatus
+ // setConfigStatus
+ // contextActivateStatus
+ // contextConfigStatus
+ CleanupStack::PopAndDestroy(10,&reqGetDummyContextParams);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0029::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0029");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0030::CCTSYIntegrationTestPacketContext0030(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0030::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0030::~CCTSYIntegrationTestPacketContext0030()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0030::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0030
+ * @SYMFssID BA/CTSY/PKTC-0030
+ * @SYMTestCaseDesc Deactivate NIF when there is only one NIF.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::GetStatus, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateContexts, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF
+ * @SYMTestExpectedResults Pass - All contexts in NIF deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify primary and secondary contexts in NIF are deactivated when primary context name specified.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is an active primary and secondary context.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // Check if we are on a simulated network
+ CHECK_EQUALS_L( iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL( phone ), KErrNone,
+ _L("Network is unavailable") );
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+ TExtEtelRequestStatus notifyContextStatus(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatus);
+ TName contextId;
+ packetService.NotifyContextAdded(notifyContextStatus, contextId);
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+ TName secondaryContextId;
+ packetService.NotifyContextAdded(notifyContextStatus, secondaryContextId);
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+ CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext),_L("Can't activate the secondary context"));
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+ TExtEtelRequestStatus enumerateNifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(enumerateNifsStatus);
+ TInt count=-1;
+ packetService.EnumerateNifs(enumerateNifsStatus,count);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateNifsStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(enumerateNifsStatus.Int(), KErrNone,
+ _L("RPacketService::EnumerateNifs failed."));
+ ASSERT_EQUALS(count,1,_L("RPacketService::EnumerateNifs did not return correct number of NIFs."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ TExtEtelRequestStatus getNifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(getNifInfoStatus);
+ RPacketService::TNifInfoV2 nifInfo;
+ RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
+ packetService.GetNifInfo(getNifInfoStatus,0,nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(getNifInfoStatus.Int(), KErrNone,
+ _L("RPacketService::GetNifInfo failed."));
+ ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo invlaid context name"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
+ ASSERT_EQUALS(nifInfo.iNumberOfContexts,2,_L("RPacketService::GetNifInfo wrong number of contexts"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfo.iNifStatus,RPacketContext::EStatusActive,_L("RPacketService::GetNifInfo wrong status"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfo.iPdpAddress.Length()>0,_L("RPacketService::GetNifInfo invlaid PDP address"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EInternalContext
+ ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext,_L("RPacketService::GetNifInfo wrong type"));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns KErrArgument
+ packetService.GetNifInfo(getNifInfoStatus,1,nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNifInfoStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(getNifInfoStatus.Int(), KErrArgument,
+ _L("RPacketService::GetNifInfo did not failed."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
+ TExtEtelRequestStatus enumContextsInfStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(enumContextsInfStatus);
+ count=-1;
+ packetService.EnumerateContextsInNif(enumContextsInfStatus,contextId,count);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumContextsInfStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(enumContextsInfStatus.Int(), KErrNone,
+ _L("RPacketService::EnumerateContextsInNif failed."));
+ ASSERT_EQUALS(count,2,_L("RPacketService::EnumerateContextsInNif did not return correct number of NIFs."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns aContextName = name of primary context
+ TBuf<200> contextName;
+ TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(getContextNameInNifStatus);
+ packetService.GetContextNameInNif(getContextNameInNifStatus,contextId,0,contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone,
+ _L("RPacketService::GetContextNameInNif failed."));
+ ASSERT_EQUALS_DES16(contextName,contextId,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns aContextName = name of secondary context
+ packetService.GetContextNameInNif(getContextNameInNifStatus,contextId,1,contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone,
+ _L("RPacketService::GetContextNameInNif failed."));
+ ASSERT_EQUALS_DES16(contextName,secondaryContextId,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for secondary context's status change
+ TExtEtelRequestStatus secondaryNotifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(secondaryNotifyContextStChStatus);
+ RPacketContext::TContextStatus secondaryPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(secondaryNotifyContextStChStatus, secondaryPacketContextStatus);
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of primary context
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10047);
+ ASSERT_EQUALS(1,0, _L("Test leaving because it will cause TSY crash, remove this when defect is fixed"));
+ TEST_CHECK_POINT_L(_L("test leaving..."));
+ TExtEtelRequestStatus deactivateNifStatus(packetService, EPacketDeactivateNIF);
+ CleanupStack::PushL(deactivateNifStatus);
+ packetService.DeactivateNIF(deactivateNifStatus,contextId);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNifStatus, ETimeMedium), KErrNone,
+ _L("RPacketService::DeactivateNIF timed out."));
+ ASSERT_EQUALS(deactivateNifStatus.Int(), KErrNone,
+ _L("RPacketService::DeactivateNIF failed."));
+
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for primary context completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for primary context returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ secondaryNotifyContextStChStatus,
+ secondaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // -> EStatusInactive
+ secondaryPacketContext.NotifyStatusChange(secondaryNotifyContextStChStatus, secondaryPacketContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ secondaryNotifyContextStChStatus,
+ secondaryPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusAttached;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+ StartCleanup();
+
+ // Pop:
+ // deactivateNifStatus
+ // notifyServiceStChStatus
+ // secondaryNotifyContextStChStatus
+ // notifyContextStChStatus
+ // getContextNameInNifStatus
+ // enumContextsInfStatus
+ // getNifInfoStatus
+ // enumerateNifsStatus
+ // notifyContextStatus
+ CleanupStack::PopAndDestroy(9,¬ifyContextStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0030::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0030");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0031::CCTSYIntegrationTestPacketContext0031(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0031::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0031::~CCTSYIntegrationTestPacketContext0031()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0031::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0031
+ * @SYMFssID BA/CTSY/PKTC-0031
+ * @SYMTestCaseDesc Deactivate NIF when there is only one NIF.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::GetStatus, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateContexts, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF, RPacketService::GetNifInfo, RPacketService::DeactivateNIF
+ * @SYMTestExpectedResults Pass - All contexts in NIF deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify primary and secondary contexts in NIF are deactivated when secondary context name specified.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ //Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // === Ensure there is an active primary and secondary context. ===
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Open a primary PDP context
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Open a secondary PDP context
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+ // Activate the secondary context 1.
+ ActivateSecondaryPacketContextL(secondaryPacketContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Get context info
+ TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
+ CleanupStack::PushL(getContextInfo);
+ RPacketService::TContextInfo contextInfo;
+ TInt index = 0;
+ packetService.GetContextInfo(getContextInfo, index, contextInfo);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
+ ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
+ index = 1;
+ RPacketService::TContextInfo contextInfo2;
+ packetService.GetContextInfo(getContextInfo, index, contextInfo2);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
+ ASSERT_TRUE(contextInfo2.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+ TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(nifsStatus);
+ TInt nifCount = 0;
+ const TInt wantedCount = 1;
+ packetService.EnumerateNifs(nifsStatus, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned with an error."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(nifInfoStatus);
+ TInt nifInfoCount = 0;
+ RPacketService::TNifInfoV2 nifInfoV2;
+ RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
+ ASSERT_TRUE(nifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with valid name returned with an error"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
+ ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo returned with incorrect number of contexts"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo returned with incorrect NIF status"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
+ // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
+ // Changed test procedure to check for EInternalContext instead of EExternalContext
+ ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type."));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns KErrArgument
+ nifInfoCount = 1;
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrArgument, _L("RPacketService::GetNifInfo did not failed."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = existing primary context name returns aCount = 2
+ TExtEtelRequestStatus reqContextNifStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(reqContextNifStatus);
+ packetService.EnumerateContextsInNif(reqContextNifStatus, contextInfo.iName, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqContextNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(nifCount, 2, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected"));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 0 returns aContextName = name of primary context
+ TName contextName;
+ TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(getContextNameInNifStatus);
+ packetService.GetContextNameInNif(getContextNameInNifStatus, contextInfo.iName, 0, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned with an error."));
+ ASSERT_EQUALS_DES16(contextName,contextInfo.iName,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = existing primary context name and aIndex = 1 returns aContextName = name of secondary context
+ packetService.GetContextNameInNif(getContextNameInNifStatus,contextInfo.iName, 1, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeMedium), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(getContextNameInNifStatus.Int(), KErrNone, _L("RPacketService::GetContextNameInNif returned with an error."));
+ ASSERT_EQUALS_DES16(contextName, contextInfo2.iName,_L("RPacketService::GetContextNameInNif did not returned the expected value."));
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // Post notification for primary context status change
+ TExtEtelRequestStatus notifyContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Post notification for secondary context status change
+ TExtEtelRequestStatus notifySecondaryContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecondaryContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifySecondaryContextStChStatus, secPacketContextStatus);
+
+ // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of secondary context
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10047);
+ ASSERT_EQUALS(1,0, _L("Test leaving because it will cause TSY crash, remove this when defect is fixed"));
+ TEST_CHECK_POINT_L(_L("test leaving..."));
+ TExtEtelRequestStatus deactivateNifStatus(packetService, EPacketDeactivateNIF);
+ CleanupStack::PushL(deactivateNifStatus);
+ packetService.DeactivateNIF(deactivateNifStatus,contextInfo2.iName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNifStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
+ ASSERT_EQUALS(deactivateNifStatus.Int(), KErrNone, _L("RPacketService::DeactivateNIF returned with an error."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for primary context completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for primary context returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange for secondary context completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedSecondaryPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecondaryContextStChStatus,
+ secPacketContextStatus,
+ expectedSecondaryPacketContextStatus,
+ KErrNone);
+
+ secondaryPacketContext.NotifyStatusChange(notifySecondaryContextStChStatus, secPacketContextStatus);
+ expectedSecondaryPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecondaryContextStChStatus,
+ secPacketContextStatus,
+ expectedSecondaryPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for secondary context returns EStatusInactive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusAttached
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusAttached;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+ ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus return error."));
+ ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop:
+ // notifyServiceStChStatus
+ // notifyContextStChStatus
+ // notifySecondaryContextStChStatus
+ // getContextInfo
+ // nifsStatus
+ // nifInfoStatus
+ // reqContextNifStatus
+ // getContextNameInNifStatus
+ // deactivateNifStatus
+ CleanupStack::PopAndDestroy(9,¬ifyServiceStChStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0031::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0031");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0032::CCTSYIntegrationTestPacketContext0032(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0032::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0032::~CCTSYIntegrationTestPacketContext0032()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0032::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0032
+ * @SYMFssID BA/CTSY/PKTC-0032
+ * @SYMTestCaseDesc Deactivate NIF when there is more than one NIF.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::EnumerateNifs, RPacketService::GetNifInfo, RPacketService::GetContextNameInNif, RPacketContext::NotifyStatusChange, RPacketService::DeactivateNIF, RPacketService::GetStatus, RPacketService::EnumerateContextsInNif
+ * @SYMTestExpectedResults Pass - All contexts in NIF deactivated. Other contexts unaffected.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify primary and secondary contexts in NIF are deactivated when primary context name specified
+
+Verify contexts in another NIF are not affected.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // === Ensure there is an 2 primary contexts active. Each of these must have an active secondary context opened from it. (Primary 1 and secondary 1 in one NIF and primary 2 and secondary 2 in the second NIF.) ===
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ //Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextPrimary1Status(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextPrimary1Status);
+
+ // Open a primary PDP context 1
+ TName primaryContextId1;
+ packetService.NotifyContextAdded(notifyContextPrimary1Status, primaryContextId1);
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextPrimary1Status, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextPrimary1Status.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextPrimary2Status(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextPrimary2Status);
+
+ // Open a primary PDP context 2
+ TName primaryContextId2;
+ packetService.NotifyContextAdded(notifyContextPrimary2Status, primaryContextId2);
+ RPacketContext& primaryPacketContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext2);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextPrimary2Status, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextPrimary2Status.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+
+ // Activate primary context 1.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+ // Activate primary context 2.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext2, 2);
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextSecondary1Status(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextSecondary1Status);
+
+ // Open a secondary PDP context 1.
+ TName secondaryContextId1;
+ packetService.NotifyContextAdded(notifyContextSecondary1Status, secondaryContextId1);
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextSecondary1Status, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextSecondary1Status.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+
+ // Post notification for the RPacketService::NotifyContextAdded
+ TExtEtelRequestStatus notifyContextSecondary2Status(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextSecondary2Status);
+
+ // Open a secondary PDP context 2.
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+
+ // Activate the secondary context 1.
+ CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext, KPrimaryPacketContext1, KSecondaryPacketContext1),_L("Can't activate the secondary context"));
+
+ // Activate the secondary context 2.
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check RPacketService::EnumerateNifs returns aCount = 2
+ TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(nifsStatus);
+ TInt nifCount = 0;
+ const TInt wantedCount = 2;
+ packetService.EnumerateNifs(nifsStatus, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(nifCount, wantedCount, _L("RPacketService::EnumerateNifs returned with an error."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
+ // Check RPacketService::GetNifInfo with aCount = 1 returns valid name in iContextName
+ // Check RPacketService::GetNifInfo with aCount = 1 returns iNumberOfContexts = 2
+ // Check RPacketService::GetNifInfo with aCount = 1 returns iNifStatus = EStatusActive
+ // Check RPacketService::GetNifInfo with aCount = 1 returns valid address in iPdpAddress
+ // Check RPacketService::GetNifInfo with aCount = 1 returns EExternalContext
+ // Check RPacketService::GetNifInfo with aCount = 2 returns KErrArgument
+ TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(nifInfoStatus);
+ TInt nifInfoCount = 0;
+ RPacketService::TNifInfoV2 nifInfoV2;
+ RPacketService::TNifInfoV2Pckg nifInfoV2Pkg(nifInfoV2);
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoV2Pkg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeLong), KErrNone, _L("RPacketService::GetNifInfo returned an error"));
+ ASSERT_TRUE(nifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with aCount = 0 returned with invalid iContextName"));
+ ASSERT_EQUALS(nifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
+ ASSERT_EQUALS(nifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo with iNifStatus returned with an error"));
+ ASSERT_TRUE(nifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
+ ASSERT_EQUALS(nifInfoV2.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo with iContextType returned with an error"));
+
+ nifInfoCount = 1;
+ RPacketService::TNifInfoV2 secondNifInfoV2;
+ RPacketService::TNifInfoV2Pckg secondNifInfoV2V2Pkg(secondNifInfoV2);
+ packetService.GetNifInfo(nifInfoStatus,nifInfoCount,secondNifInfoV2V2Pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with error."));
+ ASSERT_TRUE(secondNifInfoV2.iContextName.Length() > 0, _L("RPacketService::GetNifInfo with aCount = 0 returned with invalid iContextName"));
+ ASSERT_EQUALS(secondNifInfoV2.iNumberOfContexts, 2, _L("RPacketService::GetNifInfo with iNumberOfContexts returned with an error"));
+ ASSERT_EQUALS(secondNifInfoV2.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo with iNifStatus returned with an error"));
+ ASSERT_TRUE(secondNifInfoV2.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address"));
+ ASSERT_EQUALS(secondNifInfoV2.iContextType, RPacketService::EExternalContext, _L("RPacketService::GetNifInfo with iContextType returned with an error"));
+
+ nifInfoCount = 2;
+ packetService.GetNifInfo(nifInfoStatus,nifInfoCount,nifInfoV2Pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrArgument, _L("RPacketService::GetNifInfo did not returned with error."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 1 returns aCount = 2
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 2 returns aCount = 2
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 1 returns aCount = 2
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 2 returns aCount = 2
+ TInt wantedNifCount = 2;
+ TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(enumerateContextsInNifStatus);
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId1, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected."));
+
+ nifCount = 0;
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId2, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected."));
+
+ nifCount = 0;
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, secondaryContextId1, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketContext::EnumerateContextsInNif did not return 2 as expected."));
+
+ nifCount = 0;
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 0 returns aContextName = name of primary context 1
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 1 returns aContextName = name of secondary context 1
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 0 returns aContextName = name of primary context 1
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 1 returns aContextName = name of secondary context 1
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 0 returns aContextName = name of primary context 2
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 1 returns aContextName = name of secondary context 2
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 0 returns aContextName = name of primary context 2
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 1 returns aContextName = name of secondary context 2
+ TExtEtelRequestStatus contextNameNifsStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(contextNameNifsStatus);
+ TInt index = 0;
+ TName returnedContextName;
+ packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId1, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
+ ASSERT_EQUALS_DES16(returnedContextName, primaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ index = 1;
+ packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId1, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
+ ASSERT_EQUALS_DES16(returnedContextName, secondaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ index = 0;
+ packetService.GetContextNameInNif(contextNameNifsStatus, secondaryContextId1, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
+ ASSERT_EQUALS_DES16(returnedContextName, primaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ index = 1;
+ packetService.GetContextNameInNif(contextNameNifsStatus, secondaryContextId1, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
+ ASSERT_EQUALS_DES16(returnedContextName, secondaryContextId1, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ index = 0;
+ packetService.GetContextNameInNif(contextNameNifsStatus, primaryContextId2, index, returnedContextName );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextNameNifsStatus, ETimeLong), KErrNone, _L("RPacketContext::GetContextNameInNif timed out."));
+ ASSERT_EQUALS(contextNameNifsStatus.Int(), KErrNone, _L("RPacketContext::GetContextNameInNif returned error"));
+ ASSERT_EQUALS_DES16(returnedContextName, primaryContextId2, _L("RPacketContext::GetContextNameInNif with aExistingContextName = existing context name returned with an error"));
+
+ index = 1;
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+
+ index = 0;
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+
+ index = 1;
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+
+ // Post notifications for primary & secondary context status changes
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+ TExtEtelRequestStatus notifyprimaryContextStChStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyprimaryContextStChStatus);
+ RPacketContext::TContextStatus primaryPacketContextStatus;
+ primaryPacketContext.NotifyStatusChange(notifyprimaryContextStChStatus, primaryPacketContextStatus);
+
+ TExtEtelRequestStatus notifyprimary2ContextStChStatus(primaryPacketContext2, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyprimary2ContextStChStatus);
+ RPacketContext::TContextStatus primaryPacketContext2Status;
+ primaryPacketContext2.NotifyStatusChange(notifyprimary2ContextStChStatus, primaryPacketContext2Status);
+
+ TExtEtelRequestStatus notifySecondaryContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecondaryContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifySecondaryContextStChStatus, secPacketContextStatus);
+
+
+ // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of primary 2
+ TExtEtelRequestStatus deactivateNifStatus(packetService, EPacketDeactivateNIF);
+ CleanupStack::PushL(deactivateNifStatus);
+ packetService.DeactivateNIF(deactivateNifStatus,primaryContextId2);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNifStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
+ ASSERT_EQUALS(deactivateNifStatus.Int(), KErrNone, _L("RPacketService::DeactivateNIF returned with error."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for primary 2 completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext2,
+ notifyprimary2ContextStChStatus,
+ primaryPacketContext2Status,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext2.NotifyStatusChange(notifyprimary2ContextStChStatus, primaryPacketContext2Status);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext2,
+ notifyprimary2ContextStChStatus,
+ primaryPacketContext2Status,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for primary 2 returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext2.GetStatus(primaryPacketContext2Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(primaryPacketContext2Status, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange for secondary 2 completes with EStatusDeactivating -> EStatusInactive
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+
+ // Check RPacketContext::GetStatus for secondary 2 returns EStatusInactive
+ // Check RPacketContext::GetStatus for primary 1 returns EStatusActive
+ // Check RPacketContext::GetStatus for secondary 1 returns EStatusActive
+ // $CTSYProblem LTSY dose not allow us to initialise 4 packets contexts
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(primaryPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(primaryPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop:
+ // deactivateNifStatus
+ // notifySecondaryContextStChStatus
+ // notifyprimary2ContextStChStatus
+ // notifyprimaryContextStChStatus
+ // contextNameNifsStatus
+ // enumerateContextsInNifStatus
+ // nifInfoStatus
+ // nifsStatus
+ // notifyContextSecondary2Status
+ // notifyContextSecondary1Status
+ // notifyContextPrimary2Status
+ // notifyContextPrimary1Status
+ CleanupStack::PopAndDestroy(12,¬ifyContextPrimary1Status);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0032::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0032");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0033::CCTSYIntegrationTestPacketContext0033(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0033::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0033::~CCTSYIntegrationTestPacketContext0033()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0033::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0033
+ * @SYMFssID BA/CTSY/PKTC-0033
+ * @SYMTestCaseDesc Deactivate NIF specifying unknown context name.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::DeactivateNIF, RPacketContext::GetStatus
+ * @SYMTestExpectedResults Pass - No NIFs deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context status unaffected.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is an active primary context.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(KMainServer, KMainPhone, KMainPacketService, KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckServiceStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckServiceStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus did not return EStatusActive as expected."));
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ RPacketContext::TContextStatus pckContextStatus;
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(pckContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return EStatusActive as expected."));
+
+ // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = unknown context name
+ TExtEtelRequestStatus deactiveNIFStatus(packetService, EPacketDeactivateNIF);
+ CleanupStack::PushL(deactiveNIFStatus);
+ RPacketService::TContextInfo unknownContextInfo;
+ unknownContextInfo.iName = _L("unknown123abc");
+ packetService.DeactivateNIF(deactiveNIFStatus, unknownContextInfo.iName);
+
+ // Check error is returned.
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(deactiveNIFStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
+ ASSERT_TRUE(deactiveNIFStatus.Int() != KErrNone, _L("RPacketService::DeactivateNIF did not return error as expected."));
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ ASSERT_EQUALS(packetService.GetStatus(pckServiceStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus did not return EStatusActive as expected."));
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(pckContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus did not return EStatusActive as expected."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // deactiveNIFStatus
+ CleanupStack::PopAndDestroy(1, &deactiveNIFStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0033::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0033");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0034::CCTSYIntegrationTestPacketContext0034(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0034::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0034::~CCTSYIntegrationTestPacketContext0034()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0034::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0034
+ * @SYMFssID BA/CTSY/PKTC-0034
+ * @SYMTestCaseDesc Deactivate NIF when there is more than one NIF.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::NotifyAttachModeChange, RPacketService::GetAttachMode, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::SetConfig, RPacketContext::Activate, RPacketService::EnumerateContextsInNif, RPacketService::EnumerateContexts, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::DeactivateNIF, RPacketService::GetNifInfo
+ * @SYMTestExpectedResults Pass - All contexts in NIF deactivated. Other contexts unaffected.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify primary and secondary contexts in NIF are deactivated when secondary context name specified
+
+Verify contexts in another NIF are not affected.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ //Check if we are on a simulated network
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error."));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure there is an 2 primary contexts active. Each of these must have an active secondary context opened from it. (Primary 1 and secondary 1 in one NIF and primary 2 and secondary 2 in the second NIF.)
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ TName primaryContextId1;
+ TName primaryContextId2;
+
+ TExtEtelRequestStatus notifyContextStatusPrimary1(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatusPrimary1);
+
+ packetService.NotifyContextAdded(notifyContextStatusPrimary1, primaryContextId1);
+ RPacketContext& primaryPacketContext1 = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusPrimary1, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextStatusPrimary1.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ CHECK_TRUE_L(primaryContextId1.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
+
+ TExtEtelRequestStatus notifyContextStatusPrimary2(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatusPrimary2);
+
+ packetService.NotifyContextAdded(notifyContextStatusPrimary2, primaryContextId2);
+ RPacketContext& primaryPacketContext2 = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext2);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusPrimary2, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextStatusPrimary2.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ CHECK_TRUE_L(primaryContextId2.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
+
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext2, 2);
+
+ TName secondaryContextId1;
+ TName secondaryContextId2;
+ TExtEtelRequestStatus notifyContextStatusSecondary1(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatusSecondary1);
+
+ packetService.NotifyContextAdded(notifyContextStatusSecondary1, secondaryContextId1);
+ RPacketContext& secondaryPacketContext1 = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusSecondary1, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextStatusSecondary1.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ CHECK_TRUE_L(secondaryContextId1.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
+
+ TExtEtelRequestStatus notifyContextStatusSecondary2(packetService, EPacketNotifyContextAdded);
+ CleanupStack::PushL(notifyContextStatusSecondary2);
+
+ packetService.NotifyContextAdded(notifyContextStatusSecondary2, secondaryContextId2);
+ // $CTSYProblem This test cannot be run since LTSY does not allow us to initialise 4 packets contexts
+ CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY does not allow us to initialise 4 packets contexts"));
+ RPacketContext& secondaryPacketContext2 = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext2,
+ KSecondaryPacketContext2);
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(notifyContextStatusSecondary2, ETimeMedium), KErrNone, _L("RPacketService::NotifyContextAdded did not complete."));
+ CHECK_EQUALS_L(notifyContextStatusSecondary2.Int(), KErrNone, _L("RPacketService::NotifyContextAdded returned with error status."));
+ CHECK_TRUE_L(secondaryContextId2.Length() > 0, _L("RPacketService::NotifyContextAdded returned with invalid context name."));
+
+ CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext1), _L("Can't activate the secondary context"));
+ CHECK_TRUE_L(ActivateSecondaryPacketContextL(secondaryPacketContext2), _L("Can't activate the secondary context"));
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Check RPacketService::EnumerateNifs returns aCount = 2
+ TExtEtelRequestStatus nifsStatus(packetService, EPacketEnumerateNifs);
+ CleanupStack::PushL(nifsStatus);
+ TInt nifCount = 0;
+ TInt wantedNifCount = 2;
+ packetService.EnumerateNifs(nifsStatus, nifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifsStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateNifs timed out."));
+ ASSERT_EQUALS(nifsStatus.Int(), KErrNone, _L("RPacketService::EnumerateNifs returned with error."));
+ ASSERT_EQUALS(nifCount, wantedNifCount, _L("RPacketService::EnumerateNifs returned wrong NIF count."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ TInt nifInfoCount = 0;
+ TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(nifInfoStatus);
+ RPacketService::TNifInfoV2 nifInfo;
+ RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with error."));
+ ASSERT_EQUALS_DES16(nifInfo.iContextName, primaryContextId1, _L("RPacketService::GetNifInfo returned with invalid context name."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNumberOfContexts = 2
+ TInt wantedNumberOfContexts = 2;
+ ASSERT_EQUALS(nifInfo.iNumberOfContexts, wantedNumberOfContexts, _L("RPacketService::GetNifInfo returned wrong number of contexts."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfo.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo did not return EStatusActive as expected."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfo.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address."));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns EExternalContext
+ // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
+ // Changed test procedure to check for EInternalContext instead of EExternalContext
+ ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type."));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns valid name in iContextName
+ nifInfoCount = 1;
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with error."));
+ ASSERT_EQUALS_DES16(nifInfo.iContextName, primaryContextId2, _L("RPacketService::GetNifInfo returned with invalid context name."));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns iNumberOfContexts = 2
+ ASSERT_EQUALS(nifInfo.iNumberOfContexts,2,_L("RPacketService::GetNifInfo wrong number of contexts."));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns iNifStatus = EStatusActive
+ ASSERT_EQUALS(nifInfo.iNifStatus, RPacketContext::EStatusActive, _L("RPacketService::GetNifInfo did not return EStatusActive as expected."));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns valid address in iPdpAddress
+ ASSERT_TRUE(nifInfo.iPdpAddress.Length() > 0, _L("RPacketService::GetNifInfo returned with invalid pdp address."));
+
+ // Check RPacketService::GetNifInfo with aCount = 1 returns EExternalContext
+ // $CTSYProblem:RPacketService::GetNifInfo always returns EInternalContext
+ // Changed test procedure to check for EInternalContext instead of EExternalContext
+ ASSERT_EQUALS(nifInfo.iContextType, RPacketService::EInternalContext, _L("RPacketService::GetNifInfo returned wrong context type."));
+
+ // Check RPacketService::GetNifInfo with aCount = 2 returns KErrArgument
+ nifInfoCount = 2;
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrArgument, _L("RPacketService::GetNifInfo did not returned an error."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 1 returns aCount = 2
+ TInt wantedCount = 2;
+ TInt contextsInNifCount = 0;
+ TExtEtelRequestStatus enumerateContextsInNifStatus(packetService, EPacketEnumerateContextsInNif);
+ CleanupStack::PushL(enumerateContextsInNifStatus);
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId1, contextsInNifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
+ ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = primary 2 returns aCount = 2
+ contextsInNifCount = 0;
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, primaryContextId2, contextsInNifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
+ ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 1 returns aCount = 2
+ contextsInNifCount = 0;
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, secondaryContextId1, contextsInNifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
+ ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
+
+ // Check RPacketService::EnumerateContextsInNif with aExistingContextName = secondary 2 returns aCount = 2
+ contextsInNifCount = 0;
+ packetService.EnumerateContextsInNif(enumerateContextsInNifStatus, secondaryContextId2, contextsInNifCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumerateContextsInNifStatus, ETimeLong), KErrNone, _L("RPacketService::EnumerateContextsInNif timed out."));
+ ASSERT_EQUALS(enumerateContextsInNifStatus.Int(), KErrNone, _L("RPacketService::EnumerateContextsInNif returned with error."));
+ ASSERT_EQUALS(contextsInNifCount, wantedCount, _L("RPacketService::EnumerateContextsInNif did not return 2 as expected."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 0 returns aContextName = name of primary context 1
+ const TInt index0 = 0;
+ const TInt index1 = 1;
+ TName contextName;
+ TExtEtelRequestStatus getContextNameInNifStatus(packetService, EPacketGetContextNameInNif);
+ CleanupStack::PushL(getContextNameInNifStatus);
+ packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId1, index0, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, primaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 1 and aIndex = 1 returns aContextName = name of secondary context 1
+ packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId1, index1, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, secondaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 0 returns aContextName = name of primary context 1
+ packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId1, index0, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, primaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 1 and aIndex = 1 returns aContextName = name of secondary context 1
+ packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId1, index1, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, secondaryContextId1, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 0 returns aContextName = name of primary context 2
+ packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId2, index0, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, primaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = primary 2 and aIndex = 1 returns aContextName = name of secondary context 2
+ packetService.GetContextNameInNif(getContextNameInNifStatus, primaryContextId2, index1, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, secondaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 0 returns aContextName = name of primary context 2
+ packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId2, index0, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, primaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Check RPacketService::GetContextNameInNif with aExistingContextName = secondary 2 and aIndex = 1 returns aContextName = name of secondary context 2
+ packetService.GetContextNameInNif(getContextNameInNifStatus, secondaryContextId2, index1, contextName);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextNameInNifStatus, ETimeLong), KErrNone, _L("RPacketService::GetContextNameInNif timed out."));
+ ASSERT_EQUALS_DES16(contextName, secondaryContextId2, _L("RPacketService::GetContextNameInNif returned context name which doesn't match with the existing context name."));
+
+ // Post notifications for primary2 and secondary2 context's status change
+ TExtEtelRequestStatus notifyPrimaryContext2StChStatus(primaryPacketContext2, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyPrimaryContext2StChStatus);
+ RPacketContext::TContextStatus primaryPacketContext2Status;
+ primaryPacketContext2.NotifyStatusChange(notifyPrimaryContext2StChStatus, primaryPacketContext2Status);
+
+ TExtEtelRequestStatus notifySecondaryContext2StChStatus(secondaryPacketContext2, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecondaryContext2StChStatus);
+ RPacketContext::TContextStatus secondaryPacketContext2Status;
+ secondaryPacketContext2.NotifyStatusChange(notifySecondaryContext2StChStatus, secondaryPacketContext2Status);
+
+ // Post notifications for primary1 context status change
+ TExtEtelRequestStatus notifyPrimaryContext1StChStatus(primaryPacketContext1, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyPrimaryContext1StChStatus);
+ RPacketContext::TContextStatus primaryPacketContext1Status;
+ primaryPacketContext1.NotifyStatusChange(notifyPrimaryContext1StChStatus, primaryPacketContext1Status);
+
+ // Deactivate the NIF with RPacketService::DeactivateNIF and aContextName = name of secondary 2
+ TExtEtelRequestStatus deactivateNIFStatus(packetService, EPacketDeactivateNIF);
+ CleanupStack::PushL(deactivateNIFStatus);
+ packetService.DeactivateNIF(deactivateNIFStatus, secondaryContextId2);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateNIFStatus, ETimeMedium), KErrNone, _L("RPacketService::DeactivateNIF timed out."));
+ ASSERT_EQUALS(deactivateNIFStatus.Int(), KErrNone, _L("RPacketService::DeactivateNIF returned with error.."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for primary 2 completes with EStatusDeactivating -> EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext2,
+ notifyPrimaryContext2StChStatus,
+ primaryPacketContext2Status,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ primaryPacketContext2.NotifyStatusChange(notifyPrimaryContext2StChStatus, primaryPacketContext2Status);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ primaryPacketContext2,
+ notifyPrimaryContext2StChStatus,
+ primaryPacketContext2Status,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for primary 2 returns EStatusInactive
+ ASSERT_EQUALS(primaryPacketContext2.GetStatus(primaryPacketContext2Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(primaryPacketContext2Status, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::NotifyStatusChange for secondary 2 completes with EStatusDeactivating -> EStatusInactive
+ expectedPacketContextStatus = RPacketContext::EStatusDeactivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifySecondaryContext2StChStatus,
+ secondaryPacketContext2Status,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ secondaryPacketContext2.NotifyStatusChange(notifySecondaryContext2StChStatus, secondaryPacketContext2Status);
+ expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext2,
+ notifySecondaryContext2StChStatus,
+ secondaryPacketContext2Status,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for secondary 2 returns EStatusInactive
+ ASSERT_EQUALS(secondaryPacketContext2.GetStatus(secondaryPacketContext2Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secondaryPacketContext2Status, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::GetStatus for primary 1 returns EStatusActive
+ ASSERT_EQUALS(primaryPacketContext1.GetStatus(primaryPacketContext1Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(primaryPacketContext1Status, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::GetStatus for secondary 1 returns EStatusActive
+ RPacketContext::TContextStatus secondaryPacketContext1Status;
+ ASSERT_EQUALS(secondaryPacketContext1.GetStatus(secondaryPacketContext1Status), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secondaryPacketContext1Status, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // pop
+ // notifyContextStatusPrimary1
+ // notifyContextStatusPrimary1
+ // notifyContextStatusSecondary1
+ // notifyContextStatusSecondary2
+ // nifsStatus
+ // nifInfoStatus
+ // enumerateContextsInNifStatus
+ // getContextNameInNifStatus
+ // notifyPrimaryContext1StChStatus
+ // notifySecondaryContext2StChStatus
+ // notifyPrimaryContext1StChStatus
+ // deactivateNIFStatus
+ CleanupStack::PopAndDestroy(12,¬ifyContextStatusPrimary1);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0034::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0034");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0035::CCTSYIntegrationTestPacketContext0035(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0035::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0035::~CCTSYIntegrationTestPacketContext0035()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0035::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0035
+ * @SYMFssID BA/CTSY/PKTC-0035
+ * @SYMTestCaseDesc Enumerate NIFs.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketService::EnumerateNifs, RPacketContext::NotifyStatusChange, RPacketContext::SetConfig, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Number of NIFs correct.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify number of NIFs and NIF info correct as contexts are activated. Verify that for each primary context that is activated, number of NIFs increases by 1, if a secondary context is activated number of NIFs does not change.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure packet service is attached,
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new primary context (context 1).
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // Set a valid context config using RPacketContext::SetConfig
+
+ // Activate packet context with RPacketContext::Activate
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // Check RPacketService::EnumerateNifs returns aCount = 1
+
+ // Open a new primary context (context 2)
+
+ // Add a TPacketFilterV3 packet filter to context 2 using RPacketContext::AddPacketFilter
+
+ // Open a new QoS from context 2
+
+ // Get R5 QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSR5Requested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // Set a valid context config for context 2 using RPacketContext::SetConfig
+
+ // Activate packet context for context 2 with RPacketContext::Activate
+
+ // Check RPacketContext::NotifyStatusChange for context 2 completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for context 2 returns EStatusActive
+
+ // Check RPacketService::EnumerateNifs returns aCount = 2
+
+ // Open a new secondary context from context 1 (this is context 3)
+
+ // Set a valid context config for context 3 using RPacketContext::SetConfig
+
+ // Activate packet context for context 3 with RPacketContext::Activate
+
+ // Check RPacketContext::NotifyStatusChange for context 3 completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for context 3 returns EStatusActive
+
+ // Check RPacketService::EnumerateNifs returns aCount = 2
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0035::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0035");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0036::CCTSYIntegrationTestPacketContext0036(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0036::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0036::~CCTSYIntegrationTestPacketContext0036()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0036::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0036
+ * @SYMFssID BA/CTSY/PKTC-0036
+ * @SYMTestCaseDesc Activate a primary context with packet filter and QoS set up.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketQoS::OpenNewQoS, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileParameters, RPacketQoS::GetProfileCapabilities, RPacketContext::GetProfileName
+ * @SYMTestExpectedResults Pass - Packet filter added to context and context activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify packet filter info and QoS profile info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to the packet service
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new primary context
+
+ // Add a TPacketFilterV2 packet filter to the primary context using RPacketContext::AddPacketFilter
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns same packet filter info added to the context
+
+ // Open a new QoS from the primary context
+
+ // Get profile capabilities with RPacketCotnext::GetProfileCapabilities with aProfileCaps as a packaged RPacketContext::TQoSCapsGPRS
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSR5Requested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+
+ // Set a valid context config using RPacketContext::SetConfig
+
+ // Activate packet context with RPacketContext::Activate
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns same packet filter info added to the context
+
+ // Repeat test with RPacketContext::TQoSCapsR99_R4 and RPacketContext::TQoSCapsR5 instead of RPacketContext::TQoSCapsGPRS
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0036::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0036");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0037::CCTSYIntegrationTestPacketContext0037(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0037::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0037::~CCTSYIntegrationTestPacketContext0037()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0037::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0037
+ * @SYMFssID BA/CTSY/PKTC-0037
+ * @SYMTestCaseDesc Modify a primary context with packet filter and QoS.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::ModifyActiveContext, RPacketContext::GetProfileParameters, RPacketContext::GetProfileName, RPacketContext::RemovePacketFilter, RPacketContext::EnumeratePacketFilters, RPacketQoS::SetProfileParameters, RPacketQoS::OpenNewQoS, RPacketContext::AddPacketFilter
+ * @SYMTestExpectedResults Pass - Context is modified.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify packet filter info and QoS profile info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is an active primary context.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Add a TPacketFilterV2packet filter to the primary context using RPacketContext::AddPacketFilter
+
+ // Open a new QoS from the primary context
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+
+ // Modify the active context with RPacketContext::ModifyActiveContext
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns same packet filter info added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns KErrArgument
+
+ // Check RPacketContext::GetProfileParameters returns TQoSGPRSNegotiated parameters.
+
+ // Remove packet filter with RPacketContext::RemovePacketFilter.
+
+ // Modify the active context with RPacketContext::ModifyActiveContext
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns KErrArgument
+
+ // Repeat test with TQoSR99_R4Requested and TQoSR5Requested types in RPacketQoS::SetProfileParameters and checking for TQoSR99_R4Negotiated and TQoSR5Negotiated in RPacketContext::GetProfileParameters respectively.
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0037::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0037");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0038::CCTSYIntegrationTestPacketContext0038(CEtelSessionMgr& aEtelSessionMgr, const TDesC& aName)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(aName);
+ if(aName.Find(_L("GRPS")) != KErrNotFound)
+ {
+ iTestType = EQoSGPRS;
+ }
+ else if(aName.Find(_L("R4")) != KErrNotFound)
+ {
+ iTestType = EQoSR4;
+ }
+ else if(aName.Find(_L("R5")) != KErrNotFound)
+ {
+ iTestType = EQoSR5;
+ }
+ }
+
+CCTSYIntegrationTestPacketContext0038::~CCTSYIntegrationTestPacketContext0038()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+
+template<class PARAMETERS, class CAPABILITIES, class NEGOTIATED>
+ TBool CCTSYIntegrationTestPacketContext0038::ActiveContextL(RPacketContext &aPacketContext,
+ RPacketQoS &aPacketQoS,
+ PARAMETERS &aParameters,
+ CAPABILITIES &aCapabilities,
+ NEGOTIATED &aNegotiated)
+
+/**
+ * Activate a secondary context. This is actually a single context activation method,
+ * the test activate the context three times, each with diffrent type of parameters, capabilities and negotiation objects
+ *
+ * @param aPacketContext Reference to the secondary context session.
+ * @param aPacketQoS Reference to the packet Quality of Service session.
+ * @param aParameters Reference to the QoS parameters. Must be TQoSGPRSRequested, TQoSR99_R4Requested or TQoSR5Requested.
+ * @param aCapabilities Reference to the QoS capabilities. Must be a TQoSCapsGPRS, TQoSCapsR99_R4 or TQoSCapsR5 respectivley.
+ * @param aNegotiated Reference to the QoS nagotiated. Must be a TQoSGPRSNegotiated, t99_r4Negotiated or r5Negotiated respectivley.
+ *
+ * @return ETrue if the activation went well
+ */
+ {
+ TBool ret = ETrue;
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,1), KErrNone,
+ _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Get profile capabilities with RPacketCotnext::GetProfileCapabilities with aProfileCaps as a packaged CAPABILITIES
+ TExtEtelRequestStatus getProfileCapStatus(aPacketQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ TPckg<CAPABILITIES> qosCapsPckg(aCapabilities);
+ aPacketQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities timed out."));
+ LOCAL_ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and PARAMETERS with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ TPckg<PARAMETERS> qosReqPckg(aParameters);
+ FillParametersFromCapabilities(aParameters,aCapabilities);
+ TExtEtelRequestStatus setProfileParamStatus(aPacketQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ aPacketQoS.SetProfileParameters(setProfileParamStatus, qosReqPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::SetProfileParameters timed out."));
+ LOCAL_ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
+ _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+ TName profileName;
+ LOCAL_ASSERT_EQUALS(aPacketContext.GetProfileName(profileName),KErrNone,
+ _L("RPacketContext::GetProfileName returned with error status."));
+ LOCAL_ASSERT_TRUE(profileName.Length()>0,
+ _L("RPacketContext::GetProfileName name length is 0."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(aPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus contextActivateStatus(aPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ aPacketContext.Activate(contextActivateStatus);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::Activate timed out."));
+ LOCAL_ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ aPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
+ aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ aPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ LOCAL_ASSERT_EQUALS(aPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+ TInt count=-1;
+ TExtEtelRequestStatus enumeratePacketFiltersChStatus(aPacketContext, EPacketContextEnumeratePacketFilters);
+ CleanupStack::PushL(enumeratePacketFiltersChStatus);
+ aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersChStatus,count);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersChStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters timed out"));
+ LOCAL_ASSERT_EQUALS(enumeratePacketFiltersChStatus.Int(), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters returned an error"));
+ LOCAL_ASSERT_EQUALS(count, 1,
+ _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter added to the context
+ TExtEtelRequestStatus getPacketFilterInfoStatus(aPacketContext, EPacketContextGetPacketFilterInfo);
+ CleanupStack::PushL(getPacketFilterInfoStatus);
+ RPacketContext::TPacketFilterV2 packetFilter;
+ RPacketContext::TPacketFilterV2Pckg packetFilterPkg(packetFilter);
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
+ FillPacketFilter(defaultPacketFilterInfo,1);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns KErrArgument
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
+ _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
+
+ // Check RPacketContext::GetProfileParameters returns NEGOTIATED parameters.
+ TExtEtelRequestStatus getProfileParametersStatus(aPacketQoS, EPacketQoSGetProfileParams);
+ CleanupStack::PushL(getProfileParametersStatus);
+ TPckg<NEGOTIATED> negotiatedPckg(aNegotiated);
+ aPacketQoS.GetProfileParameters(getProfileParametersStatus,negotiatedPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeShort), KErrNone,
+ _L("RPacketQoS::GetProfileParameters timed out"));
+ LOCAL_ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone,
+ _L("RPacketQoS::GetProfileParameters returned an error"));
+
+ // Deactivate context.
+ TExtEtelRequestStatus deactivateContextStatus(aPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(getProfileParametersStatus);
+ aPacketContext.Deactivate(deactivateContextStatus);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(deactivateContextStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::Deactivate timed out."));
+ LOCAL_ASSERT_EQUALS(deactivateContextStatus.Int(), KErrNone,
+ _L("RPacketContext::Deactivate returned with error status."));
+
+
+ iEtelSessionMgr.ReleaseSecondaryPacketContext(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext3);
+
+ // Pop:
+ // deactivateContextStatus
+ // getProfileParametersStatus
+ // getPacketFilterInfoStatus
+ // enumeratePacketFiltersChStatus
+ // contextActivateStatus
+ // notifyContextStChStatus
+ // setProfileParamStatus
+ // getProfileCapStatus
+ CleanupStack::PopAndDestroy(8,&getProfileCapStatus);
+
+ return ret;
+ }
+TVerdict CCTSYIntegrationTestPacketContext0038::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0038
+ * @SYMFssID BA/CTSY/PKTC-0038
+ * @SYMTestCaseDesc Activate a secondary context with packet filter and QoS set up.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetProfileName, RPacketContext::GetStatus, RPacketContext::EnumeratePacketFilters, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext, RPacketQoS::OpenNewQoS, RPacketQoS::SetProfileParameters, RPacketContext::RemovePacketFilter
+ * @SYMTestExpectedResults Pass - Packet filter added and removed successfully.Context active.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify packet filter info and QoS profile info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ DEBUG_PRINTF2(_L("Starting with type %d"),iTestType);
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure there is an active primary context.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new secondary context.
+ RPacketContext& secondaryPacketContext1 = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS1 = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ RPacketQoS::TQoSGPRSRequested gprsRequested;
+ RPacketQoS::TQoSCapsGPRS capsGPRS;
+ RPacketQoS::TQoSGPRSNegotiated gprsNegotiated;
+
+ RPacketQoS::TQoSR99_R4Requested r99_r4Requested;
+ RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
+ RPacketQoS::TQoSR99_R4Negotiated t99_r4Negotiated;
+ t99_r4Negotiated.iTrafficClass = RPacketQoS::ETrafficClassUnspecified;
+ t99_r4Negotiated.iDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
+ t99_r4Negotiated.iDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
+ //t99_r4Negotiated.iMaxSDUSize = 500; //not sure
+ //t99_r4Negotiated.iMaxRate.iUplinkRate = 5000; //not sure
+ //t99_r4Negotiated.iMaxRate.iDownlinkRate = 5000; //not sure
+ t99_r4Negotiated.iBER = RPacketQoS::EBERUnspecified;
+ t99_r4Negotiated.iSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
+ t99_r4Negotiated.iTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ //t99_r4Negotiated.iTransferDelay = 110; //not sure
+ //t99_r4Negotiated.iGuaranteedRate.iUplinkRate = 5000; //not sure
+ //t99_r4Negotiated.iGuaranteedRate.iDownlinkRate = 5000; //not sure
+
+ RPacketQoS::TQoSR5Requested r5Requested;
+ RPacketQoS::TQoSCapsR5 capsr5;
+ RPacketQoS::TQoSR5Negotiated r5Negotiated;
+
+ switch(iTestType)
+ {
+ case EQoSGPRS:
+ //Activate The Context using TQoSGPRSRequested, TQoSCapsGPRS and TQoSGPRSNegotiated
+ ASSERT_TRUE(ActiveContextL(secondaryPacketContext1,packetQoS1,gprsRequested,capsGPRS,gprsNegotiated),
+ _L("CCTSYIntegrationTestPacketContext0038::ActiveContextL failed"));
+ break;
+ case EQoSR4:
+ ASSERT_TRUE(ActiveContextL(secondaryPacketContext1,packetQoS1,r99_r4Requested,capsR99_R4,t99_r4Negotiated),
+ _L("CCTSYIntegrationTestPacketContext0038::ActiveContextL failed"));
+ break;
+ case EQoSR5:
+ ASSERT_TRUE(ActiveContextL(secondaryPacketContext1,packetQoS1,r5Requested,capsr5,r5Negotiated),
+ _L("CCTSYIntegrationTestPacketContext0038::ActiveContextL failed"));
+ break;
+ default:
+ CHECK_TRUE_L(EFalse, _L("Wrong test type!"));
+
+ }
+
+
+ // Repeat test with TQoSR99_R4Requested and TQoSR5Requested types in RPacketQoS::SetProfileParameters and checking for TQoSR99_R4Negotiated and TQoSR5Negotiated in RPacketContext::GetProfileParameters respectively.
+
+
+ //Activate The Context using TQoSR99_R4Requested, TQoSCapsR99_R4 and TQoSR99_R4Negotiated
+
+
+ //Activate The Context using TQoSR5Requested, TQoSCapsR5 and TQoSR5Negotiated
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0038::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0038");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0039::CCTSYIntegrationTestPacketContext0039(CEtelSessionMgr& aEtelSessionMgr, const TDesC& aName)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(aName);
+ if(aName.Find(_L("GRPS")) != KErrNotFound)
+ {
+ iTestType = EQoSGPRS;
+ }
+ else if(aName.Find(_L("R4")) != KErrNotFound)
+ {
+ iTestType = EQoSR4;
+ }
+ else if(aName.Find(_L("R5")) != KErrNotFound)
+ {
+ iTestType = EQoSR5;
+ }
+ }
+
+CCTSYIntegrationTestPacketContext0039::~CCTSYIntegrationTestPacketContext0039()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+template<class PARAMETERS,class CAPABILITIES,class NEGOTIATED>
+ TBool CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL(RPacketContext &aPacketContext,
+ RPacketQoS &aPacketQoS,
+ PARAMETERS &aParameters,
+ CAPABILITIES &aCapabilities,
+ NEGOTIATED &aNegotiated)
+/**
+ * Activate and modify a secondary context. This is actually a single context activation and modification method,
+ * the test activate and modify the context three times, each with diffrent type of parameters, capabilities and negotiation objects
+ *
+ * @param aPacketContext Reference to the secondary context session.
+ * @param aPacketQoS Reference to the packet Quality of Service session.
+ * @param aParameters Reference to the QoS parameters. Must be TQoSGPRSRequested, TQoSR99_R4Requested or TQoSR5Requested.
+ * @param aCapabilities Reference to the QoS capabilities. Must be a TQoSCapsGPRS, TQoSCapsR99_R4 or TQoSCapsR5 respectivley.
+ * @param aNegotiated Reference to the QoS nagotiated. Must be a TQoSGPRSNegotiated, t99_r4Negotiated or r5Negotiated respectivley.
+ *
+ * @return ETrue if the activation went well
+ */
+ {
+ TBool ret=ETrue;
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,1), KErrNone,
+ _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Add a second TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,2), KErrNone,
+ _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Get profile capabilities with RPacketCotnext::GetProfileCapabilities with aProfileCaps as a packaged CAPABILITIES
+ TExtEtelRequestStatus getProfileCapStatus(aPacketQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ TPckg<CAPABILITIES> qosCapsPckg(aCapabilities);
+ aPacketQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities timed out."));
+ LOCAL_ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone,
+ _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and PARAMETERS with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ TPckg<PARAMETERS> qosReqPckg(aParameters);
+ FillParametersFromCapabilities(aParameters,aCapabilities);
+ TExtEtelRequestStatus setProfileParamStatus(aPacketQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ aPacketQoS.SetProfileParameters(setProfileParamStatus, qosReqPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone,
+ _L("RPacketQoS::SetProfileParameters timed out."));
+ LOCAL_ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone,
+ _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+ TName profileName;
+ LOCAL_ASSERT_EQUALS(aPacketContext.GetProfileName(profileName),KErrNone,
+ _L("RPacketContext::GetProfileName returned with error status."));
+ LOCAL_ASSERT_TRUE(profileName.Length()>0,
+ _L("RPacketContext::GetProfileName name length is 0."));
+
+ // === Activate a context with two packet filters and QoS ===
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifyContextStChStatus(aPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus contextActivateStatus(aPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ aPacketContext.Activate(contextActivateStatus);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::Activate timed out."));
+ LOCAL_ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone,
+ _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ aPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+ LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActivating, _L("Packet Context's status expected to be EStatusActivating but is not."));
+ aPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ aPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ LOCAL_ASSERT_EQUALS(aPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ LOCAL_ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 2
+ TInt count=-1;
+ TExtEtelRequestStatus enumeratePacketFiltersChStatus(aPacketContext, EPacketContextEnumeratePacketFilters);
+ CleanupStack::PushL(enumeratePacketFiltersChStatus);
+ aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersChStatus,count);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersChStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters timed out"));
+ LOCAL_ASSERT_EQUALS(enumeratePacketFiltersChStatus.Int(), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters returned an error"));
+ LOCAL_ASSERT_EQUALS(count, 2,
+ _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ TExtEtelRequestStatus getPacketFilterInfoStatus(aPacketContext, EPacketContextGetPacketFilterInfo);
+ CleanupStack::PushL(getPacketFilterInfoStatus);
+ RPacketContext::TPacketFilterV2 packetFilter;
+ RPacketContext::TPacketFilterV2Pckg packetFilterPkg(packetFilter);
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
+ FillPacketFilter(defaultPacketFilterInfo,1);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo,2);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns KErrArgument
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,2,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
+ _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
+
+ // Check RPacketContext::GetProfileParameters returns NEGOTIATED parameters.
+ TExtEtelRequestStatus getProfileParametersStatus(aPacketQoS, EPacketQoSGetProfileParams);
+ CleanupStack::PushL(getProfileParametersStatus);
+ TPckg<NEGOTIATED> negotiatedPckg(aNegotiated);
+ aPacketQoS.GetProfileParameters(getProfileParametersStatus,negotiatedPckg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeShort), KErrNone,
+ _L("RPacketQoS::GetProfileParameters timed out"));
+ LOCAL_ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone,
+ _L("RPacketQoS::GetProfileParameters returned an error"));
+
+ // === Add another packet filter and modify the context ===
+
+ // Add a third TPacketFilterV3 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ LOCAL_ASSERT_EQUALS(AddPacketFilterV2ToContextL(aPacketContext,3), KErrNone,
+ _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ // $CTSYProblem The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext
+ ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext.<font color=Black>"));
+ TExtEtelRequestStatus modifyActiveContextStatus(aPacketContext, EPacketContextModifyActiveContext);
+ CleanupStack::PushL(modifyActiveContextStatus);
+ aPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::ModifyActiveContext timed out."));
+ LOCAL_ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone,
+ _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 3
+ aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersChStatus,count);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersChStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters timed out"));
+ LOCAL_ASSERT_EQUALS(enumeratePacketFiltersChStatus.Int(), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters returned an error"));
+ LOCAL_ASSERT_EQUALS(count, 3,
+ _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo,1);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo,2);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,2,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo,3);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns KErrArgument
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,3,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
+ _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
+
+ // === Remove a packet filter and modify the context ===
+
+ // Remove the third packet filter from the secondary context with RPacketContext::RemovePacketFilter
+ TExtEtelRequestStatus removePacketFilterStatus(aPacketContext, EPacketContextRemovePacketFilter);
+ CleanupStack::PushL(removePacketFilterStatus);
+ aPacketContext.RemovePacketFilter(removePacketFilterStatus,2);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::RemovePacketFilter timed out"));
+ LOCAL_ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone,
+ _L("RPacketContext::RemovePacketFilter returned an error"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ aPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::ModifyActiveContext timed out."));
+ LOCAL_ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone,
+ _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 2
+ count=-1;
+ TExtEtelRequestStatus enumeratePacketFiltersStatus(aPacketContext, EPacketContextEnumeratePacketFilters);
+ CleanupStack::PushL(enumeratePacketFiltersStatus);
+ aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus,count);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters timed out"));
+ LOCAL_ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters returned an error"));
+ LOCAL_ASSERT_EQUALS(count, 2,
+ _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo,1);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo,2);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns KErrArgument
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,2,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
+ _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
+
+ // === Remove another packet filter and modify the context ===
+
+ // Remove the first packet filter from the secondary context with RPacketContext::RemovePacketFilter
+ aPacketContext.RemovePacketFilter(removePacketFilterStatus,0);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::RemovePacketFilter timed out"));
+ LOCAL_ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone,
+ _L("RPacketContext::RemovePacketFilter returned an error"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ aPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone,
+ _L("RPacketContext::ModifyActiveContext timed out."));
+ LOCAL_ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone,
+ _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+ count=-1;
+ aPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus,count);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters timed out"));
+ LOCAL_ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone,
+ _L("RPacketContext::EnumeratePacketFilters returned an error"));
+ LOCAL_ASSERT_EQUALS(count, 1,
+ _L("RPacketContext::EnumeratePacketFilters returned wrong number"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns second packet filter added to the context
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,0,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo,2);
+ LOCAL_ASSERT_TRUE(CompareFilters(packetFilter,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns KErrArgument
+ aPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus,1,packetFilterPkg);
+ LOCAL_ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone,
+ _L("RPacketContext::GetPacketFilterInfo timed out"));
+ LOCAL_ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument,
+ _L("RPacketContext::GetPacketFilterInfo did not returned an error"));
+
+ // Pop:
+ // enumeratePacketFiltersStatus
+ // removePacketFilterStatus
+ // modifyActiveContextStatus
+ // getProfileParametersStatus
+ // getPacketFilterInfoStatus
+ // enumeratePacketFiltersChStatus
+ // contextActivateStatus
+ // notifyContextStChStatus
+ // setProfileParamStatus
+ // getProfileCapStatus
+ CleanupStack::PopAndDestroy(10,&getProfileCapStatus);
+
+ return ret;
+ }
+
+
+TVerdict CCTSYIntegrationTestPacketContext0039::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0039
+ * @SYMFssID BA/CTSY/PKTC-0039
+ * @SYMTestCaseDesc Modify a secondary context with packet filter and QoS.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetProfileName, RPacketContext::GetStatus, RPacketContext::EnumeratePacketFilters, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext, RPacketContext::RemovePacketFilter, RPacketQoS::OpenNewQoS, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Packet filter added and removed successfully.Context modified successfully.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify packet filter info and QoS profile info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ DEBUG_PRINTF2(_L("Starting with type %d"),iTestType);
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure there is an active primary context.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,packetContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new secondary context.
+ RPacketContext& secondaryPacketContext1 = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Open a new QoS from the secodnary context
+ RPacketQoS& packetQoS1 = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Activate and modify the context with TQoSGPRSRequested, TQoSCapsGPRS and TQoSGPRSNegotiated
+ RPacketQoS::TQoSGPRSRequested gprsRequested;
+ RPacketQoS::TQoSCapsGPRS capsGPRS;
+ RPacketQoS::TQoSGPRSNegotiated gprsNegotiated;
+ RPacketQoS::TQoSR99_R4Requested r99_r4Requested;
+ RPacketQoS::TQoSCapsR99_R4 capsR99_R4;
+ RPacketQoS::TQoSR99_R4Negotiated t99_r4Negotiated;
+ RPacketQoS::TQoSR5Requested r5Requested;
+ RPacketQoS::TQoSCapsR5 capsr5;
+ RPacketQoS::TQoSR5Negotiated r5Negotiated;
+ switch (iTestType)
+ {
+ case EQoSGPRS:
+ ASSERT_TRUE(ActivateAndModifyContextL(secondaryPacketContext1,packetQoS1,gprsRequested,capsGPRS,gprsNegotiated),
+ _L("CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL failed"));
+ break;
+ case EQoSR4:
+ ASSERT_TRUE(ActivateAndModifyContextL(secondaryPacketContext1,packetQoS1,r99_r4Requested,capsR99_R4,t99_r4Negotiated),
+ _L("CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL failed"));
+ break;
+ case EQoSR5:
+ ASSERT_TRUE(ActivateAndModifyContextL(secondaryPacketContext1,packetQoS1,r5Requested,capsr5,r5Negotiated),
+ _L("CCTSYIntegrationTestPacketContext0039::ActivateAndModifyContextL failed"));
+ break;
+
+ default:
+ CHECK_TRUE_L(EFalse, _L("Wrong test type!"));
+ break;
+ }
+
+ // Repeat test with TQoSR99_R4Requested and TQoSR5Requested types in RPacketQoS::SetProfileParameters and checking for TQoSR99_R4Negotiated and TQoSR5Negotiated in RPacketContext::GetProfileParameters respectively.
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0039::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0039");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0040::CCTSYIntegrationTestPacketContext0040(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0040::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0040::~CCTSYIntegrationTestPacketContext0040()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0040::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0040
+ * @SYMFssID BA/CTSY/PKTC-0040
+ * @SYMTestCaseDesc Activate a secondary context with the maximum number of packet filters allowed by default TFT.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::Activate
+ * @SYMTestExpectedResults Pass - 8 packet filters added. Unable to add 9th packet filter.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify packet filter info and QoS profile info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Check that the phone is registered with the network simulator.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure there is an active primary context.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new secondary context.
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Add 8 TPacketFilterV2 packet filters to the secondary context using RPacketContext::AddPacketFilter each with a different iId.
+ // $CTSYProblem Adding 7 filters wil cause the LTSY to crash the board
+ for(TInt index = 1; index < 7; index++)
+ {
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+ }
+
+ // === Attempt to add a 9th filter ===
+
+ // Check RPacketContext::AddPacketFilter returns KErrArgument
+ // $CTSYProblem Adding 7 filters wil cause the LTSY to crash the board
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+ TName profileName;
+ profileName.Zero();
+ ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
+ ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(secContextActivateStatus);
+ secondaryPacketContext.Activate(secContextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+ expectedSecContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 8
+ TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
+ CleanupStack::PushL(enumeratePacketFiltersStatus);
+ TInt packetFiltersCount(0);
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 8, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns sixth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns seventh packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns eighth packet filter added to the context
+ // $CTSYProblem Adding 7 filters wil cause the LTSY to crash the board
+ RPacketContext::TPacketFilterV2 getPacketFilterV2;
+ RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
+ TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
+ CleanupStack::PushL(getPacketFilterInfoStatus);
+ RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
+
+ for (TInt index = 0; index < 6; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 8 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 7, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // getProfileCapStatus
+ // setProfileParamStatus
+ // notifySecContextStChStatus
+ // secContextActivateStatus
+ // enumeratePacketFiltersStatus
+ // getPacketFilterInfoStatus
+ CleanupStack::PopAndDestroy(6, &getProfileCapStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0040::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0040");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0041::CCTSYIntegrationTestPacketContext0041(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0041::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0041::~CCTSYIntegrationTestPacketContext0041()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0041::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0041
+ * @SYMFssID BA/CTSY/PKTC-0041
+ * @SYMTestCaseDesc Modify a secondary context with the maximum number of packet filters allowed by default TFT.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::GetPacketFilterInfo, RPacketContext::NotifyStatusChange, RPacketContext::ModifyActiveContext, RPacketContext::GetProfileParameters, RPacketContext::GetProfileName, RPacketContext::GetStatus, RPacketContext::RemovePacketFilter, RPacketContext::EnumeratePacketFilters, RPacketQoS::SetProfileParameters, RPacketQoS::OpenNewQoS, RPacketContext::AddPacketFilter
+ * @SYMTestExpectedResults Pass - 8 packet filters added. Unable to add 9th packet filter.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify packet filter info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ //Check if we are on a simulated network to run emergency call tests
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure there is an active primary context.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new secondary context.
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Add a TPacketFilterV2 packet filter with iId = 1 to the secondary context using RPacketContext::AddPacketFilter
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+ TName profileName;
+ profileName.Zero();
+ ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
+ ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(secContextActivateStatus);
+ secondaryPacketContext.Activate(secContextActivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+ expectedSecContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
+
+ // Add 7 more TPacketFilterV2 packet filters (with iId = 2 to 8) to the secondary context using RPacketContext::AddPacketFilter
+ for(TInt index = 2; index < 9; index++)
+ {
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+ }
+
+ // === Attempt to add a 9th filter to the context ===
+
+ // Check RPacketContext::AddPacketFilter with iId = 9 returns KErrArgument
+ // $CTSYProblem.
+ // PacketContext::AddPacketFilter return KErrGeneral instead of KErrArgument for wrong argument.
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 9,KErrGeneral), KErrGeneral, _L("RPacketContext::AddPacketFilter did not return with an error as expected."));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ // $CTSYProblem The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext
+ ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext.<font color=Black>"));
+ TExtEtelRequestStatus modifyActiveContextStatus(secondaryPacketContext, EPacketContextModifyActiveContext);
+ CleanupStack::PushL(modifyActiveContextStatus);
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 8
+ TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
+ CleanupStack::PushL(enumeratePacketFiltersStatus);
+ TInt packetFiltersCount(0);
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 8, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns sixth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns seventh packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns eighth packet filter added to the context
+ RPacketContext::TPacketFilterV2 getPacketFilterV2;
+ RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
+ TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
+ CleanupStack::PushL(getPacketFilterInfoStatus);
+ RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
+
+ for (TInt index = 0; index < 8; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 8 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 8, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // Remove the filter with iId = 3 using RPacketContext::RemovePacketFilter
+ TExtEtelRequestStatus removePacketFilterStatus(secondaryPacketContext, EPacketContextRemovePacketFilter);
+ CleanupStack::PushL(removePacketFilterStatus);
+ TInt wantedId = 3;
+ secondaryPacketContext.RemovePacketFilter(removePacketFilterStatus, wantedId);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone, _L("RPacketContext::RemovePacketFilter timed out"));
+ ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone, _L("RPacketContext::RemovePacketFilter returned an error"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 7
+ packetFiltersCount = 0;
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 7, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns sixth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns seventh packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns eighth packet filter added to the context
+ for (TInt index = 0; index < 7; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+
+ if(index >= 2)
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 2);
+ }
+ else
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ }
+
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 7, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // === Add a packet filter with the same Id as an existing one (modification of a packet filter) ===
+
+ // Add another filter packet filter to the context with iId = 1
+ RPacketContext::TPacketFilterV2 packetFilterV2;
+ FillPacketFilter(packetFilterV2, 3);
+ RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
+ TExtEtelRequestStatus addFilterStatus(primaryPacketContext, EPacketContextAddPacketFilter);
+ CleanupStack::PushL(addFilterStatus);
+ packetFilterV2.iId = 1;
+ secondaryPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddPacketFilter timed out"));
+ ASSERT_EQUALS(addFilterStatus.Int(), KErrNone, _L("RPacketContext::AddPacketFilter returned an error"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 7
+ packetFiltersCount = 0;
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 7, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns newly added packet filter
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns sixth packet filter added to the tcontext
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns seventh packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns eighth packet filter added to the context
+ for (TInt index = 0; index < 7; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+
+ if(index == 0)
+ {
+ FillPacketFilter(defaultPacketFilterInfo, 3);
+ defaultPacketFilterInfo.iId = 1;
+ }
+ else if(index >= 2)
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 2);
+ }
+ else
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ }
+
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 7, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // === Add a packet filter with iId = 3 (add new one that was removed) ===
+
+ // Add another filter packet filter to the context with iId = 3
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 3), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 8
+ packetFiltersCount = 0;
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 8, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns sixth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 6 returns seventh packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 7 returns eighth packet filter added to the context
+ for (TInt index = 0; index < 8; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+
+ if(index == 0)
+ {
+ FillPacketFilter(defaultPacketFilterInfo, 3);
+ defaultPacketFilterInfo.iId = 1;
+ }
+ else
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ }
+
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 8 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 8, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // getProfileCapStatus
+ // setProfileParamStatus
+ // notifySecContextStChStatus
+ // secContextActivateStatus
+ // addFilterStatus
+ // modifyActiveContextStatus
+ // enumeratePacketFiltersStatus
+ // getPacketFilterInfoStatus
+ // removePacketFilterStatus
+ CleanupStack::PopAndDestroy(9, &getProfileCapStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0041::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0041");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0042::CCTSYIntegrationTestPacketContext0042(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0042::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0042::~CCTSYIntegrationTestPacketContext0042()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0042::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0042
+ * @SYMFssID BA/CTSY/PKTC-0042
+ * @SYMTestCaseDesc Activate a secondary context creating a TFT for the packet filters.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::CreateNewTFT, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::Activate, RPacketContext::DeleteTFT
+ * @SYMTestExpectedResults Pass - TFT created and deleted.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify packet filter info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // ==== Ensure there is an active primary context ===
+
+ //Check if we are on a simulated network
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Set the attach mode to EAttachWhenPossible.
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Open primary context
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new secondary context.
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Create a new TFT with RPacketContext::CreateNewTFT and aSize = 5
+ TExtEtelRequestStatus createNewTFTStatus(secondaryPacketContext, EPacketContextCreateNewTFT);
+ CleanupStack::PushL(createNewTFTStatus);
+ const TInt size(5);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50005);
+ secondaryPacketContext.CreateNewTFT(createNewTFTStatus, size);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::CreateNewTFT timed out"));
+ ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::CreateNewTFT returned an error"));
+
+ // Add a TPacketFilterV2 packet filter with iId = 1 to the secondary context using RPacketContext::AddPacketFilter
+ // Add a TPacketFilterV2 packet filter with iId = 2 to the secondary context using RPacketContext::AddPacketFilter
+ // Add a TPacketFilterV2 packet filter with iId = 3 to the secondary context using RPacketContext::AddPacketFilter
+ // Add a TPacketFilterV2 packet filter with iId = 4 to the secondary context using RPacketContext::AddPacketFilter
+ // Add a TPacketFilterV2 packet filter with iId = 5 to the secondary context using RPacketContext::AddPacketFilter
+ for (TInt index = 1; index < 6; index++)
+ {
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+ }
+
+ // Add a TPacketFilterV2 packet filter with iId = 6 to the secondary context returns KErrArgument
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 6), KErrArgument, _L("RPacketContext::AddPacketFilter did not return with an error as expected."));
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+ TName profileName;
+ ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
+ ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(secContextActivateStatus);
+ secondaryPacketContext.Activate(secContextActivateStatus);
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+ expectedSecContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 5
+ TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
+ CleanupStack::PushL(enumeratePacketFiltersStatus);
+ TInt packetFiltersCount(0);
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 5, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
+ RPacketContext::TPacketFilterV2 getPacketFilterV2;
+ RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
+ TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
+ CleanupStack::PushL(getPacketFilterInfoStatus);
+ RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
+
+ for (TInt index = 0; index < 5; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns KErrArgument
+ TInt index = 5;
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // Repost notification for context's status change
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Deactivate the secondary context.
+ TExtEtelRequestStatus contextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ secondaryPacketContext.Deactivate(contextDeactivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusInactive, _L("RPacketContext::GetStatus status did not return EStatusInactive."));
+
+ // Delete the TFT with RPacketContext::DeleteTFT
+ TExtEtelRequestStatus deleteTFTStatus(secondaryPacketContext, EPacketContextDeleteTFT);
+ CleanupStack::PushL(deleteTFTStatus);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50006);
+ secondaryPacketContext.DeleteTFT(deleteTFTStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::DeleteTFT timed out"));
+ ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::DeleteTFT returned an error"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // createNewTFTStatus
+ // getProfileCapStatus
+ // setProfileParamStatus
+ // notifySecContextStChStatus
+ // secContextActivateStatus
+ // enumeratePacketFiltersStatus
+ // getPacketFilterInfoStatus
+ // contextDeactivateStatus
+ // deleteTFTStatus
+ CleanupStack::PopAndDestroy(9, &createNewTFTStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0042::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0042");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0043::CCTSYIntegrationTestPacketContext0043(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0043::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0043::~CCTSYIntegrationTestPacketContext0043()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0043::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0043
+ * @SYMFssID BA/CTSY/PKTC-0043
+ * @SYMTestCaseDesc Modify a secondary context creating a TFT for the packet filters.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::Activate, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext, RPacketContext::DeleteTFT
+ * @SYMTestExpectedResults Pass - TFT created and deleted.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify packet filter info correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ //Check if we are on a simulated network to run emergency call tests
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Ensure there is an active primary context.
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new secondary context.
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Create a new TFT with RPacketContext::CreateNewTFT and aSize = 5
+ TExtEtelRequestStatus createNewTFTStatus(secondaryPacketContext, EPacketContextCreateNewTFT);
+ CleanupStack::PushL(createNewTFTStatus);
+ const TInt size(5);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50005);
+ secondaryPacketContext.CreateNewTFT(createNewTFTStatus, size);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::CreateNewTFT timed out"));
+ ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::CreateNewTFT returned an error"));
+
+ // Add a TPacketFilterV2 packet filter with iId = 1 to the secondary context using RPacketContext::AddPacketFilter
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Open a new QoS from the secondary context with
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Check RPacketContext::GetProfileName returns QoS profile name with length > 0
+ TName profileName;
+ ASSERT_EQUALS(secondaryPacketContext.GetProfileName(profileName),KErrNone, _L("RPacketContext::GetProfileName returned with error status."));
+ ASSERT_TRUE(profileName.Length()>0, _L("RPacketContext::GetProfileName name length is 0."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Activate the secondary context.
+ TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(secContextActivateStatus);
+ secondaryPacketContext.Activate(secContextActivateStatus);
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+ expectedSecContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus status expected to be EStatusActive but is not."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+ TExtEtelRequestStatus enumeratePacketFiltersStatus(secondaryPacketContext, EPacketContextEnumeratePacketFilters);
+ CleanupStack::PushL(enumeratePacketFiltersStatus);
+ TInt packetFiltersCount(0);
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 1, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter with iId = 1
+ RPacketContext::TPacketFilterV2 getPacketFilterV2;
+ RPacketContext::TPacketFilterV2Pckg getPacketFilterV2pkg(getPacketFilterV2);
+ TExtEtelRequestStatus getPacketFilterInfoStatus(secondaryPacketContext, EPacketContextGetPacketFilterInfo);
+ CleanupStack::PushL(getPacketFilterInfoStatus);
+ RPacketContext::TPacketFilterV2 defaultPacketFilterInfo;
+ FillPacketFilter(defaultPacketFilterInfo, 1);
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 0, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+
+ // Add 4 more TPacketFilterV2 packet filters (with iId = 2 to 5) to the secondary context using RPacketContext::AddPacketFilter
+ for(TInt index = 2; index < 6; index++)
+ {
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, index), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+ }
+
+ // === Attempt to add a 6th filter to the context ===
+
+ // Check RPacketContext::AddPacketFilter with iId = 6 returns KErrArgument
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 6), KErrArgument, _L("RPacketContext::AddPacketFilter did not return with an error as expected."));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ TExtEtelRequestStatus modifyActiveContextStatus(secondaryPacketContext, EPacketContextModifyActiveContext);
+ CleanupStack::PushL(modifyActiveContextStatus);
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 5
+ packetFiltersCount = 0;
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 5, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
+ for (TInt index = 0; index < 5; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 5, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // Remove the filter with iId = 3 using RPacketContext::RemovePacketFilter
+ TExtEtelRequestStatus removePacketFilterStatus(secondaryPacketContext, EPacketContextRemovePacketFilter);
+ CleanupStack::PushL(removePacketFilterStatus);
+ TInt wantedId = 3;
+ secondaryPacketContext.RemovePacketFilter(removePacketFilterStatus, wantedId);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(removePacketFilterStatus, ETimeShort), KErrNone, _L("RPacketContext::RemovePacketFilter timed out"));
+ ASSERT_EQUALS(removePacketFilterStatus.Int(), KErrNone, _L("RPacketContext::RemovePacketFilter returned an error"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 4
+ packetFiltersCount = 0;
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 4, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
+ for (TInt index = 0; index < 4; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+
+ if (index >= 2) // Third filter removed earlier in this test
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 2);
+ }
+ else
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ }
+
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 4, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // === Add a packet filter with the same Id as an existing one (modification of a packet filter) ===
+
+ // Add another packet filter to the context with iId = 1
+ RPacketContext::TPacketFilterV2 packetFilterV2;
+ RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
+ TExtEtelRequestStatus addFilterStatus(primaryPacketContext, EPacketContextAddPacketFilter);
+ CleanupStack::PushL(addFilterStatus);
+ FillPacketFilter(packetFilterV2, 2);
+ packetFilterV2.iId = 1;
+ secondaryPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddPacketFilter timed out"));
+ ASSERT_EQUALS(addFilterStatus.Int(), KErrNone, _L("RPacketContext::AddPacketFilter returned an error"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 4
+ packetFiltersCount = 0;
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 4, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter that has just been added
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fifth packet filter added to the context
+ for (TInt index = 0; index < 4; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+
+ if (index == 0)
+ {
+ FillPacketFilter(defaultPacketFilterInfo, 2);
+ packetFilterV2.iId = 1;
+ }
+ else if (index >= 2) // Third filter removed earlier in this test
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 2);
+ }
+ else
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ }
+
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 4, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // === Add a packet filter with iId = 3 (add new one that was removed) ===
+
+ // Add another filter packet filter to the context with iId = 3
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 3), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+ ASSERT_EQUALS(modifyActiveContextStatus.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned with error status."));
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 5
+ packetFiltersCount = 0;
+ secondaryPacketContext.EnumeratePacketFilters(enumeratePacketFiltersStatus, packetFiltersCount);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(enumeratePacketFiltersStatus, ETimeLong), KErrNone, _L("RPacketContext::EnumeratePacketFilters timed out."));
+ ASSERT_EQUALS(enumeratePacketFiltersStatus.Int(), KErrNone, _L("RPacketContext::EnumeratePacketFilters returned with error status."));
+ ASSERT_EQUALS(packetFiltersCount, 5, _L("RPacketContext::EnumeratePacketFilters returned wrong number of packet filters."));
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns first packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 1 returns second packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 2 returns third packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 3 returns fourth packet filter added to the context
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 4 returns fifth packet filter added to the context
+ for (TInt index = 1; index < 4; index++)
+ {
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, index, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrNone, _L("RPacketContext::GetPacketFilterInfo returned an error"));
+
+ if (index == 0)
+ {
+ FillPacketFilter(defaultPacketFilterInfo, 2);
+ packetFilterV2.iId = 1;
+ }
+ else
+ {
+ FillPacketFilter(defaultPacketFilterInfo, index + 1);
+ }
+
+ ASSERT_TRUE(CompareFilters(getPacketFilterV2,defaultPacketFilterInfo),_L("RPacketContext::GetPacketFilterInfo returned wrong filter"));
+ }
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 5 returns KErrArgument
+ secondaryPacketContext.GetPacketFilterInfo(getPacketFilterInfoStatus, 5, getPacketFilterV2pkg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getPacketFilterInfoStatus, ETimeShort), KErrNone, _L("RPacketContext::GetPacketFilterInfo timed out"));
+ ASSERT_EQUALS(getPacketFilterInfoStatus.Int(), KErrArgument, _L("RPacketContext::GetPacketFilterInfo did not return correct error"));
+
+ // Repost notification for context's status change
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Deactivate the secondary context.
+ TExtEtelRequestStatus contextDeactivateStatus(secondaryPacketContext, EPacketContextDeactivate);
+ CleanupStack::PushL(contextDeactivateStatus);
+ secondaryPacketContext.Deactivate(contextDeactivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextDeactivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Deactivate timed out."));
+ ASSERT_EQUALS(contextDeactivateStatus.Int(), KErrNone, _L("RPacketContext::Deactivate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusInactive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusInactive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusInactive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusInactive, _L("Packet Context's status expected to be EStatusActive but is not."));
+
+ // Delete the TFT with RPacketContext::DeleteTFT
+ TExtEtelRequestStatus deleteTFTStatus(secondaryPacketContext, EPacketContextDeleteTFT);
+ CleanupStack::PushL(deleteTFTStatus);
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50006);
+ secondaryPacketContext.DeleteTFT(deleteTFTStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(createNewTFTStatus, ETimeMedium), KErrNone, _L("RPacketContext::DeleteTFT timed out"));
+ ASSERT_EQUALS(createNewTFTStatus.Int(), KErrNone, _L("RPacketContext::DeleteTFT returned an error"));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // createNewTFTStatus
+ // getProfileCapStatus
+ // setProfileParamStatus
+ // notifySecContextStChStatus
+ // secContextActivateStatus
+ // enumeratePacketFiltersStatus
+ // getPacketFilterInfoStatus
+ // modifyActiveContextStatus
+ // removePacketFilterStatus
+ // addFilterStatus
+ // contextDeactivateStatus
+ // deleteTFTStatus
+ CleanupStack::PopAndDestroy(12, &createNewTFTStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0043::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0043");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0044::CCTSYIntegrationTestPacketContext0044(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0044::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0044::~CCTSYIntegrationTestPacketContext0044()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0044::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0044
+ * @SYMFssID BA/CTSY/PKTC-0044
+ * @SYMTestCaseDesc Modify a context when it is not active.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext
+ * @SYMTestExpectedResults Pass - Error returned on attempt to modify a context that is not active.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context status and packet service status and error returned for modify.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new primary context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Modify the context with RPacketContext::ModifyActiveContext
+ TExtEtelRequestStatus modifyActiveContextStatus(primaryPacketContext, EPacketContextModifyActiveContext);
+ CleanupStack::PushL(modifyActiveContextStatus);
+ primaryPacketContext.ModifyActiveContext(modifyActiveContextStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+
+ // Check error is returned.
+ ASSERT_TRUE(modifyActiveContextStatus.Int() != KErrNone, _L("RPacketContext::ModifyActiveContext did not return with an error as expected."));
+
+ // Open a new secondary context from the primary
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Modify the secondary context with RPacketContext::ModifyActiveContext
+ TExtEtelRequestStatus modifyActiveContextStatus2(secondaryPacketContext, EPacketContextModifyActiveContext);
+ CleanupStack::PushL(modifyActiveContextStatus2);
+ secondaryPacketContext.ModifyActiveContext(modifyActiveContextStatus2);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(modifyActiveContextStatus2, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out."));
+
+ // Check error is returned.
+ ASSERT_TRUE(modifyActiveContextStatus2.Int() != KErrNone, _L("RPacketContext::ModifyActiveContext did not return with an error as expected."));
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // modifyActiveContextStatus
+ // modifyActiveContextStatus2
+ CleanupStack::PopAndDestroy(2, &modifyActiveContextStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0044::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0044");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0045::CCTSYIntegrationTestPacketContext0045(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0045::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0045::~CCTSYIntegrationTestPacketContext0045()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0045::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0045
+ * @SYMFssID BA/CTSY/PKTC-0045
+ * @SYMTestCaseDesc Add packet filter with same ID as previous packet filter.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketContext::Activate, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::ModifyActiveContext
+ * @SYMTestExpectedResults Pass - Old filter replaced.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify existing packet filter is replaced.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is an active primary context.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new primary context.
+
+ // Add a TPacketFilterV2 packet filter with iId = 1 to the context using RPacketContext::AddPacketFilter
+
+ // Add a TPacketFilterV2 packet filter with iId = 1 but with different values for the other field to the context using RPacketContext::AddPacketFilter
+
+ // Set a valid config for the primary context.
+
+ // Activate the context.
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter with details equal to those used in second call to RPacketContext::AddPacketFilter
+
+ // Add a TPacketFilterV2 packet filter with iId = 1 but with different values for the other field to the context using RPacketContext::AddPacketFilter
+
+ // Modify the context
+
+ // Check RPacketContext::EnumeratePacketFilters returns aCount = 1
+
+ // Check RPacketContext::GetPacketFilterInfo with aIndex = 0 returns packet filter with details equal to those used in third call to RPacketContext::AddPacketFilter
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0045::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0045");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0046::CCTSYIntegrationTestPacketContext0046(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0046::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0046::~CCTSYIntegrationTestPacketContext0046()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0046::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0046
+ * @SYMFssID BA/CTSY/PKTC-0046
+ * @SYMTestCaseDesc Remove packet filter specifying invalid ID.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::RemovePacketFilter
+ * @SYMTestExpectedResults Pass - Error returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify error is returned.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is an active primary context.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Add a TPacketFilterV2 packet filter with iId = 1 to the context using RPacketContext::AddPacketFilter
+
+ // Modify the context.
+
+ // Remove a packet filter with RPacketContext::RemovePacketFilter and aId = 2
+
+ // Check KErrArgument is returned
+
+ // Remove a packet filter with RPacketContext::RemovePacketFilter and aId = -1
+
+ // Check KErrArgument is returned
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0046::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0046");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0047::CCTSYIntegrationTestPacketContext0047(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0047::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0047::~CCTSYIntegrationTestPacketContext0047()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0047::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0047
+ * @SYMFssID BA/CTSY/PKTC-0047
+ * @SYMTestCaseDesc Activate a primary context with media auth tokens added but no QoS or packet filters.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddMediaAuthorizationL, RPacketContext::GetStatus, RPacketContext::SetConfig
+ * @SYMTestExpectedResults Pass - Context activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context is activated.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to the packet service.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a primary context
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+
+ // Set a valid context config using RPacketContext::SetConfig
+
+ // Activate the context.
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0047::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0047");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0048::CCTSYIntegrationTestPacketContext0048(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0048::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0048::~CCTSYIntegrationTestPacketContext0048()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0048::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0048
+ * @SYMFssID BA/CTSY/PKTC-0048
+ * @SYMTestCaseDesc Modify a primary context with media auth tokens added but no QoS or packet filters.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddMediaAuthorizationL, RPacketContext::GetStatus, RPacketContext::SetConfig
+ * @SYMTestExpectedResults Pass - Context modified.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context is modified.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to the packet service.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a primary context
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+
+ // Set a valid context config using RPacketContext::SetConfig
+
+ // Activate the context.
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // Remove media auth token using RPacketContext::RemoveMediaAuthorization and aAuthorizationToken = identifier used in RPacketContext::AddMediaAuthorizationL
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0048::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0048");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0049::CCTSYIntegrationTestPacketContext0049(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0049::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0049::~CCTSYIntegrationTestPacketContext0049()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0049::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0049
+ * @SYMFssID BA/CTSY/PKTC-0049
+ * @SYMTestCaseDesc Activate a secondary context with media auth tokens added but no QoS or packet filters.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::AddMediaAuthorizationL, RPacketContext::RemoveMediaAuthorization
+ * @SYMTestExpectedResults Pass - Context activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify context is activated.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is a primary context active which has been activated with QoS and has a packet filter added to it.
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Open a new primary context.
+ RPacketContext& primaryContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+ // Open a new QoS for primary context
+ RPacketQoS& contextQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // $CTSYProblem Can't add filters to primary context
+ //CHECK_EQUALS_L(AddPacketFilterV2ToContextL(primaryContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error"));
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryContext);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Open a new secondary context from the primary.
+ RPacketContext& secondaryContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuth);
+ TExtEtelRequestStatus requestAddMediaAuthStatus(secondaryContext, EPacketAddMediaAuthorization);
+ CleanupStack::PushL(requestAddMediaAuthStatus);
+ // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
+ CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
+ secondaryContext.AddMediaAuthorizationL(requestAddMediaAuthStatus, *mediaAuth);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
+ ASSERT_EQUALS(requestAddMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
+
+ // Post notifier for RPacketContext::NotifyStatusChange
+ TExtEtelRequestStatus notifyContextStChStatus(secondaryContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate packet context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(secondaryContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ secondaryContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ RPacketContext::TContextStatus getPacketContextStatus;
+ ASSERT_EQUALS(secondaryContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for Secondary context returned with an error."));
+ ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // mediaAuth
+ // requestAddMediaAuthStatus
+ // notifyContextStChStatus
+ // contextActivateStatus
+ CleanupStack::PopAndDestroy(4, mediaAuth);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0049::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0049");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0050::CCTSYIntegrationTestPacketContext0050(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0050::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0050::~CCTSYIntegrationTestPacketContext0050()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0050::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0050
+ * @SYMFssID BA/CTSY/PKTC-0050
+ * @SYMTestCaseDesc Modify a secondary context with media auth tokens added but no QoS or packet filters.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::Activate, RPacketContext::AddMediaAuthorizationL, RPacketContext::RemoveMediaAuthorization, RPacketContext::ModifyActiveContext
+ * @SYMTestExpectedResults Pass - Context modified.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify context is modified.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Ensure there is a primary context active which has been activated with QoS and has a packet filter added to it.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ //Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ RPacketContext& primaryContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ RPacketQoS& primaryQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryContext);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Open a new secondary context from the primary.
+ RPacketContext& secondaryContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuth);
+ TExtEtelRequestStatus requestAddMediaAuthStatus(secondaryContext, EPacketAddMediaAuthorization);
+ CleanupStack::PushL(requestAddMediaAuthStatus);
+ // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
+ CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
+ secondaryContext.AddMediaAuthorizationL(requestAddMediaAuthStatus, *mediaAuth);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
+ ASSERT_EQUALS(requestAddMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
+
+ // Post notifier for RPacketContext::NotifyStatusChange
+ TExtEtelRequestStatus notifyContextStChStatus(secondaryContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate the context.
+ TExtEtelRequestStatus contextActivateStatus(secondaryContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ secondaryContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ secondaryContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ RPacketContext::TContextStatus getPacketContextStatus;
+ ASSERT_EQUALS(secondaryContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
+ ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Remove media auth token using RPacketContext::RemoveMediaAuthorization and aAuthorizationToken = identifier used in RPacketContext::AddMediaAuthorizationL
+ TExtEtelRequestStatus requestRemoveMediaAuthStatus(secondaryContext, EPacketRemoveMediaAuthorization);
+ CleanupStack::PushL(requestRemoveMediaAuthStatus);
+ secondaryContext.RemoveMediaAuthorization(requestRemoveMediaAuthStatus, mediaAuth->iAuthorizationToken);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestRemoveMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::RemoveMediaAuthorization timed out"));
+ ASSERT_EQUALS(requestRemoveMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::RemoveMediaAuthorization returned an error"));
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ ASSERT_EQUALS(secondaryContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
+ ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus packetServiceStatus;
+ ASSERT_EQUALS(packetService.GetStatus(packetServiceStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetServiceStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop:
+ // mediaAuth
+ // requestAddMediaAuthStatus
+ // notifyContextStChStatus
+ // contextActivateStatus
+ // requestRemoveMediaAuthStatus
+ CleanupStack::PopAndDestroy(5, &mediaAuth);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0050::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0050");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0051::CCTSYIntegrationTestPacketContext0051(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0051::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0051::~CCTSYIntegrationTestPacketContext0051()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0051::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0051
+ * @SYMFssID BA/CTSY/PKTC-0051
+ * @SYMTestCaseDesc Activate a primary context with QoS, packet filters and media auth tokens.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddMediaAuthorizationL, RPacketContext::SetConfig, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Context activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context is activated.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to the packet service.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // === Add packet filter ===
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // === Add media auth tokens ===
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+
+ // Set a valid context config with RPacketContext::SetConfig
+
+ // Activate primary context with RPacketContext::Activate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+ // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0051::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0051");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0052::CCTSYIntegrationTestPacketContext0052(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0052::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0052::~CCTSYIntegrationTestPacketContext0052()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0052::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0052
+ * @SYMFssID BA/CTSY/PKTC-0052
+ * @SYMTestCaseDesc Modify a primary context with QoS, packet filters and media auth tokens.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileParameters, RPacketQoS::NotifyProfileChanged, RPacketQoS::GetProfileCapabilities, RPacketContext::OpenNewContext, RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::NotifyStatusChange, RPacketContext::GetStatus, RPacketService::NotifyStatusChange, RPacketService::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::EnumeratePacketFilters, RPacketContext::GetPacketFilterInfo, RPacketContext::RemovePacketFilter
+ * @SYMTestExpectedResults Pass - Context modified.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify context is modified.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is an active primary context.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // === Add packet filter ===
+
+ // Add a TPacketFilterV2 packet filter to the primary context using RPacketContext::AddPacketFilter
+
+ // === Add QoS ===
+
+ // Open a new QoS from the primary context
+
+ // Get R5 QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSR5Requested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // === Add media auth tokens ===
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+
+ // Set a valid context config with RPacketContext::SetConfig
+
+ // Activate primary context with RPacketContext::Activate
+
+ // === Check context and service statuses ===
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+
+ // Check RPacketService::GetStatus returns EStatusActive
+
+ // Check RPacketContext::NotifyStatusChange for the primary context completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for the primary context returns EStatusActive
+
+ // === Remove media auth tokens ===
+
+ // Remove media authorization with RPacketContext::RemoveMediaAuthorization
+
+ // === Add media auth tokens ===
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+
+ // Modify context with RPacketContext::ModifyActiveContext
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0052::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0052");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0053::CCTSYIntegrationTestPacketContext0053(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0053::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0053::~CCTSYIntegrationTestPacketContext0053()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0053::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0053
+ * @SYMFssID BA/CTSY/PKTC-0053
+ * @SYMTestCaseDesc Activate a secondary context with QoS, packet filters and media auth tokens.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::AddMediaAuthorizationL, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Context activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify context is activated.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ //Check if we are on a simulated network
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Open primary context
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone, primaryPacketContext);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+ // Open a new secondary context
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // === Add packet filter ===
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext, 1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // === Add media auth tokens ===
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuth);
+ TExtEtelRequestStatus addMediaAuthStatus(secondaryPacketContext, EPacketAddMediaAuthorization);
+ CleanupStack::PushL(addMediaAuthStatus);
+ // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
+ CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
+ secondaryPacketContext.AddMediaAuthorizationL(addMediaAuthStatus, *mediaAuth);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(addMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
+ ASSERT_EQUALS(addMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
+
+ //Post notifier for RPacketContext::NotifyStatusChange
+ TExtEtelRequestStatus notifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ secondaryPacketContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ RPacketContext::TContextStatus getPacketContextStatus;
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for primary context returned with an error."));
+ ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // getProfileCapStatus
+ // setProfileParamStatus
+ // mediaAuth
+ // addMediaAuthStatus
+ // notifyContextStChStatus
+ // contextActivateStatus
+ CleanupStack::PopAndDestroy(6, &getProfileCapStatus);
+
+ return TestStepResult();
+ }
+
+
+TPtrC CCTSYIntegrationTestPacketContext0053::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0053");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0054::CCTSYIntegrationTestPacketContext0054(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0054::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0054::~CCTSYIntegrationTestPacketContext0054()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0054::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0054
+ * @SYMFssID BA/CTSY/PKTC-0054
+ * @SYMTestCaseDesc Modify a secondary context with QoS, packet filters and media auth tokens.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::AddMediaAuthorizationL, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters
+ * @SYMTestExpectedResults Pass - Context modified.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/automatic
+ *
+ * Reason for test: Verify context is modified.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // ==== Ensure there is an active primary context ===
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ //Check if we are on a simulated network
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ iNetworkTestHelper.CheckPhoneConnectedToAniteL(phone);
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Set the attach mode to EAttachWhenPossible.
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ // Open primary context
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Activate primary context.
+ iPacketServiceTestHelper.ActivatePrimaryPacketContextL(phone,primaryPacketContext);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Open a new secondary context
+ RPacketContext& secondaryPacketContext = iEtelSessionMgr.GetSecondaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+ // === Add packet filter ===
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ RPacketContext::TPacketFilterV2 packetFilterV2;
+ TInt id(1);
+ FillPacketFilter(packetFilterV2, id);
+ RPacketContext::TPacketFilterV2Pckg packetFilterV2pckg(packetFilterV2);
+ TExtEtelRequestStatus addFilterStatus(secondaryPacketContext, EPacketContextAddPacketFilter);
+ CleanupStack::PushL(addFilterStatus);
+ secondaryPacketContext.AddPacketFilter(addFilterStatus, packetFilterV2pckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(addFilterStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddPacketFilter timed out"));
+ ASSERT_EQUALS(addFilterStatus.Int(), KErrNone, _L("RPacketContext::AddPacketFilter returned an error"));
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& contextQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGPRSPckg(qosCapsGPRS);
+ TExtEtelRequestStatus reqQoSProfileCaps(contextQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(reqQoSProfileCaps);
+ contextQoS.GetProfileCapabilities(reqQoSProfileCaps, qosCapsGPRSPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqQoSProfileCaps, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(reqQoSProfileCaps.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosReqCapsGPRS;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosReqCapsGPRSPckg(qosReqCapsGPRS);
+ FillParametersFromCapabilities(qosReqCapsGPRS, qosCapsGPRS);
+ TExtEtelRequestStatus reqStatusSetProfileParams(contextQoS,EPacketQoSSetProfileParams);
+ CleanupStack::PushL(reqStatusSetProfileParams);
+ contextQoS.SetProfileParameters(reqStatusSetProfileParams,qosReqCapsGPRSPckg );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusSetProfileParams, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(reqStatusSetProfileParams.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // === Add media auth tokens ===
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+ RPacketContext::CTFTMediaAuthorizationV3* mediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(mediaAuth);
+ TExtEtelRequestStatus requestAddMediaAuthStatus(secondaryPacketContext, EPacketAddMediaAuthorization);
+ CleanupStack::PushL(requestAddMediaAuthStatus);
+ // $CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him
+ CHECK_TRUE_L(EFalse,_L("$CTSYProblem This test cannot be run since LTSY crash when the CTSY send the EPacketAddMediaAuthorization message to him"));
+ secondaryPacketContext.AddMediaAuthorizationL(requestAddMediaAuthStatus, *mediaAuth);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
+ ASSERT_EQUALS(requestAddMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
+
+ // Post notifier for RPacketContext::NotifyStatusChange
+ TExtEtelRequestStatus notifyContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyContextStChStatus);
+ RPacketContext::TContextStatus packetContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+
+ // Activate context with RPacketContext::Activate
+ TExtEtelRequestStatus contextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ secondaryPacketContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // === Check context and service statuses ===
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedPacketContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ secondaryPacketContext.NotifyStatusChange(notifyContextStChStatus, packetContextStatus);
+ expectedPacketContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifyContextStChStatus,
+ packetContextStatus,
+ expectedPacketContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ RPacketContext::TContextStatus getPacketContextStatus;
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(getPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus for secondary context returned with an error."));
+ ASSERT_EQUALS(getPacketContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // === Remove media auth tokens ===
+
+ // Remove media authorization with RPacketContext::RemoveMediaAuthorization
+ TExtEtelRequestStatus requestRemoveMediaAuthStatus(secondaryPacketContext, EPacketRemoveMediaAuthorization);
+ CleanupStack::PushL(requestRemoveMediaAuthStatus);
+ secondaryPacketContext.RemoveMediaAuthorization(requestRemoveMediaAuthStatus, mediaAuth->iAuthorizationToken);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestRemoveMediaAuthStatus, ETimeMedium), KErrNone, _L("RPacketContext::RemoveMediaAuthorization timed out"));
+ ASSERT_EQUALS(requestRemoveMediaAuthStatus.Int(), KErrNone, _L("RPacketContext::RemoveMediaAuthorization returned an error"));
+
+ // === Add media auth tokens ===
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+ RPacketContext::CTFTMediaAuthorizationV3* secondMediaAuth = RPacketContext::CTFTMediaAuthorizationV3::NewL();
+ CleanupStack::PushL(secondMediaAuth);
+ TExtEtelRequestStatus requestAddMediaAuthStatusNumberTwo(secondaryPacketContext, EPacketAddMediaAuthorization);
+ CleanupStack::PushL(requestAddMediaAuthStatusNumberTwo);
+ secondaryPacketContext.AddMediaAuthorizationL(requestAddMediaAuthStatusNumberTwo, *secondMediaAuth);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestAddMediaAuthStatusNumberTwo, ETimeMedium), KErrNone, _L("RPacketContext::AddMediaAuthorizationL timed out"));
+ ASSERT_EQUALS(requestAddMediaAuthStatusNumberTwo.Int(), KErrNone, _L("RPacketContext::AddMediaAuthorizationL returned an error"));
+
+ // Modify context with RPacketContext::ModifyActiveContext
+ TExtEtelRequestStatus requestModifyContext(secondaryPacketContext, EPacketContextModifyActiveContext);
+ CleanupStack::PushL(requestModifyContext);
+ secondaryPacketContext.ModifyActiveContext(requestModifyContext);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestModifyContext, ETimeMedium), KErrNone, _L("RPacketContext::ModifyActiveContext timed out"));
+ ASSERT_EQUALS(requestModifyContext.Int(), KErrNone, _L("RPacketContext::ModifyActiveContext returned an error"));
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // addFilterStatus
+ // reqQoSProfileCaps
+ // reqStatusSetProfileParams
+ // mediaAuth
+ // requestAddMediaAuthStatus
+ // notifyContextStChStatus
+ // contextActivateStatus
+ // requestRemoveMediaAuthStatus
+ // secondMediaAuth
+ // requestAddMediaAuthStatusNumberTwo
+ // requestModifyContext
+
+ CleanupStack::PopAndDestroy(11, &addFilterStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0054::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0054");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0055::CCTSYIntegrationTestPacketContext0055(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0055::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0055::~CCTSYIntegrationTestPacketContext0055()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0055::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0055
+ * @SYMFssID BA/CTSY/PKTC-0055
+ * @SYMTestCaseDesc Remove media authorization with invalid identifier.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::RemoveMediaAuthorization
+ * @SYMTestExpectedResults Pass - Error returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify error is returned.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a primary context.
+
+ // Add a media auth token using RPacketContext::AddMediaAuthorizationL
+
+ // Remove media authorization with RPacketContext::RemoveMediaAuthorization with invalid identifier in aAuthorizationToken
+
+ // Check error is returned.
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0055::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0055");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0056::CCTSYIntegrationTestPacketContext0056(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0056::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0056::~CCTSYIntegrationTestPacketContext0056()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0056::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0056
+ * @SYMFssID BA/CTSY/PKTC-0056
+ * @SYMTestCaseDesc Activate a context and download data.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenExistingContext, RPacketContext::GetConnectionSpeed, RPacketContext::GetDataVolumeTransferred
+ * @SYMTestExpectedResults Pass - Context activated. Data transferred advances.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify connection speed and volume data transferred advances realistically.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Ensure phone is attached to packet service.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // === Send and receive some data and check data transferred advances ===
+
+ // Activate context with ESOCK server
+ TBuf<140> host(_L("developer.symbian.org"));
+ TBuf<140> page(_L("/wiki/images/1/12/Common_Design_Patterns_for_Symbian_OS_Sample_Chapter.pdf"));
+ CHTTPDownload *download = new (ELeave) CHTTPDownload(this);
+ CleanupStack::PushL(download);
+ ASSERT_TRUE(download->StartDownloadL(host,page),_L("Download Failed - perhaps page has moved!"));
+
+ // Check RPacketService::GetNifInfo with aCount = 0 returns valid name in iContextName
+ TInt nifInfoCount = 0;
+ TExtEtelRequestStatus nifInfoStatus(packetService, EPacketGetNifInfo);
+ CleanupStack::PushL(nifInfoStatus);
+ RPacketService::TNifInfoV2 nifInfo;
+ RPacketService::TNifInfoV2Pckg nifInfoPckg(nifInfo);
+ packetService.GetNifInfo(nifInfoStatus, nifInfoCount, nifInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(nifInfoStatus, ETimeMedium), KErrNone, _L("RPacketService::GetNifInfo timed out."));
+ ASSERT_EQUALS(nifInfoStatus.Int(), KErrNone, _L("RPacketService::GetNifInfo returned with an error."));
+ ASSERT_TRUE(nifInfo.iContextName.Length()>0,_L("RPacketService::GetNifInfo returned invalid context name."));
+ TName contextName = nifInfo.iContextName;
+
+ // Open a handle on an existing context with OpenExistingContext
+ RPacketContext packetContext;
+ ASSERT_EQUALS(packetContext.OpenExistingContext(packetService, contextName), KErrNone, _L("RPacketContext::OpenExistingContext returned with an error."));
+
+ // Check RPacketContext::GetConnectionSpeed returns aRate > 0;
+ TExtEtelRequestStatus getConnectionSpeedStatus(packetContext, EPacketContextGetConnectionSpeed);
+ CleanupStack::PushL(getConnectionSpeedStatus);
+ TUint connectionSpeedRate;
+ packetContext.GetConnectionSpeed(getConnectionSpeedStatus, connectionSpeedRate);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getConnectionSpeedStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConnectionSpeed timed out."));
+ ASSERT_EQUALS(getConnectionSpeedStatus.Int(), KErrNone, _L("RPacketContext::GetConnectionSpeed returned with an error."));
+ ASSERT_TRUE(connectionSpeedRate > 0, _L("RPacketContext::GetConnectionSpeed is lower than expected."));
+
+ // Repeat this section until download is complete and check that iBytesSent and iBytesReceived is higher than the previous
+ RPacketContext::TDataVolume dataVolume;
+ TUint32 zeroBytesSent = 0;
+ TUint32 zeroBytesReceived = 0;
+ while(download->VerifyDownloading())
+ {
+ packetContext.GetDataVolumeTransferred(dataVolume);
+ DEBUG_PRINTF2(_L("sent data: %d bytes"), dataVolume.iBytesSent);
+ DEBUG_PRINTF2(_L("received data: %d bytes"), dataVolume.iBytesReceived);
+ User::After(KOneSecond*3);
+ }
+
+ // Check RPacketContext::GetDataVolumeTransferred returns TDataVolume::iBytesSent is higher than the previous
+ ASSERT_TRUE(dataVolume.iBytesSent > zeroBytesSent, _L("RPacketContext::GetVolumeDataTransferred returned with no increase in bytes sent."));
+ // Check RPacketContext::GetDataVolumeTransferred returns TDataVolume::iBytesReceived is higher than the previous
+ ASSERT_TRUE(dataVolume.iBytesReceived > zeroBytesReceived, _L("RPacketContext::GetVolumeDataTransferred returned with no increase in bytes received."));
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // pop
+ // download
+ // nifInfoStatus
+ // getConnectionSpeedStatus
+ CleanupStack::PopAndDestroy(3, download);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0056::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0056");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0057::CCTSYIntegrationTestPacketContext0057(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0057::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0057::~CCTSYIntegrationTestPacketContext0057()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0057::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0057
+ * @SYMFssID BA/CTSY/PKTC-0057
+ * @SYMTestCaseDesc Download data with a primary context and a secondary context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::OpenNewSecondaryContext, RPacketContext::SetConfig, RPacketContext::Activate, RPacketContext::GetConnectionSpeed, RPacketContext::NotifyConnectionSpeedChange, RPacketContext::NotifyDataTransferred, RPacketContext::GetDataVolumeTransferred, RPacketContext::LoanCommPort, RPacketContext::RecoverCommPort, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileCapabilities, RPacketQoS::OpenNewQoS, RPacketContext::AddPacketFilter
+ * @SYMTestExpectedResults Pass - Context activated. Data transferred advances.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify connection speed and volume data transferred advances realistically.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+/*
+
+ // Ensure phone is attached to packet service.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Post notification for service's status change
+ TExtEtelRequestStatus notifyServiceStChStatus(packetService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ packetService.NotifyStatusChange(notifyServiceStChStatus, packetServiceStatus);
+
+ // === Activate a primary context ===
+
+ // Open a new primary context
+ // Set a valid context config using RPacketContext::SetConfig
+
+ // Activate context with ESOCK server
+ TBuf<140> host(_L("developer.symbian.com"));
+ TBuf<140> page(_L("/main/downloads/papers/IMS_Introduction_Part_1.pdf"));
+ CHTTPDownload* download = new (ELeave) CHTTPDownload(this);
+ CleanupStack::PushL(download);
+ ASSERT_TRUE(download->StartDownloadL(host,page),_L("Download Failed"));
+
+ // Get context info
+ TExtEtelRequestStatus getContextInfo(packetService, EPacketGetContextInfo);
+ CleanupStack::PushL(getContextInfo);
+ RPacketService::TContextInfo contextInfo;
+ TInt index = 0;
+ packetService.GetContextInfo(getContextInfo, index, contextInfo);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
+ ASSERT_EQUALS(getContextInfo.Int(), KErrNone, _L("RPacketService::GetContextInfo returned an error"));
+ ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
+
+ // Open a handle on an existing context with OpenExistingContext
+ RPacketContext primaryPacketContext;
+ ASSERT_EQUALS(primaryPacketContext.OpenExistingContext(packetService, contextInfo.iName), KErrNone, _L("RPacketContext::OpenExistingContext returned with an error."));
+
+ // Post notification for RPacketContext::NotifyDataTransferred
+ ERR_PRINTF1(_L("<font color=Orange>@CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out."));
+ //TExtEtelRequestStatus notifyDataTransferredStatus(primaryPacketContext, EPacketContextNotifyDataTransferred);
+ //CleanupStack::PushL(notifyDataTransferredStatus);
+ //RPacketContext::TDataVolume primaryDataVolume;
+ //primaryPacketContext.NotifyDataTransferred(notifyDataTransferredStatus, primaryDataVolume);
+
+ // Check RPacketService::NotifyStatusChange completes with EStatusActive
+ RPacketService::TStatus expectedPacketServiceStatus = RPacketService::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ packetService,
+ notifyServiceStChStatus,
+ packetServiceStatus,
+ expectedPacketServiceStatus,
+ KErrNone);
+
+ // Check RPacketService::GetStatus returns EStatusActive
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusActive, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+ RPacketContext::TContextStatus packetContextStatus;
+ ASSERT_EQUALS(primaryPacketContext.GetStatus(packetContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(packetContextStatus, RPacketContext::EStatusActive, _L("RPacketContext::GetStatus returns incorrect status."));
+
+ // Post notification for the RPacketContext::NotifyConnectionSpeedChange
+ TExtEtelRequestStatus notifyConnectionSpeedChangeStatus(primaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifyConnectionSpeedChangeStatus);
+ TUint rate(0);
+ primaryPacketContext.NotifyConnectionSpeedChange(notifyConnectionSpeedChangeStatus, rate);
+
+ // === Activate a secondary context ===
+
+ // Activate secondary context with ESOCK server
+ TBuf<140> subHost(_L("developer.symbian.com"));
+ TBuf<140> subPage(_L("/main/downloads/papers/SymbianOSv91/Whats_new_in_Symbian_OS_v9.1.pdf"));
+ TInt port = 80;
+ CHTTPDownload* downloadSecondary = new (ELeave) CHTTPDownload(this);
+ CleanupStack::PushL(downloadSecondary);
+ // ASSERT_TRUE(downloadSecondary->StartDownloadL(subHost, subPage, port, ETrue), _L("Download Failed"));
+ ASSERT_TRUE(downloadSecondary->StartDownloadL(subHost, subPage, port), _L("Download Failed"));
+
+
+ // Get secondary context info
+ index = 1;
+ packetService.GetContextInfo(getContextInfo, index, contextInfo);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getContextInfo, ETimeLong), KErrNone, _L("RPacketService::GetContextInfo timed out"));
+ ASSERT_TRUE(contextInfo.iName.Length() > 0, _L("RPacketService::GetContextInfo returned with zero length context name"));
+
+ // Open a handle on an existing secondary context with OpenExistingContext
+ RPacketContext secondaryPacketContext;
+ ASSERT_EQUALS(secondaryPacketContext.OpenExistingContext(packetService, contextInfo.iName), KErrNone, _L("RPacketContext::OpenExistingContext returned with an error."));
+
+ // Post notification for RPacketContext::NotifyDataTransferred
+ ERR_PRINTF1(_L("<font color=Orange>@CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out."));
+ //TExtEtelRequestStatus notifySecDataTransferredStatus(secondaryPacketContext, EPacketContextNotifyDataTransferred);
+ //CleanupStack::PushL(notifySecDataTransferredStatus);
+ //RPacketContext::TDataVolume secondaryDataVolume;
+ //secondaryPacketContext.NotifyDataTransferred(notifySecDataTransferredStatus, secondaryDataVolume);
+
+ // Post notification for the secondary context connection speed change
+ TExtEtelRequestStatus notifySecConnectionSpeedChangeStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecConnectionSpeedChangeStatus);
+ TUint secRate(0);
+ secondaryPacketContext.NotifyConnectionSpeedChange(notifyConnectionSpeedChangeStatus, secRate);
+
+ // === Add packet filter ===
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+ ASSERT_EQUALS(AddPacketFilterV2ToContextL(secondaryPacketContext,1), KErrNone, _L("RPacketContext::AddPacketFilter returned with error status"));
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetSecondaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+ TExtEtelRequestStatus getProfileCapStatus(packetQoS, EPacketQoSGetProfileCaps);
+ CleanupStack::PushL(getProfileCapStatus);
+ RPacketQoS::TQoSCapsGPRS qosCapGprs;
+ TPckg<RPacketQoS::TQoSCapsGPRS> qosCapsGprsPckg(qosCapGprs);
+ packetQoS.GetProfileCapabilities(getProfileCapStatus, qosCapsGprsPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileCapStatus, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileCapabilities timed out."));
+ ASSERT_EQUALS(getProfileCapStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileCapabilities returned with error status."));
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ FillParametersFromCapabilities(qosGprsRequested,qosCapGprs);
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Post notification for context's status change
+ TExtEtelRequestStatus notifySecContextStChStatus(secondaryPacketContext, EPacketContextNotifyStatusChange);
+ CleanupStack::PushL(notifySecContextStChStatus);
+ RPacketContext::TContextStatus secPacketContextStatus;
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+
+ // Activate context with RPacketContext::Activate
+ TExtEtelRequestStatus secContextActivateStatus(secondaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(secContextActivateStatus);
+ secondaryPacketContext.Activate(secContextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(secContextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(secContextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+ RPacketContext::TContextStatus expectedSecContextStatus = RPacketContext::EStatusActivating;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ secondaryPacketContext.NotifyStatusChange(notifySecContextStChStatus, secPacketContextStatus);
+ expectedSecContextStatus = RPacketContext::EStatusActive;
+ iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange(
+ secondaryPacketContext,
+ notifySecContextStChStatus,
+ secPacketContextStatus,
+ expectedSecContextStatus,
+ KErrNone);
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+ ASSERT_EQUALS(secondaryPacketContext.GetStatus(secPacketContextStatus), KErrNone, _L("RPacketContext::GetStatus returned with an error."));
+ ASSERT_EQUALS(secPacketContextStatus, RPacketContext::EStatusActive, _L("Packet Context's status expected to be EStatusActive but is not."));
+
+ // Loan comm port to the client with RPacketContext::LoanCommPort
+
+ // === Send and receive some data and check data transferred advances ===
+
+ // Send some data and receive some data to which would go to the primary and the secondary context depending on packet filter values
+
+ // Check RPacketContext::NotifyDataTransferred for primary context completes with TDataVolume::iBytesSent > 0
+ // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
+ //ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyDataTransferredStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyDataTransferred did not complete."));
+ //ASSERT_EQUALS(notifyDataTransferredStatus.Int(), KErrNone, _L("RPacketContext::NotifyDataTransferred returned with error status."));
+ //ASSERT_TRUE(primaryDataVolume.iBytesSent > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesSent."));
+
+ // Check RPacketContext::NotifyDataTransferred for primary context completes with TDataVolume::iBytesReceived > 0
+ // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
+ //ASSERT_TRUE(primaryDataVolume.iBytesReceived > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesReceived."));
+
+ // Check RPacketContext::GetConnectionSpeed for primary context returns aRate > 0
+ TExtEtelRequestStatus getConnectionSpeedStatus(primaryPacketContext, EPacketContextGetConnectionSpeed);
+ CleanupStack::PushL(getConnectionSpeedStatus);
+ TUint connectionSpeedRate;
+ primaryPacketContext.GetConnectionSpeed(getConnectionSpeedStatus, connectionSpeedRate);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getConnectionSpeedStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConnectionSpeed timed out."));
+ ASSERT_EQUALS(getConnectionSpeedStatus.Int(), KErrNone, _L("RPacketContext::GetConnectionSpeed failed."));
+ ASSERT_TRUE(connectionSpeedRate > 0, _L("RPacketContext::GetConnectionSpeed is lower than expected."));
+
+ // Check RPacketContext::NotifyConnectionSpeedChange for primary context returns aRate > 0
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyConnectionSpeedChangeStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange timed out."));
+ ASSERT_EQUALS(notifyConnectionSpeedChangeStatus.Int(), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange failed."));
+ ASSERT_TRUE(rate > 0, _L("RPacketContext::NotifyConnectionSpeedChange returns aRate = 0."));
+
+ // Check RPacketContext::NotifyDataTransferred for secondary context completes with TDataVolume::iBytesSent > 0
+ // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
+ //ASSERT_EQUALS(WaitForRequestWithTimeOut(notifySecDataTransferredStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyDataTransferred did not complete."));
+ //ASSERT_EQUALS(notifySecDataTransferredStatus.Int(), KErrNone, _L("RPacketContext::NotifyDataTransferred returned with error status."));
+ //ASSERT_TRUE(secondaryDataVolume.iBytesSent > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesSent."));
+
+ // Check RPacketContext::NotifyDataTransferred for secondary context completes with TDataVolume::iBytesReceived > 0
+ // @CTSYProblem: RPacketContext::NotifyDataTransferred is not supported by CTSY. All code related to this request is commented out.
+ //ASSERT_TRUE(secondaryDataVolume.iBytesReceived > 0, _L("RPacketContext::NotifyDataTransferred returned with zero iBytesReceived."));
+
+ // Check RPacketContext::GetConnectionSpeed for secondary context returns aRate > 0
+ TExtEtelRequestStatus getSecConnectionSpeedStatus(secondaryPacketContext, EPacketContextGetConnectionSpeed);
+ CleanupStack::PushL(getSecConnectionSpeedStatus);
+ secondaryPacketContext.GetConnectionSpeed(getSecConnectionSpeedStatus, connectionSpeedRate);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getSecConnectionSpeedStatus, ETimeMedium), KErrNone, _L("RPacketContext::GetConnectionSpeed timed out."));
+ ASSERT_EQUALS(getSecConnectionSpeedStatus.Int(), KErrNone, _L("RPacketContext::GetConnectionSpeed failed."));
+ ASSERT_TRUE(connectionSpeedRate > 0, _L("RPacketContext::GetConnectionSpeed is lower than expected."));
+
+ // Check RPacketContext::NotifyConnectionSpeedChange for secondary context returns aRate > 0
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifySecConnectionSpeedChangeStatus, ETimeMedium), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange timed out."));
+ ASSERT_EQUALS(notifySecConnectionSpeedChangeStatus.Int(), KErrNone, _L("RPacketContext::NotifyConnectionSpeedChange failed."));
+ ASSERT_TRUE(secRate > 0, _L("RPacketContext::NotifyConnectionSpeedChange returns aRate = 0."));
+
+ // Repeat this section 10 times and check that iBytesSent and iBytesReceived is higher than the previous
+ RPacketContext::TDataVolume priDataVolume;
+ RPacketContext::TDataVolume secDataVolume;
+ TUint32 primaryLastBytesSent(0);
+ TUint32 primaryLastBytesReceived(0);
+ TUint32 secondaryLastBytesSent(0);
+ TUint32 secondaryLastBytesReceived(0);
+
+ while(download->VerifyDownloading())
+ {
+ // Check RPacketContext::GetDataVolumeTransferred for primary context returns TDataVolume::iBytesSent is higher than the previous
+ primaryPacketContext.GetDataVolumeTransferred(priDataVolume);
+ ASSERT_TRUE(priDataVolume.iBytesSent > primaryLastBytesSent, _L("Primary packet context iBytesSend value is not higher than the previous iBytesSend value"));
+ primaryLastBytesSent = priDataVolume.iBytesSent;
+
+ // Check RPacketContext::GetDataVolumeTransferred for primary context returns TDataVolume::iBytesReceived is higher than the previous
+ ASSERT_TRUE(priDataVolume.iBytesReceived > primaryLastBytesReceived, _L("Primary packet context iBytesReceived value is not higher than the previous iBytesReceived value"));
+ primaryLastBytesReceived = priDataVolume.iBytesReceived;
+
+ // Check RPacketContext::GetDataVolumeTransferred for secondary context returns TDataVolume::iBytesSent is higher than the previous
+ secondaryPacketContext.GetDataVolumeTransferred(secDataVolume);
+ ASSERT_TRUE(secDataVolume.iBytesSent > secondaryLastBytesSent, _L("Secondary packet context iBytesSend value is not higher than the previous iBytesSend value"));
+ secondaryLastBytesSent = secDataVolume.iBytesSent;
+
+ // Check RPacketContext::GetDataVolumeTransferred for secondary context returns TDataVolume::iBytesReceived is higher than the previous
+ ASSERT_TRUE(secDataVolume.iBytesReceived > secondaryLastBytesReceived, _L("Secondary packet context iBytesReceived value is not higher than the previous iBytesReceived value"));
+ secondaryLastBytesReceived = secDataVolume.iBytesReceived;
+
+ DEBUG_PRINTF2(_L("Primary context sent data: %d bytes"), primaryLastBytesSent);
+ DEBUG_PRINTF2(_L("Primary context received data: %d bytes"), primaryLastBytesReceived);
+ DEBUG_PRINTF2(_L("Secondary context sent data: %d bytes"), secondaryLastBytesSent);
+ DEBUG_PRINTF2(_L("Secondary context received data: %d bytes"), secondaryLastBytesReceived);
+ User::After(KOneSecond*3);
+ }
+
+ // Release QoS
+ iEtelSessionMgr.ReleaseSecondaryPacketContextQoS(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Release packet contexts
+ iEtelSessionMgr.ReleaseSecondaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1,
+ KSecondaryPacketContext1);
+
+ // Release primary packet context
+ iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // notifyServiceStChStatus
+ // download
+ // getContextInfo
+ // notifyDataTransferredStatus (@CTSYProblem, commented out)
+ // notifyConnectionSpeedChangeStatus
+ // downloadSecondary
+ // notifySecDataTransferredStatus (@CTSYProblem, commented out)
+ // notifySecConnectionSpeedChangeStatus
+ // getProfileCapStatus
+ // setProfileParamStatus
+ // notifySecContextStChStatus
+ // secContextActivateStatus
+ // getConnectionSpeedStatus
+ // getSecConnectionSpeedStatus
+ CleanupStack::PopAndDestroy(12, ¬ifyServiceStChStatus);
+*/
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0057::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0057");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0058::CCTSYIntegrationTestPacketContext0058(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0058::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0058::~CCTSYIntegrationTestPacketContext0058()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0058::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0058
+ * @SYMFssID BA/CTSY/PKTC-0058
+ * @SYMTestCaseDesc Activate a PDP context with the requested QOS equal to the subscribed QoS.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketQoS::NotifyProfileChanged, RPacketQoS::GetProfileParameters, RPacketContext::SetConfig, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileCapabilities
+ * @SYMTestExpectedResults Pass - A PDP context with subscribed QoS could be activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify negotiated QoS same as that requested.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+
+ // == Activate a PDP context with the requested QOS equal to the subscribed QoS ==
+ DEBUG_PRINTF1(_L("== GPRS =="));
+ DoTest0058L(apn, user, pwd, EQoSGPRS);
+
+ // === Repeat test for R99_R4 ===
+ // Repeat test with TQoSCapsR99_R4 instead of TQoSCapsGPRS, TQoSR99_R4Requested instead of TQoSGPRSRequested and TQoSR99_R4Negotiated instead of TQoSGPRSNegotiated
+ DEBUG_PRINTF1(_L("== R99_R4 =="));
+ DoTest0058L(apn, user, pwd, EQoSR4);
+
+ // === Repeat test for R5 ===
+ // Repeat test with TQoSCapsR5 instead of TQoSCapsGPRS, TQoSR5Requested instead of TQoSGPRSRequested, and TQoSR5Negotiated instead of TQoSGPRSNegotiated
+ DEBUG_PRINTF1(_L("== R5 =="));
+ DoTest0058L(apn, user, pwd, EQoSR5);
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // getNetworkStatus
+ CleanupStack::PopAndDestroy(1, &getNetworkStatus);
+
+ return TestStepResult();
+ }
+
+
+
+
+void CCTSYIntegrationTestPacketContext0058::DoTest0058L(TPtrC& aApn, TPtrC& aUser, TPtrC& aPwd, TInt aQoSCapType)
+/**
+ * Activate a PDP context with the requested QOS equal to the subscribed QoS.
+ * @param aNWType Gprs / R99_R4 / R5.
+ */
+ {
+
+ // Open a new primary context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Open a new primary context QoS
+ RPacketQoS& contextQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Get the QoS profile capabilities with RPacketQoS::GetProfileCapabilities with aProfileCaps of type TQoSCapsGPRS/TQoSCapsR99_R4/TQoSCapsR5.
+ RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
+ RPacketQoS::TQoSCapsR99_R4 qosCapsR99;
+ RPacketQoS::TQoSCapsR5 qosCapsR5;
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS:
+ GetProfileCapsL(contextQoS, qosCapsGPRS);
+ break;
+
+ case EQoSR4:
+ GetProfileCapsL(contextQoS, qosCapsR99);
+ break;
+
+ case EQoSR5:
+ GetProfileCapsL(contextQoS, qosCapsR5);
+ break;
+ }
+
+ // Set the minimum requested QoS profile parameters to lower than what was returned from GetProfileCapabilities using RPacketQoS::SetProfileParameters
+ // with aProfile of type TQoSGPRSRequested/TQoSR99_R4Requested/TQoSR5Requested.
+ // Set all iMin... to a lower value than that returned by GetProfileCapabilities and all iReq... to the same value as that returned by GetProfileCapabilities.
+ TExtEtelRequestStatus setProfileParametersStatus(contextQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParametersStatus);
+ RPacketQoS::TQoSGPRSRequested qoSGPRSRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qoSGPRSRequestedPkg(qoSGPRSRequested);
+ RPacketQoS::TQoSR99_R4Requested qoSR99Requested;
+ TPckg<RPacketQoS::TQoSR99_R4Requested> qoSR99RequestedPkg(qoSR99Requested);
+ RPacketQoS::TQoSR5Requested qoSR5Requested;
+ TPckg<RPacketQoS::TQoSR5Requested> qoSR5RequestedPkg(qoSR5Requested);
+ RPacketQoS::TBitRate bitRate;
+ bitRate.iDownlinkRate = 0;
+ bitRate.iUplinkRate = 0;
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ qoSGPRSRequested.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
+ qoSGPRSRequested.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
+ qoSGPRSRequested.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
+ qoSGPRSRequested.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
+ qoSGPRSRequested.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
+
+ qoSGPRSRequested.iReqDelay = RPacketQoS::EDelayClass3;
+ qoSGPRSRequested.iReqMeanThroughput = RPacketQoS::EMeanThroughputBestEffort;
+ qoSGPRSRequested.iReqPeakThroughput = RPacketQoS::EPeakThroughput8000;
+ qoSGPRSRequested.iReqPrecedence = RPacketQoS::EPriorityMediumPrecedence;
+ qoSGPRSRequested.iReqReliability = RPacketQoS::EReliabilityClass3;
+ contextQoS.SetProfileParameters(setProfileParametersStatus ,qoSGPRSRequestedPkg);
+ break;
+
+ case EQoSR4: // R99_R4
+ qoSR99Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
+ qoSR99Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
+ qoSR99Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
+ qoSR99Requested.iMinAcceptableMaxSDUSize = 10;
+ qoSR99Requested.iMinAcceptableMaxRate = bitRate;
+ qoSR99Requested.iMaxBER = RPacketQoS::EBERUnspecified;
+ qoSR99Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
+ qoSR99Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ qoSR99Requested.iMaxTransferDelay = 4000;
+ qoSR99Requested.iMinGuaranteedRate = bitRate;
+
+ qoSR99Requested.iReqTrafficClass = RPacketQoS::ETrafficClassInteractive;
+ qoSR99Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
+ qoSR99Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
+ qoSR99Requested.iReqMaxSDUSize = 1500;
+ bitRate.iDownlinkRate = 104;
+ bitRate.iUplinkRate = 104;
+ qoSR99Requested.iReqMaxRate = bitRate;
+ qoSR99Requested.iReqBER = RPacketQoS::EBERFourPerThousand;
+ qoSR99Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerThousand;
+ qoSR99Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
+ qoSR99Requested.iReqTransferDelay = 1600;
+ bitRate.iDownlinkRate = 10;
+ bitRate.iUplinkRate = 10;
+ qoSR99Requested.iReqGuaranteedRate = bitRate;
+ contextQoS.SetProfileParameters(setProfileParametersStatus ,qoSR99RequestedPkg);
+ break;
+
+ case EQoSR5: // R5
+ qoSR5Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
+ qoSR5Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
+ qoSR5Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
+ qoSR5Requested.iMinAcceptableMaxSDUSize = 10;
+ qoSR5Requested.iMinAcceptableMaxRate = bitRate;
+ qoSR5Requested.iMaxBER = RPacketQoS::EBERUnspecified;
+ qoSR5Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
+ qoSR5Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ qoSR5Requested.iMaxTransferDelay = 0;
+ qoSR5Requested.iMinGuaranteedRate = bitRate;
+
+ qoSR5Requested.iReqTrafficClass = RPacketQoS::ETrafficClassInteractive;
+ qoSR5Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderNotRequired;
+ qoSR5Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
+ qoSR5Requested.iReqMaxSDUSize = 1500;
+ bitRate.iDownlinkRate = 64;
+ bitRate.iUplinkRate = 16;
+ qoSR5Requested.iReqMaxRate = bitRate;
+ qoSR5Requested.iReqBER = RPacketQoS::EBERFourPerThousand;
+ qoSR5Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerTenThousand;
+ qoSR5Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
+ qoSR5Requested.iReqTransferDelay = 1600;
+ qoSR5Requested.iReqGuaranteedRate = bitRate;
+ qoSR5Requested.iSignallingIndication = qosCapsR5.iSignallingIndication;
+ qoSR5Requested.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
+ contextQoS.SetProfileParameters(setProfileParametersStatus ,qoSR5RequestedPkg);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::SetProfileParameters timed out"));
+ ASSERT_EQUALS(setProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with an error"));
+
+ // Set the context config with RPacketContext::SetConfig
+ TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+ RPacketContext::TContextConfigGPRS setConfigGprs;
+ TPckg<RPacketContext::TContextConfigGPRS> setConfigPkgGprs(setConfigGprs);
+ RPacketContext::TContextConfigR99_R4 setConfigR99;
+ TPckg<RPacketContext::TContextConfigR99_R4> setConfigPkgR99(setConfigR99);
+ RPacketContext::TContextConfig_R5 setConfigR5;
+ TPckg<RPacketContext::TContextConfig_R5> setConfigPkgR5(setConfigR5);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ setConfigGprs.iAccessPointName.Copy(aApn);
+ setConfigGprs.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigGprs.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgGprs);
+ break;
+
+ case EQoSR4: // R99_R4
+ setConfigR99.iAccessPointName.Copy(aApn);
+ setConfigR99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigR99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR99);
+ break;
+
+ case EQoSR5: // R5
+ setConfigR5.iAccessPointName.Copy(aApn);
+ setConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR5);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with an error"));
+
+ // Post notification for RPacketQoS::NotifyProfileChanged
+ TExtEtelRequestStatus notifyProfileChangedStatus(contextQoS, EPacketQoSNotifyProfileChanged);
+ CleanupStack::PushL(notifyProfileChangedStatus);
+ RPacketQoS::TQoSGPRSNegotiated qoSGPRSNegotiated;
+ TPckg<RPacketQoS::TQoSGPRSNegotiated> qoSGPRSNegotiatedPkg(qoSGPRSNegotiated);
+ RPacketQoS::TQoSR99_R4Negotiated qoSR99Negotiated;
+ TPckg<RPacketQoS::TQoSR99_R4Negotiated> qoSR99NegotiatedPkg(qoSR99Negotiated);
+ RPacketQoS::TQoSR5Negotiated qoSR5Negotiated;
+ TPckg<RPacketQoS::TQoSR5Negotiated> qoSR5NegotiatedPkg(qoSR5Negotiated);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ contextQoS.NotifyProfileChanged(notifyProfileChangedStatus, qoSGPRSNegotiatedPkg);
+ break;
+
+ case EQoSR4: // R99_R4
+ contextQoS.NotifyProfileChanged(notifyProfileChangedStatus, qoSR99NegotiatedPkg);
+ break;
+
+ case EQoSR5: // R5
+ contextQoS.NotifyProfileChanged(notifyProfileChangedStatus, qoSR5NegotiatedPkg);
+ break;
+ }
+
+ // Activate the primary context with RPacketContext::Activate.
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketQoS::NotifyProfileChanged returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with same as the requested values used in SetProfileParameters.
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyProfileChangedStatus, ETimeLong), KErrNone, _L("RPacketQoS::NotifyProfileChanged timed out"));
+ ASSERT_EQUALS(notifyProfileChangedStatus.Int(), KErrNone, _L("RPacketQoS::NotifyProfileChanged returned with error status."));
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ ASSERT_EQUALS(qoSGPRSNegotiated.iDelay, qoSGPRSRequested.iReqDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iDelay as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iMeanThroughput, qoSGPRSRequested.iReqMeanThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iMeanThroughput as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iPeakThroughput, qoSGPRSRequested.iReqPeakThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iPeakThroughput as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iPrecedence, qoSGPRSRequested.iReqPrecedence, _L("RPacketQoS::NotifyProfileChanged did not return with same iPrecedence as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iReliability, qoSGPRSRequested.iReqReliability, _L("RPacketQoS::NotifyProfileChanged did not return with same iReliability as used in SetProfileParameters"));
+ break;
+
+ case EQoSR4: // R99_R4
+ ASSERT_EQUALS(qoSR99Negotiated.iTrafficClass, qoSR99Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficClass as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iDeliveryOrderReqd, qoSR99Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iDeliverErroneousSDU, qoSR99Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iMaxSDUSize, qoSR99Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxSDUSize as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iDownlinkRate, qoSR99Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iUplinkRate, qoSR99Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iBER, qoSR99Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return with same iBER as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iSDUErrorRatio, qoSR99Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return with same iSDUErrorRatio as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iTrafficHandlingPriority, qoSR99Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iTransferDelay, qoSR99Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iTransferDelay as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iDownlinkRate, qoSR99Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iUplinkRate, qoSR99Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
+ break;
+
+ case EQoSR5: // R5
+ ASSERT_EQUALS(qoSR5Negotiated.iTrafficClass, qoSR5Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficClass as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iDeliveryOrderReqd, qoSR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iDeliverErroneousSDU, qoSR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iMaxSDUSize, qoSR5Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxSDUSize as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iDownlinkRate, qoSR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iUplinkRate, qoSR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iBER, qoSR5Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return with same iBER as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iSDUErrorRatio, qoSR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return with same iSDUErrorRatio as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iTrafficHandlingPriority, qoSR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iTransferDelay, qoSR5Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iTransferDelay as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iDownlinkRate, qoSR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iUplinkRate, qoSR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iSignallingIndication, qoSR5Requested.iSignallingIndication, _L("RPacketQoS::NotifyProfileChanged did not return with same iSignallingIndication as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iSourceStatisticsDescriptor, qoSR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::NotifyProfileChanged did not return with same iSourceStatisticsDescriptor as used in SetProfileParameters"));
+ break;
+ }
+
+ // Check RPacketQoS::GetProfileParameters returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with same as the requested values used in SetProfileParameters.
+ TExtEtelRequestStatus getProfileParametersStatus(contextQoS, EPacketQoSGetProfileParams);
+ CleanupStack::PushL(getProfileParametersStatus);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ contextQoS.GetProfileParameters(getProfileParametersStatus, qoSGPRSNegotiatedPkg);
+ break;
+
+ case EQoSR4: // R99_R4
+ contextQoS.GetProfileParameters(getProfileParametersStatus, qoSR99NegotiatedPkg);
+ break;
+
+ case EQoSR5: // R5
+ contextQoS.GetProfileParameters(getProfileParametersStatus, qoSR5NegotiatedPkg);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
+ ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ ASSERT_EQUALS(qoSGPRSNegotiated.iDelay, qoSGPRSRequested.iReqDelay, _L("RPacketQoS::NotifyProfileChanged did not return with same iDelay as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iMeanThroughput, qoSGPRSRequested.iReqMeanThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iMeanThroughput as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iPeakThroughput, qoSGPRSRequested.iReqPeakThroughput, _L("RPacketQoS::NotifyProfileChanged did not return with same iPeakThroughput as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iPrecedence, qoSGPRSRequested.iReqPrecedence, _L("RPacketQoS::NotifyProfileChanged did not return with same iPrecedence as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSGPRSNegotiated.iReliability, qoSGPRSRequested.iReqReliability, _L("RPacketQoS::NotifyProfileChanged did not return with same iReliability as used in SetProfileParameters"));
+ break;
+
+ case EQoSR4: // R99_R4
+ ASSERT_EQUALS(qoSR99Negotiated.iTrafficClass, qoSR99Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficClass as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iDeliveryOrderReqd, qoSR99Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iDeliverErroneousSDU, qoSR99Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iMaxSDUSize, qoSR99Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return with same iMaxSDUSize as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iDownlinkRate, qoSR99Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iMaxRate.iUplinkRate, qoSR99Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iBER, qoSR99Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return with same iBER as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iSDUErrorRatio, qoSR99Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return with same iSDUErrorRatio as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iTrafficHandlingPriority, qoSR99Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iTransferDelay, qoSR99Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return with same iTransferDelay as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iDownlinkRate, qoSR99Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR99Negotiated.iGuaranteedRate.iUplinkRate,qoSR99Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
+ break;
+
+ case EQoSR5: // R5
+ ASSERT_EQUALS(qoSR5Negotiated.iTrafficClass, qoSR5Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficClass as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iDeliveryOrderReqd, qoSR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return with same iDeliveryOrderReqd as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iDeliverErroneousSDU, qoSR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return with same iDeliverErroneousSDU as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iMaxSDUSize, qoSR5Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return with same iMaxSDUSize as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iDownlinkRate, qoSR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iMaxRate.iUplinkRate, qoSR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iMaxRate.iUplinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iBER, qoSR5Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return with same iBER as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iSDUErrorRatio, qoSR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return with same iSDUErrorRatio as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iTrafficHandlingPriority, qoSR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return with same iTrafficHandlingPriority as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iTransferDelay, qoSR5Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return with same iTransferDelay as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iDownlinkRate, qoSR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iDownlinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iGuaranteedRate.iUplinkRate, qoSR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return with same iGuaranteedRate.iUplinkRate as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iSignallingIndication, qoSR5Requested.iSignallingIndication, _L("RPacketQoS::GetProfileParameters did not return with same iSignallingIndication as used in SetProfileParameters"));
+ ASSERT_EQUALS(qoSR5Negotiated.iSourceStatisticsDescriptor, qoSR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::GetProfileParameters did not return with same iSourceStatisticsDescriptor as used in SetProfileParameters"));
+ break;
+ }
+
+ // Release primary packet context QoS
+ iEtelSessionMgr.ReleasePrimaryPacketContextQoS(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Release primary packet context
+ iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Pop
+ // setProfileParametersStatus
+ // setConfigStatus
+ // notifyProfileChangedStatus
+ // contextActivateStatus
+ // getProfileParametersStatus
+ CleanupStack::PopAndDestroy(5, &setProfileParametersStatus);
+
+ }
+
+
+TPtrC CCTSYIntegrationTestPacketContext0058::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0058");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0059::CCTSYIntegrationTestPacketContext0059(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0059::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0059::~CCTSYIntegrationTestPacketContext0059()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0059::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0059
+ * @SYMFssID BA/CTSY/PKTC-0059
+ * @SYMTestCaseDesc Activate a PDP context with requested QoS is better than subscriber QoS (success scenario).
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketQoS::NotifyProfileChanged, RPacketQoS::GetProfileParameters, RPacketContext::SetConfig, RPacketQoS::SetProfileParameters, RPacketQoS::GetProfileCapabilities
+ * @SYMTestExpectedResults Pass - A PDP context with subscribed QoS could be activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify negotiated QoS same as that requested.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+
+ // == Activate a PDP context with the requested QoS better than subscribed QoS ==
+ DEBUG_PRINTF1(_L("== GPRS =="));
+ DoTest0059L(apn, user, pwd, EQoSGPRS);
+
+ // === Repeat test for R99_R4 ===
+ // Repeat test with TQoSCapsR99_R4 instead of TQoSCapsGPRS, TQoSR99_R4Requested instead of TQoSGPRSRequested and TQoSR99_R4Negotiated instead of TQoSGPRSNegotiated
+ DEBUG_PRINTF1(_L("== R99_R4 =="));
+ DoTest0059L(apn, user, pwd, EQoSR4);
+
+ // === Repeat test for R5 ===
+ // Repeat test with TQoSCapsR5 instead of TQoSCapsGPRS, TQoSR5Requested instead of TQoSGPRSRequested, and TQoSR5Negotiated instead of TQoSGPRSNegotiated
+ DEBUG_PRINTF1(_L("== R5 =="));
+ DoTest0059L(apn, user, pwd, EQoSR5);
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ //PopAndDestroy
+ //getNetWorkStatus
+ CleanupStack::PopAndDestroy(1, &getNetworkStatus);
+
+ return TestStepResult();
+ }
+
+void CCTSYIntegrationTestPacketContext0059::DoTest0059L(TPtrC& aApn, TPtrC& aUser, TPtrC& aPwd, TInt aQoSCapType)
+ {
+ /**
+ * Activate a PDP context with the requested QOS better to the subscribed QoS.
+ * @param aQoSCapType Gprs / R99_R4 / R5.
+ */
+
+ // Open a new primary context.
+ RPacketContext& primaryPacketContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ //Open a new QoS
+ RPacketQoS& contextQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ //Get the QoS profile capabilities with RPacketQoS::GetProfileCapabilities with aProfileCaps of type TQoSCapsGPRS/TQoSCapsR99_R4/TQoSCapsR5
+ RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
+ RPacketQoS::TQoSCapsR99_R4 qosCapsR99;
+ RPacketQoS::TQoSCapsR5 qosCapsR5;
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS:
+ GetProfileCapsL(contextQoS, qosCapsGPRS);
+ break;
+
+ case EQoSR4:
+ GetProfileCapsL(contextQoS, qosCapsR99);
+ break;
+
+ case EQoSR5:
+ GetProfileCapsL(contextQoS, qosCapsR5);
+ break;
+ }
+
+ RPacketQoS::TQoSGPRSRequested qosReqCapsGPRS;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosReqCapsGPRSPckg(qosReqCapsGPRS);
+ RPacketQoS::TQoSR99_R4Requested qosReqCapsR99;
+ TPckg<RPacketQoS::TQoSR99_R4Requested> qosReqCapsR99Pckg(qosReqCapsR99);
+ RPacketQoS::TQoSR5Requested qosReqCapsR5;
+ TPckg<RPacketQoS::TQoSR5Requested> qosReqCapsR5Pckg(qosReqCapsR5);
+
+ // Set the minimum requested QoS profile parameters to contain lower(worse) values than those that were returned from GetProfileCapabilities by using SetProfileParameters
+ //with aProfile of type TQoSGPRSRequested/TQoSR99_R4Requested/TQoSR5Requested.
+ switch(aQoSCapType)
+ {
+
+ case EQoSGPRS:
+ //Min caps
+ qosReqCapsGPRS.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
+ qosReqCapsGPRS.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
+ qosReqCapsGPRS.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
+ qosReqCapsGPRS.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
+ qosReqCapsGPRS.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
+
+ //Req caps
+ qosReqCapsGPRS.iReqDelay = RPacketQoS::EDelayClass4;
+ qosReqCapsGPRS.iReqMeanThroughput = RPacketQoS::EMeanThroughput100;
+ qosReqCapsGPRS.iReqPeakThroughput = RPacketQoS::EPeakThroughput1000;
+ qosReqCapsGPRS.iReqPrecedence = RPacketQoS::EPriorityLowPrecedence;
+ qosReqCapsGPRS.iReqReliability = RPacketQoS::EReliabilityClass1;
+ break;
+
+ case EQoSR4:
+ //min values
+ qosReqCapsR99.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
+ qosReqCapsR99.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
+ qosReqCapsR99.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
+ qosReqCapsR99.iMinAcceptableMaxSDUSize = 1000;
+ qosReqCapsR99.iMinAcceptableMaxRate.iDownlinkRate = 0;
+ qosReqCapsR99.iMinAcceptableMaxRate.iUplinkRate = 0;
+ qosReqCapsR99.iMaxBER = RPacketQoS::EBERUnspecified;
+ qosReqCapsR99.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
+ qosReqCapsR99.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ qosReqCapsR99.iMaxTransferDelay = 4000;
+ qosReqCapsR99.iMinGuaranteedRate.iDownlinkRate = 1;
+ qosReqCapsR99.iMinGuaranteedRate.iUplinkRate = 1;
+
+ //req values
+ qosReqCapsR99.iReqTrafficClass = RPacketQoS::ETrafficClassConversational;
+ qosReqCapsR99.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
+ qosReqCapsR99.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryNotRequired;
+ qosReqCapsR99.iReqMaxSDUSize = 1500;
+ qosReqCapsR99.iReqMaxRate.iDownlinkRate = 16;
+ qosReqCapsR99.iReqMaxRate.iUplinkRate = 16;
+ qosReqCapsR99.iReqBER = RPacketQoS::EBERFourPerThousand;
+ qosReqCapsR99.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerThousand;
+ qosReqCapsR99.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority3;
+ qosReqCapsR99.iReqTransferDelay = 1000;
+ qosReqCapsR99.iReqGuaranteedRate.iDownlinkRate = 16;
+ qosReqCapsR99.iReqGuaranteedRate.iUplinkRate = 16;
+ break;
+
+ case EQoSR5:
+ //min values
+ qosReqCapsR5.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
+ qosReqCapsR5.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
+ qosReqCapsR5.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
+ qosReqCapsR5.iMinAcceptableMaxSDUSize = 1000;
+ qosReqCapsR5.iMinAcceptableMaxRate.iDownlinkRate = 0;
+ qosReqCapsR5.iMinAcceptableMaxRate.iUplinkRate = 0;
+ qosReqCapsR5.iMaxBER = RPacketQoS::EBERUnspecified;
+ qosReqCapsR5.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
+ qosReqCapsR5.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ qosReqCapsR5.iMaxTransferDelay = 4000;
+ qosReqCapsR5.iMinGuaranteedRate.iDownlinkRate = 1;
+ qosReqCapsR5.iMinGuaranteedRate.iUplinkRate = 1;
+
+ //req values
+ qosReqCapsR5.iReqTrafficClass = RPacketQoS::ETrafficClassInteractive;
+ qosReqCapsR5.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
+ qosReqCapsR5.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryRequired;
+ qosReqCapsR5.iReqMaxSDUSize = 1500;
+ qosReqCapsR5.iReqMaxRate.iDownlinkRate = 16;
+ qosReqCapsR5.iReqMaxRate.iUplinkRate = 16;
+ qosReqCapsR5.iReqBER = RPacketQoS::EBERFivePerHundred;
+ qosReqCapsR5.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
+ qosReqCapsR5.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ qosReqCapsR5.iReqTransferDelay = 1000;
+ qosReqCapsR5.iReqGuaranteedRate.iDownlinkRate = 16;
+ qosReqCapsR5.iReqGuaranteedRate.iUplinkRate = 16;
+ qosReqCapsR5.iSignallingIndication = EFalse;
+ qosReqCapsR5.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorUnknown;
+ break;
+
+ }
+
+ //Set profile parameters
+ TExtEtelRequestStatus reqStatusSetProfileParams(contextQoS,EPacketQoSSetProfileParams);
+ CleanupStack::PushL(reqStatusSetProfileParams);
+
+ switch(aQoSCapType)
+ {
+
+ case EQoSGPRS:
+ contextQoS.SetProfileParameters(reqStatusSetProfileParams,qosReqCapsGPRSPckg );
+ break;
+
+ case EQoSR4:
+ contextQoS.SetProfileParameters(reqStatusSetProfileParams, qosReqCapsR99Pckg);
+ break;
+
+ case EQoSR5:
+ contextQoS.SetProfileParameters(reqStatusSetProfileParams, qosReqCapsR5Pckg);
+ break;
+
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusSetProfileParams, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(reqStatusSetProfileParams.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ //post notifier for NotifyProfileChanged
+ TExtEtelRequestStatus reqStatusNotifyProfileCh(contextQoS,EPacketQoSNotifyProfileChanged);
+ CleanupStack::PushL(reqStatusNotifyProfileCh);
+
+ RPacketQoS::TQoSGPRSNegotiated qosNegCapsGPRS;
+ TPckg<RPacketQoS::TQoSGPRSNegotiated> qosNegCapsGPRSPckg(qosNegCapsGPRS);
+ RPacketQoS::TQoSR99_R4Negotiated qosNegCapsR99;
+ TPckg<RPacketQoS::TQoSR99_R4Negotiated> qosNegCapsR99Pckg(qosNegCapsR99);
+ RPacketQoS::TQoSR5Negotiated qosNegCapsR5;
+ TPckg<RPacketQoS::TQoSR5Negotiated> qosNegCapsR5Pckg(qosNegCapsR5);
+
+ switch(aQoSCapType)
+ {
+
+ case EQoSGPRS:
+ contextQoS.NotifyProfileChanged(reqStatusNotifyProfileCh,qosNegCapsGPRSPckg );
+ break;
+
+ case EQoSR4:
+ contextQoS.NotifyProfileChanged(reqStatusNotifyProfileCh, qosNegCapsR99Pckg);
+ break;
+
+ case EQoSR5:
+ contextQoS.NotifyProfileChanged(reqStatusNotifyProfileCh, qosNegCapsR5Pckg);
+ break;
+
+ }
+
+ // Set the context config with RPacketContext::SetConfig
+ TExtEtelRequestStatus setConfigStatus(primaryPacketContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+
+ RPacketContext::TContextConfigGPRS setConfigGprs;
+ TPckg<RPacketContext::TContextConfigGPRS> setConfigPkgGprs(setConfigGprs);
+ RPacketContext::TContextConfigR99_R4 setConfigR99;
+ TPckg<RPacketContext::TContextConfigR99_R4> setConfigPkgR99(setConfigR99);
+ RPacketContext::TContextConfig_R5 setConfigR5;
+ TPckg<RPacketContext::TContextConfig_R5> setConfigPkgR5(setConfigR5);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ setConfigGprs.iAccessPointName.Copy(aApn);
+ setConfigGprs.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigGprs.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgGprs);
+ break;
+
+ case EQoSR4: // R99_R4
+ setConfigR99.iAccessPointName.Copy(aApn);
+ setConfigR99.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigR99.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR99);
+ break;
+
+ case EQoSR5: // R5
+ setConfigR5.iAccessPointName.Copy(aApn);
+ setConfigR5.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ setConfigR5.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ primaryPacketContext.SetConfig(setConfigStatus, setConfigPkgR5);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with an error"));
+
+ //Activate the primary context with RPacketContext::Activate.
+ TExtEtelRequestStatus contextActivateStatus(primaryPacketContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ primaryPacketContext.Activate(contextActivateStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ //Check RPacketQoS::NotifyProfileChanged returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated
+ //with higher(better) value as the requested minimum value used with SetProfileParameters
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusNotifyProfileCh, ETimeMedium), KErrNone, _L("RPacketQoS::NotifyProfileChanged timed out."));
+ ASSERT_EQUALS(reqStatusNotifyProfileCh.Int(), KErrNone, _L("RPacketQoS::NotifyProfileChanged returned with error status."));
+
+ switch(aQoSCapType)
+ {
+
+ case EQoSGPRS:
+
+ ASSERT_TRUE(qosNegCapsGPRS.iDelay > qosReqCapsGPRS.iMinDelay, _L("Negotiated QoS iDelay is not better than minimun requested Qos iDelay"));
+ ASSERT_TRUE(qosNegCapsGPRS.iMeanThroughput > qosReqCapsGPRS.iMinMeanThroughput, _L("Negotiated QoS iMeanThroughput is not better than minimun requested Qos iMeanThroughput"));
+ ASSERT_TRUE(qosNegCapsGPRS.iPeakThroughput > qosReqCapsGPRS.iMinPeakThroughput, _L("Negotiated QoS iPeakThroughput is not better than minimun requested Qos iPeakThroughput"));
+ ASSERT_TRUE(qosNegCapsGPRS.iPrecedence > qosReqCapsGPRS.iMinPrecedence, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
+ ASSERT_TRUE(qosNegCapsGPRS.iReliability > qosReqCapsGPRS.iMinReliability, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
+ break;
+
+ case EQoSR4:
+
+ ASSERT_TRUE(qosNegCapsR99.iTrafficClass > qosReqCapsR99.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
+ ASSERT_TRUE(qosNegCapsR99.iDeliveryOrderReqd > qosReqCapsR99.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
+ ASSERT_TRUE(qosNegCapsR99.iDeliverErroneousSDU > qosReqCapsR99.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
+ ASSERT_TRUE(qosNegCapsR99.iMaxSDUSize > qosReqCapsR99.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsR99.iMaxRate.iDownlinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsR99.iMaxRate.iUplinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(qosNegCapsR99.iBER > qosReqCapsR99.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsR99.iSDUErrorRatio > qosReqCapsR99.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
+ ASSERT_TRUE(qosNegCapsR99.iTrafficHandlingPriority > qosReqCapsR99.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
+ ASSERT_TRUE(qosNegCapsR99.iTransferDelay < qosReqCapsR99.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
+ ASSERT_TRUE(qosNegCapsR99.iGuaranteedRate.iDownlinkRate > qosReqCapsR99.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsR99.iGuaranteedRate.iUplinkRate > qosReqCapsR99.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
+ break;
+
+ case EQoSR5:
+
+ ASSERT_TRUE(qosNegCapsR5.iTrafficClass > qosReqCapsR5.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
+ ASSERT_TRUE(qosNegCapsR5.iDeliveryOrderReqd > qosReqCapsR5.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
+ ASSERT_TRUE(qosNegCapsR5.iDeliverErroneousSDU > qosReqCapsR5.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
+ ASSERT_TRUE(qosNegCapsR5.iMaxSDUSize > qosReqCapsR5.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsR5.iMaxRate.iDownlinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsR5.iMaxRate.iUplinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(qosNegCapsR5.iBER > qosReqCapsR5.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsR5.iSDUErrorRatio > qosReqCapsR5.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
+ ASSERT_TRUE(qosNegCapsR5.iTrafficHandlingPriority > qosReqCapsR5.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
+ ASSERT_TRUE(qosNegCapsR5.iTransferDelay < qosReqCapsR5.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
+ ASSERT_TRUE(qosNegCapsR5.iGuaranteedRate.iDownlinkRate > qosReqCapsR5.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsR5.iGuaranteedRate.iUplinkRate > qosReqCapsR5.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
+ break;
+
+ }
+
+ RPacketQoS::TQoSGPRSNegotiated qosNegCapsNumberTwoGPRS;
+ TPckg<RPacketQoS::TQoSGPRSNegotiated> qosNegCapsNumberTwoGPRSPckg(qosNegCapsNumberTwoGPRS);
+ RPacketQoS::TQoSR99_R4Negotiated qosNegCapsNumberTwoR99;
+ TPckg<RPacketQoS::TQoSR99_R4Negotiated> qosNegCapsNumberTwoR99Pckg(qosNegCapsNumberTwoR99);
+ RPacketQoS::TQoSR5Negotiated qosNegCapsNumberTwoR5;
+ TPckg<RPacketQoS::TQoSR5Negotiated> qosNegCapsNumberTwoR5Pckg(qosNegCapsNumberTwoR5);
+
+ //Check RPacketQoS::GetProfileParameters returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated
+ //with higher(better) value as the requested minimum value used with SetProfileParameters
+ TExtEtelRequestStatus reqStatusGetProfileParams(contextQoS,EPacketQoSGetProfileParams);
+ CleanupStack::PushL(reqStatusGetProfileParams);
+
+ switch(aQoSCapType)
+ {
+
+ case EQoSGPRS:
+ contextQoS.GetProfileParameters(reqStatusGetProfileParams, qosNegCapsNumberTwoGPRSPckg);
+ break;
+
+ case EQoSR4:
+ contextQoS.GetProfileParameters(reqStatusGetProfileParams, qosNegCapsNumberTwoR99Pckg);
+ break;
+
+ case EQoSR5:
+ contextQoS.GetProfileParameters(reqStatusGetProfileParams, qosNegCapsNumberTwoR5Pckg);
+ break;
+
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqStatusGetProfileParams, ETimeMedium), KErrNone, _L("RPacketQoS::GetProfileParameters timed out."));
+ ASSERT_EQUALS(reqStatusGetProfileParams.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with error status."));
+
+ switch(aQoSCapType)
+ {
+
+ case EQoSGPRS:
+
+ ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iDelay > qosReqCapsGPRS.iMinDelay, _L("Negotiated QoS iDelay is not better than minimun requested Qos iDelay"));
+ ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iMeanThroughput > qosReqCapsGPRS.iMinMeanThroughput, _L("Negotiated QoS iMeanThroughput is not better than minimun requested Qos iMeanThroughput"));
+ ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iPeakThroughput > qosReqCapsGPRS.iMinPeakThroughput, _L("Negotiated QoS iPeakThroughput is not better than minimun requested Qos iPeakThroughput"));
+ ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iPrecedence > qosReqCapsGPRS.iMinPrecedence, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
+ ASSERT_TRUE(qosNegCapsNumberTwoGPRS.iReliability > qosReqCapsGPRS.iMinReliability, _L("Negotiated QoS iPrecedence is not better than minimun requested Qos iPrecedence"));
+ break;
+
+ case EQoSR4:
+
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iTrafficClass > qosReqCapsR99.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iDeliveryOrderReqd > qosReqCapsR99.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iDeliverErroneousSDU > qosReqCapsR99.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iMaxSDUSize > qosReqCapsR99.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iMaxRate.iDownlinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iMaxRate.iUplinkRate > qosReqCapsR99.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iBER > qosReqCapsR99.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iSDUErrorRatio > qosReqCapsR99.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iTrafficHandlingPriority > qosReqCapsR99.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iTransferDelay < qosReqCapsR99.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iGuaranteedRate.iDownlinkRate > qosReqCapsR99.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR99.iGuaranteedRate.iUplinkRate > qosReqCapsR99.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
+ break;
+
+ case EQoSR5:
+
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iTrafficClass > qosReqCapsR5.iMinTrafficClass, _L("Negotiated QoS iTrafficClass is not better than minimun requested Qos iTrafficClass"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iDeliveryOrderReqd > qosReqCapsR5.iMinDeliveryOrderReqd, _L("Negotiated QoS iDeliveryOrderReqd is not better than minimun requested Qos iDeliveryOrderReqd"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iDeliverErroneousSDU > qosReqCapsR5.iMinDeliverErroneousSDU, _L("Negotiated QoS iDeliverErroneousSDU is not better than minimun requested Qos iDeliverErroneousSDU"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iMaxSDUSize > qosReqCapsR5.iMinAcceptableMaxSDUSize, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iMaxRate.iDownlinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iDownlinkRate, _L("Negotiated QoS iMaxRate.iDownlinkRate is not better than minimun requested Qos iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iMaxRate.iUplinkRate > qosReqCapsR5.iMinAcceptableMaxRate.iUplinkRate, _L("Negotiated QoS iMaxRate.iUplinkRate is not better than minimun requested Qos iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iBER > qosReqCapsR5.iMaxBER, _L("Negotiated QoS iMaxSDUSize is not better than minimun requested Qos iMaxSDUSize"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iSDUErrorRatio > qosReqCapsR5.iMaxSDUErrorRatio, _L("Negotiated QoS iSDUErrorRatio is not better than minimun requested Qos iSDUErrorRatio"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iTrafficHandlingPriority > qosReqCapsR5.iMinTrafficHandlingPriority, _L("Negotiated QoS iTrafficHandlingPriority is not better than minimun requested Qos iTrafficHandlingPriority"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iTransferDelay < qosReqCapsR5.iMaxTransferDelay, _L("Negotiated QoS iTransferDelay is not better than minimun requested Qos iTransferDelay"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iGuaranteedRate.iDownlinkRate > qosReqCapsR5.iMinGuaranteedRate.iDownlinkRate, _L("Negotiated QoS iGuaranteedRate.iDownlinkRate is not better than minimun requested Qos iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(qosNegCapsNumberTwoR5.iGuaranteedRate.iUplinkRate > qosReqCapsR5.iMinGuaranteedRate.iUplinkRate, _L("Negotiated QoS iGuaranteedRate.iUplinkRate is not better than minimun requested Qos iGuaranteedRate.iUplinkRate"));
+ break;
+
+ }
+
+ //Release QoS
+ iEtelSessionMgr.ReleasePrimaryPacketContextQoS(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+
+ // Release packet context
+ iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ //PopAndDestroy
+ //reqStatusSetProfileParams
+ //reqStatusNotifyProfileCh
+ //setConfigStatus
+ //contextActivateStatus
+ //reqStatusGetProfileParams
+
+ CleanupStack::PopAndDestroy(5,&reqStatusSetProfileParams);
+
+
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0059::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0059");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0060::CCTSYIntegrationTestPacketContext0060(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0060::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0060::~CCTSYIntegrationTestPacketContext0060()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0060::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0060
+ * @SYMFssID BA/CTSY/PKTC-0060
+ * @SYMTestCaseDesc Activate a PDP context can be activated with requested QOS better than subscribed QOS (failure scenario).
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketQos::SetProfileParameters, RPacketContext::Activate, RPacketQos::GetProfileParameters
+ * @SYMTestExpectedResults Pass - A PDP context with subscribed QoS could be activated. Negotiated QoS lower than requested.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify negotiated QoS lower than that requested.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Call TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+
+ // Ensure phone is attached to the packet service
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+ // Get network info from phone
+ TExtEtelRequestStatus getNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV1 info;
+ RMobilePhone::TMobilePhoneNetworkInfoV1Pckg infopckg(info);
+ phone.GetCurrentNetwork(getNetworkStatus, infopckg);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ TPtrC apn, user, pwd;
+ iPacketServiceTestHelper.GetGprsSettings(info, apn, user, pwd);
+
+ // == Activate a PDP context with the requested QOS better than subscribed QOS (failure scenario) by using TQoSCapsGPRS, TQoSGPRSRequested, TQoSGPRSNegotiated ==
+ DEBUG_PRINTF1(_L("== GPRS =="));
+ DoTest0060L(apn, user, pwd, EQoSGPRS);
+
+ // === Repeat test for R99_R4 ===
+ // Repeat test with TQoSCapsR99_R4 instead of TQoSCapsGPRS, TQoSR99_R4Requested instead of TQoSGPRSRequested and TQoSR99_R4Negotiated instead of TQoSGPRSNegotiated
+ DEBUG_PRINTF1(_L("== R99_R4 =="));
+ DoTest0060L(apn, user, pwd, EQoSR4);
+
+ // === Repeat test for R5 ===
+ // Repeat test with TQoSCapsR5 instead of TQoSCapsGPRS, TQoSR5Requested instead of TQoSGPRSRequested, and TQoSR5Negotiated instead of TQoSGPRSNegotiated
+ DEBUG_PRINTF1(_L("== R5 =="));
+ DoTest0060L(apn, user, pwd, EQoSR5);
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Pop
+ // getNetworkStatus
+ CleanupStack::PopAndDestroy(1, &getNetworkStatus);
+
+ return TestStepResult();
+ }
+
+void CCTSYIntegrationTestPacketContext0060::DoTest0060L( TPtrC& aApn, TPtrC& aUser, TPtrC& aPwd, TInt aQoSCapType )
+/**
+ * Activates primary packet context with default context parameters.
+ * @param aNetworkType Gprs / R99_R4 / R5.
+ */
+ {
+
+ // Open a new primary context.
+ RPacketContext& packetContext = iEtelSessionMgr.GetPrimaryPacketContextL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Open a new QoS from the primary context
+ RPacketQoS& packetQoS = iEtelSessionMgr.GetPrimaryPacketContextQoSL(
+ KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ //Get the QoS profile capabilities with RPacketQoS::GetProfileCapabilities with aProfileCaps of type TQoSCapsGPRS/TQoSCapsR99_R4/TQoSCapsR5
+ RPacketQoS::TQoSCapsGPRS qosCapsGPRS;
+ RPacketQoS::TQoSCapsR99_R4 qosCapsR99;
+ RPacketQoS::TQoSCapsR5 qosCapsR5;
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS:
+ GetProfileCapsL(packetQoS, qosCapsGPRS);
+ break;
+
+ case EQoSR4:
+ GetProfileCapsL(packetQoS, qosCapsR99);
+ break;
+
+ case EQoSR5:
+ GetProfileCapsL(packetQoS, qosCapsR5);
+ break;
+ }
+
+
+ // Set the minimum requested QoS profile parameters to lower than what was returned from GetProfileCapabilities using RPacketQoS::SetProfileParameters
+ // with aProfile of type TQoSGPRSRequested/TQoSR99_R4Requested/TQoSR5Requested.
+ // Set all iMin... to a lower value than that returned by GetProfileCapabilities and all iReq... to a maximum value allowable by the API.
+ RPacketQoS::TQoSGPRSRequested qosGprsRequested;
+ TPckg<RPacketQoS::TQoSGPRSRequested> qosGprsReqPckg(qosGprsRequested);
+ RPacketQoS::TQoSR99_R4Requested qosR99_R4Requested;
+ TPckg<RPacketQoS::TQoSR99_R4Requested> qosR99_R4ReqPckg(qosR99_R4Requested);
+ RPacketQoS::TQoSR5Requested qosR5Requested;
+ TPckg<RPacketQoS::TQoSR5Requested> qosR5ReqPckg(qosR5Requested);
+ RPacketQoS::TBitRate bitRate;
+ bitRate.iDownlinkRate = 0;
+ bitRate.iUplinkRate = 0;
+
+ TExtEtelRequestStatus setProfileParamStatus(packetQoS, EPacketQoSSetProfileParams);
+ CleanupStack::PushL(setProfileParamStatus);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ //Min caps
+ qosGprsRequested.iMinDelay = RPacketQoS::EUnspecifiedDelayClass;
+ qosGprsRequested.iMinMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput;
+ qosGprsRequested.iMinPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput;
+ qosGprsRequested.iMinPrecedence = RPacketQoS::EUnspecifiedPrecedence;
+ qosGprsRequested.iMinReliability = RPacketQoS::EUnspecifiedReliabilityClass;
+ //Request caps
+ qosGprsRequested.iReqDelay = RPacketQoS::EDelayClass1;
+ qosGprsRequested.iReqMeanThroughput = RPacketQoS::EMeanThroughput50000000;
+ qosGprsRequested.iReqPeakThroughput = RPacketQoS::EPeakThroughput256000;
+ qosGprsRequested.iReqReliability = RPacketQoS::EReliabilityClass1;
+ qosGprsRequested.iReqPrecedence = RPacketQoS::EPriorityHighPrecedence;
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosGprsReqPckg);
+ break;
+
+ case EQoSR4: // R99_R4
+ //Min caps
+ qosR99_R4Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
+ qosR99_R4Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
+ qosR99_R4Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUNoDetection;
+ qosR99_R4Requested.iMinAcceptableMaxSDUSize = 10;
+ qosR99_R4Requested.iMinAcceptableMaxRate = bitRate;
+ qosR99_R4Requested.iMaxBER = RPacketQoS::EBERUnspecified;
+ qosR99_R4Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
+ qosR99_R4Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ qosR99_R4Requested.iMaxTransferDelay = 4000;
+ qosR99_R4Requested.iMinGuaranteedRate = bitRate;
+ //Request caps
+ qosR99_R4Requested.iReqTrafficClass = RPacketQoS::ETrafficClassConversational;
+ qosR99_R4Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
+ qosR99_R4Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUNoDetection;
+ qosR99_R4Requested.iReqMaxSDUSize = 1520;
+ bitRate.iDownlinkRate = 16000;
+ bitRate.iUplinkRate = 16000;
+ qosR99_R4Requested.iReqMaxRate = bitRate;
+ qosR99_R4Requested.iReqBER = RPacketQoS::EBERSixPerHundredMillion;
+ qosR99_R4Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
+ qosR99_R4Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority1;
+ qosR99_R4Requested.iReqTransferDelay = 10;
+ qosR99_R4Requested.iReqGuaranteedRate = bitRate;
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosR99_R4ReqPckg);
+ break;
+
+ case EQoSR5: // R5
+ //Min caps
+ qosR5Requested.iMinTrafficClass = RPacketQoS::ETrafficClassUnspecified;
+ qosR5Requested.iMinDeliveryOrderReqd = RPacketQoS::EDeliveryOrderUnspecified;
+ qosR5Requested.iMinDeliverErroneousSDU = RPacketQoS::EErroneousSDUDeliveryUnspecified;
+ qosR5Requested.iMinAcceptableMaxSDUSize = 10;
+ qosR5Requested.iMinAcceptableMaxRate = bitRate;
+ qosR5Requested.iMaxBER = RPacketQoS::EBERUnspecified;
+ qosR5Requested.iMaxSDUErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified;
+ qosR5Requested.iMinTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified;
+ qosR5Requested.iMaxTransferDelay = 0;
+ qosR5Requested.iMinGuaranteedRate = bitRate;
+ //Request caps
+ qosR5Requested.iReqTrafficClass = RPacketQoS::ETrafficClassConversational;
+ qosR5Requested.iReqDeliveryOrderReqd = RPacketQoS::EDeliveryOrderRequired;
+ qosR5Requested.iReqDeliverErroneousSDU = RPacketQoS::EErroneousSDUNoDetection;
+ qosR5Requested.iReqMaxSDUSize = 1520;
+ bitRate.iDownlinkRate = 16000;
+ bitRate.iUplinkRate = 16000;
+ qosR5Requested.iReqMaxRate = bitRate;
+ qosR5Requested.iReqBER = RPacketQoS::EBERSixPerHundredMillion;
+ qosR5Requested.iReqSDUErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion;
+ qosR5Requested.iReqTrafficHandlingPriority = RPacketQoS::ETrafficPriority1;
+ qosR5Requested.iReqTransferDelay = 10;
+ qosR5Requested.iReqGuaranteedRate = bitRate;
+ qosR5Requested.iSignallingIndication = ETrue;
+ qosR5Requested.iSourceStatisticsDescriptor = RPacketQoS::ESourceStatisticsDescriptorSpeech;
+ packetQoS.SetProfileParameters(setProfileParamStatus, qosR5ReqPckg);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setProfileParamStatus, ETimeMedium), KErrNone, _L("RPacketQoS::SetProfileParameters timed out."));
+ ASSERT_EQUALS(setProfileParamStatus.Int(), KErrNone, _L("RPacketQoS::SetProfileParameters returned with error status."));
+
+ // Set the context config with RPacketContext::SetConfig
+ RPacketContext::TContextConfigGPRS gprsConfig;
+ TPckg<RPacketContext::TContextConfigGPRS> gprsConfigPk(gprsConfig);
+ RPacketContext::TContextConfigR99_R4 r99_r4Config;
+ TPckg<RPacketContext::TContextConfigR99_R4> r99_r4ConfigPk(r99_r4Config);
+ RPacketContext::TContextConfig_R5 r5Config;
+ TPckg<RPacketContext::TContextConfig_R5> r5ConfigPk(r5Config);
+
+ TExtEtelRequestStatus setConfigStatus(packetContext, EPacketContextSetConfig);
+ CleanupStack::PushL(setConfigStatus);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ gprsConfig.iAccessPointName.Copy(aApn);
+ gprsConfig.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ gprsConfig.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ packetContext.SetConfig(setConfigStatus, gprsConfigPk);
+ break;
+
+ case EQoSR4: // R99_R4
+ r99_r4Config.iAccessPointName.Copy(aApn);
+ r99_r4Config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ r99_r4Config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ packetContext.SetConfig(setConfigStatus, r99_r4ConfigPk);
+ break;
+
+ case EQoSR5: // R5
+ r5Config.iAccessPointName.Copy(aApn);
+ r5Config.iProtocolConfigOption.iAuthInfo.iUsername.Copy(aUser);
+ r5Config.iProtocolConfigOption.iAuthInfo.iPassword.Copy(aPwd);
+ packetContext.SetConfig(setConfigStatus, r5ConfigPk);
+ break;
+ }
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setConfigStatus, ETimeLong), KErrNone, _L("RPacketContext::SetConfig timed out"));
+ ASSERT_EQUALS(setConfigStatus.Int(), KErrNone, _L("RPacketContext::SetConfig returned with error status."));
+
+ //post notifier for NotifyProfileChanged
+ TExtEtelRequestStatus notifyProfileChangedStatus (packetQoS, EPacketQoSNotifyProfileChanged);
+ CleanupStack::PushL(notifyProfileChangedStatus);
+ RPacketQoS::TQoSGPRSNegotiated gprsNegotiatedQoSValues;
+ TPckg<RPacketQoS::TQoSGPRSNegotiated> gprsNegotiatedQoSPk(gprsNegotiatedQoSValues);
+ RPacketQoS::TQoSR99_R4Negotiated r99_r4NegotiatedQoSValues;
+ TPckg<RPacketQoS::TQoSR99_R4Negotiated> r99_r4NegotiatedQoSPk(r99_r4NegotiatedQoSValues);
+ RPacketQoS::TQoSR5Negotiated r5NegotiatedQoSValues;
+ TPckg<RPacketQoS::TQoSR5Negotiated> r5NegotiatedQoSPk(r5NegotiatedQoSValues);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ packetQoS.NotifyProfileChanged(notifyProfileChangedStatus, gprsNegotiatedQoSPk);
+ break;
+
+ case EQoSR4: // R99_R4
+ packetQoS.NotifyProfileChanged(notifyProfileChangedStatus, r99_r4NegotiatedQoSPk);
+ break;
+
+ case EQoSR5: // R5
+ packetQoS.NotifyProfileChanged(notifyProfileChangedStatus, r5NegotiatedQoSPk);
+ break;
+ }
+
+ // Activate the primary context with RPacketContext::Activate.
+ TExtEtelRequestStatus contextActivateStatus(packetContext, EPacketContextActivate);
+ CleanupStack::PushL(contextActivateStatus);
+ packetContext.Activate(contextActivateStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(contextActivateStatus, ETimeLong), KErrNone, _L("RPacketContext::Activate timed out."));
+ ASSERT_EQUALS(contextActivateStatus.Int(), KErrNone, _L("RPacketContext::Activate returned with error status."));
+
+ // Check RPacketQoS::NotifyProfileChanged returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with lower values than the requested values used in SetProfileParameters.
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyProfileChangedStatus, ETimeLong), KErrNone, _L("RPacketQoS::NotifyProfileChanged timed out"));
+ ASSERT_EQUALS(notifyProfileChangedStatus.Int(), KErrNone, _L("RPacketQoS::NotifyProfileChanged returned with error status."));
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iDelay > qosGprsRequested.iReqDelay, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDelay."));
+ // Network returns EMeanThroughputBestEffort (0x80000) which is is higher than best EMeanThroughput50000000 (0x40000). That is why comparison must be this way
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iMeanThroughput > qosGprsRequested.iReqMeanThroughput, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMeanThroughput."));
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iPeakThroughput < qosGprsRequested.iReqPeakThroughput, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPeakThroughput."));
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iReliability > qosGprsRequested.iReqReliability, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iReliability."));
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iPrecedence > qosGprsRequested.iReqPrecedence, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPrecedence."));
+ break;
+
+ case EQoSR4: // R99_R4
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficClass > qosR99_R4Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliveryOrderReqd > qosR99_R4Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliverErroneousSDU > qosR99_R4Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxSDUSize < qosR99_R4Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR99_R4Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR99_R4Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iBER < qosR99_R4Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iSDUErrorRatio < qosR99_R4Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficHandlingPriority > qosR99_R4Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTransferDelay > qosR99_R4Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR99_R4Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR99_R4Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
+ break;
+
+ case EQoSR5: // R5
+ ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficClass > qosR5Requested.iReqTrafficClass, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iDeliveryOrderReqd > qosR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iDeliverErroneousSDU > qosR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iMaxSDUSize < qosR5Requested.iReqMaxSDUSize, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iBER < qosR5Requested.iReqBER, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iSDUErrorRatio < qosR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficHandlingPriority > qosR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iTransferDelay > qosR5Requested.iReqTransferDelay, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iSignallingIndication < qosR5Requested.iSignallingIndication, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSignallingIndication."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iSourceStatisticsDescriptor < qosR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::NotifyProfileChanged did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSourceStatisticsDescriptor."));
+ break;
+ }
+
+ // Check RPacketQoS::GetProfileParameters returns aProfile of type TQoSGPRSNegotiated/TQoSR99_R4Negotiated/TQoSR5Negotiated with lower values than the requested values used in SetProfileParameters.
+ TExtEtelRequestStatus getProfileParametersStatus (packetQoS, EPacketQoSGetProfileParams);
+ CleanupStack::PushL(getProfileParametersStatus);
+
+ switch(aQoSCapType)
+ {
+ case EQoSGPRS: // GPRS
+ packetQoS.GetProfileParameters(getProfileParametersStatus, gprsNegotiatedQoSPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
+ ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iDelay > qosGprsRequested.iReqDelay, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDelay."));
+ // Network returns EMeanThroughputBestEffort (0x80000) which is is higher than best EMeanThroughput50000000 (0x40000). That is why comparison must be this way
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iMeanThroughput > qosGprsRequested.iReqMeanThroughput, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMeanThroughput."));
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iPeakThroughput < qosGprsRequested.iReqPeakThroughput, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPeakThroughput."));
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iReliability > qosGprsRequested.iReqReliability, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iReliability."));
+ ASSERT_TRUE(gprsNegotiatedQoSValues.iPrecedence > qosGprsRequested.iReqPrecedence, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iPrecedence."));
+ break;
+
+ case EQoSR4: // R99_R4
+ packetQoS.GetProfileParameters(getProfileParametersStatus, r99_r4NegotiatedQoSPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
+ ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficClass > qosR99_R4Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliveryOrderReqd > qosR99_R4Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iDeliverErroneousSDU > qosR99_R4Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxSDUSize < qosR99_R4Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR99_R4Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR99_R4Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iBER < qosR99_R4Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iSDUErrorRatio < qosR99_R4Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTrafficHandlingPriority > qosR99_R4Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iTransferDelay > qosR99_R4Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR99_R4Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(r99_r4NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR99_R4Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
+ break;
+
+ case EQoSR5: // R5
+ packetQoS.GetProfileParameters(getProfileParametersStatus, r5NegotiatedQoSPk);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getProfileParametersStatus, ETimeLong), KErrNone, _L("RPacketQoS::GetProfileParameters timed out"));
+ ASSERT_EQUALS(getProfileParametersStatus.Int(), KErrNone, _L("RPacketQoS::GetProfileParameters returned with an error"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficClass > qosR5Requested.iReqTrafficClass, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficClass"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iDeliveryOrderReqd > qosR5Requested.iReqDeliveryOrderReqd, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliveryOrderReqd."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iDeliverErroneousSDU > qosR5Requested.iReqDeliverErroneousSDU, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iDeliverErroneousSDU."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iMaxSDUSize < qosR5Requested.iReqMaxSDUSize, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxSDUSize."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iDownlinkRate < qosR5Requested.iReqMaxRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iDownlinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iMaxRate.iUplinkRate < qosR5Requested.iReqMaxRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iMaxRate.iUplinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iBER < qosR5Requested.iReqBER, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iBER."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iSDUErrorRatio < qosR5Requested.iReqSDUErrorRatio, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSDUErrorRatio."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iTrafficHandlingPriority > qosR5Requested.iReqTrafficHandlingPriority, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTrafficHandlingPriority."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iTransferDelay > qosR5Requested.iReqTransferDelay, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iTransferDelay"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iDownlinkRate < qosR5Requested.iReqGuaranteedRate.iDownlinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iDownlinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iGuaranteedRate.iUplinkRate < qosR5Requested.iReqGuaranteedRate.iUplinkRate, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iGuaranteedRate.iUplinkRate"));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iSignallingIndication < qosR5Requested.iSignallingIndication, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSignallingIndication."));
+ ASSERT_TRUE(r5NegotiatedQoSValues.iSourceStatisticsDescriptor < qosR5Requested.iSourceStatisticsDescriptor, _L("RPacketQoS::GetProfileParameters did not return lower profile value than requested value used in RPacketQoS::SetProfileParameters with iSourceStatisticsDescriptor."));
+ break;
+ }
+
+ //Release QoS
+ iEtelSessionMgr.ReleasePrimaryPacketContextQoS(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Release packet context
+ iEtelSessionMgr.ReleasePrimaryPacketContext(KMainServer,
+ KMainPhone,
+ KMainPacketService,
+ KPrimaryPacketContext1);
+
+ // Pop
+ // setProfileParamStatus
+ // setConfigStatus
+ // notifyProfileChangedStatus
+ // contextActivateStatus
+ // getProfileParametersStatus
+ CleanupStack::PopAndDestroy(5, &setProfileParamStatus);
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0060::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0060");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0061::CCTSYIntegrationTestPacketContext0061(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0061::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0061::~CCTSYIntegrationTestPacketContext0061()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0061::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0061
+ * @SYMFssID BA/CTSY/PKTC-0061
+ * @SYMTestCaseDesc Initialise a context.
+ * @SYMTestPriority High
+ * @SYMTestActions RPacketContext::InitialiseContext, RPacketContext::GetStatus, RPacketContext::AddPacketFilter, RPacketContext::NotifyStatusChange, RPacketContext::SetConfig, RPacketQoS::OpenNewQoS, RPacketQoS::GetProfileCapabilities, RPacketQoS::SetProfileParameters, RPacketContext::OpenNewSecondaryContext
+ * @SYMTestExpectedResults Pass - RPacketContext::InitialiseContext returns TDataChannelV2 information.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify comm port information received.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure phone is attached to the packet service.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Open a new primary context.
+
+ // Initialise the context with RPacketContext::InitialiseContext
+
+ // Check RPacketContext::InitialiseContext returns TDataChannelV2::iChannelId of length > 0
+ // Check RPacketContext::InitialiseContext returns TDataChannelV2::iCsy of length > 0
+ // Check RPacketContext::InitialiseContext returns TDataChannelV2::iPort of length > 0
+
+ // Set a valid context config using RPacketContext::SetConfig
+
+ // Activate the context
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus returns EStatusActive
+
+ // Open a new secondary context
+
+ // Initialise the secondary context with RPacketContext::InitialiseContext
+
+ // Check RPacketContext::InitialiseContext for the secondary context returns TDataChannelV2::iChannelId of length > 0
+ // Check RPacketContext::InitialiseContext for the secondary context returns TDataChannelV2::iCsy of length > 0
+ // Check RPacketContext::InitialiseContext for the secondary context returns TDataChannelV2::iPort of length > 0
+
+ // === Add packet filter ===
+
+ // Add a TPacketFilterV2 packet filter to the secondary context using RPacketContext::AddPacketFilter
+
+ // === Add QoS ===
+
+ // Open a new QoS from the secondary context
+
+ // Get GPRS QoS profile capabilities with RPacketQoS::GetProfileCapabilities
+
+ // Set requested profile parameters with RPacketQoS::SetProfileParameters and TQoSGPRSRequested with parameters within range returned by RPacketQoS::GetProfileCapabilities
+
+ // Activate the secondary context with RPacketContext::Activate
+
+ // Check RPacketContext::NotifyStatusChange for the secondary context completes with EStatusActivating -> EStatusActive
+
+ // Check RPacketContext::GetStatus for the secondary context returns EStatusActive
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0061::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0061");
+ }
+
+
+
+CCTSYIntegrationTestPacketContext0062::CCTSYIntegrationTestPacketContext0062(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPacketContextBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPacketContext0062::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPacketContext0062::~CCTSYIntegrationTestPacketContext0062()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPacketContext0062::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PKTC-0062
+ * @SYMFssID BA/CTSY/PKTC-0062
+ * @SYMTestCaseDesc Ensure change in QoS from network is handled correct when new QoS is not acceptable.
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - Context is deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify context is deactivated.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP
+ ////////////////////////////////////////////////////////////////
+
+
+ // Ensure there is a primary PDP context active.
+
+
+ ////////////////////////////////////////////////////////////////
+ // SET UP END
+ ////////////////////////////////////////////////////////////////
+
+ StartTest();
+
+ ////////////////////////////////////////////////////////////////
+ // TEST START
+ ////////////////////////////////////////////////////////////////
+
+
+ // Simulator sends a modify PDP context request message with a QoS that is not acceptable to the phone.
+
+ // Check RPacketContext::NotifyStatusChange completes with EStatusInactive
+
+
+ ////////////////////////////////////////////////////////////////
+ // TEST END
+ ////////////////////////////////////////////////////////////////
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPacketContext0062::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPacketContext0062");
+ }
+
+
+