--- a/telephonyprotocols/umtsgprsscpr/Test/te_spud/src/SpudTelUnitTestStep.cpp Wed Aug 18 10:57:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,881 +0,0 @@
-// Copyright (c) 2004-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:
-// Unit tests for SPUD TEL
-//
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include <e32def.h>
-#include <testexecutelog.h>
-
-#include "SpudUnitTestStep.h"
-#include "meteldriverstrategy.h"
-#include "ceteldrivercontext.h"
-#include "CompareContextParameters.h"
-#include "DefaultContextParameters.h"
-
-using namespace EtelDriver;
-
-CSpudTelUnitNormalOperation::~CSpudTelUnitNormalOperation()
- {}
-
-// configure to use test step 1 from simtsy config file
-CSpudTelUnitNormalOperation::CSpudTelUnitNormalOperation() : CSpudTelUnitTestStepBase(1)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitNormalOperation);
- }
-
-TVerdict CSpudTelUnitNormalOperation::doTestStepL()
-/**
- Test normal operation - test normal setqos (before and after context created)
- - test normal settft (before and after context created)
- - test normal create primary context
- - test normal create secondary context
- */
- {
- INFO_PRINTF1(_L("Starting Spud Tel Test Normal Operation"));
-
- TRequestStatus status;
- RPacketService::TContextInfo contextInfo;
-
- InitPhoneAndPacketServiceL();
-
- //
- // Test creating primary context
- //
- INFO_PRINTF1(_L("Test creating primary context"));
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
-
- // check that context was created - the simtsy creates the first primary context with name 'PRIMARY1'
- TEST(iPrimaryPacketContext.OpenExistingContext(iPacketService, KFirstPrimaryContextName) == KErrNone);
-
- // check that context config for GPRS was set correctly
- RPacketContext::TContextConfigGPRS *contextConfig = new(ELeave) RPacketContext::TContextConfigGPRS;
- CleanupStack::PushL(contextConfig);
- TContextConfigGPRSPckg contextConfigPckg(*contextConfig);
- iPrimaryPacketContext.GetConfig(status, contextConfigPckg);
- User::WaitForRequest(status);
- RPacketContext::TContextConfigGPRS *defaultContextConfigGPRS = new(ELeave) RPacketContext::TContextConfigGPRS;
- CleanupStack::PushL(defaultContextConfigGPRS);
- DefaultContextConfigGPRS(*defaultContextConfigGPRS);
- TEST(CompareContextConfigGPRS(*defaultContextConfigGPRS, *contextConfig));
- CleanupStack::PopAndDestroy(defaultContextConfigGPRS);
- CleanupStack::PopAndDestroy(contextConfig);
-
-
- //
- // Test creating secondary context
- //
- INFO_PRINTF1(_L("Test creating secondary context"));
- EtelDriverInputRequest( KContextId1, ECreate2ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::E2ryPdpContextCreated);
-
- // check that context was created - the simtsy creates the first secondary context with name 'SECONDARY1'
- TEST(iSecondaryPacketContext.OpenExistingContext(iPacketService, KFirstSecondaryContextName) == KErrNone);
-
-
- //
- // Test setting and changing TFT
- //
- INFO_PRINTF1(_L("Test setting and changing TFT"));
- TTFTInfo *firstTftInfo = new(ELeave) TTFTInfo;
- CleanupStack::PushL(firstTftInfo);
- TTFTInfo *secondTftInfo = new(ELeave) TTFTInfo;
- CleanupStack::PushL(secondTftInfo);
- TTFTInfo *combinedTftInfo = new(ELeave) TTFTInfo;
- CleanupStack::PushL(combinedTftInfo);
- DefaultTftInfo(*firstTftInfo);
- SecondDefaultTftInfo(*secondTftInfo);
- CombinedDefaultTftInfo(*combinedTftInfo);
-
- // Test setting TFT
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, KAddFilters);
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, *firstTftInfo);
- EtelDriverInputRequest(KContextId0, ESetTft);
- WaitForEtelDriverInputResponse(KContextId0, PdpFsm::ETftSet);
- // check that TFT was set
- TTFTInfo expectedTftInfo;
- TEST(CompareTFTInfo(*firstTftInfo, iPrimaryPacketContext));
-
- // Test re-setting TFT
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, KAddFilters);
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, *secondTftInfo);
- EtelDriverInputRequest(KContextId0, ESetTft);
- WaitForEtelDriverInputResponse(KContextId0, PdpFsm::ETftSet);
- // check that TFT was set
- TEST(CompareTFTInfo(*secondTftInfo, iPrimaryPacketContext));
-
- // Test changing TFT (using KAddFilters)
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, KAddFilters);
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, *firstTftInfo);
- EtelDriverInputRequest(KContextId0, EChangeTft);
- WaitForEtelDriverInputResponse(KContextId0, PdpFsm::ETftChanged);
- // check that TFT was set
- TEST(CompareTFTInfo(*combinedTftInfo, iPrimaryPacketContext));
-
- // Test setting TFT (using KRemoveFilters)
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, KRemoveFilters);
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, *firstTftInfo);
- EtelDriverInputRequest(KContextId0, EChangeTft);
- WaitForEtelDriverInputResponse(KContextId0, PdpFsm::ETftChanged);
- // check that TFT was set
- TEST(CompareTFTInfo(*secondTftInfo, iPrimaryPacketContext));
-
- // Test setting TFT (using KDeleteTFT)
- iListener->iPdpFsmInterfaceTest->Set(KContextId0, KDeleteTFT);
- EtelDriverInputRequest(KContextId0, EChangeTft);
- WaitForEtelDriverInputResponse(KContextId0, PdpFsm::ETftChanged);
- // check that TFT was set
- TInt count;
- iPrimaryPacketContext.EnumeratePacketFilters(status, count);
- User::WaitForRequest(status);
- TEST(status == KErrNone);
- TEST(count == 0);
- CleanupStack::PopAndDestroy(combinedTftInfo);
- CleanupStack::PopAndDestroy(secondTftInfo);
- CleanupStack::PopAndDestroy(firstTftInfo);
-
-
- //
- // Test setting QOS
- //
- INFO_PRINTF1(_L("Test setting QOS"));
- EtelDriverInputRequest( KContextId1, ESetQoS);
- RPacketQoS::TQoSR99_R4Negotiated *defaultQoSR99_R4Negotiated = new(ELeave) RPacketQoS::TQoSR99_R4Negotiated;
- CleanupStack::PushL(defaultQoSR99_R4Negotiated);
- SecondQoSR99_R4Negotiated(*defaultQoSR99_R4Negotiated);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EQoSSet);
- RPacketQoS packetQos;
- // check that QOS was created - the simtsy creates the first QOS with name KFirstQosName
- TEST(packetQos.OpenExistingQoS(iSecondaryPacketContext, KFirstQosName) == KErrNone);
- // qos was created ok
- RPacketQoS::TQoSR99_R4Negotiated *qos = new(ELeave) RPacketQoS::TQoSR99_R4Negotiated;
- CleanupStack::PushL(qos);
- TQoSR99_R4NegotiatedPckg qosPckg(*qos);
- packetQos.GetProfileParameters(status, qosPckg);
- User::WaitForRequest(status);
- TEST(CompareUMTSQoSNeg(*defaultQoSR99_R4Negotiated, *qos));
- CleanupStack::PopAndDestroy(qos);
- CleanupStack::PopAndDestroy(defaultQoSR99_R4Negotiated);
- packetQos.Close();
- iSecondaryPacketContext.Close();
- iPrimaryPacketContext.Close();
-
-
- //
- // Test activating context
- //
- INFO_PRINTF1(_L("Test activating context"));
- EtelDriverInputRequest( KContextId1, EActivatePdp);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EPdpActivated);
-
- // test that context is set to activated
- TEST(CompareContextInfo(iPacketService, KFirstSecondaryContextName, RPacketContext::EStatusActive));
- // make sure the data channel was set as well
- RPacketContext::TDataChannelV2 dataChannel;
- DefaultDataChannel(dataChannel);
- TEST(CompareDataChannel(iListener->iNotifyContextDataChannelData.iDataChannelV2, dataChannel));
-
-
- //
- // Test modifying active context
- //
- INFO_PRINTF1(_L("Test modifying activate context"));
- EtelDriverInputRequest(KContextId1, EChangeTft);
- WaitForEtelDriverInputResponse(KContextId1, PdpFsm::ETftChanged);
- EtelDriverInputRequest( KContextId1, EModifyActive);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EPdpContextModified);
-
-
- //
- // Test deleting secondary context
- //
- INFO_PRINTF1(_L("Test deleting secondary context"));
- EtelDriverInputRequest( KContextId1, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EContextDeleted);
-
- // make sure it is marked as deleted
- iPacketService.GetContextInfo(status, KContextId1, contextInfo);
- User::WaitForRequest(status);
- TEST(status == KErrNone && contextInfo.iStatus == RPacketContext::EStatusDeleted);
-
-
- //
- // Test deleting primary context
- //
- INFO_PRINTF1(_L("Test deleting primary context"));
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
-
- // make sure it is marked as deleted
- iPacketService.GetContextInfo(status, KContextId0, contextInfo);
- User::WaitForRequest(status);
- TEST(status == KErrNone && contextInfo.iStatus == RPacketContext::EStatusDeleted);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitNotifications::~CSpudTelUnitNotifications()
- {}
-
-// configure to use test step 1 from simtsy config file
-CSpudTelUnitNotifications::CSpudTelUnitNotifications() : CSpudTelUnitTestStepBase(1)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitNotifications);
- }
-
-TVerdict CSpudTelUnitNotifications::doTestStepL()
-/**
- Test notifications
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Notifications"));
-
- TRequestStatus status;
- RPacketQoS packetQos;
-
- InitPhoneAndPacketServiceL();
-
- //
- // setup test - create primary context and start notifications
- //
- INFO_PRINTF1(_L("setup test - create primary context and start notifications"));
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
-
- EtelDriverInputRequest( KContextId0, EActivatePdp);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPdpActivated);
-
- // check that context was created - the simtsy creates the first primary context with name 'PRIMARY1'
- TEST(iPrimaryPacketContext.OpenExistingContext(iPacketService, KFirstPrimaryContextName) == KErrNone);
-
- //
- // Test service status notification
- //
- // the timing here may or may not allow us to recieve an 'activating' request
- WaitForGivenEtelContextStatusNotification(KContextId0, RPacketContext::EStatusActive);
- WaitForNextServiceNotificationStatus( RPacketService::EStatusActive);
-
-
- //
- // Test context config notification
- //
- INFO_PRINTF1(_L("Test context config notification"));
- RPacketContext::TContextConfigGPRS contextConfig;
- DefaultContextConfigGPRS(contextConfig);
- TContextConfigGPRSPckg contextConfigPckg(contextConfig);
- iPrimaryPacketContext.SetConfig(status, contextConfigPckg);
- User::WaitForRequest(status);
-
- WaitForNextContextConfigNotification(KContextId0, contextConfig);
-
- // check that QOS was created - the simtsy creates the first QOS with name KFirstQosName
- TEST(packetQos.OpenExistingQoS(iPrimaryPacketContext, KFirstQosName) == KErrNone);
-
-
- //
- // Test QOS notification
- //
-
- INFO_PRINTF1(_L("Test QOS notification"));
- RPacketQoS::TQoSR99_R4Requested qosRequested;
- DefaultQoSR99_R4Requested(qosRequested);
- RPacketQoS::TQoSR99_R4Negotiated qosNegotiated;
- SecondQoSR99_R4Negotiated(qosNegotiated);
- TQoSR99_R4RequestedPckg qosRequestedPckg(qosRequested);
- packetQos.SetProfileParameters(status, qosRequestedPckg);
- User::WaitForRequest(status);
- WaitForNextQosNotification(KContextId0, qosNegotiated);
-
- // clean up
- packetQos.Close();
- iPrimaryPacketContext.Close();
-
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
- WaitForNextServiceNotificationStatus(RPacketService::EStatusAttached);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitCreatePrimaryError::~CSpudTelUnitCreatePrimaryError()
- {
- }
-
-// configure to use test step 3 from simtsy config file
-CSpudTelUnitCreatePrimaryError::CSpudTelUnitCreatePrimaryError() : CSpudTelUnitTestStepBase(3)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitCreatePrimaryError);
- }
-
-TVerdict CSpudTelUnitCreatePrimaryError::doTestStepL()
-/**
- Errors with creating primary
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Create Primary Context Error with SetConfig"));
-
- InitPhoneAndPacketServiceL();
-
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- // simtsy is configured to fail second RPacketContext::SetConfig
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreatedFailed, KErrGeneral);
-
- // clean up
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitSetQosError::~CSpudTelUnitSetQosError()
- {}
-
-// configure to use test step 6 from simtsy config file
-CSpudTelUnitSetQosError::CSpudTelUnitSetQosError() : CSpudTelUnitTestStepBase(6)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitSetQosError);
- }
-
-TVerdict CSpudTelUnitSetQosError::doTestStepL()
-/**
- Errors with setting QoS
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Set QOS Error"));
-
- InitPhoneAndPacketServiceL();
-
- // set test up
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreatedFailed, KErrGeneral);
-
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitSetTftError::~CSpudTelUnitSetTftError()
- {
- }
-
-// configure to use test step 7 from simtsy config file
-CSpudTelUnitSetTftError::CSpudTelUnitSetTftError() : CSpudTelUnitTestStepBase(7)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitSetTftError);
- }
-
-TVerdict CSpudTelUnitSetTftError::doTestStepL()
-/**
- Errors with setting TFT
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Set TFT Error"));
-
- InitPhoneAndPacketServiceL();
-
- // set test up
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
-
- // test error in RPacketQoS::CreateNewTFT
- EtelDriverInputRequest( KContextId0, ESetTft);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::ETftSetFailed, KErrGeneral);
-
- // test error in RPacketQoS::AddPacketFilter
- EtelDriverInputRequest( KContextId0, ESetTft);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::ETftSetFailed, KErrGeneral);
-
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitActivateError1::~CSpudTelUnitActivateError1()
- {
- }
-
-// configure to use test step 8 from simtsy config file
-CSpudTelUnitActivateError1::CSpudTelUnitActivateError1() : CSpudTelUnitTestStepBase(8)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitActivateError1);
- }
-
-TVerdict CSpudTelUnitActivateError1::doTestStepL()
-/**
- * Errors with activating
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Activate Error 1"));
-
- InitPhoneAndPacketServiceL();
-
- // set test up
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
-
- // test error in RPacketContext::Activate
- EtelDriverInputRequest( KContextId0, EActivatePdp);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPdpActivatedFailed, KErrGeneral);
-
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitActivateError2::~CSpudTelUnitActivateError2()
- {
- }
-
-// configure to use test step 8 from simtsy config file
-CSpudTelUnitActivateError2::CSpudTelUnitActivateError2() : CSpudTelUnitTestStepBase(14)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitActivateError2);
- }
-
-TVerdict CSpudTelUnitActivateError2::doTestStepL()
-/**
- * Errors with activating
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Activate Error 2"));
-
- InitPhoneAndPacketServiceL();
-
- // set test up
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
-
- // test error in RPacketContext::InitialiseContext
- EtelDriverInputRequest( KContextId0, EActivatePdp);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPdpActivatedFailed, KErrGeneral);
-
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitDeleteError1::~CSpudTelUnitDeleteError1()
- {
- }
-
-// configure to use test step 9 from simtsy config file
-CSpudTelUnitDeleteError1::CSpudTelUnitDeleteError1() : CSpudTelUnitTestStepBase(9)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitDeleteError1);
- }
-
-TVerdict CSpudTelUnitDeleteError1::doTestStepL()
-/**
- Errors with deleting
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Delete Error"));
-
- InitPhoneAndPacketServiceL();
-
- // set test up phone, primary context, it's QoS parameters, and activate the context
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
- EtelDriverInputRequest( KContextId0, ESetQoS);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EQoSSet);
- EtelDriverInputRequest( KContextId0, EActivatePdp);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPdpActivated);
-
- // test error in RPacketContext::Deactivate
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeletedFailed, KErrGeneral);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitDeleteError2::~CSpudTelUnitDeleteError2()
- {
- }
-
-// configure to use test step 13 from simtsy config file
-CSpudTelUnitDeleteError2::CSpudTelUnitDeleteError2() : CSpudTelUnitTestStepBase(10)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitDeleteError2);
- }
-
-TVerdict CSpudTelUnitDeleteError2::doTestStepL()
-/**
- Errors with deleting
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Delete Error 2"));
-
- InitPhoneAndPacketServiceL();
-
- // set test up
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
- EtelDriverInputRequest( KContextId0, EActivatePdp);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPdpActivated);
-
- // test error in RPacketContext::Delete
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeletedFailed, KErrGeneral);
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitMultipleContexts::~CSpudTelUnitMultipleContexts()
- {
- }
-
-// configure to use test step 10 from simtsy config file
-CSpudTelUnitMultipleContexts::CSpudTelUnitMultipleContexts() : CSpudTelUnitTestStepBase(11)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitMultipleContexts);
- }
-
-TVerdict CSpudTelUnitMultipleContexts::doTestStepL()
-/**
- Test multiple primary contexts with multiple secondary contexts
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Multiple Contexts"));
-
- TRequestStatus status;
-
- InitPhoneAndPacketServiceL();
- RPacketContext primaryPacketContext2, secondaryPacketContext2;
-
- EtelDriverInputRequest( KContextId0, EOpenPhone);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EPhoneOpened);
-
- //
- // Test creating multiple primary contexts
- //
- INFO_PRINTF1(_L("Test create first primary context"));
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::E1ryPdpContextCreated);
-
- // check that context was created - the simtsy creates the first primary context with name 'PRIMARY1'
- TEST(iPrimaryPacketContext.OpenExistingContext(iPacketService, KFirstPrimaryContextName) == KErrNone);
-
- // check that context config for GPRS was set correctly
- RPacketContext::TContextConfigGPRS *contextConfig = new(ELeave) RPacketContext::TContextConfigGPRS;
- CleanupStack::PushL(contextConfig);
- TContextConfigGPRSPckg contextConfigPckg(*contextConfig);
- iPrimaryPacketContext.GetConfig(status, contextConfigPckg);
- User::WaitForRequest(status);
- RPacketContext::TContextConfigGPRS *defaultTestContextConfigGPRS = new(ELeave) RPacketContext::TContextConfigGPRS;
- CleanupStack::PushL(defaultTestContextConfigGPRS);
- DefaultContextConfigGPRS(*defaultTestContextConfigGPRS);
- TEST(CompareContextConfigGPRS(*defaultTestContextConfigGPRS, *contextConfig));
-
- INFO_PRINTF1(_L("Test create second primary context"));
- EtelDriverInputRequest( KContextId1, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::E1ryPdpContextCreated);
-
- // check that context was created - the simtsy creates the first primary context with name 'PRIMARY2'
- TEST(primaryPacketContext2.OpenExistingContext(iPacketService, KSecondPrimaryContextName) == KErrNone);
-
- // check that context config for GPRS was set correctly
- primaryPacketContext2.GetConfig(status, contextConfigPckg);
- User::WaitForRequest(status);
- TEST(CompareContextConfigGPRS(*defaultTestContextConfigGPRS, *contextConfig));
- CleanupStack::PopAndDestroy(defaultTestContextConfigGPRS);
- CleanupStack::PopAndDestroy(contextConfig);
-
-
- //
- // Test creating secondary contexts on each primary context
- //
- INFO_PRINTF1(_L("Test create first secondary context"));
- EtelDriverInputRequest( KContextId2, ECreate2ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId2, PdpFsm::E2ryPdpContextCreated);
-
- // check that context was created - the simtsy creates the first secondary context with name 'SECONDARY1'
- TEST(iSecondaryPacketContext.OpenExistingContext(iPacketService, KFirstSecondaryContextName) == KErrNone);
-
- INFO_PRINTF1(_L("Test create second secondary context"));
- EtelDriverInputRequest( KContextId3, ECreate2ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId3, PdpFsm::E2ryPdpContextCreated);
-
- // check that context was created - the simtsy creates the first secondary context with name 'SECONDARY2'
- TEST(secondaryPacketContext2.OpenExistingContext(iPacketService, KSecondSecondaryContextName) == KErrNone);
-
-
- //
- // Test setting TFT (this time on secondary context)
- //
- INFO_PRINTF1(_L("Test setting TFT"));
- EtelDriverInputRequest( KContextId3, ESetTft);
- WaitForEtelDriverInputResponse( KContextId3, PdpFsm::ETftSet);
-
- // check that TFT was set
- TTFTInfo *expectedTftInfo = new(ELeave) TTFTInfo;
- CleanupStack::PushL(expectedTftInfo);
- DefaultTftInfo(*expectedTftInfo);
- TEST(CompareTFTInfo(*expectedTftInfo, secondaryPacketContext2));
- CleanupStack::PopAndDestroy(expectedTftInfo);
-
-
- //
- // Test setting QOS (this time on primary context)
- //
- INFO_PRINTF1(_L("Test setting QOS"));
- EtelDriverInputRequest( KContextId1, ESetQoS);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EQoSSet);
- RPacketQoS packetQos;
- // check that QOS was created - the simtsy creates the first QOS with name KFirstQosName
- TEST(packetQos.OpenExistingQoS(primaryPacketContext2, KFirstQosName) == KErrNone);
- // qos was created ok
- RPacketQoS::TQoSR99_R4Negotiated *qos = new(ELeave) RPacketQoS::TQoSR99_R4Negotiated;
- CleanupStack::PushL(qos);
- TQoSR99_R4NegotiatedPckg qosPckg(*qos);
- packetQos.GetProfileParameters(status, qosPckg);
- User::WaitForRequest(status);
- RPacketQoS::TQoSR99_R4Negotiated *defaultTestTQoSR99_R4Negotiated = new(ELeave) RPacketQoS::TQoSR99_R4Negotiated;
- CleanupStack::PushL(defaultTestTQoSR99_R4Negotiated);
- SecondQoSR99_R4Negotiated(*defaultTestTQoSR99_R4Negotiated);
- TEST(CompareUMTSQoSNeg(*defaultTestTQoSR99_R4Negotiated, *qos));
- packetQos.Close();
- CleanupStack::PopAndDestroy(defaultTestTQoSR99_R4Negotiated);
- CleanupStack::PopAndDestroy(qos);
- primaryPacketContext2.Close();
- secondaryPacketContext2.Close();
- iPrimaryPacketContext.Close();
- iSecondaryPacketContext.Close();
-
-
- //
- // Test activating contexts
- //
- INFO_PRINTF1(_L("Test activating contexts"));
- EtelDriverInputRequest( KContextId1, EActivatePdp);
- // The service is now attached
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EPdpActivated);
-
- // test that context is set to activated
- TEST(CompareContextInfo(iPacketService, KSecondPrimaryContextName, RPacketContext::EStatusActive));
- RPacketContext::TDataChannelV2 dataChannel;
- DefaultDataChannel(dataChannel);
- TEST(CompareDataChannel(iListener->iNotifyContextDataChannelData.iDataChannelV2, dataChannel));
-
- EtelDriverInputRequest( KContextId2, EActivatePdp);
- WaitForEtelDriverInputResponse( KContextId2, PdpFsm::EPdpActivated);
-
- // test that context is set to activated
- TEST(CompareContextInfo(iPacketService, KFirstSecondaryContextName, RPacketContext::EStatusActive));
-
-
- //
- // Test deleting primary context before secondary contexts
- //
- INFO_PRINTF1(_L("Test deleting primary contexts before secondary contexts"));
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
-
- // make sure it is marked as deleted
- TEST(CompareContextInfo(iPacketService, KFirstPrimaryContextName, RPacketContext::EStatusDeleted));
-
- EtelDriverInputRequest( KContextId1, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EContextDeleted);
-
- // make sure it is marked as deleted
- TEST(CompareContextInfo(iPacketService, KSecondPrimaryContextName, RPacketContext::EStatusDeleted));
-
-
- //
- // Test deleting secondary contexts
- //
- INFO_PRINTF1(_L("Test deleting secondary contexts"));
- EtelDriverInputRequest( KContextId2, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId2, PdpFsm::EContextDeleted);
-
- // make sure it is marked as deleted
- TEST(CompareContextInfo(iPacketService, KFirstSecondaryContextName, RPacketContext::EStatusDeleted));
-
- EtelDriverInputRequest( KContextId3, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId3, PdpFsm::EContextDeleted);
-
- // make sure it is marked as deleted
- TEST(CompareContextInfo(iPacketService, KSecondSecondaryContextName, RPacketContext::EStatusDeleted));
-
- DestroyPhoneAndPacketService();
-
- return TestStepResult();
- }
-
-CSpudTelUnitCancel::~CSpudTelUnitCancel()
- {
- }
-
-// configure to use test step 12 from simtsy config file
-CSpudTelUnitCancel::CSpudTelUnitCancel() : CSpudTelUnitTestStepBase(12)
- {
- // Call base class method to set up the human readable name for logging
- SetTestStepName(KSpudTelUnitCancel);
- }
-
-TVerdict CSpudTelUnitCancel::doTestStepL()
-/**
- Test cancelling operations
- */
- {
- INFO_PRINTF1(_L("Starting Spud Test Cancel on Input Operations"));
-
- TRequestStatus timerStatus;
- RTimer timer;
- timer.CreateLocal();
-
- InitPhoneAndPacketServiceL();
-
- //
- // Test cancelling create primary request
- //
- INFO_PRINTF1(_L("Test cancelling create primary request"));
- EtelDriverInputRequest( KContextId0, ECreate1ryPdpContext);
- CancelPdpRequest(KContextId0);
- timer.After(timerStatus, 1500000);
- User::WaitForRequest(iListener->iEtelDriverInputResponseStatus, timerStatus);
- TEST(timerStatus == KErrNone && iListener->iEtelDriverInputResponseStatus == KRequestPending);
-
-
- //
- // Set up primary for upcoming tests
- //
- //
- INFO_PRINTF1(_L("Create primary"));
- EtelDriverInputRequest( KContextId1, ECreate1ryPdpContext);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::E1ryPdpContextCreated);
-
- // since creating secondary contains no asyncronous requests, the request cannot be cancelled
- //EtelDriverInputRequest( KContextId2, ECreate2ryPdpContext);
- //CancelPdpRequest(KContextId2);
- //timer.After(timerStatus, 1500000);
- //User::WaitForRequest(iListener->iEtelDriverInputResponseStatus, timerStatus);
- //TEST(iListener->iEtelDriverInputResponseStatus == KErrNone);
-
-
- //
- // Test cancelling set TFT
- //
- INFO_PRINTF1(_L("Test cancelling set TFT"));
- EtelDriverInputRequest( KContextId1, ESetTft);
- CancelPdpRequest(KContextId1);
- timer.After(timerStatus, 1500000);
- User::WaitForRequest(iListener->iEtelDriverInputResponseStatus, timerStatus);
- TEST(timerStatus == KErrNone && iListener->iEtelDriverInputResponseStatus == KRequestPending);
-
-
- //
- // Test cancelling set QOS
- //
- //INFO_PRINTF1(_L("Test cancelling set QOS"));
- //EtelDriverInputRequest( KContextId1, ESetQoS);
- //CancelPdpRequest(KContextId1);
- //timer.After(timerStatus, 1500000);
- //User::WaitForRequest(iListener->iEtelDriverInputResponseStatus, timerStatus);
- //TEST(timerStatus == KErrNone && iListener->iEtelDriverInputResponseStatus == KRequestPending);
-
-
- //
- // Test cancelling activate PDP
- //
- INFO_PRINTF1(_L("Test cancelling create secondary request"));
- EtelDriverInputRequest( KContextId1, EActivatePdp);
- CancelPdpRequest(KContextId1);
- timer.After(timerStatus, 1500000);
- User::WaitForRequest(iListener->iEtelDriverInputResponseStatus, timerStatus);
- TEST(timerStatus == KErrNone && iListener->iEtelDriverInputResponseStatus == KRequestPending);
-
-
- //
- // Test cancelling context delete
- //
- INFO_PRINTF1(_L("Test cancelling context delete"));
- EtelDriverInputRequest( KContextId1, EContextDelete);
- CancelPdpRequest(KContextId1);
- timer.After(timerStatus, 1500000);
- User::WaitForRequest(iListener->iEtelDriverInputResponseStatus, timerStatus);
- TEST(timerStatus == KErrNone && iListener->iEtelDriverInputResponseStatus == KRequestPending);
-
- // clean up
- EtelDriverInputRequest( KContextId0, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId0, PdpFsm::EContextDeleted);
- EtelDriverInputRequest( KContextId1, EContextDelete);
- WaitForEtelDriverInputResponse( KContextId1, PdpFsm::EContextDeleted);
-
- DestroyPhoneAndPacketService();
-
- timer.Close();
-
- return TestStepResult();
- }