--- a/telephonyserverplugins/simtsy/test/Te_SimPacket/Te_SimPacket.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simtsy/test/Te_SimPacket/Te_SimPacket.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,1544 +1,1544 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// This program is designed the test of the .
-//
-//
-
-/**
- @file
-*/
-
-#include "Te_SimPacket.h"
-
-//******************************************************************************
-// Context Configuration
-//******************************************************************************
-#define SIMTSY_PDP_TYPE1 RPacketContext::EPdpTypePPP
-#define SIMTSY_ACCESS_POINT1 _L8("ACME INTERNET PROVIDERS LTD")
-#define SIMTSY_PDP_ADDRESS1 _L8("i-MODE GATEWAY")
-#define SIMTSY_COMPRESSION1 RPacketContext::KPdpDataCompression
-#define SIMTSY_ANONYMOUS_ACCESS1 RPacketContext::ENotRequired
-#define SIMTSY_EGPRS_REQUIRED TRUE
-
-#define SIMTSY_PDP_TYPE2 RPacketContext::EPdpTypeIPv6
-#define SIMTSY_ACCESS_POINT2 _L8("SYMBIAN EMPLOYEE INTRANET")
-#define SIMTSY_PDP_ADDRESS2 _L8("A WAP PORTAL")
-#define SIMTSY_COMPRESSION2 RPacketContext::KPdpHeaderCompression
-#define SIMTSY_ANONYMOUS_ACCESS2 RPacketContext::ERequired
-
-#define SIMTSY_CSY _L("LOOPBACK.CSY")
-#define SIMTSY_PORT _L("LOOPBACK::0")
-
-#define SIM_PACKET_SERVICE_CAPS (RPacketService::KCapsSuspendSupported | \
- RPacketService::KCapsMSClassSupported |\
- RPacketService::KCapsCDMA2000HighSpeedDataSupported |\
- RPacketService::KCapsNetworkAvailabilitySupported | \
- RPacketService::KCapsProtocolPPPSupported)
-
-#define SIM_PACKET_SERVICE_OPTION RPacketContext::KHighSpeedCDMA2000Data
-#define SIM_PACKET_PROTOCOL RPacketContext::EPdpTypePPP
-#define SIM_DEFAULT_PARAM RPacketContext::KHighSpeedCDMA2000Data
-
-// CHAP authentication
-#define SIM_PACKET_CONTEXT_PROTOCOL1 RPacketContext::EProtocolCHAP
-#define SIM_PACKET_CONTEXT_USERNAME1 _L8("USER1")
-#define SIM_PACKET_CONTEXT_PASSWORD1 _L8("PASSWORD1")
-#define SIM_PACKET_CONTEXT_CHALLENGE1 _L8("CHALLENGE1")
-#define SIM_PACKET_CONTEXT_RESPONSE1 _L8("RESPONSE1")
-#define SIM_PACKET_CONTEXT_PRIMARYSERVER1 _L8("PRIMARYSERVER1")
-#define SIM_PACKET_CONTEXT_SECONDARYSERVER1 _L8("SECONDARYSERVER1")
-#define SIM_PACKET_CONTEXT_ID1 1
-
-// PAP authentication
-#define SIM_PACKET_CONTEXT_PROTOCOL2 RPacketContext::EProtocolPAP
-#define SIM_PACKET_CONTEXT_USERNAME2 _L("USER2")
-#define SIM_PACKET_CONTEXT_PASSWORD2 _L("PASSWORD2")
-#define SIM_PACKET_CONTEXT_CHALLENGE2 _L("NULL")
-#define SIM_PACKET_CONTEXT_RESPONSE2 _L("NULL")
-#define SIM_PACKET_CONTEXT_PRIMARYSERVER2 _L("PRIMARYSERVER2")
-#define SIM_PACKET_CONTEXT_SECONDARYSERVER2 _L("SECONDARYSERVER2")
-#define SIM_PACKET_CONTEXT_ID2 2
-
-//MBMS information
-#define SIM_PACKET_MBMS_TESTNUMBER 0
-#define SIM_PACKET_MBMS_SESSIONID 2
-#define SIM_PACKET_MBMS_SERVICEID 1155
-#define SIM_PACKET_MBMS_MNCID 1122
-#define SIM_PACKET_MBMS_MCCID 1234
-
-//******************************************************************************
-
-static TInt NTRasThreadFunction(TAny* /*aThreadData*/)
-/**
-* Does 'durty' work to start NT RAS session
-* @note It sets
-* iRate = EBps38400;
-* iDataBits = EData8;
-* iStopBits = EStop1 ;
-* iParity = EParityNone;
-* be sure that your NT comport has the same settings.
-*/
- {
- _LIT(KCsyName,"LOOPBACK.CSY");
- _LIT(KPortName,"LOOPBACK::1");
-
- _LIT8(KServerText,"SERVER");
-
- CTrapCleanup* cleanup;
- if ((cleanup=CTrapCleanup::New())==NULL)
- return KErrGeneral;
-
- RCommServ commServ;
- TInt r=commServ.Connect();
- r=commServ.LoadCommModule(KCsyName);
- if( KErrNone == r)
- {
- RComm comm;
- r=comm.Open(commServ,KPortName,ECommShared);
- if( KErrNone == r)
- {
- TBuf8<6> readBuf;
- TRequestStatus stat0;
- comm.Read(stat0,readBuf);
- User::WaitForRequest(stat0) ;
-
- comm.Write(stat0,KServerText);
- User::WaitForRequest(stat0) ;
- }
- comm.Close() ;
- }
- commServ.Close() ;
- delete cleanup;
- return r;
- }
-
-TInt StartNTRasSimulation()
-/**
-* Starts virual, because of lookback serial driver,
-* NT RAS session
-*/
- {
- const TInt KStackSize=0x8000;
- const TInt KHeapSize=0x8000;
- const TInt KMaxHeapSize=0x80000;
- TInt res = KErrNone ;
- _LIT(KNtRasName,"NTRasEmulation");
-
- RThread t;
- res=t.Create(KNtRasName,NTRasThreadFunction,
- KStackSize,KHeapSize,KMaxHeapSize,NULL);
- t.Resume();
- t.Close();
-
- return res;
- }
-
-//------------------------------------------------------------------
-// ** TEST SimPacket STEPS ***
-
-//------------------------------------------------------------------
-
-CGprsDefaultContextParamsTest::CGprsDefaultContextParamsTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsDefaultContextParamsTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsDefaultContextParamsTest::doTestStepL( void )
-/**
- * This tests the default context params
- */
- {
- SetSimtsyTestNumberL(0);
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- // Some default params to set, does not matter what it is.
- // The default params used are defined at the beginning of this file
-
- TESTL(iPacketService.Open(iPhone) == KErrNone);
-
- RPacketContext::TContextConfigGPRS setDefaultParams;
- TPckg<RPacketContext::TContextConfigGPRS> setcontextConfigPckg(setDefaultParams);
-
- setDefaultParams.iPdpType = SIMTSY_PDP_TYPE1;
- setDefaultParams.iAccessPointName = SIMTSY_ACCESS_POINT1;
- setDefaultParams.iPdpAddress = SIMTSY_PDP_ADDRESS1;
- setDefaultParams.iPdpCompression = SIMTSY_COMPRESSION1;
- setDefaultParams.iAnonymousAccessReqd = SIMTSY_ANONYMOUS_ACCESS1;
- setDefaultParams.iUseEdge = SIMTSY_EGPRS_REQUIRED;
- setDefaultParams.iProtocolConfigOption.iAuthInfo.iProtocol = SIM_PACKET_CONTEXT_PROTOCOL1;
- setDefaultParams.iProtocolConfigOption.iAuthInfo.iUsername = SIM_PACKET_CONTEXT_USERNAME1;
- setDefaultParams.iProtocolConfigOption.iAuthInfo.iPassword = SIM_PACKET_CONTEXT_PASSWORD1;
- setDefaultParams.iProtocolConfigOption.iChallenge = SIM_PACKET_CONTEXT_CHALLENGE1;
- setDefaultParams.iProtocolConfigOption.iResponse = SIM_PACKET_CONTEXT_RESPONSE1;
- setDefaultParams.iProtocolConfigOption.iDnsAddresses.iPrimaryDns = SIM_PACKET_CONTEXT_PRIMARYSERVER1;
- setDefaultParams.iProtocolConfigOption.iDnsAddresses.iSecondaryDns = SIM_PACKET_CONTEXT_SECONDARYSERVER1;
- setDefaultParams.iProtocolConfigOption.iId = SIM_PACKET_CONTEXT_ID1;
-
- TESTL(iPacketService.SetDefaultContextParams(setcontextConfigPckg) == KErrNone);
-
- RPacketContext::TContextConfigGPRS getDefaultParams;
- TPckg<RPacketContext::TContextConfigGPRS> getcontextConfigPckg(getDefaultParams);
-
- TESTL(iPacketService.GetDefaultContextParams(getcontextConfigPckg) == KErrNone);
- TestConfigParamsL(setDefaultParams, getDefaultParams);
-
- iPacketService.Close();
- iPhone.Close();
- User::After(100000L);
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CQoSTest::CQoSTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("QoSTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CQoSTest::doTestStepL( void )
-/**
- * This tests the static GPRS caps.
- */
- {
- SetSimtsyTestNumberL(0);
- TBuf<30> contextName;
- TBuf<30> profileName;
- TRequestStatus stat1;
- TRequestStatus stat2;
- RPacketQoS qoS;
- RPacketQoS::TQoSCapsGPRS staticQoSCaps;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
- qoS.OpenNewQoS(iPacketContext[0], profileName);
-
- TPckg<RPacketQoS::TQoSCapsGPRS> staticQoSCapsPkg(staticQoSCaps);
- qoS.GetProfileCapabilities(stat1, staticQoSCapsPkg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TESTL(staticQoSCaps.ExtensionId()==TPacketDataConfigBase::KConfigGPRS);
-
- TESTL(staticQoSCaps.iPrecedence == RPacketQoS::EPriorityMediumPrecedence);
- TESTL(staticQoSCaps.iDelay == RPacketQoS::EDelayClass2 );
- TESTL(staticQoSCaps.iReliability == RPacketQoS::EReliabilityClass2);
- TESTL(staticQoSCaps.iPeak == RPacketQoS::EPeakThroughput64000);
- TESTL(staticQoSCaps.iMean == RPacketQoS::EMeanThroughput100);
-
- RPacketQoS::TQoSGPRSNegotiated negotiatedQoS;
- RPacketQoS::TQoSGPRSRequested SetQoS;
- RPacketQoS::TQoSGPRSNegotiated comparenegotiatedQoS;
- RPacketQoS::TQoSGPRSRequested notifyQoS;
- // Setting to Best effort.
- comparenegotiatedQoS.iPrecedence = RPacketQoS::EPriorityMediumPrecedence;
- comparenegotiatedQoS.iDelay = RPacketQoS::EDelayClass2;
- comparenegotiatedQoS.iReliability = RPacketQoS::EReliabilityClass2;
- comparenegotiatedQoS.iPeakThroughput = RPacketQoS::EPeakThroughput64000;
- comparenegotiatedQoS.iMeanThroughput = RPacketQoS::EMeanThroughput100;
- TPckg<RPacketQoS::TQoSGPRSNegotiated> negotiatedQoSPkg(negotiatedQoS);
- qoS.GetProfileParameters(stat1, negotiatedQoSPkg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TestConfigParamsL(negotiatedQoS, comparenegotiatedQoS);
-
- // Set to anything just to test that it can be done..
- SetQoS.iReqPrecedence = RPacketQoS::EPriorityMediumPrecedence;
- SetQoS.iMinPrecedence = RPacketQoS::EPriorityLowPrecedence;
- SetQoS.iReqDelay = RPacketQoS::EDelayClass2;
- SetQoS.iMinDelay = RPacketQoS::EDelayClass1;
- SetQoS.iReqReliability = RPacketQoS::EReliabilityClass2;
- SetQoS.iMinReliability = RPacketQoS::EReliabilityClass1;
- SetQoS.iReqPeakThroughput = RPacketQoS::EPeakThroughput64000;
- SetQoS.iMinPeakThroughput = RPacketQoS::EPeakThroughput16000;
- SetQoS.iReqMeanThroughput = RPacketQoS::EMeanThroughput2000;
- SetQoS.iMinMeanThroughput = RPacketQoS::EMeanThroughput200;
-
-
- TPckg<RPacketQoS::TQoSGPRSRequested> SetQoSPkg(SetQoS);
- TPckg<RPacketQoS::TQoSGPRSRequested> notifyQoSPkg(notifyQoS);
- qoS.NotifyProfileChanged(stat2, notifyQoSPkg);
- qoS.SetProfileParameters(stat1, SetQoSPkg);
- User::WaitForRequest(stat2);
- User::WaitForRequest(stat1);
- TESTL(stat2.Int() == KErrNone);
- TESTL(stat1.Int() == KErrNone);
-
- qoS.Close();
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsUnSupportedTest::CGprsUnSupportedTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsUnSupportedTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsUnSupportedTest::doTestStepL( void )
-/**
- * Tests all unsupported GPRS API calls to the TSY.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- iPacketService.RejectActivationRequest(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int()== KErrNotSupported);
-
- iPacketService.RejectActivationRequest(stat1);
- iPacketService.CancelAsyncRequest(EPacketRejectActivationRequest);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNotSupported);
-
- RPacketService::TMSClass msClass;
- iPacketService.NotifyMSClassChange(stat1, msClass);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNotSupported);
-
- RPacketService::TAttachMode attachMode = RPacketService::EAttachWhenPossible;
- TESTL(iPacketService.SetAttachMode(attachMode) == KErrNotSupported);
- TESTL(iPacketService.GetAttachMode(attachMode) == KErrNone);
- RPacketService::TRegistrationStatus registrationStatus = RPacketService::ERegisteredRoaming;
- iPacketService.GetNtwkRegStatus(stat1, registrationStatus);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-/* //This test should not be here as this method is supported
- iPacketService.NotifyChangeOfNtwkRegStatus(stat1, registrationStatus);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNotSupported);
-*/
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-
-/** Each test step initialises its own name
-*/
-CTestDynamicCaps::CTestDynamicCaps()
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("TestDynamicCaps"));
- }
-
-/**
- * Tests the dynamic capabilities APIs: RPacketService::GetDynamicCaps and RPacketService::NotifyDynamicCapsChange
- * @return Test step verdict.
- */
-TVerdict CTestDynamicCaps::doTestStepL()
- {
- SetSimtsyTestNumberL(0);
-
- // Initialise and open the packet service...
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- //
- // test GetDynamicCaps
- //
- RPacketService::TDynamicCapsFlags dynCapsFlags;
- TEST(iPacketService.GetDynamicCaps(dynCapsFlags) == KErrNone);
- TEST(dynCapsFlags == RPacketService::KCapsEGPRS);
-
- //
- // test NotifyDynamicCapsChange
- //
- TRequestStatus requestStatus;
- dynCapsFlags = 0;
- iPacketService.NotifyDynamicCapsChange(requestStatus, dynCapsFlags);
- User::WaitForRequest(requestStatus);
- TEST(requestStatus == KErrNone);
- TEST(dynCapsFlags == RPacketService::KCapsHSDPA);
-
- //
- // test cancellation of NotifyDynamicCapsChange
- //
- iPacketService.NotifyDynamicCapsChange(requestStatus, dynCapsFlags);
- iPacketService.CancelAsyncRequest(EPacketNotifyDynamicCapsChange);
- User::WaitForRequest(requestStatus);
- TEST(requestStatus == KErrCancel);
-
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-
-//------------------------------------------------------------------
-
-CGprsContextAttachTest::CGprsContextAttachTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsContextAttachTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsContextAttachTest::doTestStepL( void )
-/**
- * This tests the context attach and detach
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TRequestStatus stat2;
- TBuf<50> contextName;
- RPacketContext::TContextStatus contextStatus;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- StartNTRasSimulation() ;
-
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
-
- iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
- iPacketContext[0].CancelAsyncRequest(EPacketContextNotifyStatusChange);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrCancel);
-
- iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
- iPacketContext[0].Activate(stat2);
-
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TESTL(contextStatus == RPacketContext::EStatusActivating);
-
- iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
- User::WaitForRequest(stat2);
- TESTL(stat2.Int()== KErrNone);
-
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TESTL(contextStatus == RPacketContext::EStatusActive);
-
- iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
-
- // need a few seconds between activating and deactivating - allow NTRAS server to respond
- User::After(100000L);
- iPacketContext[0].Deactivate(stat2);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TESTL(contextStatus == RPacketContext::EStatusDeactivating);
-
- iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
- User::WaitForRequest(stat2);
- TESTL(stat2.Int() == KErrNone);
-
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TESTL(contextStatus == RPacketContext::EStatusInactive);
-
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsContextDeleteTest::CGprsContextDeleteTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsContextDeleteTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsContextDeleteTest::doTestStepL( void )
-/**
- * This tests the context delete.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TBuf<30> contextName;
- RPacketContext::TContextStatus contextStatus;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
-
- iPacketContext[0].Delete(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- iPacketContext[0].Activate(stat1);
- User::WaitForRequest(stat1);
-
- TESTL(stat1.Int() == KErrNotReady);
- TESTL(iPacketContext[0].GetStatus(contextStatus) == KErrNone);
- TESTL(contextStatus == RPacketContext::EStatusDeleted);
-
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsContextLoanComport::CGprsContextLoanComport()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsContextLoanComport"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsContextLoanComport::doTestStepL( void )
-/**
- * This tests the comport loan.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TBuf<30> contextName;
- RCall::TCommPort dataPort;
- StartNTRasSimulation() ;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
-
- iPacketContext[0].RecoverCommPort(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrEtelPortNotLoanedToClient);
-
- //!!!!
- iPacketContext[0].LoanCommPort(stat1, dataPort);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrEtelCallNotActive);
-
- iPacketContext[0].Activate(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- iPacketContext[0].LoanCommPort(stat1, dataPort);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- iPacketContext[0].Activate(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrEtelCallAlreadyActive);
-
- iPacketContext[0].RecoverCommPort(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- iPacketContext[0].Deactivate(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsContextUnSupportedTest::CGprsContextUnSupportedTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsContextUnSupportedTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsContextUnSupportedTest::doTestStepL( void )
-/**
- * This tests all GPRS context API calls.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TBuf<30> contextName;
- RPacketContext::TDataVolume volume;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
-
- TESTL(iPacketContext[0].GetDataVolumeTransferred(volume) == KErrNotSupported);
- iPacketContext[0].NotifyDataTransferred(stat1, volume);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNotSupported);
-
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsCancelTest::CGprsCancelTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsCancelTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsCancelTest::doTestStepL( void )
-/**
- * This test will call all GPRS API calls
- * that can be canceled with an outstanding request
- * to the phone.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- iPacketService.Attach(stat);
- iPacketService.CancelAsyncRequest(EPacketAttach);
- User::WaitForRequest(stat);
- TESTL((stat.Int() == KErrCancel) || (stat.Int() == KErrNone));
-
- iPacketService.Detach(stat);
- iPacketService.CancelAsyncRequest(EPacketDetach);
- User::WaitForRequest(stat);
- TESTL((stat.Int() == KErrCancel)||(stat.Int() == KErrNone));
-
- RPacketService::TMSClass currentClass;
- RPacketService::TMSClass maxClass;
-
- iPacketService.GetMSClass(stat, currentClass, maxClass);
- iPacketService.CancelAsyncRequest(EPacketGetMSClass);
- User::WaitForRequest(stat);
- TESTL((stat.Int() == KErrCancel)||(stat.Int() == KErrNone));
-
- currentClass = RPacketService::EMSClassSuspensionRequired;
- iPacketService.SetMSClass(stat, currentClass);
- iPacketService.CancelAsyncRequest(EPacketSetMSClass);
- User::WaitForRequest(stat);
- TESTL((stat.Int() == KErrCancel)||(stat.Int() == KErrNone));
-
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsAttachTest::CGprsAttachTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsAttachTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsAttachTest::doTestStepL( void )
-/**
- * This tests the attach and detach.
- */
- {
- SetSimtsyTestNumberL(0);
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TRequestStatus stat1;
- RPacketService::TStatus status;
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- iPacketService.Attach(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- iPacketService.GetStatus(status);
- TESTL(status == RPacketService::EStatusAttached);
- iPacketService.Detach(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- iPacketService.GetStatus(status);
- TESTL(status == RPacketService::EStatusUnattached);
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsNotificationTest::CGprsNotificationTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsNotificationTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsNotificationTest::doTestStepL( void )
-/**
- * Tests Notify Context added, Tests Notify status
- */
- {
- SetSimtsyTestNumberL(1);
- TRequestStatus stat1,stat2,stat3;
- TBuf<20> context= _L("");
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TBuf<40> contextId;
-
- iPacketService.NotifyContextAdded(stat1, contextId);
- iPacketService.CancelAsyncRequest(EPacketNotifyContextAdded);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int()== KErrCancel);
- iPacketService.NotifyContextAdded(stat1, contextId);
-
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, context) == KErrNone);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- RPacketService::TStatus gprsStatus;
- iPacketService.NotifyStatusChange(stat2, gprsStatus);
- iPacketService.CancelAsyncRequest(EPacketNotifyStatusChange);
- User::WaitForRequest(stat2);
- TESTL(stat2.Int() == KErrCancel);
-
- iPacketService.NotifyStatusChange(stat2, gprsStatus);
- iPacketService.Attach(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- User::WaitForRequest(stat2);
- TESTL(stat2.Int() == KErrNone);
- TESTL(gprsStatus == RPacketService::EStatusAttached);
-
- iPacketService.NotifyStatusChange(stat3, gprsStatus);
- iPacketService.Detach(stat1);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- User::WaitForRequest(stat3);
- TESTL(stat3.Int() == KErrNone);
- TESTL(gprsStatus == RPacketService::EStatusUnattached);
-
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsMsClassTest::CGprsMsClassTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsMsClassTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsMsClassTest::doTestStepL( void )
-/**
- * This tests the MS Class.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- RPacketService::TMSClass currentClass;
- RPacketService::TMSClass maxClass;
- iPacketService.GetMSClass(stat1, currentClass, maxClass);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- iPacketService.SetMSClass(stat1, currentClass);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TESTL(currentClass == RPacketService::EMSClassSuspensionRequired);
- TESTL(maxClass == RPacketService::EMSClassSuspensionRequired);
-
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsContextConfigTest::CGprsContextConfigTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsContextConfigTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsContextConfigTest::doTestStepL( void )
-/**
- * Test context config.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TBuf<30> contextName;
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
- TESTL(iPacketContext[1].OpenNewContext(iPacketService, contextName) == KErrNone);
-
- RPacketContext::TContextConfigGPRS Getparams;
- RPacketContext::TContextConfigGPRS Setparams;
- Setparams.iPdpType = SIMTSY_PDP_TYPE2;
- Setparams.iAccessPointName = SIMTSY_ACCESS_POINT2;
- Setparams.iPdpAddress = SIMTSY_PDP_ADDRESS2;
- Setparams.iPdpCompression = SIMTSY_COMPRESSION2;
- Setparams.iAnonymousAccessReqd = SIMTSY_ANONYMOUS_ACCESS2;
- Setparams.iUseEdge = SIMTSY_EGPRS_REQUIRED;
-
- TPckg<RPacketContext::TContextConfigGPRS> GetcontextConfigPckg(Getparams);
- iPacketContext[0].GetConfig(stat1, GetcontextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- Setparams = Getparams;
-
- TPckg<RPacketContext::TContextConfigGPRS> SetcontextConfigPckg(Setparams);
- iPacketContext[0].SetConfig(stat1, SetcontextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- iPacketContext[1].SetConfig(stat1, SetcontextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- iPacketContext[0].GetConfig(stat1, SetcontextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TRequestStatus stat;
- iPacketContext[0].SetConfig(stat, SetcontextConfigPckg);
- iPacketContext[0].CancelAsyncRequest(EPacketContextSetConfig);
- User::WaitForRequest(stat);
- TESTL(stat.Int() == KErrCancel || stat.Int() == KErrNone);
- //!!!!
- iPacketContext[0].GetConfig(stat, GetcontextConfigPckg);
- iPacketContext[0].CancelAsyncRequest(EPacketContextGetConfig);
- User::WaitForRequest(stat);
- TESTL(stat.Int() == KErrCancel || stat.Int() == KErrNone);
-
-
- Setparams.iPdpType = RPacketContext::TProtocolType(20); // Set out of range
- TPckg<RPacketContext::TContextConfigGPRS> errorPackage(Setparams);
- iPacketContext[0].SetConfig(stat1, errorPackage);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrCorrupt);
-
-
- iPacketContext[0].Close();
- iPacketContext[1].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-CGprsContextConfigNotificationsTest::CGprsContextConfigNotificationsTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsContextConfigNotificationsTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsContextConfigNotificationsTest::doTestStepL( void )
-/**
- * Test context notifications.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1, stat2;
- TBuf<30> contextName;
- RPacketContext::TContextConfigGPRS params, notifyParams;
- TPckg<RPacketContext::TContextConfigGPRS> contextConfigPckg(params);
- TPckg<RPacketContext::TContextConfigGPRS> notifyContextConfigPckg(notifyParams);
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
- TESTL(iPacketContext[1].OpenNewContext(iPacketService, contextName) == KErrNone);
- iPacketContext[0].NotifyConfigChanged(stat1, notifyContextConfigPckg);
- iPacketContext[0].CancelAsyncRequest(EPacketContextNotifyConfigChanged);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrCancel);
-
- iPacketContext[0].GetConfig(stat1, contextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- iPacketContext[0].NotifyConfigChanged(stat1, notifyContextConfigPckg);
-
- iPacketContext[0].SetConfig(stat2, contextConfigPckg);
- User::WaitForRequest(stat2);
- TESTL(stat2.Int() == KErrNone);
-
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- TestConfigParamsL(params, notifyParams);
-
- iPacketContext[0].Close();
- iPacketContext[1].Close();
- iPacketService.Close();
- iPhone.Close();
- User::After(1000000); // to allow the next text to be able to see the contexts as closed
- return TestStepResult();
- }
-//------------------------------------------------------------------
-
-COpenGprsMaxContextsTest::COpenGprsMaxContextsTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("OpenGprsMaxContextsTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict COpenGprsMaxContextsTest::doTestStepL( void )
-/**
- * Tests enumerate contexts, open new context, open existing context.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- TBuf<20> contextName = _L("");
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
-
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TInt countContexts;
- TInt maxAllowedContexts;
- //!!!
- iPacketService.EnumerateContexts(stat1, countContexts, maxAllowedContexts);
- User::WaitForRequest(stat1);
- TESTL(countContexts == 0);
-
- TESTL(maxAllowedContexts == 11);
-
- TInt i = 0;
- RPacketService::TContextInfo contextinfo;
-
- for(i = 0; i < maxAllowedContexts;i++)
- {
- RPacketContext contextPacket;
- TBuf<30> tmpContextName;
- tmpContextName = _L("PRIMARY");
- tmpContextName.AppendNum(i+1);
- TESTL(iPacketContext[i].OpenNewContext(iPacketService, contextName) == KErrNone);
- iPacketService.GetContextInfo(stat1, i, contextinfo);
- User::WaitForRequest(stat1);
- TESTL(contextinfo.iName == tmpContextName);
- TESTL(contextinfo.iStatus == RPacketContext::EStatusInactive);
- TESTL(contextPacket.OpenExistingContext(iPacketService, contextName) == KErrNone);
- TESTL(contextName == tmpContextName);
- contextPacket.Close();
- iPhone.Close();
- }
-
- iPacketService.GetContextInfo(stat1, i+1, contextinfo);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrArgument);
- for(i = 0; i < maxAllowedContexts;i++)
- {
- iPacketContext[i].Close();
- }
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-
-//------------------------------------------------------------------
-
-CGprsContextConfigArbitraryAddressTest::CGprsContextConfigArbitraryAddressTest()
-/** Each test step initialises it's own name
-*/
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("GprsContextConfigArbitraryAddressTest"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGprsContextConfigArbitraryAddressTest::doTestStepL()
-/**
- * Test context config.
- */
- {
- SetSimtsyTestNumberL(0);
- TRequestStatus stat1;
- RPacketContext::TContextConfigGPRS getParams;
- RPacketContext::TContextConfigGPRS setParams;
-
- // Loading configuration from File
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
- TBuf<30> contextName;
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
-
- // Getting the Actual Configuration
- TPckg<RPacketContext::TContextConfigGPRS> getContextConfigPckg(getParams);
- iPacketContext[0].GetConfig(stat1, getContextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
- setParams = getParams;
-
- // Hacking the PdpAddress with an Arbitrary String (doesn't need to be a proper IP)
- setParams.iPdpAddress = _L8("ARBITRARY ADDRESS");
-
- // Setting the New Configuration checking that it is accepted (no "KErrCorrupt")
- TPckg<RPacketContext::TContextConfigGPRS> setContextConfigPckg(setParams);
- iPacketContext[0].SetConfig(stat1, setContextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() != KErrCorrupt && stat1.Int() == KErrNone);
-
- // Getting the Configuration
- iPacketContext[0].GetConfig(stat1, setContextConfigPckg);
- User::WaitForRequest(stat1);
- TESTL(stat1.Int() == KErrNone);
-
- // Checking the Configuration was correctly changed by Sim.tsy
- TESTL(setParams.iPdpAddress.Compare(getParams.iPdpAddress) == 0);
-
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
- return TestStepResult();
- }
-
-//------------------------------------------------------------------
-
-CMbmsOpenNewContextTest::CMbmsOpenNewContextTest()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap1"));
- }
-//------------------------------------------------------------------
-
-TVerdict CMbmsOpenNewContextTest::doTestStepL( void )
-/**
- * Tests creation of new MBMS context activation using
- * OpenNewContext of RPacketMbmsContext
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- TInt ret= iPacketMbmsContext.OpenNewContext(iPacketService, contextName);
- TEST(ret == KErrNone); //OpenNewContext will not use any capabilities.
-
- iPacketMbmsContext.Close();
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-
-//-------------------------------------------------------------------------
-
-CMbmsUpdateSessionTest::CMbmsUpdateSessionTest()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap2"));
- }
-//------------------------------------------------------------------
-
-TVerdict CMbmsUpdateSessionTest::doTestStepL( void )
-/**
- * Tests creation of new MBMS context activation and
- * tests the update session functionality of the MBMS context using the
- * API MbmsUpdateSessionTest of RPacketMbmsContext
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- TInt ret= iPacketMbmsContext.OpenNewContext(iPacketService, contextName);
- TESTL(ret == KErrNone);
-
- RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
- TPckg<RPacketMbmsContext::TContextConfigMbmsV1> contextConfigPckg(contextConfig);
-
- //Get configuration for the MBMS
- iPacketMbmsContext.GetConfig(reqStatus, contextConfigPckg);
- User::WaitForRequest(reqStatus);
-
- RPacketContext::TContextStatus contextStatus;
- TRequestStatus notifyStatusRequest;
- iPacketMbmsContext.NotifyStatusChange(notifyStatusRequest, contextStatus);
-
- // Activate the MBMS context
- iPacketMbmsContext.Activate(reqStatus);
- User::WaitForRequest(reqStatus);
-
- User::WaitForRequest(notifyStatusRequest);//completes NotifyStatusChange with state “ctivating”
-
- /** Session is added to the activated services table */
- TMbmsAction aAction=EAddEntries;
- TUint sessionid=SIM_PACKET_MBMS_SESSIONID;
- TRequestStatus updateSessionRequest;
- iPacketMbmsContext.UpdateMbmsSessionList(updateSessionRequest,reinterpret_cast<TMbmsAction &>(aAction), sessionid);
-
- /** the state of the session added changes from inactive to activated */
- User::WaitForRequest(updateSessionRequest);//completes UpdateSession
- TESTL(updateSessionRequest.Int() == KErrPermissionDenied);
-
- iPacketMbmsContext.Close();
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-//-------------------------------------------------------------------------
-CGetMbmsNetworkServiceStatus::CGetMbmsNetworkServiceStatus()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap3"));
- }
-//------------------------------------------------------------------
-
-TVerdict CGetMbmsNetworkServiceStatus::doTestStepL( void )
-/**
- * Tests the functionality of GetMbmsNetworkServiceStatus of RPacketService.
- *
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- TMbmsNetworkServiceStatus tMbmsNetworkServiceStatus;
- TBool attemptAttached = ETrue;
-
- iPacketService.GetMbmsNetworkServiceStatus(reqStatus, attemptAttached, tMbmsNetworkServiceStatus);
- User::WaitForRequest(reqStatus);
- TESTL(reqStatus.Int() == KErrPermissionDenied);
-
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-//-------------------------------------------------------------------------
-
-CNotifyMbmsNetworkServiceStatusChange::CNotifyMbmsNetworkServiceStatusChange()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap4"));
- }
-//------------------------------------------------------------------
-
-TVerdict CNotifyMbmsNetworkServiceStatusChange::doTestStepL( void )
-/**
- * Tests the functionality of NotifyMbmsNetworkServiceStatusChange of RPacketService.
- *
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- TMbmsNetworkServiceStatus tMbmsNetworkServiceStatus;
-
- //To get notified when the network service status changes
- iPacketService.NotifyMbmsNetworkServiceStatusChange(reqStatus, tMbmsNetworkServiceStatus);
- User::WaitForRequest(reqStatus);
-
- TESTL(reqStatus.Int() == KErrPermissionDenied);
-
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-//-------------------------------------------------------------------------
-
-CNotifyMbmsServiceAvailabilityChange::CNotifyMbmsServiceAvailabilityChange()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap5"));
- }
-//------------------------------------------------------------------
-
-TVerdict CNotifyMbmsServiceAvailabilityChange::doTestStepL( void )
-/**
- * Tests Notification of the Service Availability List using the
- * API NotifyMbmsServiceAvailabilityListChange of RPacketService.
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- CPcktMbmsMonitoredServiceList* mbmslist = CPcktMbmsMonitoredServiceList::NewL();
- CleanupStack::PushL(mbmslist);
-
- //Update the Mbms service availability List
- TMbmsAction aAction=EAddEntries;
- iPacketService.UpdateMbmsMonitorServiceListL(reqStatus, reinterpret_cast<TMbmsAction &>(aAction), mbmslist);
- User::WaitForRequest(reqStatus);
-
- //Notify the change in the mbms service parameter list
- iPacketService.NotifyMbmsServiceAvailabilityChange (reqStatus);
- User::WaitForRequest(reqStatus);
- TESTL(reqStatus.Int() == KErrNone);
-
- CleanupStack::PopAndDestroy(); //mbmslist
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-
-//-------------------------------------------------------------------------
-
-CUpdateMbmsMonitorServiceList::CUpdateMbmsMonitorServiceList()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap6"));
- }
-//------------------------------------------------------------------
-
-TVerdict CUpdateMbmsMonitorServiceList::doTestStepL( void )
-/**
- * Tests updation of the Service Monitoring List using the
- * API UpdateMbmsMonitorServiceListL of RPacketService.
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- CPcktMbmsMonitoredServiceList* mbmsList = CPcktMbmsMonitoredServiceList::NewL();
- CleanupStack::PushL(mbmsList);
-
- /* ADD SERVICE */
-
- RPacketService::TMbmsServiceAvailabilityV1 mbmsServAvail;
- TMbmsAction action=EAddEntries;
- TInt ab1=0,s1=1,a1=0;
- TInt ab2=1,s2=2,a2=0;
-
- mbmsServAvail.iTmgi.SetServiceId(SIM_PACKET_MBMS_SERVICEID);
- mbmsServAvail.iTmgi.SetMCC(SIM_PACKET_MBMS_MCCID);
- mbmsServAvail.iTmgi.SetMNC(SIM_PACKET_MBMS_MNCID);
- mbmsServAvail.iMbmsServiceMode = reinterpret_cast<TMbmsServiceMode&>(s1);
- mbmsServAvail.iMbmsAvailabilityStatus = reinterpret_cast<TMbmsAvailabilityStatus&>(a1);
- mbmsServAvail.iMbmsAccessBearer = reinterpret_cast<TMbmsScope&>(ab1);
- mbmsList->AddEntryL(mbmsServAvail);
-
- mbmsServAvail.iTmgi.SetServiceId(SIM_PACKET_MBMS_SERVICEID);
- mbmsServAvail.iTmgi.SetMCC(SIM_PACKET_MBMS_MCCID);
- mbmsServAvail.iTmgi.SetMNC(SIM_PACKET_MBMS_MNCID);
- mbmsServAvail.iMbmsServiceMode = reinterpret_cast<TMbmsServiceMode&>(s2);
- mbmsServAvail.iMbmsAvailabilityStatus = reinterpret_cast<TMbmsAvailabilityStatus&>(a2);
- mbmsServAvail.iMbmsAccessBearer = reinterpret_cast<TMbmsScope&>(ab2);
- mbmsList->AddEntryL(mbmsServAvail);
-
- iPacketService.UpdateMbmsMonitorServiceListL(reqStatus,action,mbmsList);
- User::WaitForRequest(reqStatus);
- CleanupStack::PopAndDestroy();
- TESTL(reqStatus.Int() == KErrPermissionDenied);
-
- /* REMOVE SPECIFIC SERVICE */
- mbmsList= CPcktMbmsMonitoredServiceList::NewL();
- CleanupStack::PushL(mbmsList);
- action=ERemoveEntries;
- mbmsServAvail.iTmgi.SetServiceId(2345);
- mbmsServAvail.iTmgi.SetMCC(2345);
- mbmsServAvail.iTmgi.SetMNC(2345);
- mbmsServAvail.iMbmsServiceMode = reinterpret_cast<TMbmsServiceMode&>(s2);
- mbmsServAvail.iMbmsAvailabilityStatus = reinterpret_cast<TMbmsAvailabilityStatus&>(a2);
- mbmsServAvail.iMbmsAccessBearer = reinterpret_cast<TMbmsScope&>(ab2);
- mbmsList->AddEntryL(mbmsServAvail);
-
- iPacketService.UpdateMbmsMonitorServiceListL(reqStatus,action,mbmsList);
- User::WaitForRequest(reqStatus);
- CleanupStack::PopAndDestroy();
- TESTL(reqStatus.Int() == KErrPermissionDenied);
-
- /* REMOVE_ALL */
- action=ERemoveAllEntries;
- iPacketService.UpdateMbmsMonitorServiceListL(reqStatus,action);
- User::WaitForRequest(reqStatus);
-
- TESTL(reqStatus.Int() == KErrPermissionDenied);
-
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-//-------------------------------------------------------------------------
-
-CEnumerateMbmsActiveServiceList::CEnumerateMbmsActiveServiceList()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap7"));
- }
-//------------------------------------------------------------------
-
-TVerdict CEnumerateMbmsActiveServiceList::doTestStepL( void )
-/**
- * Tests the functionality of EnumerateMbmsActiveServiceList of RPacketService.
- *
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- TInt currActiveServices, maxActiveServices;
- iPacketService.EnumerateMbmsActiveServiceList(reqStatus,currActiveServices, maxActiveServices);
- User::WaitForRequest(reqStatus);
-
- TESTL(reqStatus.Int() == KErrPermissionDenied);
-
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-
-//-------------------------------------------------------------------------
-
-CEnumerateMbmsMonitorServiceList::CEnumerateMbmsMonitorServiceList()
-/** Each test step initialises it's own name
- */
- {
- // store the name of this test case
- // this is the name that is used by the script file
- SetTestStepName(_L("EtelPcktMbmsCap8"));
- }
-//------------------------------------------------------------------
-
-TVerdict CEnumerateMbmsMonitorServiceList::doTestStepL( void )
-/**
- * Tests the functionality of EnumerateMbmsActiveServiceList of RPacketService.
- *
- */
- {
- SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
- TRequestStatus reqStatus;
- TBuf<20> contextName = _L("");
-
- TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
- TESTL(iPhone.Initialise()==KErrNone);
- TESTL(iPacketService.Open(iPhone ) == KErrNone);
-
- TInt currActiveServices, maxActiveServices;
- iPacketService.EnumerateMbmsActiveServiceList(reqStatus,currActiveServices, maxActiveServices);
- User::WaitForRequest(reqStatus);
-
- TESTL(reqStatus.Int() == KErrPermissionDenied);
-
- iPacketService.Close();
- iPhone.Close();
-
- return TestStepResult();
- }
-
-
-/**
- * Tests closing one of two handles that both have notifications on them.
- * This can cause ETel to close multiple requests during the same cancel
- * request, which in turn can panic ETel if the iterator gets corrupted.
- *
- * @return Test step verdict.
- */
-TVerdict CTestMultipleCompletionWithClosingContext::doTestStepL()
- {
- //
- // Initialise and open the packet service...
- //
- SetSimtsyTestNumberL(2);
-
- TESTL(iPhone.Open(iTelServer, KPhoneName) == KErrNone);
- TESTL(iPhone.Initialise() == KErrNone);
- TESTL(iPacketService.Open(iPhone) == KErrNone);
- StartNTRasSimulation();
-
- //
- // Open the first context...
- //
- TRequestStatus activateContext1Status;
- TBuf<50> contextName;
-
- TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
- iPacketContext[0].Activate(activateContext1Status);
- User::WaitForRequest(activateContext1Status);
-
- //
- // Open the second context...
- //
- TRequestStatus activateContext2Status;
-
- TESTL(iPacketContext[1].OpenNewContext(iPacketService, contextName) == KErrNone);
- iPacketContext[1].Activate(activateContext2Status);
- User::WaitForRequest(activateContext2Status);
-
- //
- // Open another handle to the second context by name...
- //
- TESTL(iPacketContext[2].OpenExistingContext(iPacketService, _L("PRIMARY2")) == KErrNone);
-
- //
- // Post notifications on both handles for the second context...
- //
- TRequestStatus notifyContext1Status, notifyContext2Status;
- RPacketContext::TContextStatus contextStatus1, contextStatus2;
-
- iPacketContext[1].NotifyStatusChange(notifyContext1Status, contextStatus1);
- iPacketContext[2].NotifyStatusChange(notifyContext2Status, contextStatus2);
-
- //
- // Delete second context using the first handle...
- //
- TRequestStatus deleteContext2Status;
-
- iPacketContext[1].Delete(deleteContext2Status);
- User::WaitForRequest(deleteContext2Status);
-
- //
- // The notifications will have triggered and a request will have
- // been reposted to the TSY.
- //
- User::WaitForRequest(notifyContext1Status);
- User::WaitForRequest(notifyContext2Status);
-
- //
- // Deactivate the fist context...
- //
- TRequestStatus deactivateContext1Status;
-
- iPacketContext[0].Deactivate(deactivateContext1Status);
- User::WaitForRequest(deactivateContext1Status);
-
- //
- // Close the contexts. Note this is closing iPacketContext[1] before
- // iPacketContext[2]! This forces the notification from the first handle
- // to move to the second handle, but there it errors as the context is
- // closed. This would cause ETel server to panic with KERN-EXEC:3.
- //
- iPacketContext[1].Close();
- iPacketContext[2].Close();
- iPacketContext[0].Close();
- iPacketService.Close();
- iPhone.Close();
-
- //
- // Now check that ETel is still up...
- //
- TEST(iPhone.Open(iTelServer, KPhoneName) == KErrNone);
- iPhone.Close();
-
- return TestStepResult();
- } // CTestMultipleCompletionWithClosingContext::doTestStepL
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This program is designed the test of the .
+//
+//
+
+/**
+ @file
+*/
+
+#include "Te_SimPacket.h"
+
+//******************************************************************************
+// Context Configuration
+//******************************************************************************
+#define SIMTSY_PDP_TYPE1 RPacketContext::EPdpTypePPP
+#define SIMTSY_ACCESS_POINT1 _L8("ACME INTERNET PROVIDERS LTD")
+#define SIMTSY_PDP_ADDRESS1 _L8("i-MODE GATEWAY")
+#define SIMTSY_COMPRESSION1 RPacketContext::KPdpDataCompression
+#define SIMTSY_ANONYMOUS_ACCESS1 RPacketContext::ENotRequired
+#define SIMTSY_EGPRS_REQUIRED TRUE
+
+#define SIMTSY_PDP_TYPE2 RPacketContext::EPdpTypeIPv6
+#define SIMTSY_ACCESS_POINT2 _L8("SYMBIAN EMPLOYEE INTRANET")
+#define SIMTSY_PDP_ADDRESS2 _L8("A WAP PORTAL")
+#define SIMTSY_COMPRESSION2 RPacketContext::KPdpHeaderCompression
+#define SIMTSY_ANONYMOUS_ACCESS2 RPacketContext::ERequired
+
+#define SIMTSY_CSY _L("LOOPBACK.CSY")
+#define SIMTSY_PORT _L("LOOPBACK::0")
+
+#define SIM_PACKET_SERVICE_CAPS (RPacketService::KCapsSuspendSupported | \
+ RPacketService::KCapsMSClassSupported |\
+ RPacketService::KCapsCDMA2000HighSpeedDataSupported |\
+ RPacketService::KCapsNetworkAvailabilitySupported | \
+ RPacketService::KCapsProtocolPPPSupported)
+
+#define SIM_PACKET_SERVICE_OPTION RPacketContext::KHighSpeedCDMA2000Data
+#define SIM_PACKET_PROTOCOL RPacketContext::EPdpTypePPP
+#define SIM_DEFAULT_PARAM RPacketContext::KHighSpeedCDMA2000Data
+
+// CHAP authentication
+#define SIM_PACKET_CONTEXT_PROTOCOL1 RPacketContext::EProtocolCHAP
+#define SIM_PACKET_CONTEXT_USERNAME1 _L8("USER1")
+#define SIM_PACKET_CONTEXT_PASSWORD1 _L8("PASSWORD1")
+#define SIM_PACKET_CONTEXT_CHALLENGE1 _L8("CHALLENGE1")
+#define SIM_PACKET_CONTEXT_RESPONSE1 _L8("RESPONSE1")
+#define SIM_PACKET_CONTEXT_PRIMARYSERVER1 _L8("PRIMARYSERVER1")
+#define SIM_PACKET_CONTEXT_SECONDARYSERVER1 _L8("SECONDARYSERVER1")
+#define SIM_PACKET_CONTEXT_ID1 1
+
+// PAP authentication
+#define SIM_PACKET_CONTEXT_PROTOCOL2 RPacketContext::EProtocolPAP
+#define SIM_PACKET_CONTEXT_USERNAME2 _L("USER2")
+#define SIM_PACKET_CONTEXT_PASSWORD2 _L("PASSWORD2")
+#define SIM_PACKET_CONTEXT_CHALLENGE2 _L("NULL")
+#define SIM_PACKET_CONTEXT_RESPONSE2 _L("NULL")
+#define SIM_PACKET_CONTEXT_PRIMARYSERVER2 _L("PRIMARYSERVER2")
+#define SIM_PACKET_CONTEXT_SECONDARYSERVER2 _L("SECONDARYSERVER2")
+#define SIM_PACKET_CONTEXT_ID2 2
+
+//MBMS information
+#define SIM_PACKET_MBMS_TESTNUMBER 0
+#define SIM_PACKET_MBMS_SESSIONID 2
+#define SIM_PACKET_MBMS_SERVICEID 1155
+#define SIM_PACKET_MBMS_MNCID 1122
+#define SIM_PACKET_MBMS_MCCID 1234
+
+//******************************************************************************
+
+static TInt NTRasThreadFunction(TAny* /*aThreadData*/)
+/**
+* Does 'durty' work to start NT RAS session
+* @note It sets
+* iRate = EBps38400;
+* iDataBits = EData8;
+* iStopBits = EStop1 ;
+* iParity = EParityNone;
+* be sure that your NT comport has the same settings.
+*/
+ {
+ _LIT(KCsyName,"LOOPBACK.CSY");
+ _LIT(KPortName,"LOOPBACK::1");
+
+ _LIT8(KServerText,"SERVER");
+
+ CTrapCleanup* cleanup;
+ if ((cleanup=CTrapCleanup::New())==NULL)
+ return KErrGeneral;
+
+ RCommServ commServ;
+ TInt r=commServ.Connect();
+ r=commServ.LoadCommModule(KCsyName);
+ if( KErrNone == r)
+ {
+ RComm comm;
+ r=comm.Open(commServ,KPortName,ECommShared);
+ if( KErrNone == r)
+ {
+ TBuf8<6> readBuf;
+ TRequestStatus stat0;
+ comm.Read(stat0,readBuf);
+ User::WaitForRequest(stat0) ;
+
+ comm.Write(stat0,KServerText);
+ User::WaitForRequest(stat0) ;
+ }
+ comm.Close() ;
+ }
+ commServ.Close() ;
+ delete cleanup;
+ return r;
+ }
+
+TInt StartNTRasSimulation()
+/**
+* Starts virual, because of lookback serial driver,
+* NT RAS session
+*/
+ {
+ const TInt KStackSize=0x8000;
+ const TInt KHeapSize=0x8000;
+ const TInt KMaxHeapSize=0x80000;
+ TInt res = KErrNone ;
+ _LIT(KNtRasName,"NTRasEmulation");
+
+ RThread t;
+ res=t.Create(KNtRasName,NTRasThreadFunction,
+ KStackSize,KHeapSize,KMaxHeapSize,NULL);
+ t.Resume();
+ t.Close();
+
+ return res;
+ }
+
+//------------------------------------------------------------------
+// ** TEST SimPacket STEPS ***
+
+//------------------------------------------------------------------
+
+CGprsDefaultContextParamsTest::CGprsDefaultContextParamsTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsDefaultContextParamsTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsDefaultContextParamsTest::doTestStepL( void )
+/**
+ * This tests the default context params
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ // Some default params to set, does not matter what it is.
+ // The default params used are defined at the beginning of this file
+
+ TESTL(iPacketService.Open(iPhone) == KErrNone);
+
+ RPacketContext::TContextConfigGPRS setDefaultParams;
+ TPckg<RPacketContext::TContextConfigGPRS> setcontextConfigPckg(setDefaultParams);
+
+ setDefaultParams.iPdpType = SIMTSY_PDP_TYPE1;
+ setDefaultParams.iAccessPointName = SIMTSY_ACCESS_POINT1;
+ setDefaultParams.iPdpAddress = SIMTSY_PDP_ADDRESS1;
+ setDefaultParams.iPdpCompression = SIMTSY_COMPRESSION1;
+ setDefaultParams.iAnonymousAccessReqd = SIMTSY_ANONYMOUS_ACCESS1;
+ setDefaultParams.iUseEdge = SIMTSY_EGPRS_REQUIRED;
+ setDefaultParams.iProtocolConfigOption.iAuthInfo.iProtocol = SIM_PACKET_CONTEXT_PROTOCOL1;
+ setDefaultParams.iProtocolConfigOption.iAuthInfo.iUsername = SIM_PACKET_CONTEXT_USERNAME1;
+ setDefaultParams.iProtocolConfigOption.iAuthInfo.iPassword = SIM_PACKET_CONTEXT_PASSWORD1;
+ setDefaultParams.iProtocolConfigOption.iChallenge = SIM_PACKET_CONTEXT_CHALLENGE1;
+ setDefaultParams.iProtocolConfigOption.iResponse = SIM_PACKET_CONTEXT_RESPONSE1;
+ setDefaultParams.iProtocolConfigOption.iDnsAddresses.iPrimaryDns = SIM_PACKET_CONTEXT_PRIMARYSERVER1;
+ setDefaultParams.iProtocolConfigOption.iDnsAddresses.iSecondaryDns = SIM_PACKET_CONTEXT_SECONDARYSERVER1;
+ setDefaultParams.iProtocolConfigOption.iId = SIM_PACKET_CONTEXT_ID1;
+
+ TESTL(iPacketService.SetDefaultContextParams(setcontextConfigPckg) == KErrNone);
+
+ RPacketContext::TContextConfigGPRS getDefaultParams;
+ TPckg<RPacketContext::TContextConfigGPRS> getcontextConfigPckg(getDefaultParams);
+
+ TESTL(iPacketService.GetDefaultContextParams(getcontextConfigPckg) == KErrNone);
+ TestConfigParamsL(setDefaultParams, getDefaultParams);
+
+ iPacketService.Close();
+ iPhone.Close();
+ User::After(100000L);
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CQoSTest::CQoSTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("QoSTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CQoSTest::doTestStepL( void )
+/**
+ * This tests the static GPRS caps.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TBuf<30> contextName;
+ TBuf<30> profileName;
+ TRequestStatus stat1;
+ TRequestStatus stat2;
+ RPacketQoS qoS;
+ RPacketQoS::TQoSCapsGPRS staticQoSCaps;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+ qoS.OpenNewQoS(iPacketContext[0], profileName);
+
+ TPckg<RPacketQoS::TQoSCapsGPRS> staticQoSCapsPkg(staticQoSCaps);
+ qoS.GetProfileCapabilities(stat1, staticQoSCapsPkg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TESTL(staticQoSCaps.ExtensionId()==TPacketDataConfigBase::KConfigGPRS);
+
+ TESTL(staticQoSCaps.iPrecedence == RPacketQoS::EPriorityMediumPrecedence);
+ TESTL(staticQoSCaps.iDelay == RPacketQoS::EDelayClass2 );
+ TESTL(staticQoSCaps.iReliability == RPacketQoS::EReliabilityClass2);
+ TESTL(staticQoSCaps.iPeak == RPacketQoS::EPeakThroughput64000);
+ TESTL(staticQoSCaps.iMean == RPacketQoS::EMeanThroughput100);
+
+ RPacketQoS::TQoSGPRSNegotiated negotiatedQoS;
+ RPacketQoS::TQoSGPRSRequested SetQoS;
+ RPacketQoS::TQoSGPRSNegotiated comparenegotiatedQoS;
+ RPacketQoS::TQoSGPRSRequested notifyQoS;
+ // Setting to Best effort.
+ comparenegotiatedQoS.iPrecedence = RPacketQoS::EPriorityMediumPrecedence;
+ comparenegotiatedQoS.iDelay = RPacketQoS::EDelayClass2;
+ comparenegotiatedQoS.iReliability = RPacketQoS::EReliabilityClass2;
+ comparenegotiatedQoS.iPeakThroughput = RPacketQoS::EPeakThroughput64000;
+ comparenegotiatedQoS.iMeanThroughput = RPacketQoS::EMeanThroughput100;
+ TPckg<RPacketQoS::TQoSGPRSNegotiated> negotiatedQoSPkg(negotiatedQoS);
+ qoS.GetProfileParameters(stat1, negotiatedQoSPkg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TestConfigParamsL(negotiatedQoS, comparenegotiatedQoS);
+
+ // Set to anything just to test that it can be done..
+ SetQoS.iReqPrecedence = RPacketQoS::EPriorityMediumPrecedence;
+ SetQoS.iMinPrecedence = RPacketQoS::EPriorityLowPrecedence;
+ SetQoS.iReqDelay = RPacketQoS::EDelayClass2;
+ SetQoS.iMinDelay = RPacketQoS::EDelayClass1;
+ SetQoS.iReqReliability = RPacketQoS::EReliabilityClass2;
+ SetQoS.iMinReliability = RPacketQoS::EReliabilityClass1;
+ SetQoS.iReqPeakThroughput = RPacketQoS::EPeakThroughput64000;
+ SetQoS.iMinPeakThroughput = RPacketQoS::EPeakThroughput16000;
+ SetQoS.iReqMeanThroughput = RPacketQoS::EMeanThroughput2000;
+ SetQoS.iMinMeanThroughput = RPacketQoS::EMeanThroughput200;
+
+
+ TPckg<RPacketQoS::TQoSGPRSRequested> SetQoSPkg(SetQoS);
+ TPckg<RPacketQoS::TQoSGPRSRequested> notifyQoSPkg(notifyQoS);
+ qoS.NotifyProfileChanged(stat2, notifyQoSPkg);
+ qoS.SetProfileParameters(stat1, SetQoSPkg);
+ User::WaitForRequest(stat2);
+ User::WaitForRequest(stat1);
+ TESTL(stat2.Int() == KErrNone);
+ TESTL(stat1.Int() == KErrNone);
+
+ qoS.Close();
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsUnSupportedTest::CGprsUnSupportedTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsUnSupportedTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsUnSupportedTest::doTestStepL( void )
+/**
+ * Tests all unsupported GPRS API calls to the TSY.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ iPacketService.RejectActivationRequest(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int()== KErrNotSupported);
+
+ iPacketService.RejectActivationRequest(stat1);
+ iPacketService.CancelAsyncRequest(EPacketRejectActivationRequest);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNotSupported);
+
+ RPacketService::TMSClass msClass;
+ iPacketService.NotifyMSClassChange(stat1, msClass);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNotSupported);
+
+ RPacketService::TAttachMode attachMode = RPacketService::EAttachWhenPossible;
+ TESTL(iPacketService.SetAttachMode(attachMode) == KErrNotSupported);
+ TESTL(iPacketService.GetAttachMode(attachMode) == KErrNone);
+ RPacketService::TRegistrationStatus registrationStatus = RPacketService::ERegisteredRoaming;
+ iPacketService.GetNtwkRegStatus(stat1, registrationStatus);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+/* //This test should not be here as this method is supported
+ iPacketService.NotifyChangeOfNtwkRegStatus(stat1, registrationStatus);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNotSupported);
+*/
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+/** Each test step initialises its own name
+*/
+CTestDynamicCaps::CTestDynamicCaps()
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("TestDynamicCaps"));
+ }
+
+/**
+ * Tests the dynamic capabilities APIs: RPacketService::GetDynamicCaps and RPacketService::NotifyDynamicCapsChange
+ * @return Test step verdict.
+ */
+TVerdict CTestDynamicCaps::doTestStepL()
+ {
+ SetSimtsyTestNumberL(0);
+
+ // Initialise and open the packet service...
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ //
+ // test GetDynamicCaps
+ //
+ RPacketService::TDynamicCapsFlags dynCapsFlags;
+ TEST(iPacketService.GetDynamicCaps(dynCapsFlags) == KErrNone);
+ TEST(dynCapsFlags == RPacketService::KCapsEGPRS);
+
+ //
+ // test NotifyDynamicCapsChange
+ //
+ TRequestStatus requestStatus;
+ dynCapsFlags = 0;
+ iPacketService.NotifyDynamicCapsChange(requestStatus, dynCapsFlags);
+ User::WaitForRequest(requestStatus);
+ TEST(requestStatus == KErrNone);
+ TEST(dynCapsFlags == RPacketService::KCapsHSDPA);
+
+ //
+ // test cancellation of NotifyDynamicCapsChange
+ //
+ iPacketService.NotifyDynamicCapsChange(requestStatus, dynCapsFlags);
+ iPacketService.CancelAsyncRequest(EPacketNotifyDynamicCapsChange);
+ User::WaitForRequest(requestStatus);
+ TEST(requestStatus == KErrCancel);
+
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+//------------------------------------------------------------------
+
+CGprsContextAttachTest::CGprsContextAttachTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsContextAttachTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsContextAttachTest::doTestStepL( void )
+/**
+ * This tests the context attach and detach
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TRequestStatus stat2;
+ TBuf<50> contextName;
+ RPacketContext::TContextStatus contextStatus;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ StartNTRasSimulation() ;
+
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+
+ iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
+ iPacketContext[0].CancelAsyncRequest(EPacketContextNotifyStatusChange);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrCancel);
+
+ iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
+ iPacketContext[0].Activate(stat2);
+
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TESTL(contextStatus == RPacketContext::EStatusActivating);
+
+ iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
+ User::WaitForRequest(stat2);
+ TESTL(stat2.Int()== KErrNone);
+
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TESTL(contextStatus == RPacketContext::EStatusActive);
+
+ iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
+
+ // need a few seconds between activating and deactivating - allow NTRAS server to respond
+ User::After(100000L);
+ iPacketContext[0].Deactivate(stat2);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TESTL(contextStatus == RPacketContext::EStatusDeactivating);
+
+ iPacketContext[0].NotifyStatusChange(stat1, contextStatus);
+ User::WaitForRequest(stat2);
+ TESTL(stat2.Int() == KErrNone);
+
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TESTL(contextStatus == RPacketContext::EStatusInactive);
+
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsContextDeleteTest::CGprsContextDeleteTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsContextDeleteTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsContextDeleteTest::doTestStepL( void )
+/**
+ * This tests the context delete.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TBuf<30> contextName;
+ RPacketContext::TContextStatus contextStatus;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+
+ iPacketContext[0].Delete(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ iPacketContext[0].Activate(stat1);
+ User::WaitForRequest(stat1);
+
+ TESTL(stat1.Int() == KErrNotReady);
+ TESTL(iPacketContext[0].GetStatus(contextStatus) == KErrNone);
+ TESTL(contextStatus == RPacketContext::EStatusDeleted);
+
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsContextLoanComport::CGprsContextLoanComport()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsContextLoanComport"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsContextLoanComport::doTestStepL( void )
+/**
+ * This tests the comport loan.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TBuf<30> contextName;
+ RCall::TCommPort dataPort;
+ StartNTRasSimulation() ;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+
+ iPacketContext[0].RecoverCommPort(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrEtelPortNotLoanedToClient);
+
+ //!!!!
+ iPacketContext[0].LoanCommPort(stat1, dataPort);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrEtelCallNotActive);
+
+ iPacketContext[0].Activate(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ iPacketContext[0].LoanCommPort(stat1, dataPort);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ iPacketContext[0].Activate(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrEtelCallAlreadyActive);
+
+ iPacketContext[0].RecoverCommPort(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ iPacketContext[0].Deactivate(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsContextUnSupportedTest::CGprsContextUnSupportedTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsContextUnSupportedTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsContextUnSupportedTest::doTestStepL( void )
+/**
+ * This tests all GPRS context API calls.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TBuf<30> contextName;
+ RPacketContext::TDataVolume volume;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+
+ TESTL(iPacketContext[0].GetDataVolumeTransferred(volume) == KErrNotSupported);
+ iPacketContext[0].NotifyDataTransferred(stat1, volume);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNotSupported);
+
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsCancelTest::CGprsCancelTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsCancelTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsCancelTest::doTestStepL( void )
+/**
+ * This test will call all GPRS API calls
+ * that can be canceled with an outstanding request
+ * to the phone.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ iPacketService.Attach(stat);
+ iPacketService.CancelAsyncRequest(EPacketAttach);
+ User::WaitForRequest(stat);
+ TESTL((stat.Int() == KErrCancel) || (stat.Int() == KErrNone));
+
+ iPacketService.Detach(stat);
+ iPacketService.CancelAsyncRequest(EPacketDetach);
+ User::WaitForRequest(stat);
+ TESTL((stat.Int() == KErrCancel)||(stat.Int() == KErrNone));
+
+ RPacketService::TMSClass currentClass;
+ RPacketService::TMSClass maxClass;
+
+ iPacketService.GetMSClass(stat, currentClass, maxClass);
+ iPacketService.CancelAsyncRequest(EPacketGetMSClass);
+ User::WaitForRequest(stat);
+ TESTL((stat.Int() == KErrCancel)||(stat.Int() == KErrNone));
+
+ currentClass = RPacketService::EMSClassSuspensionRequired;
+ iPacketService.SetMSClass(stat, currentClass);
+ iPacketService.CancelAsyncRequest(EPacketSetMSClass);
+ User::WaitForRequest(stat);
+ TESTL((stat.Int() == KErrCancel)||(stat.Int() == KErrNone));
+
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsAttachTest::CGprsAttachTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsAttachTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsAttachTest::doTestStepL( void )
+/**
+ * This tests the attach and detach.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TRequestStatus stat1;
+ RPacketService::TStatus status;
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ iPacketService.Attach(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ iPacketService.GetStatus(status);
+ TESTL(status == RPacketService::EStatusAttached);
+ iPacketService.Detach(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ iPacketService.GetStatus(status);
+ TESTL(status == RPacketService::EStatusUnattached);
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsNotificationTest::CGprsNotificationTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsNotificationTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsNotificationTest::doTestStepL( void )
+/**
+ * Tests Notify Context added, Tests Notify status
+ */
+ {
+ SetSimtsyTestNumberL(1);
+ TRequestStatus stat1,stat2,stat3;
+ TBuf<20> context= _L("");
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TBuf<40> contextId;
+
+ iPacketService.NotifyContextAdded(stat1, contextId);
+ iPacketService.CancelAsyncRequest(EPacketNotifyContextAdded);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int()== KErrCancel);
+ iPacketService.NotifyContextAdded(stat1, contextId);
+
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, context) == KErrNone);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ RPacketService::TStatus gprsStatus;
+ iPacketService.NotifyStatusChange(stat2, gprsStatus);
+ iPacketService.CancelAsyncRequest(EPacketNotifyStatusChange);
+ User::WaitForRequest(stat2);
+ TESTL(stat2.Int() == KErrCancel);
+
+ iPacketService.NotifyStatusChange(stat2, gprsStatus);
+ iPacketService.Attach(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ User::WaitForRequest(stat2);
+ TESTL(stat2.Int() == KErrNone);
+ TESTL(gprsStatus == RPacketService::EStatusAttached);
+
+ iPacketService.NotifyStatusChange(stat3, gprsStatus);
+ iPacketService.Detach(stat1);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ User::WaitForRequest(stat3);
+ TESTL(stat3.Int() == KErrNone);
+ TESTL(gprsStatus == RPacketService::EStatusUnattached);
+
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsMsClassTest::CGprsMsClassTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsMsClassTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsMsClassTest::doTestStepL( void )
+/**
+ * This tests the MS Class.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ RPacketService::TMSClass currentClass;
+ RPacketService::TMSClass maxClass;
+ iPacketService.GetMSClass(stat1, currentClass, maxClass);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ iPacketService.SetMSClass(stat1, currentClass);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TESTL(currentClass == RPacketService::EMSClassSuspensionRequired);
+ TESTL(maxClass == RPacketService::EMSClassSuspensionRequired);
+
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsContextConfigTest::CGprsContextConfigTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsContextConfigTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsContextConfigTest::doTestStepL( void )
+/**
+ * Test context config.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TBuf<30> contextName;
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+ TESTL(iPacketContext[1].OpenNewContext(iPacketService, contextName) == KErrNone);
+
+ RPacketContext::TContextConfigGPRS Getparams;
+ RPacketContext::TContextConfigGPRS Setparams;
+ Setparams.iPdpType = SIMTSY_PDP_TYPE2;
+ Setparams.iAccessPointName = SIMTSY_ACCESS_POINT2;
+ Setparams.iPdpAddress = SIMTSY_PDP_ADDRESS2;
+ Setparams.iPdpCompression = SIMTSY_COMPRESSION2;
+ Setparams.iAnonymousAccessReqd = SIMTSY_ANONYMOUS_ACCESS2;
+ Setparams.iUseEdge = SIMTSY_EGPRS_REQUIRED;
+
+ TPckg<RPacketContext::TContextConfigGPRS> GetcontextConfigPckg(Getparams);
+ iPacketContext[0].GetConfig(stat1, GetcontextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ Setparams = Getparams;
+
+ TPckg<RPacketContext::TContextConfigGPRS> SetcontextConfigPckg(Setparams);
+ iPacketContext[0].SetConfig(stat1, SetcontextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ iPacketContext[1].SetConfig(stat1, SetcontextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ iPacketContext[0].GetConfig(stat1, SetcontextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TRequestStatus stat;
+ iPacketContext[0].SetConfig(stat, SetcontextConfigPckg);
+ iPacketContext[0].CancelAsyncRequest(EPacketContextSetConfig);
+ User::WaitForRequest(stat);
+ TESTL(stat.Int() == KErrCancel || stat.Int() == KErrNone);
+ //!!!!
+ iPacketContext[0].GetConfig(stat, GetcontextConfigPckg);
+ iPacketContext[0].CancelAsyncRequest(EPacketContextGetConfig);
+ User::WaitForRequest(stat);
+ TESTL(stat.Int() == KErrCancel || stat.Int() == KErrNone);
+
+
+ Setparams.iPdpType = RPacketContext::TProtocolType(20); // Set out of range
+ TPckg<RPacketContext::TContextConfigGPRS> errorPackage(Setparams);
+ iPacketContext[0].SetConfig(stat1, errorPackage);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrCorrupt);
+
+
+ iPacketContext[0].Close();
+ iPacketContext[1].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+CGprsContextConfigNotificationsTest::CGprsContextConfigNotificationsTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsContextConfigNotificationsTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsContextConfigNotificationsTest::doTestStepL( void )
+/**
+ * Test context notifications.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1, stat2;
+ TBuf<30> contextName;
+ RPacketContext::TContextConfigGPRS params, notifyParams;
+ TPckg<RPacketContext::TContextConfigGPRS> contextConfigPckg(params);
+ TPckg<RPacketContext::TContextConfigGPRS> notifyContextConfigPckg(notifyParams);
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+ TESTL(iPacketContext[1].OpenNewContext(iPacketService, contextName) == KErrNone);
+ iPacketContext[0].NotifyConfigChanged(stat1, notifyContextConfigPckg);
+ iPacketContext[0].CancelAsyncRequest(EPacketContextNotifyConfigChanged);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrCancel);
+
+ iPacketContext[0].GetConfig(stat1, contextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ iPacketContext[0].NotifyConfigChanged(stat1, notifyContextConfigPckg);
+
+ iPacketContext[0].SetConfig(stat2, contextConfigPckg);
+ User::WaitForRequest(stat2);
+ TESTL(stat2.Int() == KErrNone);
+
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ TestConfigParamsL(params, notifyParams);
+
+ iPacketContext[0].Close();
+ iPacketContext[1].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ User::After(1000000); // to allow the next text to be able to see the contexts as closed
+ return TestStepResult();
+ }
+//------------------------------------------------------------------
+
+COpenGprsMaxContextsTest::COpenGprsMaxContextsTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("OpenGprsMaxContextsTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict COpenGprsMaxContextsTest::doTestStepL( void )
+/**
+ * Tests enumerate contexts, open new context, open existing context.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ TBuf<20> contextName = _L("");
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TInt countContexts;
+ TInt maxAllowedContexts;
+ //!!!
+ iPacketService.EnumerateContexts(stat1, countContexts, maxAllowedContexts);
+ User::WaitForRequest(stat1);
+ TESTL(countContexts == 0);
+
+ TESTL(maxAllowedContexts == 11);
+
+ TInt i = 0;
+ RPacketService::TContextInfo contextinfo;
+
+ for(i = 0; i < maxAllowedContexts;i++)
+ {
+ RPacketContext contextPacket;
+ TBuf<30> tmpContextName;
+ tmpContextName = _L("PRIMARY");
+ tmpContextName.AppendNum(i+1);
+ TESTL(iPacketContext[i].OpenNewContext(iPacketService, contextName) == KErrNone);
+ iPacketService.GetContextInfo(stat1, i, contextinfo);
+ User::WaitForRequest(stat1);
+ TESTL(contextinfo.iName == tmpContextName);
+ TESTL(contextinfo.iStatus == RPacketContext::EStatusInactive);
+ TESTL(contextPacket.OpenExistingContext(iPacketService, contextName) == KErrNone);
+ TESTL(contextName == tmpContextName);
+ contextPacket.Close();
+ iPhone.Close();
+ }
+
+ iPacketService.GetContextInfo(stat1, i+1, contextinfo);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrArgument);
+ for(i = 0; i < maxAllowedContexts;i++)
+ {
+ iPacketContext[i].Close();
+ }
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+//------------------------------------------------------------------
+
+CGprsContextConfigArbitraryAddressTest::CGprsContextConfigArbitraryAddressTest()
+/** Each test step initialises it's own name
+*/
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("GprsContextConfigArbitraryAddressTest"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGprsContextConfigArbitraryAddressTest::doTestStepL()
+/**
+ * Test context config.
+ */
+ {
+ SetSimtsyTestNumberL(0);
+ TRequestStatus stat1;
+ RPacketContext::TContextConfigGPRS getParams;
+ RPacketContext::TContextConfigGPRS setParams;
+
+ // Loading configuration from File
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+ TBuf<30> contextName;
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+
+ // Getting the Actual Configuration
+ TPckg<RPacketContext::TContextConfigGPRS> getContextConfigPckg(getParams);
+ iPacketContext[0].GetConfig(stat1, getContextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+ setParams = getParams;
+
+ // Hacking the PdpAddress with an Arbitrary String (doesn't need to be a proper IP)
+ setParams.iPdpAddress = _L8("ARBITRARY ADDRESS");
+
+ // Setting the New Configuration checking that it is accepted (no "KErrCorrupt")
+ TPckg<RPacketContext::TContextConfigGPRS> setContextConfigPckg(setParams);
+ iPacketContext[0].SetConfig(stat1, setContextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() != KErrCorrupt && stat1.Int() == KErrNone);
+
+ // Getting the Configuration
+ iPacketContext[0].GetConfig(stat1, setContextConfigPckg);
+ User::WaitForRequest(stat1);
+ TESTL(stat1.Int() == KErrNone);
+
+ // Checking the Configuration was correctly changed by Sim.tsy
+ TESTL(setParams.iPdpAddress.Compare(getParams.iPdpAddress) == 0);
+
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+ return TestStepResult();
+ }
+
+//------------------------------------------------------------------
+
+CMbmsOpenNewContextTest::CMbmsOpenNewContextTest()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap1"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CMbmsOpenNewContextTest::doTestStepL( void )
+/**
+ * Tests creation of new MBMS context activation using
+ * OpenNewContext of RPacketMbmsContext
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ TInt ret= iPacketMbmsContext.OpenNewContext(iPacketService, contextName);
+ TEST(ret == KErrNone); //OpenNewContext will not use any capabilities.
+
+ iPacketMbmsContext.Close();
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+
+//-------------------------------------------------------------------------
+
+CMbmsUpdateSessionTest::CMbmsUpdateSessionTest()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap2"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CMbmsUpdateSessionTest::doTestStepL( void )
+/**
+ * Tests creation of new MBMS context activation and
+ * tests the update session functionality of the MBMS context using the
+ * API MbmsUpdateSessionTest of RPacketMbmsContext
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ TInt ret= iPacketMbmsContext.OpenNewContext(iPacketService, contextName);
+ TESTL(ret == KErrNone);
+
+ RPacketMbmsContext::TContextConfigMbmsV1 contextConfig;
+ TPckg<RPacketMbmsContext::TContextConfigMbmsV1> contextConfigPckg(contextConfig);
+
+ //Get configuration for the MBMS
+ iPacketMbmsContext.GetConfig(reqStatus, contextConfigPckg);
+ User::WaitForRequest(reqStatus);
+
+ RPacketContext::TContextStatus contextStatus;
+ TRequestStatus notifyStatusRequest;
+ iPacketMbmsContext.NotifyStatusChange(notifyStatusRequest, contextStatus);
+
+ // Activate the MBMS context
+ iPacketMbmsContext.Activate(reqStatus);
+ User::WaitForRequest(reqStatus);
+
+ User::WaitForRequest(notifyStatusRequest);//completes NotifyStatusChange with state “ctivating”
+
+ /** Session is added to the activated services table */
+ TMbmsAction aAction=EAddEntries;
+ TUint sessionid=SIM_PACKET_MBMS_SESSIONID;
+ TRequestStatus updateSessionRequest;
+ iPacketMbmsContext.UpdateMbmsSessionList(updateSessionRequest,reinterpret_cast<TMbmsAction &>(aAction), sessionid);
+
+ /** the state of the session added changes from inactive to activated */
+ User::WaitForRequest(updateSessionRequest);//completes UpdateSession
+ TESTL(updateSessionRequest.Int() == KErrPermissionDenied);
+
+ iPacketMbmsContext.Close();
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+//-------------------------------------------------------------------------
+CGetMbmsNetworkServiceStatus::CGetMbmsNetworkServiceStatus()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap3"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CGetMbmsNetworkServiceStatus::doTestStepL( void )
+/**
+ * Tests the functionality of GetMbmsNetworkServiceStatus of RPacketService.
+ *
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ TMbmsNetworkServiceStatus tMbmsNetworkServiceStatus;
+ TBool attemptAttached = ETrue;
+
+ iPacketService.GetMbmsNetworkServiceStatus(reqStatus, attemptAttached, tMbmsNetworkServiceStatus);
+ User::WaitForRequest(reqStatus);
+ TESTL(reqStatus.Int() == KErrPermissionDenied);
+
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+//-------------------------------------------------------------------------
+
+CNotifyMbmsNetworkServiceStatusChange::CNotifyMbmsNetworkServiceStatusChange()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap4"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CNotifyMbmsNetworkServiceStatusChange::doTestStepL( void )
+/**
+ * Tests the functionality of NotifyMbmsNetworkServiceStatusChange of RPacketService.
+ *
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ TMbmsNetworkServiceStatus tMbmsNetworkServiceStatus;
+
+ //To get notified when the network service status changes
+ iPacketService.NotifyMbmsNetworkServiceStatusChange(reqStatus, tMbmsNetworkServiceStatus);
+ User::WaitForRequest(reqStatus);
+
+ TESTL(reqStatus.Int() == KErrPermissionDenied);
+
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+//-------------------------------------------------------------------------
+
+CNotifyMbmsServiceAvailabilityChange::CNotifyMbmsServiceAvailabilityChange()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap5"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CNotifyMbmsServiceAvailabilityChange::doTestStepL( void )
+/**
+ * Tests Notification of the Service Availability List using the
+ * API NotifyMbmsServiceAvailabilityListChange of RPacketService.
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ CPcktMbmsMonitoredServiceList* mbmslist = CPcktMbmsMonitoredServiceList::NewL();
+ CleanupStack::PushL(mbmslist);
+
+ //Update the Mbms service availability List
+ TMbmsAction aAction=EAddEntries;
+ iPacketService.UpdateMbmsMonitorServiceListL(reqStatus, reinterpret_cast<TMbmsAction &>(aAction), mbmslist);
+ User::WaitForRequest(reqStatus);
+
+ //Notify the change in the mbms service parameter list
+ iPacketService.NotifyMbmsServiceAvailabilityChange (reqStatus);
+ User::WaitForRequest(reqStatus);
+ TESTL(reqStatus.Int() == KErrNone);
+
+ CleanupStack::PopAndDestroy(); //mbmslist
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+
+//-------------------------------------------------------------------------
+
+CUpdateMbmsMonitorServiceList::CUpdateMbmsMonitorServiceList()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap6"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CUpdateMbmsMonitorServiceList::doTestStepL( void )
+/**
+ * Tests updation of the Service Monitoring List using the
+ * API UpdateMbmsMonitorServiceListL of RPacketService.
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ CPcktMbmsMonitoredServiceList* mbmsList = CPcktMbmsMonitoredServiceList::NewL();
+ CleanupStack::PushL(mbmsList);
+
+ /* ADD SERVICE */
+
+ RPacketService::TMbmsServiceAvailabilityV1 mbmsServAvail;
+ TMbmsAction action=EAddEntries;
+ TInt ab1=0,s1=1,a1=0;
+ TInt ab2=1,s2=2,a2=0;
+
+ mbmsServAvail.iTmgi.SetServiceId(SIM_PACKET_MBMS_SERVICEID);
+ mbmsServAvail.iTmgi.SetMCC(SIM_PACKET_MBMS_MCCID);
+ mbmsServAvail.iTmgi.SetMNC(SIM_PACKET_MBMS_MNCID);
+ mbmsServAvail.iMbmsServiceMode = reinterpret_cast<TMbmsServiceMode&>(s1);
+ mbmsServAvail.iMbmsAvailabilityStatus = reinterpret_cast<TMbmsAvailabilityStatus&>(a1);
+ mbmsServAvail.iMbmsAccessBearer = reinterpret_cast<TMbmsScope&>(ab1);
+ mbmsList->AddEntryL(mbmsServAvail);
+
+ mbmsServAvail.iTmgi.SetServiceId(SIM_PACKET_MBMS_SERVICEID);
+ mbmsServAvail.iTmgi.SetMCC(SIM_PACKET_MBMS_MCCID);
+ mbmsServAvail.iTmgi.SetMNC(SIM_PACKET_MBMS_MNCID);
+ mbmsServAvail.iMbmsServiceMode = reinterpret_cast<TMbmsServiceMode&>(s2);
+ mbmsServAvail.iMbmsAvailabilityStatus = reinterpret_cast<TMbmsAvailabilityStatus&>(a2);
+ mbmsServAvail.iMbmsAccessBearer = reinterpret_cast<TMbmsScope&>(ab2);
+ mbmsList->AddEntryL(mbmsServAvail);
+
+ iPacketService.UpdateMbmsMonitorServiceListL(reqStatus,action,mbmsList);
+ User::WaitForRequest(reqStatus);
+ CleanupStack::PopAndDestroy();
+ TESTL(reqStatus.Int() == KErrPermissionDenied);
+
+ /* REMOVE SPECIFIC SERVICE */
+ mbmsList= CPcktMbmsMonitoredServiceList::NewL();
+ CleanupStack::PushL(mbmsList);
+ action=ERemoveEntries;
+ mbmsServAvail.iTmgi.SetServiceId(2345);
+ mbmsServAvail.iTmgi.SetMCC(2345);
+ mbmsServAvail.iTmgi.SetMNC(2345);
+ mbmsServAvail.iMbmsServiceMode = reinterpret_cast<TMbmsServiceMode&>(s2);
+ mbmsServAvail.iMbmsAvailabilityStatus = reinterpret_cast<TMbmsAvailabilityStatus&>(a2);
+ mbmsServAvail.iMbmsAccessBearer = reinterpret_cast<TMbmsScope&>(ab2);
+ mbmsList->AddEntryL(mbmsServAvail);
+
+ iPacketService.UpdateMbmsMonitorServiceListL(reqStatus,action,mbmsList);
+ User::WaitForRequest(reqStatus);
+ CleanupStack::PopAndDestroy();
+ TESTL(reqStatus.Int() == KErrPermissionDenied);
+
+ /* REMOVE_ALL */
+ action=ERemoveAllEntries;
+ iPacketService.UpdateMbmsMonitorServiceListL(reqStatus,action);
+ User::WaitForRequest(reqStatus);
+
+ TESTL(reqStatus.Int() == KErrPermissionDenied);
+
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+//-------------------------------------------------------------------------
+
+CEnumerateMbmsActiveServiceList::CEnumerateMbmsActiveServiceList()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap7"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CEnumerateMbmsActiveServiceList::doTestStepL( void )
+/**
+ * Tests the functionality of EnumerateMbmsActiveServiceList of RPacketService.
+ *
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ TInt currActiveServices, maxActiveServices;
+ iPacketService.EnumerateMbmsActiveServiceList(reqStatus,currActiveServices, maxActiveServices);
+ User::WaitForRequest(reqStatus);
+
+ TESTL(reqStatus.Int() == KErrPermissionDenied);
+
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+
+//-------------------------------------------------------------------------
+
+CEnumerateMbmsMonitorServiceList::CEnumerateMbmsMonitorServiceList()
+/** Each test step initialises it's own name
+ */
+ {
+ // store the name of this test case
+ // this is the name that is used by the script file
+ SetTestStepName(_L("EtelPcktMbmsCap8"));
+ }
+//------------------------------------------------------------------
+
+TVerdict CEnumerateMbmsMonitorServiceList::doTestStepL( void )
+/**
+ * Tests the functionality of EnumerateMbmsActiveServiceList of RPacketService.
+ *
+ */
+ {
+ SetSimtsyTestNumberL(SIM_PACKET_MBMS_TESTNUMBER);
+ TRequestStatus reqStatus;
+ TBuf<20> contextName = _L("");
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName)==KErrNone);
+ TESTL(iPhone.Initialise()==KErrNone);
+ TESTL(iPacketService.Open(iPhone ) == KErrNone);
+
+ TInt currActiveServices, maxActiveServices;
+ iPacketService.EnumerateMbmsActiveServiceList(reqStatus,currActiveServices, maxActiveServices);
+ User::WaitForRequest(reqStatus);
+
+ TESTL(reqStatus.Int() == KErrPermissionDenied);
+
+ iPacketService.Close();
+ iPhone.Close();
+
+ return TestStepResult();
+ }
+
+
+/**
+ * Tests closing one of two handles that both have notifications on them.
+ * This can cause ETel to close multiple requests during the same cancel
+ * request, which in turn can panic ETel if the iterator gets corrupted.
+ *
+ * @return Test step verdict.
+ */
+TVerdict CTestMultipleCompletionWithClosingContext::doTestStepL()
+ {
+ //
+ // Initialise and open the packet service...
+ //
+ SetSimtsyTestNumberL(2);
+
+ TESTL(iPhone.Open(iTelServer, KPhoneName) == KErrNone);
+ TESTL(iPhone.Initialise() == KErrNone);
+ TESTL(iPacketService.Open(iPhone) == KErrNone);
+ StartNTRasSimulation();
+
+ //
+ // Open the first context...
+ //
+ TRequestStatus activateContext1Status;
+ TBuf<50> contextName;
+
+ TESTL(iPacketContext[0].OpenNewContext(iPacketService, contextName) == KErrNone);
+ iPacketContext[0].Activate(activateContext1Status);
+ User::WaitForRequest(activateContext1Status);
+
+ //
+ // Open the second context...
+ //
+ TRequestStatus activateContext2Status;
+
+ TESTL(iPacketContext[1].OpenNewContext(iPacketService, contextName) == KErrNone);
+ iPacketContext[1].Activate(activateContext2Status);
+ User::WaitForRequest(activateContext2Status);
+
+ //
+ // Open another handle to the second context by name...
+ //
+ TESTL(iPacketContext[2].OpenExistingContext(iPacketService, _L("PRIMARY2")) == KErrNone);
+
+ //
+ // Post notifications on both handles for the second context...
+ //
+ TRequestStatus notifyContext1Status, notifyContext2Status;
+ RPacketContext::TContextStatus contextStatus1, contextStatus2;
+
+ iPacketContext[1].NotifyStatusChange(notifyContext1Status, contextStatus1);
+ iPacketContext[2].NotifyStatusChange(notifyContext2Status, contextStatus2);
+
+ //
+ // Delete second context using the first handle...
+ //
+ TRequestStatus deleteContext2Status;
+
+ iPacketContext[1].Delete(deleteContext2Status);
+ User::WaitForRequest(deleteContext2Status);
+
+ //
+ // The notifications will have triggered and a request will have
+ // been reposted to the TSY.
+ //
+ User::WaitForRequest(notifyContext1Status);
+ User::WaitForRequest(notifyContext2Status);
+
+ //
+ // Deactivate the fist context...
+ //
+ TRequestStatus deactivateContext1Status;
+
+ iPacketContext[0].Deactivate(deactivateContext1Status);
+ User::WaitForRequest(deactivateContext1Status);
+
+ //
+ // Close the contexts. Note this is closing iPacketContext[1] before
+ // iPacketContext[2]! This forces the notification from the first handle
+ // to move to the second handle, but there it errors as the context is
+ // closed. This would cause ETel server to panic with KERN-EXEC:3.
+ //
+ iPacketContext[1].Close();
+ iPacketContext[2].Close();
+ iPacketContext[0].Close();
+ iPacketService.Close();
+ iPhone.Close();
+
+ //
+ // Now check that ETel is still up...
+ //
+ TEST(iPhone.Open(iTelServer, KPhoneName) == KErrNone);
+ iPhone.Close();
+
+ return TestStepResult();
+ } // CTestMultipleCompletionWithClosingContext::doTestStepL