diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestpacketcontext.cpp --- 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 -#include -#include -#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 -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(FindMSB(aCapabilities.iDelay)); - aParameters.iReqDelay = static_cast(FindLSB(aCapabilities.iDelay)); - aParameters.iMinMeanThroughput = static_cast(FindMSB(aCapabilities.iMean)); - aParameters.iReqMeanThroughput = static_cast(FindLSB(aCapabilities.iMean)); - aParameters.iMinPeakThroughput = static_cast(FindMSB(aCapabilities.iPeak)); - aParameters.iReqPeakThroughput = static_cast(FindLSB(aCapabilities.iPeak)); - aParameters.iMinReliability = static_cast(FindMSB(aCapabilities.iReliability)); - aParameters.iReqReliability = static_cast(FindLSB(aCapabilities.iReliability)); - aParameters.iReqPrecedence = static_cast(FindMSB(aCapabilities.iPrecedence)); - aParameters.iMinPrecedence = static_cast(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(FindLSB(aCapabilities.iTrafficClass)); - aParameters.iMinTrafficClass = static_cast(FindMSB(aCapabilities.iTrafficClass)); - aParameters.iReqDeliveryOrderReqd = static_cast(FindLSB(aCapabilities.iDeliveryOrderReqd)); - aParameters.iMinDeliveryOrderReqd = static_cast(FindMSB(aCapabilities.iDeliveryOrderReqd)); - aParameters.iReqDeliverErroneousSDU = static_cast(FindLSB(aCapabilities.iDeliverErroneousSDU)); - aParameters.iMinDeliverErroneousSDU = static_cast(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(FindLSB(aCapabilities.iBER)); - aParameters.iMaxBER = static_cast(FindMSB(aCapabilities.iBER)); - aParameters.iReqSDUErrorRatio = static_cast(FindLSB(aCapabilities.iSDUErrorRatio)); - aParameters.iMaxSDUErrorRatio = static_cast(FindMSB(aCapabilities.iSDUErrorRatio)); - aParameters.iReqTrafficHandlingPriority = static_cast(FindLSB(aCapabilities.iTrafficHandlingPriority)); - aParameters.iMinTrafficHandlingPriority = static_cast(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(aCapabilities.iSignallingIndication); - aParameters.iSourceStatisticsDescriptor = static_cast(aCapabilities.iSourceStatisticsDescriptor); - } - - -template -void CCTSYIntegrationTestPacketContextBase::GetProfileCapsL(RPacketQoS& aContextQoS, QOSCAPS& aCapabilities) -/** - * Get QoS profile capabilities - * - * @param aContextQoS Reference RPacketQoS object. - * @param aCapabilities Reference to QoS capabilities. - * - */ - { - TPckg 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYProblem: defect id = %d"), 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 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 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("$CTSYProblem: defect id = %d"), 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 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 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 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 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 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYKnownFailure: defect id = %d"), 10061 ); - iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange( - secondaryPacketContext2, - notifyContext2StChStatus, - packetContextStatus2, - expectedPacketContextStatus, - KErrNone); - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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("$CTSYProblem: The LTSY does nothing with the context activation request.")); - // 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 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("$CTSYProblem: defect id = %d"), 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 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 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 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("$CTSYProblem: defect id = %d"), 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 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("$CTSYKnownFailure: defect id = %d"), 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 setConfigPkgGprs(setConfigGprs); - RPacketContext::TContextConfigR99_R4 setConfigR99; - TPckg setConfigPkgR99(setConfigR99); - RPacketContext::TContextConfig_R5 setConfigR5; - TPckg 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 getConfigPkgGprs(getConfigGprs); - RPacketContext::TContextConfigR99_R4 getConfigR99; - TPckg getConfigPkgR99(getConfigR99); - RPacketContext::TContextConfig_R5 getConfigR5; - TPckg 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 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 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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 - 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 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 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 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 - 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 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 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 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("$CTSYProblem: The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext.")); - 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 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 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 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 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("$CTSYProblem: The LTSY or the Anite system has no support to 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 = 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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 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 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 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("@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("@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 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 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 qoSGPRSRequestedPkg(qoSGPRSRequested); - RPacketQoS::TQoSR99_R4Requested qoSR99Requested; - TPckg qoSR99RequestedPkg(qoSR99Requested); - RPacketQoS::TQoSR5Requested qoSR5Requested; - TPckg 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 setConfigPkgGprs(setConfigGprs); - RPacketContext::TContextConfigR99_R4 setConfigR99; - TPckg setConfigPkgR99(setConfigR99); - RPacketContext::TContextConfig_R5 setConfigR5; - TPckg 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 qoSGPRSNegotiatedPkg(qoSGPRSNegotiated); - RPacketQoS::TQoSR99_R4Negotiated qoSR99Negotiated; - TPckg qoSR99NegotiatedPkg(qoSR99Negotiated); - RPacketQoS::TQoSR5Negotiated qoSR5Negotiated; - TPckg 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 qosReqCapsGPRSPckg(qosReqCapsGPRS); - RPacketQoS::TQoSR99_R4Requested qosReqCapsR99; - TPckg qosReqCapsR99Pckg(qosReqCapsR99); - RPacketQoS::TQoSR5Requested qosReqCapsR5; - TPckg 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 qosNegCapsGPRSPckg(qosNegCapsGPRS); - RPacketQoS::TQoSR99_R4Negotiated qosNegCapsR99; - TPckg qosNegCapsR99Pckg(qosNegCapsR99); - RPacketQoS::TQoSR5Negotiated qosNegCapsR5; - TPckg 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 setConfigPkgGprs(setConfigGprs); - RPacketContext::TContextConfigR99_R4 setConfigR99; - TPckg setConfigPkgR99(setConfigR99); - RPacketContext::TContextConfig_R5 setConfigR5; - TPckg 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 qosNegCapsNumberTwoGPRSPckg(qosNegCapsNumberTwoGPRS); - RPacketQoS::TQoSR99_R4Negotiated qosNegCapsNumberTwoR99; - TPckg qosNegCapsNumberTwoR99Pckg(qosNegCapsNumberTwoR99); - RPacketQoS::TQoSR5Negotiated qosNegCapsNumberTwoR5; - TPckg 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 qosGprsReqPckg(qosGprsRequested); - RPacketQoS::TQoSR99_R4Requested qosR99_R4Requested; - TPckg qosR99_R4ReqPckg(qosR99_R4Requested); - RPacketQoS::TQoSR5Requested qosR5Requested; - TPckg 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 gprsConfigPk(gprsConfig); - RPacketContext::TContextConfigR99_R4 r99_r4Config; - TPckg r99_r4ConfigPk(r99_r4Config); - RPacketContext::TContextConfig_R5 r5Config; - TPckg 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 gprsNegotiatedQoSPk(gprsNegotiatedQoSValues); - RPacketQoS::TQoSR99_R4Negotiated r99_r4NegotiatedQoSValues; - TPckg r99_r4NegotiatedQoSPk(r99_r4NegotiatedQoSValues); - RPacketQoS::TQoSR5Negotiated r5NegotiatedQoSValues; - TPckg 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 +#include +#include +#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 +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(FindMSB(aCapabilities.iDelay)); + aParameters.iReqDelay = static_cast(FindLSB(aCapabilities.iDelay)); + aParameters.iMinMeanThroughput = static_cast(FindMSB(aCapabilities.iMean)); + aParameters.iReqMeanThroughput = static_cast(FindLSB(aCapabilities.iMean)); + aParameters.iMinPeakThroughput = static_cast(FindMSB(aCapabilities.iPeak)); + aParameters.iReqPeakThroughput = static_cast(FindLSB(aCapabilities.iPeak)); + aParameters.iMinReliability = static_cast(FindMSB(aCapabilities.iReliability)); + aParameters.iReqReliability = static_cast(FindLSB(aCapabilities.iReliability)); + aParameters.iReqPrecedence = static_cast(FindMSB(aCapabilities.iPrecedence)); + aParameters.iMinPrecedence = static_cast(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(FindLSB(aCapabilities.iTrafficClass)); + aParameters.iMinTrafficClass = static_cast(FindMSB(aCapabilities.iTrafficClass)); + aParameters.iReqDeliveryOrderReqd = static_cast(FindLSB(aCapabilities.iDeliveryOrderReqd)); + aParameters.iMinDeliveryOrderReqd = static_cast(FindMSB(aCapabilities.iDeliveryOrderReqd)); + aParameters.iReqDeliverErroneousSDU = static_cast(FindLSB(aCapabilities.iDeliverErroneousSDU)); + aParameters.iMinDeliverErroneousSDU = static_cast(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(FindLSB(aCapabilities.iBER)); + aParameters.iMaxBER = static_cast(FindMSB(aCapabilities.iBER)); + aParameters.iReqSDUErrorRatio = static_cast(FindLSB(aCapabilities.iSDUErrorRatio)); + aParameters.iMaxSDUErrorRatio = static_cast(FindMSB(aCapabilities.iSDUErrorRatio)); + aParameters.iReqTrafficHandlingPriority = static_cast(FindLSB(aCapabilities.iTrafficHandlingPriority)); + aParameters.iMinTrafficHandlingPriority = static_cast(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(aCapabilities.iSignallingIndication); + aParameters.iSourceStatisticsDescriptor = static_cast(aCapabilities.iSourceStatisticsDescriptor); + } + + +template +void CCTSYIntegrationTestPacketContextBase::GetProfileCapsL(RPacketQoS& aContextQoS, QOSCAPS& aCapabilities) +/** + * Get QoS profile capabilities + * + * @param aContextQoS Reference RPacketQoS object. + * @param aCapabilities Reference to QoS capabilities. + * + */ + { + TPckg 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYProblem: defect id = %d"), 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 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 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("$CTSYProblem: defect id = %d"), 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 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 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 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 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 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYKnownFailure: defect id = %d"), 10061 ); + iPacketServiceTestHelper.WaitForPacketContextNotifyStatusChange( + secondaryPacketContext2, + notifyContext2StChStatus, + packetContextStatus2, + expectedPacketContextStatus, + KErrNone); + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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("$CTSYProblem: The LTSY does nothing with the context activation request.")); + // 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 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("$CTSYProblem: defect id = %d"), 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 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 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 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("$CTSYProblem: defect id = %d"), 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 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("$CTSYKnownFailure: defect id = %d"), 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 setConfigPkgGprs(setConfigGprs); + RPacketContext::TContextConfigR99_R4 setConfigR99; + TPckg setConfigPkgR99(setConfigR99); + RPacketContext::TContextConfig_R5 setConfigR5; + TPckg 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 getConfigPkgGprs(getConfigGprs); + RPacketContext::TContextConfigR99_R4 getConfigR99; + TPckg getConfigPkgR99(getConfigR99); + RPacketContext::TContextConfig_R5 getConfigR5; + TPckg 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 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 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 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 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 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("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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 + 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 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 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 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 + 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 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 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 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("$CTSYProblem: The LTSY or the Anite system has no support to RPacketContext::ModifyActiveContext.")); + 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 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 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 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 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("$CTSYProblem: The LTSY or the Anite system has no support to 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 = 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYKnownFailure: defect id = %d"), 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("$CTSYKnownFailure: defect id = %d"), 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 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 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("$CTSYKnownFailure: defect id = %d"), 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 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 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 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 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("@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("@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 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 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 qoSGPRSRequestedPkg(qoSGPRSRequested); + RPacketQoS::TQoSR99_R4Requested qoSR99Requested; + TPckg qoSR99RequestedPkg(qoSR99Requested); + RPacketQoS::TQoSR5Requested qoSR5Requested; + TPckg 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 setConfigPkgGprs(setConfigGprs); + RPacketContext::TContextConfigR99_R4 setConfigR99; + TPckg setConfigPkgR99(setConfigR99); + RPacketContext::TContextConfig_R5 setConfigR5; + TPckg 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 qoSGPRSNegotiatedPkg(qoSGPRSNegotiated); + RPacketQoS::TQoSR99_R4Negotiated qoSR99Negotiated; + TPckg qoSR99NegotiatedPkg(qoSR99Negotiated); + RPacketQoS::TQoSR5Negotiated qoSR5Negotiated; + TPckg 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 qosReqCapsGPRSPckg(qosReqCapsGPRS); + RPacketQoS::TQoSR99_R4Requested qosReqCapsR99; + TPckg qosReqCapsR99Pckg(qosReqCapsR99); + RPacketQoS::TQoSR5Requested qosReqCapsR5; + TPckg 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 qosNegCapsGPRSPckg(qosNegCapsGPRS); + RPacketQoS::TQoSR99_R4Negotiated qosNegCapsR99; + TPckg qosNegCapsR99Pckg(qosNegCapsR99); + RPacketQoS::TQoSR5Negotiated qosNegCapsR5; + TPckg 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 setConfigPkgGprs(setConfigGprs); + RPacketContext::TContextConfigR99_R4 setConfigR99; + TPckg setConfigPkgR99(setConfigR99); + RPacketContext::TContextConfig_R5 setConfigR5; + TPckg 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 qosNegCapsNumberTwoGPRSPckg(qosNegCapsNumberTwoGPRS); + RPacketQoS::TQoSR99_R4Negotiated qosNegCapsNumberTwoR99; + TPckg qosNegCapsNumberTwoR99Pckg(qosNegCapsNumberTwoR99); + RPacketQoS::TQoSR5Negotiated qosNegCapsNumberTwoR5; + TPckg 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 qosGprsReqPckg(qosGprsRequested); + RPacketQoS::TQoSR99_R4Requested qosR99_R4Requested; + TPckg qosR99_R4ReqPckg(qosR99_R4Requested); + RPacketQoS::TQoSR5Requested qosR5Requested; + TPckg 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 gprsConfigPk(gprsConfig); + RPacketContext::TContextConfigR99_R4 r99_r4Config; + TPckg r99_r4ConfigPk(r99_r4Config); + RPacketContext::TContextConfig_R5 r5Config; + TPckg 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 gprsNegotiatedQoSPk(gprsNegotiatedQoSValues); + RPacketQoS::TQoSR99_R4Negotiated r99_r4NegotiatedQoSValues; + TPckg r99_r4NegotiatedQoSPk(r99_r4NegotiatedQoSValues); + RPacketQoS::TQoSR5Negotiated r5NegotiatedQoSValues; + TPckg 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"); + } + + +