--- a/telephonyutils/etel3rdpartyapi/Test/te_etelIsv/TE_EtelIsvPhoneSettings.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyutils/etel3rdpartyapi/Test/te_etelIsv/TE_EtelIsvPhoneSettings.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,1483 +1,1483 @@
-// Copyright (c) 2003-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:
-// Tests for ETL 3rd Party Phone APIs
-//
-//
-
-/**
- @file
-*/
-
-#include "TE_EtelIsvbase.h"
-#include "TE_EtelIsvPhoneSettings.h"
-#include "TE_EtelIsvCallFunc.h"
-
-
-
-CTestGetPhoneId::CTestGetPhoneId()
-/** 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("TestGetPhoneId"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 1.1
-@SYMTestCaseDesc Test GetPhoneId 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.1
-*/
-
-TVerdict CTestGetPhoneId::doTestStepL()
-{
- SetTestNumber(0);
-
- //expected data
- _LIT16(manufacturerid, "PSION");
- _LIT16(modelid, "666");
- _LIT16(serialid, "1234567890");
- CTelephony::TPhoneIdV1 ExpectedPhoneId;
- ExpectedPhoneId.iManufacturer=manufacturerid;
- ExpectedPhoneId.iModel=modelid;
- ExpectedPhoneId.iSerialNumber=serialid;
- TRequestStatus expStat=KErrNone;
- CTelephony::TPhoneIdV1Pckg ExpectedPhoneIdPckg(ExpectedPhoneId);
-
- CTestGetPhoneIdAct* GetPhoneIdAct = CTestGetPhoneIdAct::NewLC(this, iTelephony);
-
- #if defined(_DEBUG)
- //Test OOM
- INFO_PRINTF1(_L("Test OOM for GetPhoneId"));
- expStat=KErrNoMemory;
- __UHEAP_FAILNEXT(1);
- GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat);
- CActiveScheduler::Start();
- __UHEAP_RESET;
- #endif
-
- //Start GetPhoneID AO
- INFO_PRINTF1(_L("Test GetPhoneId"));
- expStat=KErrNone;
- GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat, ETrue);
- CActiveScheduler::Start();
-
- //Test cancel
- INFO_PRINTF1(_L("Test Cancel for GetPhoneId"));
- TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
- TEST1(cancelerr == KErrNotFound, ETrue);
- GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat);
- CTestCanceller* canceller = GetPhoneIdAct->RetrieveCanceller();
- canceller->Call();
- CActiveScheduler::Start();
- TEST1(GetPhoneIdAct->iStatus.Int() == KErrCancel || GetPhoneIdAct->iStatus.Int() == KErrNone, ETrue);
-
- CleanupStack::PopAndDestroy(); //GetPhoneIdAct
-
- return TestStepResult();
-}
-
-CTestGetPhoneIdError::CTestGetPhoneIdError()
-/** 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("TestGetPhoneIdError"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 1.2
-@SYMTestCaseDesc Test GetPhoneId 3rd party API - Error scenario
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.1
-*/
-
-TVerdict CTestGetPhoneIdError::doTestStepL()
-{
- INFO_PRINTF1(_L("Test GetPhoneId with error"));
- SetTestNumber(1);
- CTelephony::TPhoneIdV1 ExpectedPhoneId;
- CTelephony::TPhoneIdV1Pckg ExpectedPhoneIdPckg(ExpectedPhoneId);
- TRequestStatus expStat=KErrNotFound;
-
- //Start GetPhoneID AO
- CTestGetPhoneIdAct* GetPhoneIdAct = CTestGetPhoneIdAct::NewLC(this, iTelephony);
- GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat);
-
- CActiveScheduler::Start();
-
- CleanupStack::PopAndDestroy(); //GetPhoneIdAct
- return TestStepResult();
-}
-
-//=====================================================
-//
-// Class to get phone ID active object
-//
-//=====================================================
-
-CTestGetPhoneIdAct* CTestGetPhoneIdAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros)
-//Factory constructor
- {
- CTestGetPhoneIdAct* obj = new(ELeave) CTestGetPhoneIdAct(aTestStep, aTelephony, aUseMacros);
- CleanupStack::PushL(obj);
- obj->ConstructL();
- return obj;
- }
-CTestGetPhoneIdAct::CTestGetPhoneIdAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros = ETrue)
- : CEtelIsvActBase(aTestStep, aTelephony),
- iUseMacros(aUseMacros),
- iPhoneIdBuff(iPhoneId),
- iPhoneIdPckg(iPhoneId)
- {
- }
-
-void CTestGetPhoneIdAct::ConstructL()
- {
- iCanceller = new(ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-CTestGetPhoneIdAct::~CTestGetPhoneIdAct()
- {
- Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
- delete iCanceller;
- }
-
-void CTestGetPhoneIdAct::DoCancel()
- {
- iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
- }
-
-void CTestGetPhoneIdAct::GetPhoneId(TDes8& aExpectedPhoneIdPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
- {
- iExpectedPhoneIdPckg=&aExpectedPhoneIdPckg;
- iExpStat=aExpStat;
-
- TDes8* data;
- if (iTestStep->iBufferMode)
- {
- data = &iPhoneIdBuff;
- }
- else
- {
- data = &iPhoneIdPckg;
- }
-
- iTelephony->GetPhoneId(iStatus, *data);
-
- if(aCheckConcurrency)
- {
- TRequestStatus tmpStatus;
- iTelephony->GetPhoneId(tmpStatus, *data);
- User::WaitForRequest(tmpStatus);
- iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
- }
- SetActive();
- }
-
-void CTestGetPhoneIdAct::RunL()
- {
- // ActiveScheduler will have set status to KRequestComplete, just before
- // calling this RunL().
- CTelephony::TPhoneIdV1Pckg& GetPhoneIdV1Pckg = REINTERPRET_CAST(CTelephony::TPhoneIdV1Pckg&, *iExpectedPhoneIdPckg);
-
- //only supports V1 at present
- CTelephony::TPhoneIdV1& expectedPhoneId = (GetPhoneIdV1Pckg)();
-
- if(iUseMacros)
- {
- iTestStep->TEST1(iStatus.Int() == iExpStat.Int(), ETrue);
- }
-
- if(iStatus.Int() == KErrNone)
- {
- if(iUseMacros)
- {
- const CTelephony::TPhoneIdV1* data;
- if (iTestStep->iBufferMode)
- {
- data = reinterpret_cast<const CTelephony::TPhoneIdV1*> ( &iPhoneIdBuff() );
- }
- else
- {
- data = reinterpret_cast<const CTelephony::TPhoneIdV1*> ( &iPhoneIdPckg() );
- }
-
- iTestStep->TEST1(data->iManufacturer == expectedPhoneId.iManufacturer, ETrue);
- iTestStep->TEST1(data->iModel == expectedPhoneId.iModel, ETrue);
- iTestStep->TEST1(data->iSerialNumber == expectedPhoneId.iSerialNumber, ETrue);
-
- iTestStep->INFO_PRINTF2(_L("Phone manufacturer: %S"), &(data->iManufacturer) );
- iTestStep->INFO_PRINTF2(_L("Phone model: %S"), &(data->iModel) );
- iTestStep->INFO_PRINTF2(_L("Phone serial number: %S"), &(data->iSerialNumber) );
- }
- }
- else
- {
- if(iUseMacros)
- {
- iTestStep->INFO_PRINTF2(_L("Error for GetPhoneId: %d"), iStatus.Int() );
- }
- }
-
- CActiveScheduler::Stop();
- }
-
-CTestGetSubscriberId::CTestGetSubscriberId()
-/** 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("TestGetSubscriberId"));
-}
-
-
-
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 2.1
-@SYMTestCaseDesc Test GetSubscriberId 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.2
-*
-*/
-
-TVerdict CTestGetSubscriberId::doTestStepL()
- {
- //Set test number
- SetTestNumber(2);
-
- //Set expected IMSI value
- _LIT16(SubscriberId, "56789012345678");
- CTelephony::TSubscriberIdV1 ExpSubscriberId ;
- ExpSubscriberId.iSubscriberId=SubscriberId;
- CTelephony::TSubscriberIdV1Pckg expSubscriberIdPckg(ExpSubscriberId);
- TRequestStatus expStat=KErrNone;
-
- CTestGetSubscriberIdAct* GetSubscriberIdAct = CTestGetSubscriberIdAct::NewLC(this, iTelephony);
-
- #if defined(_DEBUG)
- //Test OOM
- INFO_PRINTF1(_L("Test OOM for GetSubscriberId"));
- expStat=KErrNoMemory;
- __UHEAP_FAILNEXT(1);
- GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat);
- CActiveScheduler::Start();
- __UHEAP_RESET;
- #endif
-
- //Start GetSubscriberID AO
- INFO_PRINTF1(_L("Test GetSubscriberId"));
- expStat=KErrNone;
- GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat, ETrue);
- CActiveScheduler::Start();
-
- //Test cancel
- INFO_PRINTF1(_L("Test Cancel for GetSubscriberId"));
- TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
- TEST1(cancelerr == KErrNotFound, ETrue);
- CTestCanceller* canceller = GetSubscriberIdAct->RetrieveCanceller();
- GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat);
- canceller->Call();
- CActiveScheduler::Start();
- TEST1(GetSubscriberIdAct->iStatus.Int() == KErrCancel || GetSubscriberIdAct->iStatus.Int() == KErrNone, ETrue);
-
- CleanupStack::PopAndDestroy(); //GetSubscriberIdAct
- return TestStepResult();
-}
-
-CTestGetSubscriberIdError::CTestGetSubscriberIdError()
-/** 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("TestGetSubscriberIdError"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 2.2
-@SYMTestCaseDesc Test GetSubscriberId 3rd party API - Error scenario
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.2
-*
-*/
-
-TVerdict CTestGetSubscriberIdError::doTestStepL()
- {
- INFO_PRINTF1(_L("Test Cancel for GetSubscriberId with error."));
-
- //Set test number
- SetTestNumber(3);
-
- //Set expected IMSI value
- _LIT16(SubscriberId, "01234567890123");
- CTelephony::TSubscriberIdV1 ExpSubscriberId ;
- ExpSubscriberId.iSubscriberId=SubscriberId;
- CTelephony::TSubscriberIdV1Pckg expSubscriberIdPckg(ExpSubscriberId);
-
- //Start GetSubscriberID AO
- TRequestStatus expStat=KErrNotSupported;
- CTestGetSubscriberIdAct* GetSubscriberIdAct = CTestGetSubscriberIdAct::NewLC(this, iTelephony);
- GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat);
-
- CActiveScheduler::Start();
-
- CleanupStack::PopAndDestroy(); //GetSubscriberIdAct
- return TestStepResult() ;
-}
-
-//=====================================================
-//
-// Class to get subscriber ID active object
-//
-//=====================================================
-
-CTestGetSubscriberIdAct* CTestGetSubscriberIdAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
-//Factory constructor
- {
- CTestGetSubscriberIdAct* obj = new(ELeave) CTestGetSubscriberIdAct(aTestStep, aTelephony);
- CleanupStack::PushL(obj);
- obj->ConstructL();
- return obj;
- }
-
-CTestGetSubscriberIdAct::CTestGetSubscriberIdAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
- : CEtelIsvActBase(aTestStep, aTelephony),
- iSubscriberIdBuff(iSubscriberId),
- iSubscriberIdPckg(iSubscriberId)
- {
- }
-
-void CTestGetSubscriberIdAct::ConstructL()
- {
- iCanceller = new(ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-CTestGetSubscriberIdAct::~CTestGetSubscriberIdAct()
- {
- Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
- delete iCanceller;
- }
-
-void CTestGetSubscriberIdAct::DoCancel()
- {
- iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
- }
-
-void CTestGetSubscriberIdAct::GetSubscriberId(TDes8& aExpSubscriberIdPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
- {
- iExpStat = aExpStat;
- iExpSubscriberIdPckg=&aExpSubscriberIdPckg;
-
- TDes8* data;
- if (iTestStep->iBufferMode)
- {
- data = &iSubscriberIdBuff;
- }
- else
- {
- data = &iSubscriberIdPckg;
- }
-
- iTelephony->GetSubscriberId(iStatus, *data);
-
- if(aCheckConcurrency)
- {
- TRequestStatus tmpStatus;
- iTelephony->GetSubscriberId(tmpStatus, *data);
- User::WaitForRequest(tmpStatus);
- iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
- }
-
- SetActive();
- }
-
-void CTestGetSubscriberIdAct::RunL()
- {
- // ActiveScheduler will have set status to KRequestComplete, just before
- // calling this RunL().
- CTelephony::TSubscriberIdV1Pckg& expSubscriberIdPckg = REINTERPRET_CAST(CTelephony::TSubscriberIdV1Pckg&, *iExpSubscriberIdPckg);
-
- //only supports V1 at present
- CTelephony::TSubscriberIdV1& expSubscriberId = (expSubscriberIdPckg)();
-
- iTestStep->TEST1(iStatus.Int() == iExpStat.Int(), ETrue);
-
- if(iStatus.Int() == KErrNone)
- {
- CTelephony::TSubscriberIdV1* data;
- if (iTestStep->iBufferMode)
- {
- data = reinterpret_cast<CTelephony::TSubscriberIdV1*> ( &iSubscriberIdBuff() );
- }
- else
- {
- data = reinterpret_cast<CTelephony::TSubscriberIdV1*> ( &iSubscriberIdPckg() );
- }
-
- iTestStep->TEST1(data->iSubscriberId == expSubscriberId.iSubscriberId, ETrue);
- iTestStep->INFO_PRINTF2(_L("SubscriberId: %S"), &(data->iSubscriberId) );
- }
- else
- {
- iTestStep->INFO_PRINTF2(_L("Error for GeSubscriberId: %d"), iStatus.Int() );
- }
-
- CActiveScheduler::Stop();
- }
-
-CTestGetIndicator::CTestGetIndicator()
-/** 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("TestGetIndicator"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 4.1
-@SYMTestCaseDesc Test GetIndicator 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.4
-*
-*/
-
-TVerdict CTestGetIndicator::doTestStepL()
- {
- //Set test number
- SetTestNumber(4);
-
- //Set expected return values
- TUint32 expIndCaps = CTelephony::KIndChargerConnected | CTelephony::KIndNetworkAvailable | CTelephony::KIndCallInProgress;
- TUint32 expInd = CTelephony::KIndChargerConnected;
- TRequestStatus expStat=KErrNone;
-
- CTestGetIndicatorAct* GetIndicatorAct = CTestGetIndicatorAct::NewLC(this, iTelephony);
-
- #if defined(_DEBUG)
- //test OOM
- INFO_PRINTF1(_L("Test OOM for GetIndicator"));
- expStat = KErrNoMemory;
- __UHEAP_FAILNEXT(1);
- GetIndicatorAct->GetPhoneIndicator(expIndCaps, expInd, expStat);
- CActiveScheduler::Start();
- __UHEAP_RESET;
- #endif
-
- //Start GetIndicator AO
- expStat=KErrNone;
- INFO_PRINTF1(_L("Test GetIndicator"));
- GetIndicatorAct->GetPhoneIndicator(expIndCaps, expInd, expStat, ETrue);
- CActiveScheduler::Start();
-
- //Test cancel
- TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetIndicatorCancel);
- TEST1(cancelerr == KErrNotFound, ETrue);
- GetIndicatorAct->GetPhoneIndicator(expIndCaps, expInd, expStat);
- CTestCanceller* canceller = GetIndicatorAct->RetrieveCanceller();
- canceller->Call();
- CActiveScheduler::Start();
- TEST1(GetIndicatorAct->iStatus.Int() == KErrCancel || GetIndicatorAct->iStatus.Int() == KErrNone, ETrue);
-
- CleanupStack::PopAndDestroy(); //GetIndicatorAct
- return TestStepResult() ;
-}
-
-//=====================================================
-//
-// Class to get phone indicator active object
-//
-//=====================================================
-
-CTestGetIndicatorAct* CTestGetIndicatorAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
-//Factory constructor
- {
- CTestGetIndicatorAct* obj = new(ELeave) CTestGetIndicatorAct(aTestStep, aTelephony);
- CleanupStack::PushL(obj);
- obj->ConstructL();
- return obj;
- }
-
-CTestGetIndicatorAct::CTestGetIndicatorAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
- : CEtelIsvActBase(aTestStep, aTelephony),
- iIndicatorBuff(iIndicator),
- iIndicatorPckg(iIndicator)
- {
- }
-
-void CTestGetIndicatorAct::ConstructL()
- {
- iCanceller = new(ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-CTestGetIndicatorAct::~CTestGetIndicatorAct()
- {
- Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
- delete iCanceller;
- }
-
-void CTestGetIndicatorAct::DoCancel()
- {
- iTelephony->CancelAsync(CTelephony::EGetIndicatorCancel);
- }
-
-void CTestGetIndicatorAct::GetPhoneIndicator(TUint32 aExpIndCaps, TUint32 aExpInd,TRequestStatus aExpStat, TBool aCheckConcurrency)
- {
- iExpIndCaps = aExpIndCaps;
- iExpInd = aExpInd;
- iExpStat = aExpStat;
-
- TDes8* data;
- if (iTestStep->iBufferMode)
- {
- data = &iIndicatorBuff;
- }
- else
- {
- data = &iIndicatorPckg;
- }
-
- iTelephony->GetIndicator(iStatus, *data);
-
- if(aCheckConcurrency)
- {
- TRequestStatus tmpStatus;
- iTelephony->GetIndicator(tmpStatus, *data);
- User::WaitForRequest(tmpStatus);
- iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
- }
-
- SetActive();
- }
-
-void CTestGetIndicatorAct::RunL()
- {
- // ActiveScheduler will have set status to KRequestComplete, just before
- // calling this RunL().
-
- iTestStep->TEST1(iStatus.Int() == iExpStat.Int(), ETrue);
-
- if(iStatus.Int() == KErrNone)
- {
- CTelephony::TIndicatorV1* data;
- if (iTestStep->iBufferMode)
- {
- data = reinterpret_cast<CTelephony::TIndicatorV1*> ( &iIndicatorBuff() );
- }
- else
- {
- data = reinterpret_cast<CTelephony::TIndicatorV1*> ( &iIndicatorPckg() );
- }
-
- iTestStep->TEST1(iExpIndCaps == data->iCapabilities, ETrue);
- iTestStep->TEST1(iExpInd == data->iIndicator, ETrue);
- iTestStep->PrintIndicatorValues(data->iIndicator, data->iCapabilities);
- }
- else
- {
- iTestStep->INFO_PRINTF2(_L("Error for GetIndicators: %d"), iStatus.Int() );
- }
-
- CActiveScheduler::Stop();
- }
-
-CTestGetBatteryInfo::CTestGetBatteryInfo()
-/** 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("TestGetBatteryInfo"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 5.1
-@SYMTestCaseDesc Test GetBatteryInfo 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.3
-*
-*/
-
-TVerdict CTestGetBatteryInfo::doTestStepL()
- {
- INFO_PRINTF1(_L("Test retrieval of battery information status"));
-
- //Set test number
- SetTestNumber(5);
-
- //Set expected result data
- TRequestStatus expStat=KErrNone;
- CTelephony::TBatteryInfoV1 BatteryExpInfo;
- BatteryExpInfo.iStatus=CTelephony::EPowerStatusUnknown;
- BatteryExpInfo.iChargeLevel=0;
- CTelephony::TBatteryInfoV1Pckg batteryExpInfoPckg(BatteryExpInfo);
- CTestGetBatteryInfoAct* GetBatteryInfoAct = CTestGetBatteryInfoAct::NewLC(this, iTelephony);
-
- #if defined(_DEBUG)
- //test OOM
- INFO_PRINTF1(_L("Test OOM for GetBatteryInfo"));
- expStat=KErrNoMemory;
- __UHEAP_FAILNEXT(1);
- GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
- CActiveScheduler::Start();
- __UHEAP_RESET;
- #endif
-
- //test GetBatteryInfo
- INFO_PRINTF1(_L("Test GetBatteryInfo"));
- expStat=KErrNone;
- GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat, ETrue);
- CActiveScheduler::Start();
-
- //wait for 3 secs then re-test. State should have changed.
- User::After(3000000);
-
- expStat=KErrNone;
- BatteryExpInfo.iStatus=CTelephony::EPoweredByBattery;
- BatteryExpInfo.iChargeLevel=2;
- GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
- CActiveScheduler::Start();
-
- //wait for 3 secs then re-test. State should have changed.
- User::After(3000000);
-
- expStat=KErrGeneral;
- BatteryExpInfo.iStatus=CTelephony::EPoweredByBattery;
- BatteryExpInfo.iChargeLevel=20;
- GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
- CActiveScheduler::Start();
-
- //Test cancel
- User::After(3000000);
- TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetBatteryInfoCancel);
- TEST1(cancelerr == KErrNotFound, ETrue);
- INFO_PRINTF1(_L("Test Cancel for GetBatteryInfo"));
- GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
- CTestCanceller* canceller = GetBatteryInfoAct->RetrieveCanceller();
- canceller->Call();
- CActiveScheduler::Start();
- TEST1(GetBatteryInfoAct->iStatus.Int() == KErrCancel || GetBatteryInfoAct->iStatus.Int() == KErrNone, ETrue);
-
- CleanupStack::PopAndDestroy(); // GetBatteryInfoAct
- return TestStepResult() ;
-}
-
-//=====================================================
-//
-// Class to get battery info active object
-//
-//=====================================================
-
-CTestGetBatteryInfoAct* CTestGetBatteryInfoAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
-//Factory constructor
- {
- CTestGetBatteryInfoAct* obj = new(ELeave) CTestGetBatteryInfoAct(aTestStep, aTelephony);
- CleanupStack::PushL(obj);
- obj->ConstructL();
- return obj;
- }
-
-CTestGetBatteryInfoAct::CTestGetBatteryInfoAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
- : CEtelIsvActBase(aTestStep, aTelephony),
- iBatteryInfoBuff(iBatteryInfo),
- iBatteryInfoPckg(iBatteryInfo)
- {
- }
-
-void CTestGetBatteryInfoAct::ConstructL()
- {
- iCanceller = new(ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-CTestGetBatteryInfoAct::~CTestGetBatteryInfoAct()
- {
- Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
- delete iCanceller;
- }
-
-void CTestGetBatteryInfoAct::DoCancel()
- {
- iTelephony->CancelAsync(CTelephony::EGetBatteryInfoCancel);
- }
-
-void CTestGetBatteryInfoAct::GetBatteryInfo(TDes8& aBatteryExpInfoPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
- {
- iBatteryExpInfoPckg=&aBatteryExpInfoPckg;
- iExpStat = aExpStat;
-
- TDes8* data;
- if (iTestStep->iBufferMode)
- {
- data = &iBatteryInfoBuff;
- }
- else
- {
- data = &iBatteryInfoPckg;
- }
-
- iTelephony->GetBatteryInfo(iStatus, *data);
-
- if(aCheckConcurrency)
- {
- TRequestStatus tmpStatus;
- iTelephony->GetBatteryInfo(tmpStatus, *data);
- User::WaitForRequest(tmpStatus);
- iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
- }
-
- SetActive();
- }
-
-void CTestGetBatteryInfoAct::RunL()
- {
- // ActiveScheduler will have set status to KRequestComplete, just before
- // calling this RunL().
- CTelephony::TBatteryInfoV1Pckg& batteryExpInfoPckg = REINTERPRET_CAST(CTelephony::TBatteryInfoV1Pckg&, *iBatteryExpInfoPckg);
-
- //only supports V1 at present
- CTelephony::TBatteryInfoV1& batteryExpInfo = (batteryExpInfoPckg)();
-
- iTestStep->TEST1(iStatus.Int()==iExpStat.Int(), ETrue);
-
- if(iStatus.Int() == KErrNone)
- {
- CTelephony::TBatteryInfoV1* data;
- if (iTestStep->iBufferMode)
- {
- data = reinterpret_cast<CTelephony::TBatteryInfoV1*> ( &iBatteryInfoBuff() );
- }
- else
- {
- data = reinterpret_cast<CTelephony::TBatteryInfoV1*> ( &iBatteryInfoPckg() );
- }
-
- iTestStep->TEST1(data->iStatus==batteryExpInfo.iStatus, ETrue);
- iTestStep->TEST1(data->iChargeLevel==batteryExpInfo.iChargeLevel, ETrue);
- iTestStep->PrintBatteryInfo(*data);
- }
- else
- {
- iTestStep->INFO_PRINTF2(_L("Error for GetBatteryInfo: %d"), iStatus.Int() );
- }
-
- iTestStep->INFO_PRINTF1(_L(""));
- CActiveScheduler::Stop();
- }
-
-CTestGetSignalStrength::CTestGetSignalStrength()
-/** 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("TestGetSignalStrength"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 6.1
-@SYMTestCaseDesc Test GetSignalStrength 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.??
-*
-*/
-
-TVerdict CTestGetSignalStrength::doTestStepL()
- {
- INFO_PRINTF1(_L("Test retrieval of Signal Strength information "));
-
- //Set test number
- SetTestNumber(6);
- //Set expected result values
- TRequestStatus expStat=KErrNone;
- CTelephony::TSignalStrengthV1 ExpSignalStrength;
- ExpSignalStrength.iBar=3;
- ExpSignalStrength.iSignalStrength=-51;
- CTelephony::TSignalStrengthV1Pckg expSignalStrengthPckg(ExpSignalStrength);
- CTestGetSignalStrengthAct* GetSignalStrengthAct = CTestGetSignalStrengthAct::NewLC(this, iTelephony);
-
- #if defined(_DEBUG)
- //test OOM
- INFO_PRINTF1(_L("Test OOM for GetSignalStrength"));
- expStat=KErrNoMemory;
- __UHEAP_FAILNEXT(1);
- GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
- CActiveScheduler::Start();
- __UHEAP_RESET;
- #endif
-
- //Start GetSignalStrength AO
- INFO_PRINTF1(_L("Test GetSignalStrength"));
- expStat=KErrNone;
- GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat, ETrue);
- CActiveScheduler::Start();
-
- User::After(3000000);
- //wait for 3 secs and re-test
- expStat=KErrNotSupported;
- GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
- CActiveScheduler::Start();
-
- //Test cancel
- User::After(3000000);
- TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetSignalStrengthCancel);
- TEST1(cancelerr == KErrNotFound, ETrue);
- INFO_PRINTF1(_L("Test Cancel for GetSignalStrength"));
- GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
- CTestCanceller* canceller = GetSignalStrengthAct->RetrieveCanceller();
- canceller->Call();
- CActiveScheduler::Start();
- TEST1(GetSignalStrengthAct->iStatus.Int() == KErrCancel || GetSignalStrengthAct->iStatus.Int() == KErrNone, ETrue);
-
- CleanupStack::PopAndDestroy(); //GetSignalStrengthAct
- return TestStepResult() ;
-}
-
-//=====================================================
-//
-// Class to get signal strength active object
-//
-//=====================================================
-CTestGetSignalStrengthAct* CTestGetSignalStrengthAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros)
-//Factory constructor
- {
- CTestGetSignalStrengthAct* obj = new(ELeave) CTestGetSignalStrengthAct(aTestStep, aTelephony, aUseMacros);
- CleanupStack::PushL(obj);
- obj->ConstructL();
- return obj;
- }
-
-CTestGetSignalStrengthAct::CTestGetSignalStrengthAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros)
- : CEtelIsvActBase(aTestStep, aTelephony),
- iUseMacros(aUseMacros),
- iSignalStrengthBuff(iSignalStrength),
- iSignalStrengthPckg(iSignalStrength)
- {
- }
-
-void CTestGetSignalStrengthAct::ConstructL()
- {
- iCanceller = new(ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-CTestGetSignalStrengthAct::~CTestGetSignalStrengthAct()
- {
- Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
- delete iCanceller;
- }
-
-void CTestGetSignalStrengthAct::DoCancel()
- {
- iTelephony->CancelAsync(CTelephony::EGetSignalStrengthCancel);
- }
-
-void CTestGetSignalStrengthAct::GetSignalStrength(TDes8& aExpSignalStrengthPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
- {
- iExpStat = aExpStat;
- iExpSignalStrengthPckg=&aExpSignalStrengthPckg;
-
- TDes8* data;
- if (iTestStep->iBufferMode)
- {
- data = &iSignalStrengthBuff;
- }
- else
- {
- data = &iSignalStrengthPckg;
- }
-
- iTelephony->GetSignalStrength(iStatus, *data);
-
- if(aCheckConcurrency)
- {
- TRequestStatus tmpStatus;
- iTelephony->GetSignalStrength(tmpStatus, *data);
- User::WaitForRequest(tmpStatus);
- iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
- }
-
- SetActive();
- }
-
-void CTestGetSignalStrengthAct::RunL()
- {
- // ActiveScheduler will have set status to KRequestComplete, just before
- // calling this RunL().
- CTelephony::TSignalStrengthV1Pckg& expSignalStrengthPckg = REINTERPRET_CAST(CTelephony::TSignalStrengthV1Pckg&, *iExpSignalStrengthPckg);
-
- //only supports V1 at present
- CTelephony::TSignalStrengthV1& expSignalStrength = (expSignalStrengthPckg)();
-
- if(iUseMacros)
- {
- iTestStep->TEST1(iStatus.Int()==iExpStat.Int(), ETrue);
- }
-
- if(iStatus.Int() == KErrNone)
- {
- if(iUseMacros)
- {
- CTelephony::TSignalStrengthV1* data;
- if (iTestStep->iBufferMode)
- {
- data = reinterpret_cast<CTelephony::TSignalStrengthV1*> ( &iSignalStrengthBuff() );
- }
- else
- {
- data = reinterpret_cast<CTelephony::TSignalStrengthV1*> ( &iSignalStrengthPckg() );
- }
-
- iTestStep->TEST1(data->iBar==expSignalStrength.iBar, ETrue);
- iTestStep->TEST1(data->iSignalStrength==expSignalStrength.iSignalStrength, ETrue);
- iTestStep->INFO_PRINTF2(_L("Signal strength (in display bars) : %d"), expSignalStrength.iBar);
- iTestStep->INFO_PRINTF2(_L("Signal strength (in dBm) : %d"), expSignalStrength.iSignalStrength);
- }
- }
- else
- {
- if(iUseMacros)
- {
- iTestStep->INFO_PRINTF2(_L("Error for GetSignalStrength: %d"), iStatus.Int() );
- }
- }
-
- CActiveScheduler::Stop();
- if(iUseMacros)
- {
- iTestStep->INFO_PRINTF1(_L(""));
- }
- }
-
-CTestGetLockInfo::CTestGetLockInfo()
-/** 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("TestGetLockInfo"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 7.1
-@SYMTestCaseDesc Test GetLockInfo 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.8
-*
-*/
-
-TVerdict CTestGetLockInfo::doTestStepL()
- {
- INFO_PRINTF1(_L("Test retrieval of current status of PIN1/PIN2 "));
- //Set test number
- SetTestNumber(7);
-
- //Set expected result values
- TRequestStatus expStat=KErrNone;
- CTelephony::TIccLockInfoV1 ExpLockInfo;
- ExpLockInfo.iSetting = CTelephony::ELockSetDisabled;
- ExpLockInfo.iStatus = CTelephony::EStatusUnlocked;
- CTelephony::TIccLockInfoV1Pckg expLockInfoPckg(ExpLockInfo);
- CTestGetLockInfoAct* GetLockInfoAct = CTestGetLockInfoAct::NewLC(this, iTelephony);
-
- CTelephony::TIccLock Lock;
- #if defined(_DEBUG)
- //test OOM
- INFO_PRINTF1(_L("Test OOM for GetLockInfo"));
- expStat=KErrNoMemory;
- Lock=CTelephony::ELockPin1;
- __UHEAP_FAILNEXT(1);
- GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat);
- CActiveScheduler::Start();
- __UHEAP_RESET;
- #endif
-
- //Start GetLockinfo AO for pin1
- expStat=KErrNone;
- INFO_PRINTF1(_L("Test GetLockInfo"));
- Lock=CTelephony::ELockPin1;
- INFO_PRINTF1(_L("current status of PIN1 "));
- GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat, ETrue);
- CActiveScheduler::Start();
-
- //Start GetLockinfo AO for pin2
- Lock=CTelephony::ELockPin2;
- INFO_PRINTF1(_L("current status of PIN2 "));
- ExpLockInfo.iSetting = CTelephony::ELockSetEnabled;
- ExpLockInfo.iStatus = CTelephony::EStatusLocked;
- GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat);
- CActiveScheduler::Start();
-
- //Test cancel
- INFO_PRINTF1(_L("Test Cancel for GetLockInfo"));
- TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetLockInfoCancel);
- TEST1(cancelerr == KErrNotFound, ETrue);
- GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat);
- CTestCanceller* canceller = GetLockInfoAct->RetrieveCanceller();
- canceller->Call();
- CActiveScheduler::Start();
- TEST1(GetLockInfoAct->iStatus.Int() == KErrCancel || GetLockInfoAct->iStatus.Int() == KErrNone, ETrue);
-
- CleanupStack::PopAndDestroy(); //GetLockInfoAct
- return TestStepResult() ;
-}
-
-//=====================================================
-//
-// Class to get lock info active object
-//
-//=====================================================
-CTestGetLockInfoAct* CTestGetLockInfoAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
-//Factory constructor
- {
- CTestGetLockInfoAct* obj = new(ELeave) CTestGetLockInfoAct(aTestStep, aTelephony);
- CleanupStack::PushL(obj);
- obj->ConstructL();
- return obj;
- }
-
-CTestGetLockInfoAct::CTestGetLockInfoAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
- : CEtelIsvActBase(aTestStep, aTelephony),
- iLockInfoBuff(iLockInfo),
- iLockInfoPckg(iLockInfo)
- {
- }
-
-void CTestGetLockInfoAct::ConstructL()
- {
- iCanceller = new(ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-CTestGetLockInfoAct::~CTestGetLockInfoAct()
- {
- Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
- delete iCanceller;
- }
-
-void CTestGetLockInfoAct::DoCancel()
- {
- iTelephony->CancelAsync(CTelephony::EGetLockInfoCancel);
- }
-
-void CTestGetLockInfoAct::GetLockInfo(CTelephony::TIccLock aLock, TDes8& aExpLockInfoPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
- {
- iExpStat = aExpStat;
- iExpLockInfoPckg=&aExpLockInfoPckg;
- iLock = aLock;
-
- TDes8* data;
- if (iTestStep->iBufferMode)
- {
- data = &iLockInfoBuff;
- }
- else
- {
- data = &iLockInfoPckg;
- }
-
- iTelephony->GetLockInfo(iStatus ,aLock ,*data);
-
- if(aCheckConcurrency)
- {
- TRequestStatus tmpStatus;
- iTelephony->GetLockInfo(tmpStatus ,aLock ,*data);
- User::WaitForRequest(tmpStatus);
- iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
- }
-
- SetActive();
- }
-
-void CTestGetLockInfoAct::RunL()
- {
- // ActiveScheduler will have set status to KRequestComplete, just before
- // calling this RunL().
- CTelephony::TIccLockInfoV1Pckg& expLockInfoPckg = REINTERPRET_CAST(CTelephony::TIccLockInfoV1Pckg&, *iExpLockInfoPckg);
-
- //only supports V1 at present
- CTelephony::TIccLockInfoV1& expLockInfo = (expLockInfoPckg)();
-
- iTestStep->TEST1(iStatus.Int()==iExpStat.Int(),1);
-
- if(iStatus.Int() == KErrNone)
- {
- CTelephony::TIccLockInfoV1* data;
- if (iTestStep->iBufferMode)
- {
- data = reinterpret_cast<CTelephony::TIccLockInfoV1*> ( &iLockInfoBuff() );
- }
- else
- {
- data = reinterpret_cast<CTelephony::TIccLockInfoV1*> ( &iLockInfoPckg() );
- }
-
- iTestStep->TEST1(data->iSetting==expLockInfo.iSetting,1);
- iTestStep->TEST1(data->iStatus==expLockInfo.iStatus,1);
- iTestStep->PrintLockInfo(iLock, data->iSetting, data->iStatus);
- }
- else
- {
- iTestStep->INFO_PRINTF2(_L("Error for GetLockInfo: %d"), iStatus.Int() );
- }
-
- CActiveScheduler::Stop();
- iTestStep->INFO_PRINTF1(_L(""));
- }
-
-CTestSendDTMFTones::CTestSendDTMFTones()
-/** 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("TestSendDTMFTones"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 8.1
-@SYMTestCaseDesc Test SendDTMFTones 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.9
-*
-*/
-
-
-TVerdict CTestSendDTMFTones::doTestStepL()
- {
- SetTestNumber(8);
-
- INFO_PRINTF1(_L("Test sending of DTMF tones "));
-
- //set test data to transmit
- _LIT(KDtmfString0,"45p6789A");
-
- //make a call to send the DTMF through
-
- _LIT(KGoodNumber,"1789");
- //Set the call parameters for call
- CTelephony::TCallParamsV1 callParams1;
- callParams1.iIdRestrict = CTelephony::ESendMyId;
- CTelephony::TCallParamsV1Pckg callParamsPckg1(callParams1);
-
- TTestCallParams testCallParams;
- testCallParams.iLine = CTelephony::EVoiceLine;
- testCallParams.iCallParamsV1Pckg = &callParamsPckg1;
- testCallParams.iTelAddress.iTelNumber = KGoodNumber;
- testCallParams.iExpStat = KErrNone;
-
- //make the call
- CTestDialNewCallAct* testDialNewCallAct = CTestDialNewCallAct::NewLC(this, iTelephony);
- testCallParams.iCallId = CTelephony::EISVMaxNumOfCalls;
- testDialNewCallAct->TestDialNewCall(testCallParams);
- CActiveScheduler::Start();
- CleanupStack::PopAndDestroy(testDialNewCallAct);
-
- //wait for call status to be connected
- CTelephony::TCallStatusV1 CallStatusV1;
- CTelephony::TCallStatusV1Pckg CallStatusPckg(CallStatusV1);
- iTelephony->GetCallStatus(testCallParams.iCallId, CallStatusPckg);
- TEST1(CallStatusV1.iStatus == CTelephony::EStatusConnected,1);
-
- TRequestStatus expStat=KErrNone;
- CTestSendDTMFTonesAct*SendDTMFAct = CTestSendDTMFTonesAct::NewLC(this, iTelephony);
-
- #if defined(_DEBUG)
- //test OOM
- INFO_PRINTF1(_L("Test OOM for SendDTMFTones"));
- expStat=KErrNoMemory;
- __UHEAP_FAILNEXT(1);
- SendDTMFAct->SendDTMFTone(KDtmfString0, expStat);
- CActiveScheduler::Start();
- __UHEAP_RESET;
- #endif
-
- //set expected result values for DTMF
- expStat=KErrNone;
- SendDTMFAct->SendDTMFTone(KDtmfString0, expStat, ETrue);
- CActiveScheduler::Start();
-
- //Test cancel
- INFO_PRINTF1(_L("Test Cancel for SendDTMFTones"));
- TInt cancelerr = iTelephony->CancelAsync(CTelephony::ESendDTMFTonesCancel);
- TEST1(cancelerr == KErrNotFound, ETrue);
- SendDTMFAct->SendDTMFTone(KDtmfString0, expStat);
- CTestCanceller* canceller = SendDTMFAct->RetrieveCanceller();
- canceller->Call();
- CActiveScheduler::Start();
- TEST1(SendDTMFAct->iStatus.Int() == KErrCancel, ETrue);
-
- CTestHangupAct* testHangupAct = CTestHangupAct::NewLC(this, iTelephony);
- //Hangup call
- testHangupAct->TestHangup(testCallParams);
- CActiveScheduler::Start();
- CleanupStack::PopAndDestroy(testHangupAct);
-
-
- CleanupStack::PopAndDestroy(SendDTMFAct); //SendDTMFAct
- return TestStepResult() ;
-}
-
-CTestSendDTMFTonesAct* CTestSendDTMFTonesAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
-//Factory constructor
- {
- CTestSendDTMFTonesAct* obj = new(ELeave) CTestSendDTMFTonesAct(aTestStep, aTelephony);
- CleanupStack::PushL(obj);
- obj->ConstructL();
- return obj;
- }
-
-CTestSendDTMFTonesAct::CTestSendDTMFTonesAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
- : CEtelIsvActBase(aTestStep, aTelephony)
- {
- }
-
-void CTestSendDTMFTonesAct::ConstructL()
- {
- iCanceller = new(ELeave) CTestCanceller(this);
- CActiveScheduler::Add(this);
- }
-
-CTestSendDTMFTonesAct::~CTestSendDTMFTonesAct()
- {
- Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
- delete iCanceller;
- }
-
-void CTestSendDTMFTonesAct::DoCancel()
- {
- iTelephony->CancelAsync(CTelephony::ESendDTMFTonesCancel);
- }
-
-void CTestSendDTMFTonesAct::SendDTMFTone(const TDesC& aTones, TRequestStatus aExpStat, TBool aCheckConcurrency)
- {
- iExpStat = aExpStat;
-
- iTelephony->SendDTMFTones(iStatus, aTones);
-
- if(aCheckConcurrency)
- {
- TRequestStatus tmpStatus;
- iTelephony->SendDTMFTones(tmpStatus, aTones);
- User::WaitForRequest(tmpStatus);
- iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
- }
-
- SetActive();
- }
-
-void CTestSendDTMFTonesAct::RunL()
- {
- // ActiveScheduler will have set status to KRequestComplete, just before
- // calling this RunL().
-
- iTestStep->TEST1(iStatus.Int()==iExpStat.Int(), 1);
-
- CActiveScheduler::Stop();
- iTestStep->INFO_PRINTF1(_L(""));
- }
-
-CTestFlightModeWithPublishSubscribe::CTestFlightModeWithPublishSubscribe()
-/** 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("TestFlightModeWithPublishSubscribe"));
-}
-
-/**
-*
-@SYMTestCaseID Etel3rdParty 3.1
-@SYMTestCaseDesc Test GetFlightMode 3rd party API
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.4.3
-*
-*/
-
-
-TVerdict CTestFlightModeWithPublishSubscribe::doTestStepL()
- {
- INFO_PRINTF1(_L("Test retrieval of flight mode with publish and subscribe"));
-
- RProperty phonePowerProperty;
- User::LeaveIfError(phonePowerProperty.Attach(KUidSystemCategory, KUidPhonePwr.iUid));
- CleanupClosePushL(phonePowerProperty);
-
- TRequestStatus status;
- phonePowerProperty.Subscribe(status);
- User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
- User::WaitForRequest(status);
- TEST(status.Int() == KErrNone);
-
- //Set up the data
- CTelephony::TFlightModeV1 FlightMode;
- CTelephony::TFlightModeV1Pckg FlightModePckg(FlightMode);
- TPckgBuf<CTelephony::TFlightModeV1> FlightModeBuff(FlightMode);
- TDes8* FlightModeData;
- if (iBufferMode)
- {
- FlightModeData = &FlightModeBuff;
- }
- else
- {
- FlightModeData = &FlightModePckg;
- }
- CTelephony::TFlightModeV1& FlightModeResult =
- reinterpret_cast<CTelephony::TFlightModeV1&> ( const_cast<TUint8&> ( *FlightModeData->Ptr() ) );
-
- //Get current flight mode
- TRequestStatus reqStat=KErrNone;
- iTelephony->GetFlightMode(reqStat, *FlightModeData);
- User::WaitForRequest(reqStat);
-
- //check results
- TEST1(reqStat.Int() == KErrNone, ETrue);
- TEST1(FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOff, ETrue);
- if (FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOff)
- INFO_PRINTF1(_L("The mobile radio interface and bluetooth is currently on"));
-
- phonePowerProperty.Subscribe(status);
- User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
- User::WaitForRequest(status);
- TEST(status.Int() == KErrNone);
-
- //Get current flight mode
- iTelephony->GetFlightMode(reqStat, *FlightModeData);
- User::WaitForRequest(reqStat);
-
- //check results
- TEST1(reqStat.Int() == KErrNone, ETrue);
- TEST1(FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOn, ETrue);
- if (FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOn)
- INFO_PRINTF1(_L("The mobile radio interface and bluetooth is currently off"));
- CleanupStack::PopAndDestroy(&phonePowerProperty);
- return TestStepResult() ;
-}
-
-CTestPhoneFuncFlightModeOnWithPublishSubscribe::CTestPhoneFuncFlightModeOnWithPublishSubscribe()
-/** 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("TestPhoneFuncFlightModeOnWithPublishSubscribe"));
-}
-
-/**
-@SYMTestCaseID Etel3rdParty 8.2, TestPhoneFuncFlightModeOn
-@SYMTestCaseDesc Test GetSignalStrength and SendDTMFTone 3rd party APIs
-@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.?/9
-*/
-
-enum TVerdict CTestPhoneFuncFlightModeOnWithPublishSubscribe::doTestStepL()
-{
- INFO_PRINTF1(_L("START TEST 8.2"));
-
- INFO_PRINTF1(_L(" TEST: Signal Strength information not retrievable when flight mode on with publish and subscribe "));
-
- //Set test number
- SetTestNumber(34);
-
- // Set expected status to KErrAccessDenied as this should be returned in
- // the case where flight mode is on.
- TRequestStatus expStat=KErrAccessDenied;
- CTelephony::TSignalStrengthV1 ExpSignalStrength;
- ExpSignalStrength.iBar=3;
- ExpSignalStrength.iSignalStrength=-51;
- CTelephony::TSignalStrengthV1Pckg expSignalStrengthPckg(ExpSignalStrength);
- CTestGetSignalStrengthAct* GetSignalStrengthAct = CTestGetSignalStrengthAct::NewLC(this, iTelephony);
-
- // Set up phonePowerProperty variable so that flight mode can be manipulated.
- RProperty phonePowerProperty;
- User::LeaveIfError(phonePowerProperty.Attach(KUidSystemCategory, KUidPhonePwr.iUid));
- CleanupClosePushL(phonePowerProperty);
-
- //Switch flight mode on (ie radio mode off)
- TRequestStatus status;
- phonePowerProperty.Subscribe(status);
- User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
- User::WaitForRequest(status);
- TEST(status.Int() == KErrNone);
-
- // Make a call to the 3rd Party API.
- GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
- CActiveScheduler::Start();
-
-
- INFO_PRINTF1(_L("Test sending of DTMF tones disallowed when flight mode on "));
-
- //set test data to transmit
- _LIT(KDtmfString0,"45p6789A");
-
- // Switch flight mode off so that a call can be set up.
- phonePowerProperty.Subscribe(status);
- User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
- User::WaitForRequest(status);
- TEST(status.Int() == KErrNone);
-
- //Get current flight mode
- TRequestStatus reqStat=KErrNone;
- CTelephony::TFlightModeV1 FlightMode;
- CTelephony::TFlightModeV1Pckg FlightModePckg(FlightMode);
- iTelephony->GetFlightMode(reqStat, FlightModePckg);
- User::WaitForRequest(reqStat);
-
- //check results
- TEST1(reqStat.Int() == KErrNone, ETrue);
- TEST1(FlightMode.iFlightModeStatus == CTelephony::EFlightModeOff, ETrue);
- if (FlightMode.iFlightModeStatus == CTelephony::EFlightModeOff)
- INFO_PRINTF1(_L("The mobile radio interface and bluetooth is currently on"));
-
- // Switch flight mode on (ie radio mode off) to test that
- // DTMF Tone sending fails is disallowed in flight mode.
- phonePowerProperty.Subscribe(status);
- User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
- User::WaitForRequest(status);
- TEST(status.Int() == KErrNone);
-
-
- //set expected result values for DTMF
- CTestSendDTMFTonesAct*SendDTMFAct = CTestSendDTMFTonesAct::NewLC(this, iTelephony);
- expStat=KErrAccessDenied;
- SendDTMFAct->SendDTMFTone(KDtmfString0, expStat);
- CActiveScheduler::Start();
-
- // Switch flight mode off (ie radio mode on)
- // so that the call can be hung up.
- phonePowerProperty.Subscribe(status);
- User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
- User::WaitForRequest(status);
- TEST(status.Int() == KErrNone);
-
-
- INFO_PRINTF1(_L("END TEST 8.2"));
-
-
- //CleanupStack::PopAndDestroy(testHangupAct);
- CleanupStack::PopAndDestroy(SendDTMFAct); //SendDTMFAct
- //CleanupStack::PopAndDestroy(testDialNewCallAct);
- CleanupStack::PopAndDestroy(&phonePowerProperty);
- CleanupStack::PopAndDestroy(GetSignalStrengthAct);
- return TestStepResult() ;
-
-}
-
+// Copyright (c) 2003-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:
+// Tests for ETL 3rd Party Phone APIs
+//
+//
+
+/**
+ @file
+*/
+
+#include "TE_EtelIsvbase.h"
+#include "TE_EtelIsvPhoneSettings.h"
+#include "TE_EtelIsvCallFunc.h"
+
+
+
+CTestGetPhoneId::CTestGetPhoneId()
+/** 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("TestGetPhoneId"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 1.1
+@SYMTestCaseDesc Test GetPhoneId 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.1
+*/
+
+TVerdict CTestGetPhoneId::doTestStepL()
+{
+ SetTestNumber(0);
+
+ //expected data
+ _LIT16(manufacturerid, "PSION");
+ _LIT16(modelid, "666");
+ _LIT16(serialid, "1234567890");
+ CTelephony::TPhoneIdV1 ExpectedPhoneId;
+ ExpectedPhoneId.iManufacturer=manufacturerid;
+ ExpectedPhoneId.iModel=modelid;
+ ExpectedPhoneId.iSerialNumber=serialid;
+ TRequestStatus expStat=KErrNone;
+ CTelephony::TPhoneIdV1Pckg ExpectedPhoneIdPckg(ExpectedPhoneId);
+
+ CTestGetPhoneIdAct* GetPhoneIdAct = CTestGetPhoneIdAct::NewLC(this, iTelephony);
+
+ #if defined(_DEBUG)
+ //Test OOM
+ INFO_PRINTF1(_L("Test OOM for GetPhoneId"));
+ expStat=KErrNoMemory;
+ __UHEAP_FAILNEXT(1);
+ GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat);
+ CActiveScheduler::Start();
+ __UHEAP_RESET;
+ #endif
+
+ //Start GetPhoneID AO
+ INFO_PRINTF1(_L("Test GetPhoneId"));
+ expStat=KErrNone;
+ GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat, ETrue);
+ CActiveScheduler::Start();
+
+ //Test cancel
+ INFO_PRINTF1(_L("Test Cancel for GetPhoneId"));
+ TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
+ TEST1(cancelerr == KErrNotFound, ETrue);
+ GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat);
+ CTestCanceller* canceller = GetPhoneIdAct->RetrieveCanceller();
+ canceller->Call();
+ CActiveScheduler::Start();
+ TEST1(GetPhoneIdAct->iStatus.Int() == KErrCancel || GetPhoneIdAct->iStatus.Int() == KErrNone, ETrue);
+
+ CleanupStack::PopAndDestroy(); //GetPhoneIdAct
+
+ return TestStepResult();
+}
+
+CTestGetPhoneIdError::CTestGetPhoneIdError()
+/** 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("TestGetPhoneIdError"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 1.2
+@SYMTestCaseDesc Test GetPhoneId 3rd party API - Error scenario
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.1
+*/
+
+TVerdict CTestGetPhoneIdError::doTestStepL()
+{
+ INFO_PRINTF1(_L("Test GetPhoneId with error"));
+ SetTestNumber(1);
+ CTelephony::TPhoneIdV1 ExpectedPhoneId;
+ CTelephony::TPhoneIdV1Pckg ExpectedPhoneIdPckg(ExpectedPhoneId);
+ TRequestStatus expStat=KErrNotFound;
+
+ //Start GetPhoneID AO
+ CTestGetPhoneIdAct* GetPhoneIdAct = CTestGetPhoneIdAct::NewLC(this, iTelephony);
+ GetPhoneIdAct->GetPhoneId(ExpectedPhoneIdPckg, expStat);
+
+ CActiveScheduler::Start();
+
+ CleanupStack::PopAndDestroy(); //GetPhoneIdAct
+ return TestStepResult();
+}
+
+//=====================================================
+//
+// Class to get phone ID active object
+//
+//=====================================================
+
+CTestGetPhoneIdAct* CTestGetPhoneIdAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros)
+//Factory constructor
+ {
+ CTestGetPhoneIdAct* obj = new(ELeave) CTestGetPhoneIdAct(aTestStep, aTelephony, aUseMacros);
+ CleanupStack::PushL(obj);
+ obj->ConstructL();
+ return obj;
+ }
+CTestGetPhoneIdAct::CTestGetPhoneIdAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros = ETrue)
+ : CEtelIsvActBase(aTestStep, aTelephony),
+ iUseMacros(aUseMacros),
+ iPhoneIdBuff(iPhoneId),
+ iPhoneIdPckg(iPhoneId)
+ {
+ }
+
+void CTestGetPhoneIdAct::ConstructL()
+ {
+ iCanceller = new(ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+CTestGetPhoneIdAct::~CTestGetPhoneIdAct()
+ {
+ Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
+ delete iCanceller;
+ }
+
+void CTestGetPhoneIdAct::DoCancel()
+ {
+ iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
+ }
+
+void CTestGetPhoneIdAct::GetPhoneId(TDes8& aExpectedPhoneIdPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
+ {
+ iExpectedPhoneIdPckg=&aExpectedPhoneIdPckg;
+ iExpStat=aExpStat;
+
+ TDes8* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = &iPhoneIdBuff;
+ }
+ else
+ {
+ data = &iPhoneIdPckg;
+ }
+
+ iTelephony->GetPhoneId(iStatus, *data);
+
+ if(aCheckConcurrency)
+ {
+ TRequestStatus tmpStatus;
+ iTelephony->GetPhoneId(tmpStatus, *data);
+ User::WaitForRequest(tmpStatus);
+ iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
+ }
+ SetActive();
+ }
+
+void CTestGetPhoneIdAct::RunL()
+ {
+ // ActiveScheduler will have set status to KRequestComplete, just before
+ // calling this RunL().
+ CTelephony::TPhoneIdV1Pckg& GetPhoneIdV1Pckg = REINTERPRET_CAST(CTelephony::TPhoneIdV1Pckg&, *iExpectedPhoneIdPckg);
+
+ //only supports V1 at present
+ CTelephony::TPhoneIdV1& expectedPhoneId = (GetPhoneIdV1Pckg)();
+
+ if(iUseMacros)
+ {
+ iTestStep->TEST1(iStatus.Int() == iExpStat.Int(), ETrue);
+ }
+
+ if(iStatus.Int() == KErrNone)
+ {
+ if(iUseMacros)
+ {
+ const CTelephony::TPhoneIdV1* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = reinterpret_cast<const CTelephony::TPhoneIdV1*> ( &iPhoneIdBuff() );
+ }
+ else
+ {
+ data = reinterpret_cast<const CTelephony::TPhoneIdV1*> ( &iPhoneIdPckg() );
+ }
+
+ iTestStep->TEST1(data->iManufacturer == expectedPhoneId.iManufacturer, ETrue);
+ iTestStep->TEST1(data->iModel == expectedPhoneId.iModel, ETrue);
+ iTestStep->TEST1(data->iSerialNumber == expectedPhoneId.iSerialNumber, ETrue);
+
+ iTestStep->INFO_PRINTF2(_L("Phone manufacturer: %S"), &(data->iManufacturer) );
+ iTestStep->INFO_PRINTF2(_L("Phone model: %S"), &(data->iModel) );
+ iTestStep->INFO_PRINTF2(_L("Phone serial number: %S"), &(data->iSerialNumber) );
+ }
+ }
+ else
+ {
+ if(iUseMacros)
+ {
+ iTestStep->INFO_PRINTF2(_L("Error for GetPhoneId: %d"), iStatus.Int() );
+ }
+ }
+
+ CActiveScheduler::Stop();
+ }
+
+CTestGetSubscriberId::CTestGetSubscriberId()
+/** 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("TestGetSubscriberId"));
+}
+
+
+
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 2.1
+@SYMTestCaseDesc Test GetSubscriberId 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.2
+*
+*/
+
+TVerdict CTestGetSubscriberId::doTestStepL()
+ {
+ //Set test number
+ SetTestNumber(2);
+
+ //Set expected IMSI value
+ _LIT16(SubscriberId, "56789012345678");
+ CTelephony::TSubscriberIdV1 ExpSubscriberId ;
+ ExpSubscriberId.iSubscriberId=SubscriberId;
+ CTelephony::TSubscriberIdV1Pckg expSubscriberIdPckg(ExpSubscriberId);
+ TRequestStatus expStat=KErrNone;
+
+ CTestGetSubscriberIdAct* GetSubscriberIdAct = CTestGetSubscriberIdAct::NewLC(this, iTelephony);
+
+ #if defined(_DEBUG)
+ //Test OOM
+ INFO_PRINTF1(_L("Test OOM for GetSubscriberId"));
+ expStat=KErrNoMemory;
+ __UHEAP_FAILNEXT(1);
+ GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat);
+ CActiveScheduler::Start();
+ __UHEAP_RESET;
+ #endif
+
+ //Start GetSubscriberID AO
+ INFO_PRINTF1(_L("Test GetSubscriberId"));
+ expStat=KErrNone;
+ GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat, ETrue);
+ CActiveScheduler::Start();
+
+ //Test cancel
+ INFO_PRINTF1(_L("Test Cancel for GetSubscriberId"));
+ TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
+ TEST1(cancelerr == KErrNotFound, ETrue);
+ CTestCanceller* canceller = GetSubscriberIdAct->RetrieveCanceller();
+ GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat);
+ canceller->Call();
+ CActiveScheduler::Start();
+ TEST1(GetSubscriberIdAct->iStatus.Int() == KErrCancel || GetSubscriberIdAct->iStatus.Int() == KErrNone, ETrue);
+
+ CleanupStack::PopAndDestroy(); //GetSubscriberIdAct
+ return TestStepResult();
+}
+
+CTestGetSubscriberIdError::CTestGetSubscriberIdError()
+/** 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("TestGetSubscriberIdError"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 2.2
+@SYMTestCaseDesc Test GetSubscriberId 3rd party API - Error scenario
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.2
+*
+*/
+
+TVerdict CTestGetSubscriberIdError::doTestStepL()
+ {
+ INFO_PRINTF1(_L("Test Cancel for GetSubscriberId with error."));
+
+ //Set test number
+ SetTestNumber(3);
+
+ //Set expected IMSI value
+ _LIT16(SubscriberId, "01234567890123");
+ CTelephony::TSubscriberIdV1 ExpSubscriberId ;
+ ExpSubscriberId.iSubscriberId=SubscriberId;
+ CTelephony::TSubscriberIdV1Pckg expSubscriberIdPckg(ExpSubscriberId);
+
+ //Start GetSubscriberID AO
+ TRequestStatus expStat=KErrNotSupported;
+ CTestGetSubscriberIdAct* GetSubscriberIdAct = CTestGetSubscriberIdAct::NewLC(this, iTelephony);
+ GetSubscriberIdAct->GetSubscriberId(expSubscriberIdPckg, expStat);
+
+ CActiveScheduler::Start();
+
+ CleanupStack::PopAndDestroy(); //GetSubscriberIdAct
+ return TestStepResult() ;
+}
+
+//=====================================================
+//
+// Class to get subscriber ID active object
+//
+//=====================================================
+
+CTestGetSubscriberIdAct* CTestGetSubscriberIdAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+//Factory constructor
+ {
+ CTestGetSubscriberIdAct* obj = new(ELeave) CTestGetSubscriberIdAct(aTestStep, aTelephony);
+ CleanupStack::PushL(obj);
+ obj->ConstructL();
+ return obj;
+ }
+
+CTestGetSubscriberIdAct::CTestGetSubscriberIdAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+ : CEtelIsvActBase(aTestStep, aTelephony),
+ iSubscriberIdBuff(iSubscriberId),
+ iSubscriberIdPckg(iSubscriberId)
+ {
+ }
+
+void CTestGetSubscriberIdAct::ConstructL()
+ {
+ iCanceller = new(ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+CTestGetSubscriberIdAct::~CTestGetSubscriberIdAct()
+ {
+ Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
+ delete iCanceller;
+ }
+
+void CTestGetSubscriberIdAct::DoCancel()
+ {
+ iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
+ }
+
+void CTestGetSubscriberIdAct::GetSubscriberId(TDes8& aExpSubscriberIdPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
+ {
+ iExpStat = aExpStat;
+ iExpSubscriberIdPckg=&aExpSubscriberIdPckg;
+
+ TDes8* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = &iSubscriberIdBuff;
+ }
+ else
+ {
+ data = &iSubscriberIdPckg;
+ }
+
+ iTelephony->GetSubscriberId(iStatus, *data);
+
+ if(aCheckConcurrency)
+ {
+ TRequestStatus tmpStatus;
+ iTelephony->GetSubscriberId(tmpStatus, *data);
+ User::WaitForRequest(tmpStatus);
+ iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
+ }
+
+ SetActive();
+ }
+
+void CTestGetSubscriberIdAct::RunL()
+ {
+ // ActiveScheduler will have set status to KRequestComplete, just before
+ // calling this RunL().
+ CTelephony::TSubscriberIdV1Pckg& expSubscriberIdPckg = REINTERPRET_CAST(CTelephony::TSubscriberIdV1Pckg&, *iExpSubscriberIdPckg);
+
+ //only supports V1 at present
+ CTelephony::TSubscriberIdV1& expSubscriberId = (expSubscriberIdPckg)();
+
+ iTestStep->TEST1(iStatus.Int() == iExpStat.Int(), ETrue);
+
+ if(iStatus.Int() == KErrNone)
+ {
+ CTelephony::TSubscriberIdV1* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = reinterpret_cast<CTelephony::TSubscriberIdV1*> ( &iSubscriberIdBuff() );
+ }
+ else
+ {
+ data = reinterpret_cast<CTelephony::TSubscriberIdV1*> ( &iSubscriberIdPckg() );
+ }
+
+ iTestStep->TEST1(data->iSubscriberId == expSubscriberId.iSubscriberId, ETrue);
+ iTestStep->INFO_PRINTF2(_L("SubscriberId: %S"), &(data->iSubscriberId) );
+ }
+ else
+ {
+ iTestStep->INFO_PRINTF2(_L("Error for GeSubscriberId: %d"), iStatus.Int() );
+ }
+
+ CActiveScheduler::Stop();
+ }
+
+CTestGetIndicator::CTestGetIndicator()
+/** 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("TestGetIndicator"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 4.1
+@SYMTestCaseDesc Test GetIndicator 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.4
+*
+*/
+
+TVerdict CTestGetIndicator::doTestStepL()
+ {
+ //Set test number
+ SetTestNumber(4);
+
+ //Set expected return values
+ TUint32 expIndCaps = CTelephony::KIndChargerConnected | CTelephony::KIndNetworkAvailable | CTelephony::KIndCallInProgress;
+ TUint32 expInd = CTelephony::KIndChargerConnected;
+ TRequestStatus expStat=KErrNone;
+
+ CTestGetIndicatorAct* GetIndicatorAct = CTestGetIndicatorAct::NewLC(this, iTelephony);
+
+ #if defined(_DEBUG)
+ //test OOM
+ INFO_PRINTF1(_L("Test OOM for GetIndicator"));
+ expStat = KErrNoMemory;
+ __UHEAP_FAILNEXT(1);
+ GetIndicatorAct->GetPhoneIndicator(expIndCaps, expInd, expStat);
+ CActiveScheduler::Start();
+ __UHEAP_RESET;
+ #endif
+
+ //Start GetIndicator AO
+ expStat=KErrNone;
+ INFO_PRINTF1(_L("Test GetIndicator"));
+ GetIndicatorAct->GetPhoneIndicator(expIndCaps, expInd, expStat, ETrue);
+ CActiveScheduler::Start();
+
+ //Test cancel
+ TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetIndicatorCancel);
+ TEST1(cancelerr == KErrNotFound, ETrue);
+ GetIndicatorAct->GetPhoneIndicator(expIndCaps, expInd, expStat);
+ CTestCanceller* canceller = GetIndicatorAct->RetrieveCanceller();
+ canceller->Call();
+ CActiveScheduler::Start();
+ TEST1(GetIndicatorAct->iStatus.Int() == KErrCancel || GetIndicatorAct->iStatus.Int() == KErrNone, ETrue);
+
+ CleanupStack::PopAndDestroy(); //GetIndicatorAct
+ return TestStepResult() ;
+}
+
+//=====================================================
+//
+// Class to get phone indicator active object
+//
+//=====================================================
+
+CTestGetIndicatorAct* CTestGetIndicatorAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+//Factory constructor
+ {
+ CTestGetIndicatorAct* obj = new(ELeave) CTestGetIndicatorAct(aTestStep, aTelephony);
+ CleanupStack::PushL(obj);
+ obj->ConstructL();
+ return obj;
+ }
+
+CTestGetIndicatorAct::CTestGetIndicatorAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+ : CEtelIsvActBase(aTestStep, aTelephony),
+ iIndicatorBuff(iIndicator),
+ iIndicatorPckg(iIndicator)
+ {
+ }
+
+void CTestGetIndicatorAct::ConstructL()
+ {
+ iCanceller = new(ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+CTestGetIndicatorAct::~CTestGetIndicatorAct()
+ {
+ Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
+ delete iCanceller;
+ }
+
+void CTestGetIndicatorAct::DoCancel()
+ {
+ iTelephony->CancelAsync(CTelephony::EGetIndicatorCancel);
+ }
+
+void CTestGetIndicatorAct::GetPhoneIndicator(TUint32 aExpIndCaps, TUint32 aExpInd,TRequestStatus aExpStat, TBool aCheckConcurrency)
+ {
+ iExpIndCaps = aExpIndCaps;
+ iExpInd = aExpInd;
+ iExpStat = aExpStat;
+
+ TDes8* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = &iIndicatorBuff;
+ }
+ else
+ {
+ data = &iIndicatorPckg;
+ }
+
+ iTelephony->GetIndicator(iStatus, *data);
+
+ if(aCheckConcurrency)
+ {
+ TRequestStatus tmpStatus;
+ iTelephony->GetIndicator(tmpStatus, *data);
+ User::WaitForRequest(tmpStatus);
+ iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
+ }
+
+ SetActive();
+ }
+
+void CTestGetIndicatorAct::RunL()
+ {
+ // ActiveScheduler will have set status to KRequestComplete, just before
+ // calling this RunL().
+
+ iTestStep->TEST1(iStatus.Int() == iExpStat.Int(), ETrue);
+
+ if(iStatus.Int() == KErrNone)
+ {
+ CTelephony::TIndicatorV1* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = reinterpret_cast<CTelephony::TIndicatorV1*> ( &iIndicatorBuff() );
+ }
+ else
+ {
+ data = reinterpret_cast<CTelephony::TIndicatorV1*> ( &iIndicatorPckg() );
+ }
+
+ iTestStep->TEST1(iExpIndCaps == data->iCapabilities, ETrue);
+ iTestStep->TEST1(iExpInd == data->iIndicator, ETrue);
+ iTestStep->PrintIndicatorValues(data->iIndicator, data->iCapabilities);
+ }
+ else
+ {
+ iTestStep->INFO_PRINTF2(_L("Error for GetIndicators: %d"), iStatus.Int() );
+ }
+
+ CActiveScheduler::Stop();
+ }
+
+CTestGetBatteryInfo::CTestGetBatteryInfo()
+/** 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("TestGetBatteryInfo"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 5.1
+@SYMTestCaseDesc Test GetBatteryInfo 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.3
+*
+*/
+
+TVerdict CTestGetBatteryInfo::doTestStepL()
+ {
+ INFO_PRINTF1(_L("Test retrieval of battery information status"));
+
+ //Set test number
+ SetTestNumber(5);
+
+ //Set expected result data
+ TRequestStatus expStat=KErrNone;
+ CTelephony::TBatteryInfoV1 BatteryExpInfo;
+ BatteryExpInfo.iStatus=CTelephony::EPowerStatusUnknown;
+ BatteryExpInfo.iChargeLevel=0;
+ CTelephony::TBatteryInfoV1Pckg batteryExpInfoPckg(BatteryExpInfo);
+ CTestGetBatteryInfoAct* GetBatteryInfoAct = CTestGetBatteryInfoAct::NewLC(this, iTelephony);
+
+ #if defined(_DEBUG)
+ //test OOM
+ INFO_PRINTF1(_L("Test OOM for GetBatteryInfo"));
+ expStat=KErrNoMemory;
+ __UHEAP_FAILNEXT(1);
+ GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
+ CActiveScheduler::Start();
+ __UHEAP_RESET;
+ #endif
+
+ //test GetBatteryInfo
+ INFO_PRINTF1(_L("Test GetBatteryInfo"));
+ expStat=KErrNone;
+ GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat, ETrue);
+ CActiveScheduler::Start();
+
+ //wait for 3 secs then re-test. State should have changed.
+ User::After(3000000);
+
+ expStat=KErrNone;
+ BatteryExpInfo.iStatus=CTelephony::EPoweredByBattery;
+ BatteryExpInfo.iChargeLevel=2;
+ GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
+ CActiveScheduler::Start();
+
+ //wait for 3 secs then re-test. State should have changed.
+ User::After(3000000);
+
+ expStat=KErrGeneral;
+ BatteryExpInfo.iStatus=CTelephony::EPoweredByBattery;
+ BatteryExpInfo.iChargeLevel=20;
+ GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
+ CActiveScheduler::Start();
+
+ //Test cancel
+ User::After(3000000);
+ TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetBatteryInfoCancel);
+ TEST1(cancelerr == KErrNotFound, ETrue);
+ INFO_PRINTF1(_L("Test Cancel for GetBatteryInfo"));
+ GetBatteryInfoAct->GetBatteryInfo(batteryExpInfoPckg, expStat);
+ CTestCanceller* canceller = GetBatteryInfoAct->RetrieveCanceller();
+ canceller->Call();
+ CActiveScheduler::Start();
+ TEST1(GetBatteryInfoAct->iStatus.Int() == KErrCancel || GetBatteryInfoAct->iStatus.Int() == KErrNone, ETrue);
+
+ CleanupStack::PopAndDestroy(); // GetBatteryInfoAct
+ return TestStepResult() ;
+}
+
+//=====================================================
+//
+// Class to get battery info active object
+//
+//=====================================================
+
+CTestGetBatteryInfoAct* CTestGetBatteryInfoAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+//Factory constructor
+ {
+ CTestGetBatteryInfoAct* obj = new(ELeave) CTestGetBatteryInfoAct(aTestStep, aTelephony);
+ CleanupStack::PushL(obj);
+ obj->ConstructL();
+ return obj;
+ }
+
+CTestGetBatteryInfoAct::CTestGetBatteryInfoAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+ : CEtelIsvActBase(aTestStep, aTelephony),
+ iBatteryInfoBuff(iBatteryInfo),
+ iBatteryInfoPckg(iBatteryInfo)
+ {
+ }
+
+void CTestGetBatteryInfoAct::ConstructL()
+ {
+ iCanceller = new(ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+CTestGetBatteryInfoAct::~CTestGetBatteryInfoAct()
+ {
+ Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
+ delete iCanceller;
+ }
+
+void CTestGetBatteryInfoAct::DoCancel()
+ {
+ iTelephony->CancelAsync(CTelephony::EGetBatteryInfoCancel);
+ }
+
+void CTestGetBatteryInfoAct::GetBatteryInfo(TDes8& aBatteryExpInfoPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
+ {
+ iBatteryExpInfoPckg=&aBatteryExpInfoPckg;
+ iExpStat = aExpStat;
+
+ TDes8* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = &iBatteryInfoBuff;
+ }
+ else
+ {
+ data = &iBatteryInfoPckg;
+ }
+
+ iTelephony->GetBatteryInfo(iStatus, *data);
+
+ if(aCheckConcurrency)
+ {
+ TRequestStatus tmpStatus;
+ iTelephony->GetBatteryInfo(tmpStatus, *data);
+ User::WaitForRequest(tmpStatus);
+ iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
+ }
+
+ SetActive();
+ }
+
+void CTestGetBatteryInfoAct::RunL()
+ {
+ // ActiveScheduler will have set status to KRequestComplete, just before
+ // calling this RunL().
+ CTelephony::TBatteryInfoV1Pckg& batteryExpInfoPckg = REINTERPRET_CAST(CTelephony::TBatteryInfoV1Pckg&, *iBatteryExpInfoPckg);
+
+ //only supports V1 at present
+ CTelephony::TBatteryInfoV1& batteryExpInfo = (batteryExpInfoPckg)();
+
+ iTestStep->TEST1(iStatus.Int()==iExpStat.Int(), ETrue);
+
+ if(iStatus.Int() == KErrNone)
+ {
+ CTelephony::TBatteryInfoV1* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = reinterpret_cast<CTelephony::TBatteryInfoV1*> ( &iBatteryInfoBuff() );
+ }
+ else
+ {
+ data = reinterpret_cast<CTelephony::TBatteryInfoV1*> ( &iBatteryInfoPckg() );
+ }
+
+ iTestStep->TEST1(data->iStatus==batteryExpInfo.iStatus, ETrue);
+ iTestStep->TEST1(data->iChargeLevel==batteryExpInfo.iChargeLevel, ETrue);
+ iTestStep->PrintBatteryInfo(*data);
+ }
+ else
+ {
+ iTestStep->INFO_PRINTF2(_L("Error for GetBatteryInfo: %d"), iStatus.Int() );
+ }
+
+ iTestStep->INFO_PRINTF1(_L(""));
+ CActiveScheduler::Stop();
+ }
+
+CTestGetSignalStrength::CTestGetSignalStrength()
+/** 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("TestGetSignalStrength"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 6.1
+@SYMTestCaseDesc Test GetSignalStrength 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.??
+*
+*/
+
+TVerdict CTestGetSignalStrength::doTestStepL()
+ {
+ INFO_PRINTF1(_L("Test retrieval of Signal Strength information "));
+
+ //Set test number
+ SetTestNumber(6);
+ //Set expected result values
+ TRequestStatus expStat=KErrNone;
+ CTelephony::TSignalStrengthV1 ExpSignalStrength;
+ ExpSignalStrength.iBar=3;
+ ExpSignalStrength.iSignalStrength=-51;
+ CTelephony::TSignalStrengthV1Pckg expSignalStrengthPckg(ExpSignalStrength);
+ CTestGetSignalStrengthAct* GetSignalStrengthAct = CTestGetSignalStrengthAct::NewLC(this, iTelephony);
+
+ #if defined(_DEBUG)
+ //test OOM
+ INFO_PRINTF1(_L("Test OOM for GetSignalStrength"));
+ expStat=KErrNoMemory;
+ __UHEAP_FAILNEXT(1);
+ GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
+ CActiveScheduler::Start();
+ __UHEAP_RESET;
+ #endif
+
+ //Start GetSignalStrength AO
+ INFO_PRINTF1(_L("Test GetSignalStrength"));
+ expStat=KErrNone;
+ GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat, ETrue);
+ CActiveScheduler::Start();
+
+ User::After(3000000);
+ //wait for 3 secs and re-test
+ expStat=KErrNotSupported;
+ GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
+ CActiveScheduler::Start();
+
+ //Test cancel
+ User::After(3000000);
+ TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetSignalStrengthCancel);
+ TEST1(cancelerr == KErrNotFound, ETrue);
+ INFO_PRINTF1(_L("Test Cancel for GetSignalStrength"));
+ GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
+ CTestCanceller* canceller = GetSignalStrengthAct->RetrieveCanceller();
+ canceller->Call();
+ CActiveScheduler::Start();
+ TEST1(GetSignalStrengthAct->iStatus.Int() == KErrCancel || GetSignalStrengthAct->iStatus.Int() == KErrNone, ETrue);
+
+ CleanupStack::PopAndDestroy(); //GetSignalStrengthAct
+ return TestStepResult() ;
+}
+
+//=====================================================
+//
+// Class to get signal strength active object
+//
+//=====================================================
+CTestGetSignalStrengthAct* CTestGetSignalStrengthAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros)
+//Factory constructor
+ {
+ CTestGetSignalStrengthAct* obj = new(ELeave) CTestGetSignalStrengthAct(aTestStep, aTelephony, aUseMacros);
+ CleanupStack::PushL(obj);
+ obj->ConstructL();
+ return obj;
+ }
+
+CTestGetSignalStrengthAct::CTestGetSignalStrengthAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony, TBool aUseMacros)
+ : CEtelIsvActBase(aTestStep, aTelephony),
+ iUseMacros(aUseMacros),
+ iSignalStrengthBuff(iSignalStrength),
+ iSignalStrengthPckg(iSignalStrength)
+ {
+ }
+
+void CTestGetSignalStrengthAct::ConstructL()
+ {
+ iCanceller = new(ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+CTestGetSignalStrengthAct::~CTestGetSignalStrengthAct()
+ {
+ Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
+ delete iCanceller;
+ }
+
+void CTestGetSignalStrengthAct::DoCancel()
+ {
+ iTelephony->CancelAsync(CTelephony::EGetSignalStrengthCancel);
+ }
+
+void CTestGetSignalStrengthAct::GetSignalStrength(TDes8& aExpSignalStrengthPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
+ {
+ iExpStat = aExpStat;
+ iExpSignalStrengthPckg=&aExpSignalStrengthPckg;
+
+ TDes8* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = &iSignalStrengthBuff;
+ }
+ else
+ {
+ data = &iSignalStrengthPckg;
+ }
+
+ iTelephony->GetSignalStrength(iStatus, *data);
+
+ if(aCheckConcurrency)
+ {
+ TRequestStatus tmpStatus;
+ iTelephony->GetSignalStrength(tmpStatus, *data);
+ User::WaitForRequest(tmpStatus);
+ iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
+ }
+
+ SetActive();
+ }
+
+void CTestGetSignalStrengthAct::RunL()
+ {
+ // ActiveScheduler will have set status to KRequestComplete, just before
+ // calling this RunL().
+ CTelephony::TSignalStrengthV1Pckg& expSignalStrengthPckg = REINTERPRET_CAST(CTelephony::TSignalStrengthV1Pckg&, *iExpSignalStrengthPckg);
+
+ //only supports V1 at present
+ CTelephony::TSignalStrengthV1& expSignalStrength = (expSignalStrengthPckg)();
+
+ if(iUseMacros)
+ {
+ iTestStep->TEST1(iStatus.Int()==iExpStat.Int(), ETrue);
+ }
+
+ if(iStatus.Int() == KErrNone)
+ {
+ if(iUseMacros)
+ {
+ CTelephony::TSignalStrengthV1* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = reinterpret_cast<CTelephony::TSignalStrengthV1*> ( &iSignalStrengthBuff() );
+ }
+ else
+ {
+ data = reinterpret_cast<CTelephony::TSignalStrengthV1*> ( &iSignalStrengthPckg() );
+ }
+
+ iTestStep->TEST1(data->iBar==expSignalStrength.iBar, ETrue);
+ iTestStep->TEST1(data->iSignalStrength==expSignalStrength.iSignalStrength, ETrue);
+ iTestStep->INFO_PRINTF2(_L("Signal strength (in display bars) : %d"), expSignalStrength.iBar);
+ iTestStep->INFO_PRINTF2(_L("Signal strength (in dBm) : %d"), expSignalStrength.iSignalStrength);
+ }
+ }
+ else
+ {
+ if(iUseMacros)
+ {
+ iTestStep->INFO_PRINTF2(_L("Error for GetSignalStrength: %d"), iStatus.Int() );
+ }
+ }
+
+ CActiveScheduler::Stop();
+ if(iUseMacros)
+ {
+ iTestStep->INFO_PRINTF1(_L(""));
+ }
+ }
+
+CTestGetLockInfo::CTestGetLockInfo()
+/** 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("TestGetLockInfo"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 7.1
+@SYMTestCaseDesc Test GetLockInfo 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.8
+*
+*/
+
+TVerdict CTestGetLockInfo::doTestStepL()
+ {
+ INFO_PRINTF1(_L("Test retrieval of current status of PIN1/PIN2 "));
+ //Set test number
+ SetTestNumber(7);
+
+ //Set expected result values
+ TRequestStatus expStat=KErrNone;
+ CTelephony::TIccLockInfoV1 ExpLockInfo;
+ ExpLockInfo.iSetting = CTelephony::ELockSetDisabled;
+ ExpLockInfo.iStatus = CTelephony::EStatusUnlocked;
+ CTelephony::TIccLockInfoV1Pckg expLockInfoPckg(ExpLockInfo);
+ CTestGetLockInfoAct* GetLockInfoAct = CTestGetLockInfoAct::NewLC(this, iTelephony);
+
+ CTelephony::TIccLock Lock;
+ #if defined(_DEBUG)
+ //test OOM
+ INFO_PRINTF1(_L("Test OOM for GetLockInfo"));
+ expStat=KErrNoMemory;
+ Lock=CTelephony::ELockPin1;
+ __UHEAP_FAILNEXT(1);
+ GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat);
+ CActiveScheduler::Start();
+ __UHEAP_RESET;
+ #endif
+
+ //Start GetLockinfo AO for pin1
+ expStat=KErrNone;
+ INFO_PRINTF1(_L("Test GetLockInfo"));
+ Lock=CTelephony::ELockPin1;
+ INFO_PRINTF1(_L("current status of PIN1 "));
+ GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat, ETrue);
+ CActiveScheduler::Start();
+
+ //Start GetLockinfo AO for pin2
+ Lock=CTelephony::ELockPin2;
+ INFO_PRINTF1(_L("current status of PIN2 "));
+ ExpLockInfo.iSetting = CTelephony::ELockSetEnabled;
+ ExpLockInfo.iStatus = CTelephony::EStatusLocked;
+ GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat);
+ CActiveScheduler::Start();
+
+ //Test cancel
+ INFO_PRINTF1(_L("Test Cancel for GetLockInfo"));
+ TInt cancelerr = iTelephony->CancelAsync(CTelephony::EGetLockInfoCancel);
+ TEST1(cancelerr == KErrNotFound, ETrue);
+ GetLockInfoAct->GetLockInfo(Lock, expLockInfoPckg, expStat);
+ CTestCanceller* canceller = GetLockInfoAct->RetrieveCanceller();
+ canceller->Call();
+ CActiveScheduler::Start();
+ TEST1(GetLockInfoAct->iStatus.Int() == KErrCancel || GetLockInfoAct->iStatus.Int() == KErrNone, ETrue);
+
+ CleanupStack::PopAndDestroy(); //GetLockInfoAct
+ return TestStepResult() ;
+}
+
+//=====================================================
+//
+// Class to get lock info active object
+//
+//=====================================================
+CTestGetLockInfoAct* CTestGetLockInfoAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+//Factory constructor
+ {
+ CTestGetLockInfoAct* obj = new(ELeave) CTestGetLockInfoAct(aTestStep, aTelephony);
+ CleanupStack::PushL(obj);
+ obj->ConstructL();
+ return obj;
+ }
+
+CTestGetLockInfoAct::CTestGetLockInfoAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+ : CEtelIsvActBase(aTestStep, aTelephony),
+ iLockInfoBuff(iLockInfo),
+ iLockInfoPckg(iLockInfo)
+ {
+ }
+
+void CTestGetLockInfoAct::ConstructL()
+ {
+ iCanceller = new(ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+CTestGetLockInfoAct::~CTestGetLockInfoAct()
+ {
+ Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
+ delete iCanceller;
+ }
+
+void CTestGetLockInfoAct::DoCancel()
+ {
+ iTelephony->CancelAsync(CTelephony::EGetLockInfoCancel);
+ }
+
+void CTestGetLockInfoAct::GetLockInfo(CTelephony::TIccLock aLock, TDes8& aExpLockInfoPckg, TRequestStatus aExpStat, TBool aCheckConcurrency)
+ {
+ iExpStat = aExpStat;
+ iExpLockInfoPckg=&aExpLockInfoPckg;
+ iLock = aLock;
+
+ TDes8* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = &iLockInfoBuff;
+ }
+ else
+ {
+ data = &iLockInfoPckg;
+ }
+
+ iTelephony->GetLockInfo(iStatus ,aLock ,*data);
+
+ if(aCheckConcurrency)
+ {
+ TRequestStatus tmpStatus;
+ iTelephony->GetLockInfo(tmpStatus ,aLock ,*data);
+ User::WaitForRequest(tmpStatus);
+ iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
+ }
+
+ SetActive();
+ }
+
+void CTestGetLockInfoAct::RunL()
+ {
+ // ActiveScheduler will have set status to KRequestComplete, just before
+ // calling this RunL().
+ CTelephony::TIccLockInfoV1Pckg& expLockInfoPckg = REINTERPRET_CAST(CTelephony::TIccLockInfoV1Pckg&, *iExpLockInfoPckg);
+
+ //only supports V1 at present
+ CTelephony::TIccLockInfoV1& expLockInfo = (expLockInfoPckg)();
+
+ iTestStep->TEST1(iStatus.Int()==iExpStat.Int(),1);
+
+ if(iStatus.Int() == KErrNone)
+ {
+ CTelephony::TIccLockInfoV1* data;
+ if (iTestStep->iBufferMode)
+ {
+ data = reinterpret_cast<CTelephony::TIccLockInfoV1*> ( &iLockInfoBuff() );
+ }
+ else
+ {
+ data = reinterpret_cast<CTelephony::TIccLockInfoV1*> ( &iLockInfoPckg() );
+ }
+
+ iTestStep->TEST1(data->iSetting==expLockInfo.iSetting,1);
+ iTestStep->TEST1(data->iStatus==expLockInfo.iStatus,1);
+ iTestStep->PrintLockInfo(iLock, data->iSetting, data->iStatus);
+ }
+ else
+ {
+ iTestStep->INFO_PRINTF2(_L("Error for GetLockInfo: %d"), iStatus.Int() );
+ }
+
+ CActiveScheduler::Stop();
+ iTestStep->INFO_PRINTF1(_L(""));
+ }
+
+CTestSendDTMFTones::CTestSendDTMFTones()
+/** 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("TestSendDTMFTones"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 8.1
+@SYMTestCaseDesc Test SendDTMFTones 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.9
+*
+*/
+
+
+TVerdict CTestSendDTMFTones::doTestStepL()
+ {
+ SetTestNumber(8);
+
+ INFO_PRINTF1(_L("Test sending of DTMF tones "));
+
+ //set test data to transmit
+ _LIT(KDtmfString0,"45p6789A");
+
+ //make a call to send the DTMF through
+
+ _LIT(KGoodNumber,"1789");
+ //Set the call parameters for call
+ CTelephony::TCallParamsV1 callParams1;
+ callParams1.iIdRestrict = CTelephony::ESendMyId;
+ CTelephony::TCallParamsV1Pckg callParamsPckg1(callParams1);
+
+ TTestCallParams testCallParams;
+ testCallParams.iLine = CTelephony::EVoiceLine;
+ testCallParams.iCallParamsV1Pckg = &callParamsPckg1;
+ testCallParams.iTelAddress.iTelNumber = KGoodNumber;
+ testCallParams.iExpStat = KErrNone;
+
+ //make the call
+ CTestDialNewCallAct* testDialNewCallAct = CTestDialNewCallAct::NewLC(this, iTelephony);
+ testCallParams.iCallId = CTelephony::EISVMaxNumOfCalls;
+ testDialNewCallAct->TestDialNewCall(testCallParams);
+ CActiveScheduler::Start();
+ CleanupStack::PopAndDestroy(testDialNewCallAct);
+
+ //wait for call status to be connected
+ CTelephony::TCallStatusV1 CallStatusV1;
+ CTelephony::TCallStatusV1Pckg CallStatusPckg(CallStatusV1);
+ iTelephony->GetCallStatus(testCallParams.iCallId, CallStatusPckg);
+ TEST1(CallStatusV1.iStatus == CTelephony::EStatusConnected,1);
+
+ TRequestStatus expStat=KErrNone;
+ CTestSendDTMFTonesAct*SendDTMFAct = CTestSendDTMFTonesAct::NewLC(this, iTelephony);
+
+ #if defined(_DEBUG)
+ //test OOM
+ INFO_PRINTF1(_L("Test OOM for SendDTMFTones"));
+ expStat=KErrNoMemory;
+ __UHEAP_FAILNEXT(1);
+ SendDTMFAct->SendDTMFTone(KDtmfString0, expStat);
+ CActiveScheduler::Start();
+ __UHEAP_RESET;
+ #endif
+
+ //set expected result values for DTMF
+ expStat=KErrNone;
+ SendDTMFAct->SendDTMFTone(KDtmfString0, expStat, ETrue);
+ CActiveScheduler::Start();
+
+ //Test cancel
+ INFO_PRINTF1(_L("Test Cancel for SendDTMFTones"));
+ TInt cancelerr = iTelephony->CancelAsync(CTelephony::ESendDTMFTonesCancel);
+ TEST1(cancelerr == KErrNotFound, ETrue);
+ SendDTMFAct->SendDTMFTone(KDtmfString0, expStat);
+ CTestCanceller* canceller = SendDTMFAct->RetrieveCanceller();
+ canceller->Call();
+ CActiveScheduler::Start();
+ TEST1(SendDTMFAct->iStatus.Int() == KErrCancel, ETrue);
+
+ CTestHangupAct* testHangupAct = CTestHangupAct::NewLC(this, iTelephony);
+ //Hangup call
+ testHangupAct->TestHangup(testCallParams);
+ CActiveScheduler::Start();
+ CleanupStack::PopAndDestroy(testHangupAct);
+
+
+ CleanupStack::PopAndDestroy(SendDTMFAct); //SendDTMFAct
+ return TestStepResult() ;
+}
+
+CTestSendDTMFTonesAct* CTestSendDTMFTonesAct::NewLC(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+//Factory constructor
+ {
+ CTestSendDTMFTonesAct* obj = new(ELeave) CTestSendDTMFTonesAct(aTestStep, aTelephony);
+ CleanupStack::PushL(obj);
+ obj->ConstructL();
+ return obj;
+ }
+
+CTestSendDTMFTonesAct::CTestSendDTMFTonesAct(CEtelIsvTestStep* aTestStep, CTelephony* aTelephony)
+ : CEtelIsvActBase(aTestStep, aTelephony)
+ {
+ }
+
+void CTestSendDTMFTonesAct::ConstructL()
+ {
+ iCanceller = new(ELeave) CTestCanceller(this);
+ CActiveScheduler::Add(this);
+ }
+
+CTestSendDTMFTonesAct::~CTestSendDTMFTonesAct()
+ {
+ Cancel(); // if any Req outstanding, calls DoCancel() to cleanup.
+ delete iCanceller;
+ }
+
+void CTestSendDTMFTonesAct::DoCancel()
+ {
+ iTelephony->CancelAsync(CTelephony::ESendDTMFTonesCancel);
+ }
+
+void CTestSendDTMFTonesAct::SendDTMFTone(const TDesC& aTones, TRequestStatus aExpStat, TBool aCheckConcurrency)
+ {
+ iExpStat = aExpStat;
+
+ iTelephony->SendDTMFTones(iStatus, aTones);
+
+ if(aCheckConcurrency)
+ {
+ TRequestStatus tmpStatus;
+ iTelephony->SendDTMFTones(tmpStatus, aTones);
+ User::WaitForRequest(tmpStatus);
+ iTestStep->TEST1(tmpStatus.Int() == KErrInUse, ETrue);
+ }
+
+ SetActive();
+ }
+
+void CTestSendDTMFTonesAct::RunL()
+ {
+ // ActiveScheduler will have set status to KRequestComplete, just before
+ // calling this RunL().
+
+ iTestStep->TEST1(iStatus.Int()==iExpStat.Int(), 1);
+
+ CActiveScheduler::Stop();
+ iTestStep->INFO_PRINTF1(_L(""));
+ }
+
+CTestFlightModeWithPublishSubscribe::CTestFlightModeWithPublishSubscribe()
+/** 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("TestFlightModeWithPublishSubscribe"));
+}
+
+/**
+*
+@SYMTestCaseID Etel3rdParty 3.1
+@SYMTestCaseDesc Test GetFlightMode 3rd party API
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.4.3
+*
+*/
+
+
+TVerdict CTestFlightModeWithPublishSubscribe::doTestStepL()
+ {
+ INFO_PRINTF1(_L("Test retrieval of flight mode with publish and subscribe"));
+
+ RProperty phonePowerProperty;
+ User::LeaveIfError(phonePowerProperty.Attach(KUidSystemCategory, KUidPhonePwr.iUid));
+ CleanupClosePushL(phonePowerProperty);
+
+ TRequestStatus status;
+ phonePowerProperty.Subscribe(status);
+ User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
+ User::WaitForRequest(status);
+ TEST(status.Int() == KErrNone);
+
+ //Set up the data
+ CTelephony::TFlightModeV1 FlightMode;
+ CTelephony::TFlightModeV1Pckg FlightModePckg(FlightMode);
+ TPckgBuf<CTelephony::TFlightModeV1> FlightModeBuff(FlightMode);
+ TDes8* FlightModeData;
+ if (iBufferMode)
+ {
+ FlightModeData = &FlightModeBuff;
+ }
+ else
+ {
+ FlightModeData = &FlightModePckg;
+ }
+ CTelephony::TFlightModeV1& FlightModeResult =
+ reinterpret_cast<CTelephony::TFlightModeV1&> ( const_cast<TUint8&> ( *FlightModeData->Ptr() ) );
+
+ //Get current flight mode
+ TRequestStatus reqStat=KErrNone;
+ iTelephony->GetFlightMode(reqStat, *FlightModeData);
+ User::WaitForRequest(reqStat);
+
+ //check results
+ TEST1(reqStat.Int() == KErrNone, ETrue);
+ TEST1(FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOff, ETrue);
+ if (FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOff)
+ INFO_PRINTF1(_L("The mobile radio interface and bluetooth is currently on"));
+
+ phonePowerProperty.Subscribe(status);
+ User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
+ User::WaitForRequest(status);
+ TEST(status.Int() == KErrNone);
+
+ //Get current flight mode
+ iTelephony->GetFlightMode(reqStat, *FlightModeData);
+ User::WaitForRequest(reqStat);
+
+ //check results
+ TEST1(reqStat.Int() == KErrNone, ETrue);
+ TEST1(FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOn, ETrue);
+ if (FlightModeResult.iFlightModeStatus == CTelephony::EFlightModeOn)
+ INFO_PRINTF1(_L("The mobile radio interface and bluetooth is currently off"));
+ CleanupStack::PopAndDestroy(&phonePowerProperty);
+ return TestStepResult() ;
+}
+
+CTestPhoneFuncFlightModeOnWithPublishSubscribe::CTestPhoneFuncFlightModeOnWithPublishSubscribe()
+/** 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("TestPhoneFuncFlightModeOnWithPublishSubscribe"));
+}
+
+/**
+@SYMTestCaseID Etel3rdParty 8.2, TestPhoneFuncFlightModeOn
+@SYMTestCaseDesc Test GetSignalStrength and SendDTMFTone 3rd party APIs
+@SYMFssID SGL.GT0166.054 v1.3 A2_Telephony_Functional_Specification.doc, REQ 2116.1.?/9
+*/
+
+enum TVerdict CTestPhoneFuncFlightModeOnWithPublishSubscribe::doTestStepL()
+{
+ INFO_PRINTF1(_L("START TEST 8.2"));
+
+ INFO_PRINTF1(_L(" TEST: Signal Strength information not retrievable when flight mode on with publish and subscribe "));
+
+ //Set test number
+ SetTestNumber(34);
+
+ // Set expected status to KErrAccessDenied as this should be returned in
+ // the case where flight mode is on.
+ TRequestStatus expStat=KErrAccessDenied;
+ CTelephony::TSignalStrengthV1 ExpSignalStrength;
+ ExpSignalStrength.iBar=3;
+ ExpSignalStrength.iSignalStrength=-51;
+ CTelephony::TSignalStrengthV1Pckg expSignalStrengthPckg(ExpSignalStrength);
+ CTestGetSignalStrengthAct* GetSignalStrengthAct = CTestGetSignalStrengthAct::NewLC(this, iTelephony);
+
+ // Set up phonePowerProperty variable so that flight mode can be manipulated.
+ RProperty phonePowerProperty;
+ User::LeaveIfError(phonePowerProperty.Attach(KUidSystemCategory, KUidPhonePwr.iUid));
+ CleanupClosePushL(phonePowerProperty);
+
+ //Switch flight mode on (ie radio mode off)
+ TRequestStatus status;
+ phonePowerProperty.Subscribe(status);
+ User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
+ User::WaitForRequest(status);
+ TEST(status.Int() == KErrNone);
+
+ // Make a call to the 3rd Party API.
+ GetSignalStrengthAct->GetSignalStrength(expSignalStrengthPckg, expStat);
+ CActiveScheduler::Start();
+
+
+ INFO_PRINTF1(_L("Test sending of DTMF tones disallowed when flight mode on "));
+
+ //set test data to transmit
+ _LIT(KDtmfString0,"45p6789A");
+
+ // Switch flight mode off so that a call can be set up.
+ phonePowerProperty.Subscribe(status);
+ User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
+ User::WaitForRequest(status);
+ TEST(status.Int() == KErrNone);
+
+ //Get current flight mode
+ TRequestStatus reqStat=KErrNone;
+ CTelephony::TFlightModeV1 FlightMode;
+ CTelephony::TFlightModeV1Pckg FlightModePckg(FlightMode);
+ iTelephony->GetFlightMode(reqStat, FlightModePckg);
+ User::WaitForRequest(reqStat);
+
+ //check results
+ TEST1(reqStat.Int() == KErrNone, ETrue);
+ TEST1(FlightMode.iFlightModeStatus == CTelephony::EFlightModeOff, ETrue);
+ if (FlightMode.iFlightModeStatus == CTelephony::EFlightModeOff)
+ INFO_PRINTF1(_L("The mobile radio interface and bluetooth is currently on"));
+
+ // Switch flight mode on (ie radio mode off) to test that
+ // DTMF Tone sending fails is disallowed in flight mode.
+ phonePowerProperty.Subscribe(status);
+ User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
+ User::WaitForRequest(status);
+ TEST(status.Int() == KErrNone);
+
+
+ //set expected result values for DTMF
+ CTestSendDTMFTonesAct*SendDTMFAct = CTestSendDTMFTonesAct::NewLC(this, iTelephony);
+ expStat=KErrAccessDenied;
+ SendDTMFAct->SendDTMFTone(KDtmfString0, expStat);
+ CActiveScheduler::Start();
+
+ // Switch flight mode off (ie radio mode on)
+ // so that the call can be hung up.
+ phonePowerProperty.Subscribe(status);
+ User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
+ User::WaitForRequest(status);
+ TEST(status.Int() == KErrNone);
+
+
+ INFO_PRINTF1(_L("END TEST 8.2"));
+
+
+ //CleanupStack::PopAndDestroy(testHangupAct);
+ CleanupStack::PopAndDestroy(SendDTMFAct); //SendDTMFAct
+ //CleanupStack::PopAndDestroy(testDialNewCallAct);
+ CleanupStack::PopAndDestroy(&phonePowerProperty);
+ CleanupStack::PopAndDestroy(GetSignalStrengthAct);
+ return TestStepResult() ;
+
+}
+