--- a/telephonyserverplugins/simtsy/test/Te_SimSS/Te_SimSS.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/simtsy/test/Te_SimSS/Te_SimSS.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,2889 +1,2889 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// This tests the GSM Supplementary services functions including
-// Call Barring, call forwarding and identity services
-//
-//
-
-/**
- @file
-*/
-
-
-#include "Te_SimSS.h"
-
-/**************************************************************/
-//
-// Testing asynchronous retrieve of Call Barring list
-//
-/**************************************************************/
-
-CTestGetCBList* CTestGetCBList::NewLC(RMobilePhone& aPhone, CTestCallBarring* aTest)
- {
- CTestGetCBList* r=new(ELeave) CTestGetCBList(aPhone, aTest);
- CleanupStack::PushL(r);
- r->ConstructL();
- CleanupStack::Pop();
- return r;
- }
-
-CTestGetCBList::CTestGetCBList(RMobilePhone& aPhone, CTestCallBarring* aTest)
- : CActive(EPriorityNormal),
- iPhone(aPhone),
- iTest(aTest)
- {}
-
-void CTestGetCBList::ConstructL()
- {
- CActiveScheduler::Add(this);
- iRetrieveCB=CRetrieveMobilePhoneCBList::NewL(iPhone);
-
- }
-
-void CTestGetCBList::Start(RMobilePhone::TMobilePhoneCBCondition aCondition)
- {
- iRetrieveCB->Start(iStatus, aCondition);
- SetActive();
- }
-
-void CTestGetCBList::RunL()
- {
- TInt ret=iStatus.Int();
-
- User::LeaveIfError(ret);
- ret=CheckResultsL();
- User::LeaveIfError(ret);
- CActiveScheduler::Stop();
- }
-
-void CTestGetCBList::DoCancel()
- {
- iRetrieveCB->Cancel();
- }
-
-TInt CTestGetCBList::SetExpectedResultsL(RMobilePhone::TMobilePhoneCBInfoEntryV1 aExpectedEntry)
- {
- if (!iChecked)
- iExpectedcbList=CMobilePhoneCBList::NewL();
- TRAPD(ret,iExpectedcbList->AddEntryL(aExpectedEntry););
- if(ret!=KErrNone)
- return ret;
- iChecked = ETrue;
- return KErrNone;
- }
-
-void CTestGetCBList::PrintEntry(RMobilePhone::TMobilePhoneCBInfoEntryV1 aCfEntry, TInt aEntryNumber)
- {
- TBuf<200> EntryCondition;
- TBuf<200> EntryServiceGroup;
- TBuf<200> EntryStatus;
-
- switch (aCfEntry.iCondition)
- {
- case RMobilePhone::EBarUnspecified:
- EntryCondition = _L("EBarUnspecified");
- break;
- case RMobilePhone::EBarAllIncoming:
- EntryCondition = _L("EBarAllIncoming");
- break;
- case RMobilePhone::EBarIncomingRoaming:
- EntryCondition = _L("EBarIncomingRoaming");
- break;
- case RMobilePhone::EBarAllOutgoing:
- EntryCondition = _L("EBarAllOutgoing");
- break;
- case RMobilePhone::EBarOutgoingInternational:
- EntryCondition = _L("EBarOutgoingInternational");
- break;
- case RMobilePhone::EBarOutgoingInternationalExHC:
- EntryCondition = _L("EBarOutgoingInternationalExHC");
- break;
- case RMobilePhone::EBarAllCases:
- EntryCondition = _L("EBarAllCases");
- break;
- case RMobilePhone::EBarAllOutgoingServices:
- EntryCondition = _L("EBarAllOutgoingServices");
- break;
- case RMobilePhone::EBarAllIncomingServices:
- EntryCondition = _L("EBarAllIncomingServices");
- break;
- default:
- break;
- }
-
- switch (aCfEntry.iServiceGroup)
- {
- case RMobilePhone::EServiceUnspecified:
- EntryServiceGroup = _L("EServiceUnspecified");
- break;
- case RMobilePhone::EVoiceService:
- EntryServiceGroup = _L("EVoiceService");
- break;
- case RMobilePhone::EAuxVoiceService:
- EntryServiceGroup = _L("EAuxVoiceService");
- break;
- case RMobilePhone::ECircuitDataService:
- EntryServiceGroup = _L("ECircuitDataService");
- break;
- case RMobilePhone::EPacketDataService:
- EntryServiceGroup = _L("EPacketDataService");
- break;
- case RMobilePhone::EFaxService:
- EntryServiceGroup = _L("EFaxService");
- break;
- case RMobilePhone::EShortMessageService:
- EntryServiceGroup = _L("EShortMessageService");
- break;
- case RMobilePhone::EAllServices:
- EntryServiceGroup = _L("EAllServices");
- break;
- case RMobilePhone::EAllTele:
- EntryServiceGroup = _L("EAllTele");
- break;
- case RMobilePhone::ETelephony:
- EntryServiceGroup = _L("ETelephony");
- break;
- case RMobilePhone::EAllDataTele:
- EntryServiceGroup = _L("EAllDataTele");
- break;
- case RMobilePhone::EAllDataExSms:
- EntryServiceGroup = _L("EBarUnspecified");
- break;
- case RMobilePhone::EAllTeleExcSms:
- EntryServiceGroup = _L("EAllTeleExcSms");
- break;
- case RMobilePhone::EAllPlmnTele:
- EntryServiceGroup = _L("EAllPlmnTele");
- break;
- case RMobilePhone::EPlmnTele1:
- EntryServiceGroup = _L("EPlmnTele1");
- break;
- case RMobilePhone::EPlmnTele2:
- EntryServiceGroup = _L("EPlmnTele2");
- break;
- case RMobilePhone::EPlmnTele3:
- EntryServiceGroup = _L("EPlmnTele3");
- break;
- case RMobilePhone::EPlmnTele4:
- EntryServiceGroup = _L("EPlmnTele4");
- break;
- case RMobilePhone::EPlmnTele5:
- EntryServiceGroup = _L("EPlmnTele5");
- break;
- case RMobilePhone::EPlmnTele6:
- EntryServiceGroup = _L("EPlmnTele6");
- break;
- case RMobilePhone::EPlmnTele7:
- EntryServiceGroup = _L("EPlmnTele7");
- break;
- case RMobilePhone::EPlmnTele8:
- EntryServiceGroup = _L("EPlmnTele8");
- break;
- case RMobilePhone::EPlmnTele9:
- EntryServiceGroup = _L("EPlmnTele9");
- break;
- case RMobilePhone::EPlmnTeleA:
- EntryServiceGroup = _L("EPlmnTeleA");
- break;
- case RMobilePhone::EPlmnTeleB:
- EntryServiceGroup = _L("EPlmnTeleB");
- break;
- case RMobilePhone::EPlmnTeleC:
- EntryServiceGroup = _L("EPlmnTeleC");
- break;
- case RMobilePhone::EPlmnTeleD:
- EntryServiceGroup = _L("EPlmnTeleD");
- break;
- case RMobilePhone::EPlmnTeleE:
- EntryServiceGroup = _L("EPlmnTeleE");
- break;
- case RMobilePhone::EPlmnTeleF:
- EntryServiceGroup = _L("EPlmnTeleF");
- break;
- case RMobilePhone::EAllBearer:
- EntryServiceGroup = _L("EAllBearer");
- break;
- case RMobilePhone::EAllAsync:
- EntryServiceGroup = _L("EAllAsync");
- break;
- case RMobilePhone::EAllSync:
- EntryServiceGroup = _L("EAllSync");
- break;
- case RMobilePhone::ESyncData:
- EntryServiceGroup = _L("ESyncData");
- break;
- case RMobilePhone::EAsyncData:
- EntryServiceGroup = _L("EAsyncData");
- break;
- case RMobilePhone::EPacketData:
- EntryServiceGroup = _L("EPacketData");
- break;
- case RMobilePhone::EPadAccess:
- EntryServiceGroup = _L("EPadAccess");
- break;
- case RMobilePhone::EAllPlmnBearer:
- EntryServiceGroup = _L("EAllPlmnBearer");
- break;
- case RMobilePhone::EPlmnBearerServ1:
- EntryServiceGroup = _L("EPlmnBearerServ1");
- break;
- case RMobilePhone::EPlmnBearerServ2:
- EntryServiceGroup = _L("EPlmnBearerServ2");
- break;
- case RMobilePhone::EPlmnBearerServ3:
- EntryServiceGroup = _L("EPlmnBearerServ3");
- break;
- case RMobilePhone::EPlmnBearerServ4:
- EntryServiceGroup = _L("EPlmnBearerServ4");
- break;
- case RMobilePhone::EPlmnBearerServ5:
- EntryServiceGroup = _L("EPlmnBearerServ5");
- break;
- case RMobilePhone::EPlmnBearerServ6:
- EntryServiceGroup = _L("EPlmnBearerServ6");
- break;
- case RMobilePhone::EPlmnBearerServ7:
- EntryServiceGroup = _L("EPlmnBearerServ7");
- break;
- case RMobilePhone::EPlmnBearerServ8:
- EntryServiceGroup = _L("EPlmnBearerServ8");
- break;
- case RMobilePhone::EPlmnBearerServ9:
- EntryServiceGroup = _L("EPlmnBearerServ9");
- break;
- case RMobilePhone::EPlmnBearerServA:
- EntryServiceGroup = _L("EPlmnBearerServA");
- break;
- case RMobilePhone::EPlmnBearerServB:
- EntryServiceGroup = _L("EPlmnBearerServB");
- break;
- case RMobilePhone::EPlmnBearerServC:
- EntryServiceGroup = _L("EPlmnBearerServC");
- break;
- case RMobilePhone::EPlmnBearerServD:
- EntryServiceGroup = _L("EPlmnBearerServD");
- break;
- case RMobilePhone::EPlmnBearerServE:
- EntryServiceGroup = _L("EPlmnBearerServE");
- break;
- case RMobilePhone::EPlmnBearerServF:
- EntryServiceGroup = _L("EPlmnBearerServF");
- break;
- case RMobilePhone::EAltTele:
- EntryServiceGroup = _L("EAltTele");
- break;
- case RMobilePhone::EVoiceGroupCall:
- EntryServiceGroup = _L("EVoiceGroupCall");
- break;
- case RMobilePhone::EVoiceBroadcast:
- EntryServiceGroup = _L("EVoiceBroadcast");
- break;
- case RMobilePhone::EAllGprsBearer:
- EntryServiceGroup = _L("EAllGprsBearer");
- break;
- default:
- break;
- }
-
- switch (aCfEntry.iStatus)
- {
- case RMobilePhone::ECallBarringStatusActive:
- EntryStatus = _L("ECallBarringStatusActive");
- break;
- case RMobilePhone::ECallBarringStatusNotActive:
- EntryStatus = _L("ECallBarringStatusNotActive");
- break;
- case RMobilePhone::ECallBarringStatusNotProvisioned:
- EntryStatus = _L("ECallBarringStatusNotProvisioned");
- break;
- case RMobilePhone::ECallBarringStatusNotAvailable:
- EntryStatus = _L("ECallBarringStatusNotAvailable");
- break;
- case RMobilePhone::ECallBarringStatusUnknown:
- EntryStatus = _L("ECallBarringStatusUnknown");
- break;
- default:
- break;
- }
- iTest->INFO_PRINTF3(_L("Entry %d: condition = >%S<"),aEntryNumber,&EntryCondition);
- iTest->INFO_PRINTF3(_L("Entry %d: service group = >%S<"),aEntryNumber,&EntryServiceGroup);
- iTest->INFO_PRINTF3(_L("Entry %d: status = >%S<"),aEntryNumber,&EntryStatus);
-
- }
-
-void CTestGetCBList::PrintCondition(RMobilePhone::TMobilePhoneCBCondition aCondition)
- {
- TBuf<200> EntryCondition;
-
- switch (aCondition)
- {
- case RMobilePhone::EBarUnspecified:
- EntryCondition = _L("EBarUnspecified");
- break;
- case RMobilePhone::EBarAllIncoming:
- EntryCondition = _L("EBarAllIncoming");
- break;
- case RMobilePhone::EBarIncomingRoaming:
- EntryCondition = _L("EBarIncomingRoaming");
- break;
- case RMobilePhone::EBarAllOutgoing:
- EntryCondition = _L("EBarAllOutgoing");
- break;
- case RMobilePhone::EBarOutgoingInternational:
- EntryCondition = _L("EBarOutgoingInternational");
- break;
- case RMobilePhone::EBarOutgoingInternationalExHC:
- EntryCondition = _L("EBarOutgoingInternationalExHC");
- break;
- case RMobilePhone::EBarAllCases:
- EntryCondition = _L("EBarAllCases");
- break;
- case RMobilePhone::EBarAllOutgoingServices:
- EntryCondition = _L("EBarAllOutgoingServices");
- break;
- case RMobilePhone::EBarAllIncomingServices:
- EntryCondition = _L("EBarAllIncomingServices");
- break;
- default:
- break;
- }
- iTest->INFO_PRINTF2(_L("Retrive for condition = >%S<"),&EntryCondition);
-
- }
-
-TInt CTestGetCBList::CheckResultsL()
- {
- CMobilePhoneCBList* cbList=NULL;
- TRAPD(ret,cbList=iRetrieveCB->RetrieveListL());
- if(ret!=KErrNone)
- {
- iTest->INFO_PRINTF2( _L("CMobilePhoneCBList::RetrieveListL returned with %d"),ret);
- // see if we know of such errors
- // if so then they are expected by the test cases
- if ( (ret==KErrNotFound)
- || (ret==KErrAccessDenied)
- || (ret==KErrArgument))
- {
- return KErrNone;
- }
- else
- {
- return ret;
- }
- }
-
- TInt cnt=cbList->Enumerate();
- TInt expctcnt(0);
- if (iChecked)
- {
- expctcnt=iExpectedcbList->Enumerate();
- if (expctcnt != cnt)
- {
- iTest->INFO_PRINTF3(_L("The number of entries %d doesnt match with the number of the expected ones %d"),cnt, expctcnt);
- iTest->TEST(0);
- }
- }
-
- for(TInt i=0;i<cnt;i++)
- {
- RMobilePhone::TMobilePhoneCBInfoEntryV1 entry=cbList->GetEntryL(i);
- if (expctcnt == cnt)
- {
- if (iChecked)
- {
- for(TInt j=0;j<expctcnt;j++)
- {
- RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry=iExpectedcbList->GetEntryL(j);
- if (entry.iCondition == ExpectedEntry.iCondition)
- break;
- if (j == (expctcnt-1))
- iTest->TEST(entry.iCondition == ExpectedEntry.iCondition);
- }
- for(TInt k=0;k<expctcnt;k++)
- {
- RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry=iExpectedcbList->GetEntryL(k);
- if (entry.iServiceGroup == ExpectedEntry.iServiceGroup)
- break;
- if (k == (expctcnt-1))
- iTest->TEST(entry.iServiceGroup == ExpectedEntry.iServiceGroup);
- }
- for(TInt l=0;l<expctcnt;l++)
- {
- RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry=iExpectedcbList->GetEntryL(l);
- if (entry.iStatus == ExpectedEntry.iStatus)
- break;
- if (l == (expctcnt-1))
- iTest->TEST(entry.iStatus == ExpectedEntry.iStatus);
- }
- }
- }
- PrintEntry(entry,i);
- iTest->INFO_PRINTF1(_L("Opened Call object"));
- }
-
- if (iChecked)
- {
- delete iExpectedcbList;
- iChecked = EFalse;
- }
-
- delete cbList;
- return KErrNone;
- }
-
-CTestGetCBList::~CTestGetCBList()
- {
- delete iRetrieveCB;
- }
-
-/**************************************************************/
-//
-// Testing asynchronous retrieve of Call Forwarding list
-//
-/**************************************************************/
-
-CTestGetCFList* CTestGetCFList::NewLC(RMobilePhone& aPhone, CTestCallForwarding* aTest)
- {
- CTestGetCFList* r=new(ELeave) CTestGetCFList(aPhone, aTest);
- CleanupStack::PushL(r);
- r->ConstructL();
- CleanupStack::Pop();
- return r;
- }
-
-CTestGetCFList::CTestGetCFList(RMobilePhone& aPhone, CTestCallForwarding* aTest)
- : CActive(EPriorityNormal),
- iPhone(aPhone),
- iTest(aTest)
- {}
-
-void CTestGetCFList::ConstructL()
- {
- CActiveScheduler::Add(this);
- iRetrieveCF=CRetrieveMobilePhoneCFList::NewL(iPhone);
- }
-
-void CTestGetCFList::Start(RMobilePhone::TMobilePhoneCFCondition aCondition)
- {
- iRetrieveCF->Start(iStatus, aCondition);
- SetActive();
- }
-
-void CTestGetCFList::Start(RMobilePhone::TMobilePhoneCFCondition aCondition,
- RMobilePhone::TMobileService aServiceGroup)
- {
- iRetrieveCF->Start(iStatus, aCondition, aServiceGroup);
- SetActive();
- }
-
-
-void CTestGetCFList::RunL()
- {
- TInt ret=iStatus.Int();
- // we expect some error codes - KErrArgument
- if (!(ret == KErrArgument))
- User::LeaveIfError(ret);
-
- ret=CheckResultsL();
- User::LeaveIfError(ret);
- CActiveScheduler::Stop();
- }
-
-void CTestGetCFList::DoCancel()
- {
- iRetrieveCF->Cancel();
- }
-
-TInt CTestGetCFList::SetExpectedResultsL(RMobilePhone::TMobilePhoneCFInfoEntryV1 aExpectedEntry)
- {
- if (!iChecked)
- iExpectedCfList=CMobilePhoneCFList::NewL();
- TRAPD(ret,iExpectedCfList->AddEntryL(aExpectedEntry););
- if(ret!=KErrNone)
- return ret;
- iChecked = ETrue;
- return KErrNone;
- }
-
-void CTestGetCFList::PrintEntry(RMobilePhone::TMobilePhoneCFInfoEntryV1 aCfEntry, TInt aEntryNumber)
- {
- TBuf<200> EntryCondition;
- TBuf<200> EntryServiceGroup;
- TBuf<200> EntryStatus;
-
- switch (aCfEntry.iCondition)
- {
- case RMobilePhone::ECallForwardingUnspecified:
- EntryCondition = _L("ECallForwardingUnspecified");
- break;
- case RMobilePhone::ECallForwardingUnconditional:
- EntryCondition = _L("ECallForwardingUnconditional");
- break;
- case RMobilePhone::ECallForwardingBusy:
- EntryCondition = _L("ECallForwardingBusy");
- break;
- case RMobilePhone::ECallForwardingNoReply:
- EntryCondition = _L("ECallForwardingNoReply");
- break;
- case RMobilePhone::ECallForwardingNotReachable:
- EntryCondition = _L("ECallForwardingNotReachable");
- break;
- case RMobilePhone::ECallForwardingAllCases:
- EntryCondition = _L("ECallForwardingAllCases");
- break;
- case RMobilePhone::ECallForwardingAllConditionalCases:
- EntryCondition = _L("ECallForwardingAllConditionalCases");
- break;
- default:
- break;
- }
-
- switch (aCfEntry.iServiceGroup)
- {
- case RMobilePhone::EServiceUnspecified:
- EntryServiceGroup = _L("EServiceUnspecified");
- break;
- case RMobilePhone::EVoiceService:
- EntryServiceGroup = _L("EVoiceService");
- break;
- case RMobilePhone::EAuxVoiceService:
- EntryServiceGroup = _L("EAuxVoiceService");
- break;
- case RMobilePhone::ECircuitDataService:
- EntryServiceGroup = _L("ECircuitDataService");
- break;
- case RMobilePhone::EPacketDataService:
- EntryServiceGroup = _L("EPacketDataService");
- break;
- case RMobilePhone::EFaxService:
- EntryServiceGroup = _L("EFaxService");
- break;
- case RMobilePhone::EShortMessageService:
- EntryServiceGroup = _L("EShortMessageService");
- break;
- case RMobilePhone::EAllServices:
- EntryServiceGroup = _L("EAllServices");
- break;
- case RMobilePhone::EAllTele:
- EntryServiceGroup = _L("EAllTele");
- break;
- case RMobilePhone::ETelephony:
- EntryServiceGroup = _L("ETelephony");
- break;
- case RMobilePhone::EAllDataTele:
- EntryServiceGroup = _L("EAllDataTele");
- break;
- case RMobilePhone::EAllDataExSms:
- EntryServiceGroup = _L("EBarUnspecified");
- break;
- case RMobilePhone::EAllTeleExcSms:
- EntryServiceGroup = _L("EAllTeleExcSms");
- break;
- case RMobilePhone::EAllPlmnTele:
- EntryServiceGroup = _L("EAllPlmnTele");
- break;
- case RMobilePhone::EPlmnTele1:
- EntryServiceGroup = _L("EPlmnTele1");
- break;
- case RMobilePhone::EPlmnTele2:
- EntryServiceGroup = _L("EPlmnTele2");
- break;
- case RMobilePhone::EPlmnTele3:
- EntryServiceGroup = _L("EPlmnTele3");
- break;
- case RMobilePhone::EPlmnTele4:
- EntryServiceGroup = _L("EPlmnTele4");
- break;
- case RMobilePhone::EPlmnTele5:
- EntryServiceGroup = _L("EPlmnTele5");
- break;
- case RMobilePhone::EPlmnTele6:
- EntryServiceGroup = _L("EPlmnTele6");
- break;
- case RMobilePhone::EPlmnTele7:
- EntryServiceGroup = _L("EPlmnTele7");
- break;
- case RMobilePhone::EPlmnTele8:
- EntryServiceGroup = _L("EPlmnTele8");
- break;
- case RMobilePhone::EPlmnTele9:
- EntryServiceGroup = _L("EPlmnTele9");
- break;
- case RMobilePhone::EPlmnTeleA:
- EntryServiceGroup = _L("EPlmnTeleA");
- break;
- case RMobilePhone::EPlmnTeleB:
- EntryServiceGroup = _L("EPlmnTeleB");
- break;
- case RMobilePhone::EPlmnTeleC:
- EntryServiceGroup = _L("EPlmnTeleC");
- break;
- case RMobilePhone::EPlmnTeleD:
- EntryServiceGroup = _L("EPlmnTeleD");
- break;
- case RMobilePhone::EPlmnTeleE:
- EntryServiceGroup = _L("EPlmnTeleE");
- break;
- case RMobilePhone::EPlmnTeleF:
- EntryServiceGroup = _L("EPlmnTeleF");
- break;
- case RMobilePhone::EAllBearer:
- EntryServiceGroup = _L("EAllBearer");
- break;
- case RMobilePhone::EAllAsync:
- EntryServiceGroup = _L("EAllAsync");
- break;
- case RMobilePhone::EAllSync:
- EntryServiceGroup = _L("EAllSync");
- break;
- case RMobilePhone::ESyncData:
- EntryServiceGroup = _L("ESyncData");
- break;
- case RMobilePhone::EAsyncData:
- EntryServiceGroup = _L("EAsyncData");
- break;
- case RMobilePhone::EPacketData:
- EntryServiceGroup = _L("EPacketData");
- break;
- case RMobilePhone::EPadAccess:
- EntryServiceGroup = _L("EPadAccess");
- break;
- case RMobilePhone::EAllPlmnBearer:
- EntryServiceGroup = _L("EAllPlmnBearer");
- break;
- case RMobilePhone::EPlmnBearerServ1:
- EntryServiceGroup = _L("EPlmnBearerServ1");
- break;
- case RMobilePhone::EPlmnBearerServ2:
- EntryServiceGroup = _L("EPlmnBearerServ2");
- break;
- case RMobilePhone::EPlmnBearerServ3:
- EntryServiceGroup = _L("EPlmnBearerServ3");
- break;
- case RMobilePhone::EPlmnBearerServ4:
- EntryServiceGroup = _L("EPlmnBearerServ4");
- break;
- case RMobilePhone::EPlmnBearerServ5:
- EntryServiceGroup = _L("EPlmnBearerServ5");
- break;
- case RMobilePhone::EPlmnBearerServ6:
- EntryServiceGroup = _L("EPlmnBearerServ6");
- break;
- case RMobilePhone::EPlmnBearerServ7:
- EntryServiceGroup = _L("EPlmnBearerServ7");
- break;
- case RMobilePhone::EPlmnBearerServ8:
- EntryServiceGroup = _L("EPlmnBearerServ8");
- break;
- case RMobilePhone::EPlmnBearerServ9:
- EntryServiceGroup = _L("EPlmnBearerServ9");
- break;
- case RMobilePhone::EPlmnBearerServA:
- EntryServiceGroup = _L("EPlmnBearerServA");
- break;
- case RMobilePhone::EPlmnBearerServB:
- EntryServiceGroup = _L("EPlmnBearerServB");
- break;
- case RMobilePhone::EPlmnBearerServC:
- EntryServiceGroup = _L("EPlmnBearerServC");
- break;
- case RMobilePhone::EPlmnBearerServD:
- EntryServiceGroup = _L("EPlmnBearerServD");
- break;
- case RMobilePhone::EPlmnBearerServE:
- EntryServiceGroup = _L("EPlmnBearerServE");
- break;
- case RMobilePhone::EPlmnBearerServF:
- EntryServiceGroup = _L("EPlmnBearerServF");
- break;
- case RMobilePhone::EAltTele:
- EntryServiceGroup = _L("EAltTele");
- break;
- case RMobilePhone::EVoiceGroupCall:
- EntryServiceGroup = _L("EVoiceGroupCall");
- break;
- case RMobilePhone::EVoiceBroadcast:
- EntryServiceGroup = _L("EVoiceBroadcast");
- break;
- case RMobilePhone::EAllGprsBearer:
- EntryServiceGroup = _L("EAllGprsBearer");
- break;
- default:
- break;
- }
-
- switch (aCfEntry.iStatus)
- {
- case RMobilePhone::ECallForwardingStatusActive:
- EntryStatus = _L("ECallForwardingStatusActive");
- break;
- case RMobilePhone::ECallForwardingStatusNotActive:
- EntryStatus = _L("ECallForwardingStatusNotActive");
- break;
- case RMobilePhone::ECallForwardingStatusNotRegistered:
- EntryStatus = _L("ECallForwardingStatusNotRegistered");
- break;
- case RMobilePhone::ECallForwardingStatusNotProvisioned:
- EntryStatus = _L("ECallForwardingStatusNotProvisioned");
- break;
- case RMobilePhone::ECallForwardingStatusNotAvailable:
- EntryStatus = _L("ECallForwardingStatusNotAvailable");
- break;
- case RMobilePhone::ECallForwardingStatusUnknown:
- EntryStatus = _L("ECallForwardingStatusUnknown");
- break;
- case RMobilePhone::ECallForwardingStatusActivePIAllowed:
- EntryStatus = _L("ECallForwardingStatusActivePIAllowed");
- break;
- case RMobilePhone::ECallForwardingStatusActivePINotAvailable:
- EntryStatus = _L("ECallForwardingStatusActivePINotAvailable");
- break;
- case RMobilePhone::ECallForwardingStatusActivePIClir:
- EntryStatus = _L("ECallForwardingStatusActivePIClir");
- break;
- case RMobilePhone::ECallForwardingStatusActivePIClirSIVerified:
- EntryStatus = _L("ECallForwardingStatusActivePIClirSIVerified");
- break;
- case RMobilePhone::ECallForwardingStatusActivePIClirSINotScreened:
- EntryStatus = _L("ECallForwardingStatusActivePIClirSINotScreened");
- break;
- case RMobilePhone::ECallForwardingStatusActivePIClirSINetwork:
- EntryStatus = _L("ECallForwardingStatusActivePIClirSINetwork");
- break;
- case RMobilePhone::ECallForwardingStatusQuiescent:
- EntryStatus = _L("ECallForwardingStatusQuiescent");
- break;
- default:
- break;
- }
- iTest->INFO_PRINTF3(_L("Entry %d: condition = >%S<"),aEntryNumber,&EntryCondition);
- iTest->INFO_PRINTF3(_L("Entry %d: service group = >%S<"),aEntryNumber,&EntryServiceGroup);
- iTest->INFO_PRINTF3(_L("Entry %d: status = >%S<"),aEntryNumber,&EntryStatus);
- iTest->INFO_PRINTF3(_L("Entry %d: Mobile address = >%S<"),aEntryNumber,&aCfEntry.iNumber.iTelNumber );
- iTest->INFO_PRINTF3(_L("Entry %d: Timeout = >%d<"),aEntryNumber,aCfEntry.iTimeout);
- }
-
-void CTestGetCFList::PrintCondition(RMobilePhone::TMobilePhoneCFCondition aCondition)
- {
- TBuf<200> EntryCondition;
-
- switch (aCondition)
- {
- case RMobilePhone::ECallForwardingUnspecified:
- EntryCondition = _L("ECallForwardingUnspecified");
- break;
- case RMobilePhone::ECallForwardingUnconditional:
- EntryCondition = _L("ECallForwardingUnconditional");
- break;
- case RMobilePhone::ECallForwardingBusy:
- EntryCondition = _L("ECallForwardingBusy");
- break;
- case RMobilePhone::ECallForwardingNoReply:
- EntryCondition = _L("ECallForwardingNoReply");
- break;
- case RMobilePhone::ECallForwardingNotReachable:
- EntryCondition = _L("ECallForwardingNotReachable");
- break;
- case RMobilePhone::ECallForwardingAllCases:
- EntryCondition = _L("ECallForwardingAllCases");
- break;
- case RMobilePhone::ECallForwardingAllConditionalCases:
- EntryCondition = _L("ECallForwardingAllConditionalCases");
- break;
- default:
- break;
- }
- iTest->INFO_PRINTF2(_L("Retrieve for condition = >%S<"),&EntryCondition);
-
- }
-
-
-TInt CTestGetCFList::CheckResultsL()
- {
- CMobilePhoneCFList* cfList=NULL;
- TRAPD(ret,cfList=iRetrieveCF->RetrieveListL());
-
- if(ret!=KErrNone)
- {
- iTest->INFO_PRINTF2( _L("CMobilePhoneCBList::RetrieveListL returned with %d"),ret);
- // see if we know of such errors
- // if so then they are expected by the test cases
- if ((ret==KErrNotFound)
- || (ret==KErrAccessDenied)
- || (ret==KErrArgument))
- {
- return KErrNone;
- }
- else
- {
- return ret;
- }
- }
-
- TInt cnt=cfList->Enumerate();
- TInt expctcnt(0);
- if (iChecked)
- {
- expctcnt=iExpectedCfList->Enumerate();
- if (expctcnt != cnt)
- {
- iTest->INFO_PRINTF1(_L("The number of entries doesnt match with the number of the expected ones"));
- iTest->TEST(0);
- }
- }
- for(TInt i=0;i<cnt;i++)
- {
- RMobilePhone::TMobilePhoneCFInfoEntryV1 entry=cfList->GetEntryL(i);
- if (expctcnt == cnt)
- {
- if (iChecked)
- {
- for(TInt j=0;j<expctcnt;j++)
- {
- RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry=iExpectedCfList->GetEntryL(j);
- if (entry.iCondition == ExpectedEntry.iCondition)
- break;
- if (j == (expctcnt-1))
- iTest->TEST(entry.iCondition == ExpectedEntry.iCondition);
- }
- for(TInt k=0;k<expctcnt;k++)
- {
- RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry=iExpectedCfList->GetEntryL(k);
- if (entry.iServiceGroup == ExpectedEntry.iServiceGroup)
- break;
- if (k == (expctcnt-1))
- iTest->TEST(entry.iServiceGroup == ExpectedEntry.iServiceGroup);
- }
- for(TInt l=0;l<expctcnt;l++)
- {
- RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry=iExpectedCfList->GetEntryL(l);
- if (entry.iStatus == ExpectedEntry.iStatus)
- break;
- if (l == (expctcnt-1))
- iTest->TEST(entry.iStatus == ExpectedEntry.iStatus);
- }
- }
- }
- PrintEntry(entry,i);
- iTest->INFO_PRINTF1(_L("Opened Call object"));
-
- }
- if (iChecked)
- {
- delete iExpectedCfList;
- iChecked = EFalse;
- }
- delete cfList;
- return KErrNone;
- }
-
-CTestGetCFList::~CTestGetCFList()
- {
- delete iRetrieveCF;
- }
-
-
-/**************************************************************/
-//
-// Testing asynchronous retrieve of Call Waiting list
-//
-/**************************************************************/
-
-CTestGetCWList* CTestGetCWList::NewLC(RMobilePhone& aPhone, CTestCallWaiting* aTest)
- {
- CTestGetCWList* r=new(ELeave) CTestGetCWList(aPhone, aTest);
- CleanupStack::PushL(r);
- r->ConstructL();
- CleanupStack::Pop();
- return r;
- }
-
-CTestGetCWList::CTestGetCWList(RMobilePhone& aPhone, CTestCallWaiting* aTest)
- : CActive(EPriorityNormal),
- iPhone(aPhone),
- iTest(aTest)
- {}
-
-void CTestGetCWList::ConstructL()
- {
- CActiveScheduler::Add(this);
- iRetrieveCW=CRetrieveMobilePhoneCWList::NewL(iPhone);
-
- }
-
-void CTestGetCWList::Start()
- {
- iRetrieveCW->Start(iStatus);
- SetActive();
- }
-
-void CTestGetCWList::RunL()
- {
- TInt ret=iStatus.Int();
-
- User::LeaveIfError(ret);
- ret=CheckResultsL();
- User::LeaveIfError(ret);
- CActiveScheduler::Stop();
- }
-
-void CTestGetCWList::DoCancel()
- {
- iRetrieveCW->Cancel();
- }
-
-TInt CTestGetCWList::SetExpectedResultsL(RMobilePhone::TMobilePhoneCWInfoEntryV1 aExpectedEntry)
- {
- if (!iChecked)
- iExpectedcwList=CMobilePhoneCWList::NewL();
- TRAPD(ret,iExpectedcwList->AddEntryL(aExpectedEntry););
- if(ret!=KErrNone)
- return ret;
- iChecked = ETrue;
- return KErrNone;
- }
-
-void CTestGetCWList::PrintEntry(RMobilePhone::TMobilePhoneCWInfoEntryV1 aCwEntry, TInt aEntryNumber)
- {
- TBuf<200> EntryServiceGroup;
- TBuf<200> EntryStatus;
-
- switch (aCwEntry.iServiceGroup)
- {
- case RMobilePhone::EServiceUnspecified:
- EntryServiceGroup = _L("EServiceUnspecified");
- break;
- case RMobilePhone::EVoiceService:
- EntryServiceGroup = _L("EVoiceService");
- break;
- case RMobilePhone::EAuxVoiceService:
- EntryServiceGroup = _L("EAuxVoiceService");
- break;
- case RMobilePhone::ECircuitDataService:
- EntryServiceGroup = _L("ECircuitDataService");
- break;
- case RMobilePhone::EPacketDataService:
- EntryServiceGroup = _L("EPacketDataService");
- break;
- case RMobilePhone::EFaxService:
- EntryServiceGroup = _L("EFaxService");
- break;
- case RMobilePhone::EShortMessageService:
- EntryServiceGroup = _L("EShortMessageService");
- break;
- case RMobilePhone::EAllServices:
- EntryServiceGroup = _L("EAllServices");
- break;
- case RMobilePhone::EAllTele:
- EntryServiceGroup = _L("EAllTele");
- break;
- case RMobilePhone::ETelephony:
- EntryServiceGroup = _L("ETelephony");
- break;
- case RMobilePhone::EAllDataTele:
- EntryServiceGroup = _L("EAllDataTele");
- break;
- case RMobilePhone::EAllDataExSms:
- EntryServiceGroup = _L("EBarUnspecified");
- break;
- case RMobilePhone::EAllTeleExcSms:
- EntryServiceGroup = _L("EAllTeleExcSms");
- break;
- case RMobilePhone::EAllPlmnTele:
- EntryServiceGroup = _L("EAllPlmnTele");
- break;
- case RMobilePhone::EPlmnTele1:
- EntryServiceGroup = _L("EPlmnTele1");
- break;
- case RMobilePhone::EPlmnTele2:
- EntryServiceGroup = _L("EPlmnTele2");
- break;
- case RMobilePhone::EPlmnTele3:
- EntryServiceGroup = _L("EPlmnTele3");
- break;
- case RMobilePhone::EPlmnTele4:
- EntryServiceGroup = _L("EPlmnTele4");
- break;
- case RMobilePhone::EPlmnTele5:
- EntryServiceGroup = _L("EPlmnTele5");
- break;
- case RMobilePhone::EPlmnTele6:
- EntryServiceGroup = _L("EPlmnTele6");
- break;
- case RMobilePhone::EPlmnTele7:
- EntryServiceGroup = _L("EPlmnTele7");
- break;
- case RMobilePhone::EPlmnTele8:
- EntryServiceGroup = _L("EPlmnTele8");
- break;
- case RMobilePhone::EPlmnTele9:
- EntryServiceGroup = _L("EPlmnTele9");
- break;
- case RMobilePhone::EPlmnTeleA:
- EntryServiceGroup = _L("EPlmnTeleA");
- break;
- case RMobilePhone::EPlmnTeleB:
- EntryServiceGroup = _L("EPlmnTeleB");
- break;
- case RMobilePhone::EPlmnTeleC:
- EntryServiceGroup = _L("EPlmnTeleC");
- break;
- case RMobilePhone::EPlmnTeleD:
- EntryServiceGroup = _L("EPlmnTeleD");
- break;
- case RMobilePhone::EPlmnTeleE:
- EntryServiceGroup = _L("EPlmnTeleE");
- break;
- case RMobilePhone::EPlmnTeleF:
- EntryServiceGroup = _L("EPlmnTeleF");
- break;
- case RMobilePhone::EAllBearer:
- EntryServiceGroup = _L("EAllBearer");
- break;
- case RMobilePhone::EAllAsync:
- EntryServiceGroup = _L("EAllAsync");
- break;
- case RMobilePhone::EAllSync:
- EntryServiceGroup = _L("EAllSync");
- break;
- case RMobilePhone::ESyncData:
- EntryServiceGroup = _L("ESyncData");
- break;
- case RMobilePhone::EAsyncData:
- EntryServiceGroup = _L("EAsyncData");
- break;
- case RMobilePhone::EPacketData:
- EntryServiceGroup = _L("EPacketData");
- break;
- case RMobilePhone::EPadAccess:
- EntryServiceGroup = _L("EPadAccess");
- break;
- case RMobilePhone::EAllPlmnBearer:
- EntryServiceGroup = _L("EAllPlmnBearer");
- break;
- case RMobilePhone::EPlmnBearerServ1:
- EntryServiceGroup = _L("EPlmnBearerServ1");
- break;
- case RMobilePhone::EPlmnBearerServ2:
- EntryServiceGroup = _L("EPlmnBearerServ2");
- break;
- case RMobilePhone::EPlmnBearerServ3:
- EntryServiceGroup = _L("EPlmnBearerServ3");
- break;
- case RMobilePhone::EPlmnBearerServ4:
- EntryServiceGroup = _L("EPlmnBearerServ4");
- break;
- case RMobilePhone::EPlmnBearerServ5:
- EntryServiceGroup = _L("EPlmnBearerServ5");
- break;
- case RMobilePhone::EPlmnBearerServ6:
- EntryServiceGroup = _L("EPlmnBearerServ6");
- break;
- case RMobilePhone::EPlmnBearerServ7:
- EntryServiceGroup = _L("EPlmnBearerServ7");
- break;
- case RMobilePhone::EPlmnBearerServ8:
- EntryServiceGroup = _L("EPlmnBearerServ8");
- break;
- case RMobilePhone::EPlmnBearerServ9:
- EntryServiceGroup = _L("EPlmnBearerServ9");
- break;
- case RMobilePhone::EPlmnBearerServA:
- EntryServiceGroup = _L("EPlmnBearerServA");
- break;
- case RMobilePhone::EPlmnBearerServB:
- EntryServiceGroup = _L("EPlmnBearerServB");
- break;
- case RMobilePhone::EPlmnBearerServC:
- EntryServiceGroup = _L("EPlmnBearerServC");
- break;
- case RMobilePhone::EPlmnBearerServD:
- EntryServiceGroup = _L("EPlmnBearerServD");
- break;
- case RMobilePhone::EPlmnBearerServE:
- EntryServiceGroup = _L("EPlmnBearerServE");
- break;
- case RMobilePhone::EPlmnBearerServF:
- EntryServiceGroup = _L("EPlmnBearerServF");
- break;
- case RMobilePhone::EAltTele:
- EntryServiceGroup = _L("EAltTele");
- break;
- case RMobilePhone::EVoiceGroupCall:
- EntryServiceGroup = _L("EVoiceGroupCall");
- break;
- case RMobilePhone::EVoiceBroadcast:
- EntryServiceGroup = _L("EVoiceBroadcast");
- break;
- case RMobilePhone::EAllGprsBearer:
- EntryServiceGroup = _L("EAllGprsBearer");
- break;
- default:
- break;
- }
-
- switch (aCwEntry.iStatus)
- {
- case RMobilePhone::ECallWaitingStatusActive:
- EntryStatus = _L("ECallWaitingStatusActive");
- break;
- case RMobilePhone::ECallWaitingStatusNotActive:
- EntryStatus = _L("ECallWaitingStatusNotActive");
- break;
- case RMobilePhone::ECallWaitingStatusNotProvisioned:
- EntryStatus = _L("ECallWaitingStatusNotProvisioned");
- break;
- case RMobilePhone::ECallWaitingStatusNotAvailable:
- EntryStatus = _L("ECallBarringStatusNotAvailable");
- break;
- case RMobilePhone::ECallWaitingStatusUnknown:
- EntryStatus = _L("ECallWaitingStatusUnknown");
- break;
- default:
- break;
- }
- iTest->INFO_PRINTF3(_L("Entry %d: service group = >%S<"),aEntryNumber,&EntryServiceGroup);
- iTest->INFO_PRINTF3(_L("Entry %d: status = >%S<"),aEntryNumber,&EntryStatus);
-
- }
-
-
-TInt CTestGetCWList::CheckResultsL()
- {
- CMobilePhoneCWList* cwList=NULL;
- TRAPD(ret,cwList=iRetrieveCW->RetrieveListL());
- if(ret!=KErrNone)
- {
- iTest->INFO_PRINTF2( _L("CMobilePhoneCWList::RetrieveListL left with %d"),ret);
- if ( ret == KErrNotFound )
- return KErrNone;
- else
- return ret;
- }
-
- TInt cnt=cwList->Enumerate();
- TInt expctcnt(0);
- if (iChecked)
- {
- expctcnt=iExpectedcwList->Enumerate();
- if (expctcnt != cnt)
- {
- iTest->INFO_PRINTF3(_L("The number of entries %d doesnt match with the number of the expected ones %d "),cnt, expctcnt);
- iTest->TEST(0);
- }
- }
- for(TInt i=0;i<cnt;i++)
- {
- RMobilePhone::TMobilePhoneCWInfoEntryV1 entry=cwList->GetEntryL(i);
- if (expctcnt == cnt)
- {
- if (iChecked)
- {
- for(TInt k=0;k<expctcnt;k++)
- {
- RMobilePhone::TMobilePhoneCWInfoEntryV1 ExpectedEntry=iExpectedcwList->GetEntryL(k);
- if (entry.iServiceGroup == ExpectedEntry.iServiceGroup)
- break;
- if (k == (expctcnt-1))
- iTest->TEST(entry.iServiceGroup == ExpectedEntry.iServiceGroup);
- }
- for(TInt l=0;l<expctcnt;l++)
- {
- RMobilePhone::TMobilePhoneCWInfoEntryV1 ExpectedEntry=iExpectedcwList->GetEntryL(l);
- if (entry.iStatus == ExpectedEntry.iStatus)
- break;
- if (l == (expctcnt-1))
- iTest->TEST(entry.iStatus == ExpectedEntry.iStatus);
- }
- }
- }
- PrintEntry(entry,i);
- }
-
- if (iChecked)
- {
- delete iExpectedcwList;
- iChecked = EFalse;
- }
-
- delete cwList;
- return KErrNone;
- }
-
-CTestGetCWList::~CTestGetCWList()
- {
- delete iRetrieveCW;
- }
-
-
-
-//------------------------------------------------------------------
-// ** TEST STEPS ***
-//------------------------------------------------------------------
-
-CTestCallBarring::CTestCallBarring()
- {
- SetTestStepName(_L("TestCallBarring"));
- }
-
-enum TVerdict CTestCallBarring::doTestStepL()
-/**
- * Local function that creates a CTestData object.
- * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
- * function (which runs the tests) and then disconnects from the ETel Server at
- * the end of the tests.
- */
- {
- CActiveScheduler* actSched=new(ELeave) CActiveScheduler();
- CleanupStack::PushL(actSched);
- CActiveScheduler::Install(actSched);
-
- SetTestNumberL(0);
-
- INFO_PRINTF1(_L("CTestCallBarring"));
- TRequestStatus reqStat=KErrNone;
- TRequestStatus reqStat2=KErrNone;
- _LIT8(pswrd1, "1111");
- _LIT8(pswrd2, "2222");
- RMobilePhone::TMobilePhoneCBCondition condition=RMobilePhone::EBarAllOutgoing;
- RMobilePhone::TMobilePhoneCBChangeV1 changeInfo;
-
- CTestGetCBList* retrieveCBList=NULL;
-
- retrieveCBList = CTestGetCBList::NewLC(iPhone, this);
-
- RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry1;
-
- // position is important!
- // Test case: K.17 - Cancel notification with no previous reposts
- INFO_PRINTF1(_L("Test case: K.17 - Cancel notification with no previous reposts"));
- //register notification
- iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
-
- // disable EMobilePhoneNotifyCallBarringStatusChange
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallBarringStatusChange);
-
- User::WaitForRequest(reqStat2);
- TEST(reqStat2==KErrCancel);
- // because it is assumed no previous CTestGetCBList
- INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
-
-
- // Test case: K.1 - Retrieve the status - preset
- INFO_PRINTF1(_L("Test case: K.1 - Retrieve the status from config"));
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- condition = RMobilePhone::EBarUnspecified;
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.2 - Disable Call barring for Voice :EBarAllOutgoingServices
- INFO_PRINTF1(_L("Test case: K.2 - De-activate Call Barring for all outgoing voice services"));
- condition = RMobilePhone::EBarAllOutgoingServices;
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- // should not have anything here - empty list
- // as we are asking for a specific condition -EBarAllOutgoing
- condition = RMobilePhone::EBarAllOutgoing;
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
- INFO_PRINTF1(_L(""));
-
- // Test case: K.3 - Erase all services and request info for all services
- INFO_PRINTF1(_L("Test case: K.3 - Erase all services and request info for all services"));
- condition=RMobilePhone::EBarAllCases;
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionErase;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- condition=RMobilePhone::EBarUnspecified;
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllCases;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusNotActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.4 - Enable Call barring for Voice :EBarAllOutgoing
- INFO_PRINTF1(_L("Test case: K.4 - Activate Call Barring for all outgoing voice services"));
- condition = RMobilePhone::EBarAllOutgoing;
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition,changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.5 - Enable Call barring for Voice but :EBarOutgoingInternational
- INFO_PRINTF1(_L("Test case: K.5 - Activate Call Barring (intl only) for outgoing Voice services"));
- condition = RMobilePhone::EBarOutgoingInternational;
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.5 - Enable Call barring for Voice but :EBarOutgoingInternational again
- INFO_PRINTF1(_L("Test case: K.5 - Activate Call Barring (intl only) for outgoing Voice services again"));
- condition = RMobilePhone::EBarOutgoingInternational;
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.6 - Set Call Barring Status for all outgoing services
- INFO_PRINTF1(_L("Activate Call Barring for all outgoing services"));
- condition = RMobilePhone::EBarAllOutgoing;
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.6 - Set Call Barring Status for all outgoing services again
- INFO_PRINTF1(_L("Test case: K.6 - Activate Call Barring for all outgoing services again"));
- condition = RMobilePhone::EBarAllOutgoing;
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.7 - deactivate for voice service & notification with different condition
- INFO_PRINTF1(_L("Test case: K.7 - Deactivate for outgoing voice service & notification with diferent condition"));
- condition = RMobilePhone::EBarAllOutgoing;
- iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
- User::After(2000000);
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- changeInfo.iPassword.Copy(pswrd1);
- condition=RMobilePhone::EBarAllOutgoingServices;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- User::After(2000000);
- User::WaitForRequest(reqStat2);
- TEST(reqStat2==KErrNone);//notification did not complete(wrong condition)
- retrieveCBList->PrintCondition(condition);
- TEST(condition==RMobilePhone::EBarAllOutgoingServices);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::EBarAllOutgoing;
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.7 - deactivate for voice service & notification with different condition
- INFO_PRINTF1(_L("Test case: K.7 - Deactivate for outgoing voice service & notification with diferent condition"));
- condition = RMobilePhone::EBarAllOutgoing;
- iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
- User::After(2000000);
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- changeInfo.iPassword.Copy(pswrd1);
- condition=RMobilePhone::EBarAllOutgoingServices;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- User::After(2000000);
- User::WaitForRequest(reqStat2);
- TEST(reqStat2==KErrNone);//notification did not complete(wrong condition)
- retrieveCBList->PrintCondition(condition);
- TEST(condition==RMobilePhone::EBarAllOutgoingServices);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::EBarAllOutgoing;
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.8 - Activate EAuxVoiceService Service for outgoing international condition
- INFO_PRINTF1(_L("Test case: K.8 - Activate EAuxVoiceService Service for outgoing international condition"));
- changeInfo.iServiceGroup=RMobilePhone::EAuxVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd1);
- condition=RMobilePhone::EBarOutgoingInternational;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- condition=RMobilePhone::EBarUnspecified;
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::EBarAllOutgoing;
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.9 - Activate for ECircuitDataService service, different conditions :EBarIncomingRoaming & notify
- INFO_PRINTF1(_L("Test case: K.9 - Activate for ECircuitDataService service, different conditions :EBarIncomingRoaming & notify"));
- changeInfo.iServiceGroup=RMobilePhone::ECircuitDataService;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- condition=RMobilePhone::EBarIncomingRoaming;
- changeInfo.iPassword.Copy(pswrd1);
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve for this condition
- ExpectedEntry1.iCondition=RMobilePhone::EBarIncomingRoaming;
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.10 - Retrieve for all conditions
- INFO_PRINTF1(_L("Test case: K.10 - Now retrieve for all conditions"));
- condition=RMobilePhone::EBarUnspecified;
-
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iCondition=RMobilePhone::EBarIncomingRoaming;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve for all
- INFO_PRINTF1(_L("Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve for all"));
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- changeInfo.iPassword.Copy(pswrd1);
- condition=RMobilePhone::EBarAllIncomingServices;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- condition=RMobilePhone::EBarUnspecified;
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve for all
- INFO_PRINTF1(_L("Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve all"));
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- changeInfo.iPassword.Copy(pswrd1);
- condition=RMobilePhone::EBarAllIncomingServices;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- condition=RMobilePhone::EBarUnspecified;
- ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
- retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCBList->PrintCondition(condition);
- retrieveCBList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: K.12 - Set Call Barring Status for all services with wrong password
- INFO_PRINTF1(_L("Test case: K.12 - Set Call Barring Status for all services with wrong password"));
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd2);
- condition=RMobilePhone::EBarAllOutgoing;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrAccessDenied);
-
- // Test case: K.13 - Change Call Barrring Password
- INFO_PRINTF1(_L("Test case: K.13 - Change Call Barrring Password"));
- RMobilePhone::TMobilePhonePasswordChangeV1 passChange;
- passChange.iOldPassword.Copy(pswrd1);
- passChange.iNewPassword.Copy(pswrd2);
- iPhone.SetCallBarringPassword(reqStat,passChange);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- // Test case: K.12 - Set Call Barring Status for all services with wrong (original) password
- INFO_PRINTF1(_L("Test case: K.12 - Set Call Barring Status for all services with wrong (original) password"));
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd1);
- condition=RMobilePhone::EBarAllOutgoing;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrAccessDenied);
-
- // Test case: K.14 - Set Call Barring Status for all services with correct password
- INFO_PRINTF1(_L("Test case: K.14 - Set Call Barring Status for all services with correct password"));
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd2);
- condition=RMobilePhone::EBarAllOutgoing;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- // Test case: K.15 - Set wrong parameter - EBarAllCases - for activation
- INFO_PRINTF1(_L("Test case: K.15 - Set wrong parameters - EBarAllCases - for activation"));
- reqStat = KErrNone;
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd2);
- condition=RMobilePhone::EBarAllCases;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrArgument);
-
- // Test case: K.16 - Cancel notification
- INFO_PRINTF1(_L("Test case: K.16 - Cancel notification"));
-
- //register notification
- iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
-
- // do a set
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iPassword.Copy(pswrd2);
- condition=RMobilePhone::EBarAllOutgoing;
- iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
-
- // disable EMobilePhoneNotifyCallBarringStatusChange
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallBarringStatusChange);
-
- User::WaitForRequest(reqStat2);
- TEST((reqStat2==KErrCancel)||(reqStat2==KErrNone));//notification did not complete(wrong condition)
- INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- // cleanup phase; remove
- CActiveScheduler::Install(NULL);
- CleanupStack::PopAndDestroy();
- delete retrieveCBList;
-
- INFO_PRINTF1(_L("End CB test"));
- return TestStepResult();
- }
-
-
-CTestCallForwarding::CTestCallForwarding()
- {
- SetTestStepName(_L("TestCallForwarding"));
- }
-
-enum TVerdict CTestCallForwarding::doTestStepL()
-/**
- * Local function that creates a CTestData object.
- * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
- * function (which runs the tests) and then disconnects from the ETel Server at
- * the end of the tests.
- */
- {
- CActiveScheduler* actSched = new(ELeave) CActiveScheduler();
- CleanupStack::PushL(actSched);
- CActiveScheduler::Install(actSched);
-
- SetTestNumberL(0);
- INFO_PRINTF1(_L("CTestCallForwarding"));
-
- TRequestStatus reqStat = KErrNone;
- TRequestStatus reqStat2 = KErrNone;
-
- _LIT8(newCFNumber, "01632960000");
- _LIT8(newCFNumber1, "01632960000");
-
- CTestGetCFList* retrieveCFList = NULL;
- retrieveCFList = CTestGetCFList::NewLC(iPhone, this);
-
- RMobilePhone::TMobilePhoneCFCondition condition = RMobilePhone::ECallForwardingUnconditional;
-
- // ******************* NOTE: Position is important! **************************************
-
- // Test case: L.1 - Cancel notification with no previous reposts
- INFO_PRINTF1(_L("Test case: L.1 - Cancel notification with no previous reposts"));
-
- //register notification
- iPhone.NotifyCallForwardingStatusChange(reqStat2, condition);
-
- // disable EMobilePhoneNotifyCallForwardingStatusChange
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallForwardingStatusChange);
- User::WaitForRequest(reqStat2);
- TEST(reqStat2 == KErrCancel);
-
- // because it is assumed no previous CTestGetCFList
- INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
-
- // Test case: L.2 - Retrieve the status for all basic services for a specific condition
- INFO_PRINTF1(_L("Test case: L.2 - Retrieve the status for all basic services for a specific condition"));
- condition = RMobilePhone::ECallForwardingUnconditional;
-
- RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry1;
-
- // there should be only one entry
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.3 - Retrieve the status for all basic services for a specific condition
- INFO_PRINTF1(_L("Test case: L.3 - Retrieve the status for all basic services for a specific condition"));
- condition = RMobilePhone::ECallForwardingNotReachable;
-
- // there should be only one entry
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNotReachable;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EPacketDataService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.4 - Retrieve the configuration for erroneous condition
- //there should be no entries
- INFO_PRINTF1(_L("Test case: L.4 - Retrieve the configuration for erroneous condition"));
- condition = RMobilePhone::ECallForwardingAllCases;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.5 - Retrieve the configuration for correct condition but for which there are no registered services
- INFO_PRINTF1(_L("Test case: L.5 - Retrieve the configuration for correct condition but for which there are no registered services"));
- condition = RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
- INFO_PRINTF1(_L(""));
-
- RMobilePhone::TMobileService serviceGroup = RMobilePhone::EVoiceService;
-
- // Test case: L.6 - Retrieve the configuration for correct condition but for specific registered group
- INFO_PRINTF1(_L("Test case: L.6 - Retrieve the configuration for correct condition but for specific registered group"));
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition, serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.7 - Retrieve the configuration for correct condition but for specific non registered group
- INFO_PRINTF1(_L("Test case: L.7 - Retrieve the configuration for correct condition but for specific non registered group"));
- serviceGroup = RMobilePhone::EAuxVoiceService;
- condition=RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition, serviceGroup);
- CActiveScheduler::Start();
- INFO_PRINTF1(_L(""));
-
- // *********** Now we have retrieved our conditions list. Now modify the list. *************
-
- RMobilePhone::TMobilePhoneCFChangeV1 changeInfo;
-
- // Test case: L.8 - Register a previously not registered CF condition for all services to registered
- INFO_PRINTF1(_L("Test case: L.8 - Register a previously CF condition for all services to registered"));
- condition = RMobilePhone::ECallForwardingNoReply;
- changeInfo.iServiceGroup = RMobilePhone::EAllServices;
- changeInfo.iAction = RMobilePhone::EServiceActionRegister;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- changeInfo.iTimeout=30;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat == KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition = RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.9 - Activate a previously not active CF condition for all services
- INFO_PRINTF1(_L("Test case: L.9 - De-activate a previously active CF condition for all services"));
- condition = RMobilePhone::ECallForwardingNoReply;
- changeInfo.iServiceGroup = RMobilePhone::EAllServices;
- changeInfo.iAction = RMobilePhone::EServiceActionActivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EAllServices;
- condition = RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.10 - De-activate a previously active CF condition for all services
- INFO_PRINTF1(_L("Test case: L.10 - De-activate a previously active CF condition for all services"));
- condition = RMobilePhone::ECallForwardingNoReply;
- changeInfo.iServiceGroup = RMobilePhone::EAllServices;
- changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EAllServices;
- condition = RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.11 - Erase a previously non active CF condition for all services
- INFO_PRINTF1(_L("Test case: L.11 - Erase a previously non active CF condition for all services"));
- condition = RMobilePhone::ECallForwardingNoReply;
- changeInfo.iServiceGroup = RMobilePhone::EAllServices;
- changeInfo.iAction = RMobilePhone::EServiceActionErase;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- serviceGroup = RMobilePhone::EAllServices;
- condition = RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.12 - Register a previously not registered CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.12 - Register a previously not registered CF condition for a single service"));
- condition=RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EAuxVoiceService;
- changeInfo.iAction = RMobilePhone::EServiceActionRegister;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- changeInfo.iTimeout = 30;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat == KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EAuxVoiceService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.13 - Activate a previously not registered CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.13 - Activate a previously not registered CF condition for a single service"));
- condition = RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EFaxService;
- changeInfo.iAction = RMobilePhone::EServiceActionActivate;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- changeInfo.iTimeout = 25;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- serviceGroup = RMobilePhone::EFaxService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- // should not return anything as cannot activate
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
- INFO_PRINTF1(_L(""));
-
- // Test case: L.14 - Register a previously not registered CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.14 - Register a previously not registered CF condition for a single service"));
- condition = RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup=RMobilePhone::EFaxService;
- changeInfo.iAction=RMobilePhone::EServiceActionRegister;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- changeInfo.iTimeout=30;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EFaxService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EFaxService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.15 - Activate a previously registered CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.15 - Activate a previously not registered CF condition for a single service"));
- condition=RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EFaxService;
- changeInfo.iAction = RMobilePhone::EServiceActionActivate;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- changeInfo.iTimeout = 25;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EFaxService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EFaxService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.16 - De-activate a previously active CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.16 - De-activate a previously active CF condition for a single service"));
- condition=RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EFaxService;
- changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EFaxService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EFaxService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.17 - Erase a previously active CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.17 - Erase a previously active CF condition for a single service"));
- condition=RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup=RMobilePhone::EAuxVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionErase;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- serviceGroup = RMobilePhone::EAuxVoiceService;
- condition=RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.18 - Erase a previously not active CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.18 - Erase a previously not active CF condition for a single service"));
- condition = RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EFaxService;
- changeInfo.iAction = RMobilePhone::EServiceActionErase;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- serviceGroup = RMobilePhone::EFaxService;
- condition=RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
- //there should be no entries printed as the service is deactivated
- INFO_PRINTF1(_L(""));
-
-// Tests on Quiescent state //
-
- // Test case: L.19 - De-activate a previously active CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.19 - De-activate a previously active CF condition for a single service"));
- condition=RMobilePhone::ECallForwardingBusy;
- changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
- changeInfo.iAction = RMobilePhone::EServiceActionRegister;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::ECircuitDataService;
- condition = RMobilePhone::ECallForwardingBusy;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.20 - Try and activate a single CF service
- // is active
- INFO_PRINTF1(_L("Test case: L.20 - Activate a single CF service"));
- condition=RMobilePhone::ECallForwardingBusy;
- changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
- changeInfo.iAction = RMobilePhone::EServiceActionActivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::ECircuitDataService;
- condition = RMobilePhone::ECallForwardingBusy;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.21 - De-activate active call forwarding unconditional service
- // is active
- INFO_PRINTF1(_L("Test case: L.21 - De-activate a previously active CF condition for a single service"));
- condition=RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
- changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EVoiceService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.22 - Try and activate call forwarding busy when call forwarding unconditional not active
- INFO_PRINTF1(_L("Test case: L.22 - Activate a previously active CF condition for a single service"));
- condition=RMobilePhone::ECallForwardingBusy;
- changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
- changeInfo.iAction = RMobilePhone::EServiceActionActivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::ECircuitDataService;
- condition = RMobilePhone::ECallForwardingBusy;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.23 - Activate call forwarding unconditional when call forwarding busy active
- INFO_PRINTF1(_L("Test case: L.23 - Activate a previously active CF condition for a single service"));
- condition = RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
- changeInfo.iAction = RMobilePhone::EServiceActionActivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EVoiceService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusQuiescent;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::ECircuitDataService;
- condition = RMobilePhone::ECallForwardingBusy;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- // Test case: L.24 - De-activate call forwarding unconditional
- INFO_PRINTF1(_L("Test case: L.24 - De-activate a previously active CF condition for a single service"));
- condition = RMobilePhone::ECallForwardingUnconditional;
- changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
- changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::EVoiceService;
- condition = RMobilePhone::ECallForwardingUnconditional;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- serviceGroup = RMobilePhone::ECircuitDataService;
- condition = RMobilePhone::ECallForwardingBusy;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition,serviceGroup);
- CActiveScheduler::Start();
-
-//Tests on Notifications//
-
- INFO_PRINTF1(_L("Change simtsy config number"));
- SetTestNumberL(1);
-
- // Test case: L.25 - Register all services for a CF condition, whilst there are some previously reistered/non-active
- INFO_PRINTF1(_L("Test case: L.25 - Register all services for a CF condition, whilst there are some previously reistered/non-active"));
- changeInfo.iServiceGroup = RMobilePhone::EAllServices;
- changeInfo.iAction = RMobilePhone::EServiceActionRegister;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber1);
- condition = RMobilePhone::ECallForwardingNoReply;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition = RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.26 - Activate all services for a CF condition, whilst there are some previously reistered/non-active
- INFO_PRINTF1(_L("Test case: L.26 - Activate all services for a CF condition, whilst there are some previously reistered/non-active"));
- changeInfo.iServiceGroup = RMobilePhone::EAllServices;
- changeInfo.iAction = RMobilePhone::EServiceActionActivate;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber1);
- condition = RMobilePhone::ECallForwardingNoReply;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
- ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition = RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.27 - Enable notification whilst disable a service enabled for that condition
- INFO_PRINTF1(_L("Test case: L.27 - Enable notification whilst disable a service enabled for that condition"));
- condition = RMobilePhone::ECallForwardingNoReply;
- iPhone.NotifyCallForwardingStatusChange(reqStat2,condition);
- User::After(2000000);
- changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
- changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
- condition = RMobilePhone::ECallForwardingNoReply;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
-
- condition = RMobilePhone::ECallForwardingUnconditional;
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- User::WaitForRequest(reqStat2);
- TEST(reqStat2==KErrNone);
- //notification should be
- INFO_PRINTF1(_L("Notification condition"));
- retrieveCFList->PrintCondition(condition);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNoReply;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::ECallForwardingNoReply;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // activate for 1 service but different condition
-
- // Test case: L.28 - Enable notification whilst disable a service enabled for other condition
- INFO_PRINTF1(_L("Test case: L.28 - Enable notification whilst disable a service enabled for other condition"));
-
- iPhone.NotifyCallForwardingStatusChange(reqStat2,condition);
- User::After(2000000);
-
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionRegister;
- condition=RMobilePhone::ECallForwardingBusy;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- User::WaitForRequest(reqStat2);
- TEST(reqStat2==KErrNone);
- //notification should be
- INFO_PRINTF1(_L("Notification condition"));
- retrieveCFList->PrintCondition(condition);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.29 - Cancel notification with previous reposts
- INFO_PRINTF1(_L("Test case: L.29 - Cancel notification with previous reposts"));
- //register notification
- iPhone.NotifyCallForwardingStatusChange(reqStat2,condition);
-
- //set
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionRegister;
- condition=RMobilePhone::ECallForwardingBusy;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
-
- // disable EMobilePhoneNotifyCallForwardingStatusChange
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallForwardingStatusChange);
-
- User::WaitForRequest(reqStat2);
- TEST((reqStat2==KErrCancel)||(reqStat2==KErrNone));
- // because it is NOT assumed no previous CTestGetCFList
- INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
-//Tests on Specific Actions//
-
- INFO_PRINTF1(_L("Change simtsy config number"));
- SetTestNumberL(2);
- // there is just a single entry
-
- // Test case: L.30 - Retrieve the status for all basic services for a specific condition
- INFO_PRINTF1(_L("Test case: L.30 - Retrieve the status for all basic services for a specific condition"));
- condition=RMobilePhone::ECallForwardingBusy;
- // there should be only one entry
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;//EAllServices;//ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.31 - Register a CF condition for all services to registered, whilst there is an active service for that condition
- INFO_PRINTF1(_L("Test case: L.31 - Register a CF condition for all services to registered, whilst there is an active service for that condition"));
- condition=RMobilePhone::ECallForwardingBusy;
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionRegister;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- changeInfo.iTimeout=30;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::ECallForwardingBusy;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.32 - Register a CF condition for one services, whilst all services are registered for that condition
- INFO_PRINTF1(_L("Test case: L.32 -Register a CF condition for one services, whilst all services are registered for that condition"));
- condition=RMobilePhone::ECallForwardingBusy;
- changeInfo.iServiceGroup=RMobilePhone::EFaxService;
- changeInfo.iAction=RMobilePhone::EServiceActionRegister;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber1);
- changeInfo.iTimeout=20;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again for the specific
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- //retrieve for all - in fact here should return all as enabled
- condition=RMobilePhone::ECallForwardingBusy;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // Test case: L.33 - incorporates L.6 and L.9 with the outcome that there
- // are N-1 active service entries in the list and all with the same settings
- // as those for all groups.
- INFO_PRINTF1(_L("Test case:L.33 - incorporates L.6 and L.9"));
-
- // Test case: L.34 - Register a previously not registered CF condition for all services to registered
- INFO_PRINTF1(_L("Test case: L.34 - Register a previously not registered CF condition for all services to registered"));
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionRegister;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- condition=RMobilePhone::ECallForwardingNotReachable;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::ECallForwardingNotReachable;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
-
- // Test case: L.35 - Register a previously not registered CF condition for all services to registered
- INFO_PRINTF1(_L("Test case: L.35 - Register a previously not registered CF condition for all services to registered"));
- changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionActivate;
- changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
- condition=RMobilePhone::ECallForwardingNotReachable;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::ECallForwardingNotReachable;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- //Deactivate call forwarding not reachable active for voice service
- // Test case: L.36 - De-activate a previously active CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.36 - De-activate a previously active CF condition for a single service"));
- changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- // Test case Final Result Retrieve again - in this case the output is different - all services are active bar one
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::ECallForwardingNotReachable;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // just to show that we can deactivate other services
- // Test case: L.37 - De-activate a previously active CF condition for a single service
- INFO_PRINTF1(_L("Test case: L.37 - De-activate a previously active CF condition for a single service"));
- //Deactivate call forwarding not reachable actif for data service
- changeInfo.iServiceGroup=RMobilePhone::ECircuitDataService;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::ECallForwardingNotReachable;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // just to show that we can deactivate all services
- // Test case: L.38 - De-activate previously active CF condition for a set of single services
- INFO_PRINTF1(_L("Test case: L.38 - De-activate previously active CF condition for a set of single services"));
- condition=RMobilePhone::ECallForwardingNotReachable;
-
- changeInfo.iServiceGroup=RMobilePhone::EAllServices;
- changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
- iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
-
- //Retrieve again
- ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
-
- condition=RMobilePhone::ECallForwardingNotReachable;
- retrieveCFList->PrintCondition(condition);
- retrieveCFList->Start(condition);
- CActiveScheduler::Start();
-
- // cleanup phase; remove
- CActiveScheduler::Install(NULL);
- CleanupStack::PopAndDestroy();
- delete retrieveCFList;
-
- INFO_PRINTF1(_L("End CF test"));
- return TestStepResult();
- }
-
-
-CTestCallWaiting::CTestCallWaiting()
- {
- SetTestStepName(_L("TestCallWaiting"));
- }
-
-enum TVerdict CTestCallWaiting::doTestStepL()
-/**
- * Local function that creates a CTestData object.
- * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
- * function (which runs the tests) and then disconnects from the ETel Server at
- * the end of the tests.
- */
- {
- CActiveScheduler* actSched=new(ELeave) CActiveScheduler();
- CleanupStack::PushL(actSched);
- CActiveScheduler::Install(actSched);
-
- INFO_PRINTF1(_L("CTestCallWaiting"));
-
- SetTestNumberL(0);
-
- TRequestStatus reqStat=KErrNone;
- TRequestStatus reqStat2=KErrNone;
-
-
- // Test case: M.1 -retrieve CW status
- //expect 1 entry: active for voice as defined in config file
- INFO_PRINTF1(_L("Test case: M.1 - Retrieve CW status from config file"));
-
- CTestGetCWList* retrieveCWList=NULL;
- INFO_PRINTF1(_L("Step 1"));
-
- retrieveCWList = CTestGetCWList::NewLC(iPhone, this);
-
- RMobilePhone::TMobilePhoneCWInfoEntryV1 ExpectedEntry1;
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCWList->Start();
- CActiveScheduler::Start();
-
-
- // Test case: M.2 activate data, notify
- //and retrieve list with 2 entries
- INFO_PRINTF1(_L("Test case: M.2 - Activate data, notify and retrieve list with 2 entries"));
-
- RMobilePhone::TMobilePhoneCWInfoEntryV1 aCWInfo;
- RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg aCWInfoBufPckg(aCWInfo);
- iPhone.NotifyCallWaitingStatusChange(reqStat2,aCWInfoBufPckg);
-
- iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::ECircuitDataService,RMobilePhone::EServiceActionActivate );
-
- User::WaitForRequest(reqStat);
- User::WaitForRequest(reqStat2);
- TEST(reqStat==KErrNone);
- TEST(reqStat2==KErrNone);
- TEST(aCWInfo.iServiceGroup == RMobilePhone::ECircuitDataService);
- TEST(aCWInfo.iStatus == RMobilePhone::ECallWaitingStatusActive);
-
- iPhone.NotifyCallWaitingStatusChange(reqStat2,aCWInfoBufPckg);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCWList->Start();
- CActiveScheduler::Start();
-
- // Test case: M.3 - - cancel notification, deactivate voice,
- //and retrieve list that contains 1 entry
- INFO_PRINTF1(_L("Test case: M.3 - Cancel notification, deactivate voice,and retrieve list that contains 1 entry"));
-
- //deregister the notification reposted previously
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallWaitingStatusChange);
- User::WaitForRequest(reqStat2);
- TEST(reqStat2==KErrCancel);
-
- iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EVoiceService,RMobilePhone::EServiceActionDeactivate );
- User::WaitForRequest(reqStat);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCWList->Start();
- CActiveScheduler::Start();
-
-
- // Test case: M.4 - activate all and retrieve list that contains 1 entry
- INFO_PRINTF1(_L("Test case: M.4 - activate all and retrieve list that contains 1 entry"));
-
- iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EAllServices,RMobilePhone::EServiceActionActivate );
- User::WaitForRequest(reqStat);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCWList->Start();
- CActiveScheduler::Start();
-
-
- // Test case: M.5 - Deactivate 1 and retrieve list that active entries for all but this one
- INFO_PRINTF1(_L("Test case: M.5 - Deactivate 1 and retrieve list that active entries for all but this oney"));
-
- iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EPacketDataService,RMobilePhone::EServiceActionDeactivate );
- User::WaitForRequest(reqStat);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
- ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCWList->Start();
- CActiveScheduler::Start();
-
-
- // Test case: M.6 - deactivate all and retrieve list that contains 1 entries
- INFO_PRINTF1(_L("Test case: M.6 - Deactivate all and retrieve list that contains 1 entries"));
-
- iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EAllServices,RMobilePhone::EServiceActionDeactivate );
- User::WaitForRequest(reqStat);
-
- ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
- ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusNotActive;
- retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
-
- retrieveCWList->Start();
- CActiveScheduler::Start();
-
- // cleanup phase; remove
- CActiveScheduler::Install(NULL);
- CleanupStack::PopAndDestroy();
- delete retrieveCWList;
-
- INFO_PRINTF1(_L("End CW test"));
- return TestStepResult();
- }
-
-CTestIdentityService::CTestIdentityService()
- {
- SetTestStepName(_L("TestIdentityService"));
- }
-
-enum TVerdict CTestIdentityService::doTestStepL()
-/**
- * Local function that creates a CTestData object.
- * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
- * function (which runs the tests) and then disconnects from the ETel Server at
- * the end of the tests.
- */
- {
- CActiveScheduler* actSched=new(ELeave) CActiveScheduler();
- CleanupStack::PushL(actSched);
- CActiveScheduler::Install(actSched);
-
- INFO_PRINTF1(_L("CTestIdentityService"));
- INFO_PRINTF1(_L("Change simtsy config number"));
-
- SetTestNumberL(3);
- TRequestStatus reqStat=KErrNone;
- RMobilePhone::TMobilePhoneIdServiceStatus IdServiceStat;
- RMobilePhone::TMobilePhoneIdService IdService=RMobilePhone::EIdServiceCallerPresentation;
-
- // Test case: N.1 - Get Caller presentation status
- INFO_PRINTF1(_L("Test case: N.1 - Get Caller presentation status"));
- iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- TEST(IdServiceStat==RMobilePhone::EIdServiceActivePermanent);
- PrintIdServiceStatus(IdServiceStat, IdService);
-
- // Test case: N.2 - Get Caller restriction status
- INFO_PRINTF1(_L("Test case: N.2 - Get Caller restriction status"));
- IdService=RMobilePhone::EIdServiceCallerRestriction;
- iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- TEST(IdServiceStat==RMobilePhone::EIdServiceActiveDefaultRestricted);
- PrintIdServiceStatus(IdServiceStat, IdService);
-
- // Test case: N.3 - Get connected presentation status
- INFO_PRINTF1(_L("Test case: N.3 - Get connected presentation status"));
- IdService=RMobilePhone::EIdServiceConnectedPresentation;
- iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- TEST(IdServiceStat==RMobilePhone::EIdServiceActiveDefaultAllowed);
- PrintIdServiceStatus(IdServiceStat, IdService);
-
- // Test case: N.4 - Get connected restriction status
- INFO_PRINTF1(_L("Test case: N.4 - Get connected restriction status"));
- IdService=RMobilePhone::EIdServiceConnectedRestriction;
- iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- TEST(IdServiceStat==RMobilePhone::EIdServiceNotProvisioned);
- PrintIdServiceStatus(IdServiceStat, IdService);
-
- // Test case: N.5 - Get caller name status
- INFO_PRINTF1(_L("Test case: N.5 - Get caller name status"));
- IdService=RMobilePhone::EIdServiceCallerName;
- iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- TEST(IdServiceStat==RMobilePhone::EIdServiceActivePermanent);
- PrintIdServiceStatus(IdServiceStat, IdService);
-
- // Test case: N.6 - Get called presentation status
- INFO_PRINTF1(_L("Test case: N.6 - Get called presentation status"));
- IdService=RMobilePhone::EIdServiceCalledPresentation;
- iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
- User::WaitForRequest(reqStat);
- TEST(reqStat==KErrNone);
- TEST(IdServiceStat==RMobilePhone::EIdServiceActiveDefaultRestricted);
- PrintIdServiceStatus(IdServiceStat, IdService);
- INFO_PRINTF1(_L(""));
-
- CActiveScheduler::Install(NULL);
- CleanupStack::PopAndDestroy(actSched);
- //Retrieve the status
- return TestStepResult();
-
- }
-
-void CTestIdentityService::PrintIdServiceStatus(RMobilePhone::TMobilePhoneIdServiceStatus aIdServiceStat, RMobilePhone::TMobilePhoneIdService aIdService)
- {
- TBuf<200> IdServiceStatus;
- TBuf<200> IdService;
-
- switch (aIdServiceStat)
- {
- case RMobilePhone::EIdServiceActivePermanent:
- IdServiceStatus = _L("EIdServiceActivePermanent");
- break;
- case RMobilePhone::EIdServiceActiveDefaultRestricted:
- IdServiceStatus = _L("EIdServiceActiveDefaultRestricted");
- break;
- case RMobilePhone::EIdServiceActiveDefaultAllowed:
- IdServiceStatus = _L("EIdServiceActiveDefaultAllowed");
- break;
- case RMobilePhone::EIdServiceNotProvisioned:
- IdServiceStatus = _L("EIdServiceNotProvisioned");
- break;
- case RMobilePhone::EIdServiceUnknown:
- IdServiceStatus = _L("EIdServiceUnknown");
- break;
- default:
- break;
- }
-
- switch (aIdService)
- {
- case RMobilePhone::EIdServiceUnspecified:
- IdService = _L("EIdServiceUnspecified");
- break;
- case RMobilePhone::EIdServiceCallerPresentation:
- IdService = _L("EIdServiceCallerPresentation");
- break;
- case RMobilePhone::EIdServiceCallerRestriction:
- IdService = _L("EIdServiceCallerRestriction");
- break;
- case RMobilePhone::EIdServiceConnectedPresentation:
- IdService = _L("EIdServiceConnectedPresentation");
- break;
- case RMobilePhone::EIdServiceConnectedRestriction:
- IdService = _L("EIdServiceConnectedRestriction");
- break;
- case RMobilePhone::EIdServiceCallerName:
- IdService = _L("EIdServiceCallerName");
- break;
- case RMobilePhone::EIdServiceCalledPresentation:
- IdService = _L("EIdServiceCalledPresentation");
- break;
- default:
- break;
- }
-
- INFO_PRINTF3(_L("Phone Identity Status for >%S< = >%S<"),&IdService,&IdServiceStatus);
- }
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This tests the GSM Supplementary services functions including
+// Call Barring, call forwarding and identity services
+//
+//
+
+/**
+ @file
+*/
+
+
+#include "Te_SimSS.h"
+
+/**************************************************************/
+//
+// Testing asynchronous retrieve of Call Barring list
+//
+/**************************************************************/
+
+CTestGetCBList* CTestGetCBList::NewLC(RMobilePhone& aPhone, CTestCallBarring* aTest)
+ {
+ CTestGetCBList* r=new(ELeave) CTestGetCBList(aPhone, aTest);
+ CleanupStack::PushL(r);
+ r->ConstructL();
+ CleanupStack::Pop();
+ return r;
+ }
+
+CTestGetCBList::CTestGetCBList(RMobilePhone& aPhone, CTestCallBarring* aTest)
+ : CActive(EPriorityNormal),
+ iPhone(aPhone),
+ iTest(aTest)
+ {}
+
+void CTestGetCBList::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+ iRetrieveCB=CRetrieveMobilePhoneCBList::NewL(iPhone);
+
+ }
+
+void CTestGetCBList::Start(RMobilePhone::TMobilePhoneCBCondition aCondition)
+ {
+ iRetrieveCB->Start(iStatus, aCondition);
+ SetActive();
+ }
+
+void CTestGetCBList::RunL()
+ {
+ TInt ret=iStatus.Int();
+
+ User::LeaveIfError(ret);
+ ret=CheckResultsL();
+ User::LeaveIfError(ret);
+ CActiveScheduler::Stop();
+ }
+
+void CTestGetCBList::DoCancel()
+ {
+ iRetrieveCB->Cancel();
+ }
+
+TInt CTestGetCBList::SetExpectedResultsL(RMobilePhone::TMobilePhoneCBInfoEntryV1 aExpectedEntry)
+ {
+ if (!iChecked)
+ iExpectedcbList=CMobilePhoneCBList::NewL();
+ TRAPD(ret,iExpectedcbList->AddEntryL(aExpectedEntry););
+ if(ret!=KErrNone)
+ return ret;
+ iChecked = ETrue;
+ return KErrNone;
+ }
+
+void CTestGetCBList::PrintEntry(RMobilePhone::TMobilePhoneCBInfoEntryV1 aCfEntry, TInt aEntryNumber)
+ {
+ TBuf<200> EntryCondition;
+ TBuf<200> EntryServiceGroup;
+ TBuf<200> EntryStatus;
+
+ switch (aCfEntry.iCondition)
+ {
+ case RMobilePhone::EBarUnspecified:
+ EntryCondition = _L("EBarUnspecified");
+ break;
+ case RMobilePhone::EBarAllIncoming:
+ EntryCondition = _L("EBarAllIncoming");
+ break;
+ case RMobilePhone::EBarIncomingRoaming:
+ EntryCondition = _L("EBarIncomingRoaming");
+ break;
+ case RMobilePhone::EBarAllOutgoing:
+ EntryCondition = _L("EBarAllOutgoing");
+ break;
+ case RMobilePhone::EBarOutgoingInternational:
+ EntryCondition = _L("EBarOutgoingInternational");
+ break;
+ case RMobilePhone::EBarOutgoingInternationalExHC:
+ EntryCondition = _L("EBarOutgoingInternationalExHC");
+ break;
+ case RMobilePhone::EBarAllCases:
+ EntryCondition = _L("EBarAllCases");
+ break;
+ case RMobilePhone::EBarAllOutgoingServices:
+ EntryCondition = _L("EBarAllOutgoingServices");
+ break;
+ case RMobilePhone::EBarAllIncomingServices:
+ EntryCondition = _L("EBarAllIncomingServices");
+ break;
+ default:
+ break;
+ }
+
+ switch (aCfEntry.iServiceGroup)
+ {
+ case RMobilePhone::EServiceUnspecified:
+ EntryServiceGroup = _L("EServiceUnspecified");
+ break;
+ case RMobilePhone::EVoiceService:
+ EntryServiceGroup = _L("EVoiceService");
+ break;
+ case RMobilePhone::EAuxVoiceService:
+ EntryServiceGroup = _L("EAuxVoiceService");
+ break;
+ case RMobilePhone::ECircuitDataService:
+ EntryServiceGroup = _L("ECircuitDataService");
+ break;
+ case RMobilePhone::EPacketDataService:
+ EntryServiceGroup = _L("EPacketDataService");
+ break;
+ case RMobilePhone::EFaxService:
+ EntryServiceGroup = _L("EFaxService");
+ break;
+ case RMobilePhone::EShortMessageService:
+ EntryServiceGroup = _L("EShortMessageService");
+ break;
+ case RMobilePhone::EAllServices:
+ EntryServiceGroup = _L("EAllServices");
+ break;
+ case RMobilePhone::EAllTele:
+ EntryServiceGroup = _L("EAllTele");
+ break;
+ case RMobilePhone::ETelephony:
+ EntryServiceGroup = _L("ETelephony");
+ break;
+ case RMobilePhone::EAllDataTele:
+ EntryServiceGroup = _L("EAllDataTele");
+ break;
+ case RMobilePhone::EAllDataExSms:
+ EntryServiceGroup = _L("EBarUnspecified");
+ break;
+ case RMobilePhone::EAllTeleExcSms:
+ EntryServiceGroup = _L("EAllTeleExcSms");
+ break;
+ case RMobilePhone::EAllPlmnTele:
+ EntryServiceGroup = _L("EAllPlmnTele");
+ break;
+ case RMobilePhone::EPlmnTele1:
+ EntryServiceGroup = _L("EPlmnTele1");
+ break;
+ case RMobilePhone::EPlmnTele2:
+ EntryServiceGroup = _L("EPlmnTele2");
+ break;
+ case RMobilePhone::EPlmnTele3:
+ EntryServiceGroup = _L("EPlmnTele3");
+ break;
+ case RMobilePhone::EPlmnTele4:
+ EntryServiceGroup = _L("EPlmnTele4");
+ break;
+ case RMobilePhone::EPlmnTele5:
+ EntryServiceGroup = _L("EPlmnTele5");
+ break;
+ case RMobilePhone::EPlmnTele6:
+ EntryServiceGroup = _L("EPlmnTele6");
+ break;
+ case RMobilePhone::EPlmnTele7:
+ EntryServiceGroup = _L("EPlmnTele7");
+ break;
+ case RMobilePhone::EPlmnTele8:
+ EntryServiceGroup = _L("EPlmnTele8");
+ break;
+ case RMobilePhone::EPlmnTele9:
+ EntryServiceGroup = _L("EPlmnTele9");
+ break;
+ case RMobilePhone::EPlmnTeleA:
+ EntryServiceGroup = _L("EPlmnTeleA");
+ break;
+ case RMobilePhone::EPlmnTeleB:
+ EntryServiceGroup = _L("EPlmnTeleB");
+ break;
+ case RMobilePhone::EPlmnTeleC:
+ EntryServiceGroup = _L("EPlmnTeleC");
+ break;
+ case RMobilePhone::EPlmnTeleD:
+ EntryServiceGroup = _L("EPlmnTeleD");
+ break;
+ case RMobilePhone::EPlmnTeleE:
+ EntryServiceGroup = _L("EPlmnTeleE");
+ break;
+ case RMobilePhone::EPlmnTeleF:
+ EntryServiceGroup = _L("EPlmnTeleF");
+ break;
+ case RMobilePhone::EAllBearer:
+ EntryServiceGroup = _L("EAllBearer");
+ break;
+ case RMobilePhone::EAllAsync:
+ EntryServiceGroup = _L("EAllAsync");
+ break;
+ case RMobilePhone::EAllSync:
+ EntryServiceGroup = _L("EAllSync");
+ break;
+ case RMobilePhone::ESyncData:
+ EntryServiceGroup = _L("ESyncData");
+ break;
+ case RMobilePhone::EAsyncData:
+ EntryServiceGroup = _L("EAsyncData");
+ break;
+ case RMobilePhone::EPacketData:
+ EntryServiceGroup = _L("EPacketData");
+ break;
+ case RMobilePhone::EPadAccess:
+ EntryServiceGroup = _L("EPadAccess");
+ break;
+ case RMobilePhone::EAllPlmnBearer:
+ EntryServiceGroup = _L("EAllPlmnBearer");
+ break;
+ case RMobilePhone::EPlmnBearerServ1:
+ EntryServiceGroup = _L("EPlmnBearerServ1");
+ break;
+ case RMobilePhone::EPlmnBearerServ2:
+ EntryServiceGroup = _L("EPlmnBearerServ2");
+ break;
+ case RMobilePhone::EPlmnBearerServ3:
+ EntryServiceGroup = _L("EPlmnBearerServ3");
+ break;
+ case RMobilePhone::EPlmnBearerServ4:
+ EntryServiceGroup = _L("EPlmnBearerServ4");
+ break;
+ case RMobilePhone::EPlmnBearerServ5:
+ EntryServiceGroup = _L("EPlmnBearerServ5");
+ break;
+ case RMobilePhone::EPlmnBearerServ6:
+ EntryServiceGroup = _L("EPlmnBearerServ6");
+ break;
+ case RMobilePhone::EPlmnBearerServ7:
+ EntryServiceGroup = _L("EPlmnBearerServ7");
+ break;
+ case RMobilePhone::EPlmnBearerServ8:
+ EntryServiceGroup = _L("EPlmnBearerServ8");
+ break;
+ case RMobilePhone::EPlmnBearerServ9:
+ EntryServiceGroup = _L("EPlmnBearerServ9");
+ break;
+ case RMobilePhone::EPlmnBearerServA:
+ EntryServiceGroup = _L("EPlmnBearerServA");
+ break;
+ case RMobilePhone::EPlmnBearerServB:
+ EntryServiceGroup = _L("EPlmnBearerServB");
+ break;
+ case RMobilePhone::EPlmnBearerServC:
+ EntryServiceGroup = _L("EPlmnBearerServC");
+ break;
+ case RMobilePhone::EPlmnBearerServD:
+ EntryServiceGroup = _L("EPlmnBearerServD");
+ break;
+ case RMobilePhone::EPlmnBearerServE:
+ EntryServiceGroup = _L("EPlmnBearerServE");
+ break;
+ case RMobilePhone::EPlmnBearerServF:
+ EntryServiceGroup = _L("EPlmnBearerServF");
+ break;
+ case RMobilePhone::EAltTele:
+ EntryServiceGroup = _L("EAltTele");
+ break;
+ case RMobilePhone::EVoiceGroupCall:
+ EntryServiceGroup = _L("EVoiceGroupCall");
+ break;
+ case RMobilePhone::EVoiceBroadcast:
+ EntryServiceGroup = _L("EVoiceBroadcast");
+ break;
+ case RMobilePhone::EAllGprsBearer:
+ EntryServiceGroup = _L("EAllGprsBearer");
+ break;
+ default:
+ break;
+ }
+
+ switch (aCfEntry.iStatus)
+ {
+ case RMobilePhone::ECallBarringStatusActive:
+ EntryStatus = _L("ECallBarringStatusActive");
+ break;
+ case RMobilePhone::ECallBarringStatusNotActive:
+ EntryStatus = _L("ECallBarringStatusNotActive");
+ break;
+ case RMobilePhone::ECallBarringStatusNotProvisioned:
+ EntryStatus = _L("ECallBarringStatusNotProvisioned");
+ break;
+ case RMobilePhone::ECallBarringStatusNotAvailable:
+ EntryStatus = _L("ECallBarringStatusNotAvailable");
+ break;
+ case RMobilePhone::ECallBarringStatusUnknown:
+ EntryStatus = _L("ECallBarringStatusUnknown");
+ break;
+ default:
+ break;
+ }
+ iTest->INFO_PRINTF3(_L("Entry %d: condition = >%S<"),aEntryNumber,&EntryCondition);
+ iTest->INFO_PRINTF3(_L("Entry %d: service group = >%S<"),aEntryNumber,&EntryServiceGroup);
+ iTest->INFO_PRINTF3(_L("Entry %d: status = >%S<"),aEntryNumber,&EntryStatus);
+
+ }
+
+void CTestGetCBList::PrintCondition(RMobilePhone::TMobilePhoneCBCondition aCondition)
+ {
+ TBuf<200> EntryCondition;
+
+ switch (aCondition)
+ {
+ case RMobilePhone::EBarUnspecified:
+ EntryCondition = _L("EBarUnspecified");
+ break;
+ case RMobilePhone::EBarAllIncoming:
+ EntryCondition = _L("EBarAllIncoming");
+ break;
+ case RMobilePhone::EBarIncomingRoaming:
+ EntryCondition = _L("EBarIncomingRoaming");
+ break;
+ case RMobilePhone::EBarAllOutgoing:
+ EntryCondition = _L("EBarAllOutgoing");
+ break;
+ case RMobilePhone::EBarOutgoingInternational:
+ EntryCondition = _L("EBarOutgoingInternational");
+ break;
+ case RMobilePhone::EBarOutgoingInternationalExHC:
+ EntryCondition = _L("EBarOutgoingInternationalExHC");
+ break;
+ case RMobilePhone::EBarAllCases:
+ EntryCondition = _L("EBarAllCases");
+ break;
+ case RMobilePhone::EBarAllOutgoingServices:
+ EntryCondition = _L("EBarAllOutgoingServices");
+ break;
+ case RMobilePhone::EBarAllIncomingServices:
+ EntryCondition = _L("EBarAllIncomingServices");
+ break;
+ default:
+ break;
+ }
+ iTest->INFO_PRINTF2(_L("Retrive for condition = >%S<"),&EntryCondition);
+
+ }
+
+TInt CTestGetCBList::CheckResultsL()
+ {
+ CMobilePhoneCBList* cbList=NULL;
+ TRAPD(ret,cbList=iRetrieveCB->RetrieveListL());
+ if(ret!=KErrNone)
+ {
+ iTest->INFO_PRINTF2( _L("CMobilePhoneCBList::RetrieveListL returned with %d"),ret);
+ // see if we know of such errors
+ // if so then they are expected by the test cases
+ if ( (ret==KErrNotFound)
+ || (ret==KErrAccessDenied)
+ || (ret==KErrArgument))
+ {
+ return KErrNone;
+ }
+ else
+ {
+ return ret;
+ }
+ }
+
+ TInt cnt=cbList->Enumerate();
+ TInt expctcnt(0);
+ if (iChecked)
+ {
+ expctcnt=iExpectedcbList->Enumerate();
+ if (expctcnt != cnt)
+ {
+ iTest->INFO_PRINTF3(_L("The number of entries %d doesnt match with the number of the expected ones %d"),cnt, expctcnt);
+ iTest->TEST(0);
+ }
+ }
+
+ for(TInt i=0;i<cnt;i++)
+ {
+ RMobilePhone::TMobilePhoneCBInfoEntryV1 entry=cbList->GetEntryL(i);
+ if (expctcnt == cnt)
+ {
+ if (iChecked)
+ {
+ for(TInt j=0;j<expctcnt;j++)
+ {
+ RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry=iExpectedcbList->GetEntryL(j);
+ if (entry.iCondition == ExpectedEntry.iCondition)
+ break;
+ if (j == (expctcnt-1))
+ iTest->TEST(entry.iCondition == ExpectedEntry.iCondition);
+ }
+ for(TInt k=0;k<expctcnt;k++)
+ {
+ RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry=iExpectedcbList->GetEntryL(k);
+ if (entry.iServiceGroup == ExpectedEntry.iServiceGroup)
+ break;
+ if (k == (expctcnt-1))
+ iTest->TEST(entry.iServiceGroup == ExpectedEntry.iServiceGroup);
+ }
+ for(TInt l=0;l<expctcnt;l++)
+ {
+ RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry=iExpectedcbList->GetEntryL(l);
+ if (entry.iStatus == ExpectedEntry.iStatus)
+ break;
+ if (l == (expctcnt-1))
+ iTest->TEST(entry.iStatus == ExpectedEntry.iStatus);
+ }
+ }
+ }
+ PrintEntry(entry,i);
+ iTest->INFO_PRINTF1(_L("Opened Call object"));
+ }
+
+ if (iChecked)
+ {
+ delete iExpectedcbList;
+ iChecked = EFalse;
+ }
+
+ delete cbList;
+ return KErrNone;
+ }
+
+CTestGetCBList::~CTestGetCBList()
+ {
+ delete iRetrieveCB;
+ }
+
+/**************************************************************/
+//
+// Testing asynchronous retrieve of Call Forwarding list
+//
+/**************************************************************/
+
+CTestGetCFList* CTestGetCFList::NewLC(RMobilePhone& aPhone, CTestCallForwarding* aTest)
+ {
+ CTestGetCFList* r=new(ELeave) CTestGetCFList(aPhone, aTest);
+ CleanupStack::PushL(r);
+ r->ConstructL();
+ CleanupStack::Pop();
+ return r;
+ }
+
+CTestGetCFList::CTestGetCFList(RMobilePhone& aPhone, CTestCallForwarding* aTest)
+ : CActive(EPriorityNormal),
+ iPhone(aPhone),
+ iTest(aTest)
+ {}
+
+void CTestGetCFList::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+ iRetrieveCF=CRetrieveMobilePhoneCFList::NewL(iPhone);
+ }
+
+void CTestGetCFList::Start(RMobilePhone::TMobilePhoneCFCondition aCondition)
+ {
+ iRetrieveCF->Start(iStatus, aCondition);
+ SetActive();
+ }
+
+void CTestGetCFList::Start(RMobilePhone::TMobilePhoneCFCondition aCondition,
+ RMobilePhone::TMobileService aServiceGroup)
+ {
+ iRetrieveCF->Start(iStatus, aCondition, aServiceGroup);
+ SetActive();
+ }
+
+
+void CTestGetCFList::RunL()
+ {
+ TInt ret=iStatus.Int();
+ // we expect some error codes - KErrArgument
+ if (!(ret == KErrArgument))
+ User::LeaveIfError(ret);
+
+ ret=CheckResultsL();
+ User::LeaveIfError(ret);
+ CActiveScheduler::Stop();
+ }
+
+void CTestGetCFList::DoCancel()
+ {
+ iRetrieveCF->Cancel();
+ }
+
+TInt CTestGetCFList::SetExpectedResultsL(RMobilePhone::TMobilePhoneCFInfoEntryV1 aExpectedEntry)
+ {
+ if (!iChecked)
+ iExpectedCfList=CMobilePhoneCFList::NewL();
+ TRAPD(ret,iExpectedCfList->AddEntryL(aExpectedEntry););
+ if(ret!=KErrNone)
+ return ret;
+ iChecked = ETrue;
+ return KErrNone;
+ }
+
+void CTestGetCFList::PrintEntry(RMobilePhone::TMobilePhoneCFInfoEntryV1 aCfEntry, TInt aEntryNumber)
+ {
+ TBuf<200> EntryCondition;
+ TBuf<200> EntryServiceGroup;
+ TBuf<200> EntryStatus;
+
+ switch (aCfEntry.iCondition)
+ {
+ case RMobilePhone::ECallForwardingUnspecified:
+ EntryCondition = _L("ECallForwardingUnspecified");
+ break;
+ case RMobilePhone::ECallForwardingUnconditional:
+ EntryCondition = _L("ECallForwardingUnconditional");
+ break;
+ case RMobilePhone::ECallForwardingBusy:
+ EntryCondition = _L("ECallForwardingBusy");
+ break;
+ case RMobilePhone::ECallForwardingNoReply:
+ EntryCondition = _L("ECallForwardingNoReply");
+ break;
+ case RMobilePhone::ECallForwardingNotReachable:
+ EntryCondition = _L("ECallForwardingNotReachable");
+ break;
+ case RMobilePhone::ECallForwardingAllCases:
+ EntryCondition = _L("ECallForwardingAllCases");
+ break;
+ case RMobilePhone::ECallForwardingAllConditionalCases:
+ EntryCondition = _L("ECallForwardingAllConditionalCases");
+ break;
+ default:
+ break;
+ }
+
+ switch (aCfEntry.iServiceGroup)
+ {
+ case RMobilePhone::EServiceUnspecified:
+ EntryServiceGroup = _L("EServiceUnspecified");
+ break;
+ case RMobilePhone::EVoiceService:
+ EntryServiceGroup = _L("EVoiceService");
+ break;
+ case RMobilePhone::EAuxVoiceService:
+ EntryServiceGroup = _L("EAuxVoiceService");
+ break;
+ case RMobilePhone::ECircuitDataService:
+ EntryServiceGroup = _L("ECircuitDataService");
+ break;
+ case RMobilePhone::EPacketDataService:
+ EntryServiceGroup = _L("EPacketDataService");
+ break;
+ case RMobilePhone::EFaxService:
+ EntryServiceGroup = _L("EFaxService");
+ break;
+ case RMobilePhone::EShortMessageService:
+ EntryServiceGroup = _L("EShortMessageService");
+ break;
+ case RMobilePhone::EAllServices:
+ EntryServiceGroup = _L("EAllServices");
+ break;
+ case RMobilePhone::EAllTele:
+ EntryServiceGroup = _L("EAllTele");
+ break;
+ case RMobilePhone::ETelephony:
+ EntryServiceGroup = _L("ETelephony");
+ break;
+ case RMobilePhone::EAllDataTele:
+ EntryServiceGroup = _L("EAllDataTele");
+ break;
+ case RMobilePhone::EAllDataExSms:
+ EntryServiceGroup = _L("EBarUnspecified");
+ break;
+ case RMobilePhone::EAllTeleExcSms:
+ EntryServiceGroup = _L("EAllTeleExcSms");
+ break;
+ case RMobilePhone::EAllPlmnTele:
+ EntryServiceGroup = _L("EAllPlmnTele");
+ break;
+ case RMobilePhone::EPlmnTele1:
+ EntryServiceGroup = _L("EPlmnTele1");
+ break;
+ case RMobilePhone::EPlmnTele2:
+ EntryServiceGroup = _L("EPlmnTele2");
+ break;
+ case RMobilePhone::EPlmnTele3:
+ EntryServiceGroup = _L("EPlmnTele3");
+ break;
+ case RMobilePhone::EPlmnTele4:
+ EntryServiceGroup = _L("EPlmnTele4");
+ break;
+ case RMobilePhone::EPlmnTele5:
+ EntryServiceGroup = _L("EPlmnTele5");
+ break;
+ case RMobilePhone::EPlmnTele6:
+ EntryServiceGroup = _L("EPlmnTele6");
+ break;
+ case RMobilePhone::EPlmnTele7:
+ EntryServiceGroup = _L("EPlmnTele7");
+ break;
+ case RMobilePhone::EPlmnTele8:
+ EntryServiceGroup = _L("EPlmnTele8");
+ break;
+ case RMobilePhone::EPlmnTele9:
+ EntryServiceGroup = _L("EPlmnTele9");
+ break;
+ case RMobilePhone::EPlmnTeleA:
+ EntryServiceGroup = _L("EPlmnTeleA");
+ break;
+ case RMobilePhone::EPlmnTeleB:
+ EntryServiceGroup = _L("EPlmnTeleB");
+ break;
+ case RMobilePhone::EPlmnTeleC:
+ EntryServiceGroup = _L("EPlmnTeleC");
+ break;
+ case RMobilePhone::EPlmnTeleD:
+ EntryServiceGroup = _L("EPlmnTeleD");
+ break;
+ case RMobilePhone::EPlmnTeleE:
+ EntryServiceGroup = _L("EPlmnTeleE");
+ break;
+ case RMobilePhone::EPlmnTeleF:
+ EntryServiceGroup = _L("EPlmnTeleF");
+ break;
+ case RMobilePhone::EAllBearer:
+ EntryServiceGroup = _L("EAllBearer");
+ break;
+ case RMobilePhone::EAllAsync:
+ EntryServiceGroup = _L("EAllAsync");
+ break;
+ case RMobilePhone::EAllSync:
+ EntryServiceGroup = _L("EAllSync");
+ break;
+ case RMobilePhone::ESyncData:
+ EntryServiceGroup = _L("ESyncData");
+ break;
+ case RMobilePhone::EAsyncData:
+ EntryServiceGroup = _L("EAsyncData");
+ break;
+ case RMobilePhone::EPacketData:
+ EntryServiceGroup = _L("EPacketData");
+ break;
+ case RMobilePhone::EPadAccess:
+ EntryServiceGroup = _L("EPadAccess");
+ break;
+ case RMobilePhone::EAllPlmnBearer:
+ EntryServiceGroup = _L("EAllPlmnBearer");
+ break;
+ case RMobilePhone::EPlmnBearerServ1:
+ EntryServiceGroup = _L("EPlmnBearerServ1");
+ break;
+ case RMobilePhone::EPlmnBearerServ2:
+ EntryServiceGroup = _L("EPlmnBearerServ2");
+ break;
+ case RMobilePhone::EPlmnBearerServ3:
+ EntryServiceGroup = _L("EPlmnBearerServ3");
+ break;
+ case RMobilePhone::EPlmnBearerServ4:
+ EntryServiceGroup = _L("EPlmnBearerServ4");
+ break;
+ case RMobilePhone::EPlmnBearerServ5:
+ EntryServiceGroup = _L("EPlmnBearerServ5");
+ break;
+ case RMobilePhone::EPlmnBearerServ6:
+ EntryServiceGroup = _L("EPlmnBearerServ6");
+ break;
+ case RMobilePhone::EPlmnBearerServ7:
+ EntryServiceGroup = _L("EPlmnBearerServ7");
+ break;
+ case RMobilePhone::EPlmnBearerServ8:
+ EntryServiceGroup = _L("EPlmnBearerServ8");
+ break;
+ case RMobilePhone::EPlmnBearerServ9:
+ EntryServiceGroup = _L("EPlmnBearerServ9");
+ break;
+ case RMobilePhone::EPlmnBearerServA:
+ EntryServiceGroup = _L("EPlmnBearerServA");
+ break;
+ case RMobilePhone::EPlmnBearerServB:
+ EntryServiceGroup = _L("EPlmnBearerServB");
+ break;
+ case RMobilePhone::EPlmnBearerServC:
+ EntryServiceGroup = _L("EPlmnBearerServC");
+ break;
+ case RMobilePhone::EPlmnBearerServD:
+ EntryServiceGroup = _L("EPlmnBearerServD");
+ break;
+ case RMobilePhone::EPlmnBearerServE:
+ EntryServiceGroup = _L("EPlmnBearerServE");
+ break;
+ case RMobilePhone::EPlmnBearerServF:
+ EntryServiceGroup = _L("EPlmnBearerServF");
+ break;
+ case RMobilePhone::EAltTele:
+ EntryServiceGroup = _L("EAltTele");
+ break;
+ case RMobilePhone::EVoiceGroupCall:
+ EntryServiceGroup = _L("EVoiceGroupCall");
+ break;
+ case RMobilePhone::EVoiceBroadcast:
+ EntryServiceGroup = _L("EVoiceBroadcast");
+ break;
+ case RMobilePhone::EAllGprsBearer:
+ EntryServiceGroup = _L("EAllGprsBearer");
+ break;
+ default:
+ break;
+ }
+
+ switch (aCfEntry.iStatus)
+ {
+ case RMobilePhone::ECallForwardingStatusActive:
+ EntryStatus = _L("ECallForwardingStatusActive");
+ break;
+ case RMobilePhone::ECallForwardingStatusNotActive:
+ EntryStatus = _L("ECallForwardingStatusNotActive");
+ break;
+ case RMobilePhone::ECallForwardingStatusNotRegistered:
+ EntryStatus = _L("ECallForwardingStatusNotRegistered");
+ break;
+ case RMobilePhone::ECallForwardingStatusNotProvisioned:
+ EntryStatus = _L("ECallForwardingStatusNotProvisioned");
+ break;
+ case RMobilePhone::ECallForwardingStatusNotAvailable:
+ EntryStatus = _L("ECallForwardingStatusNotAvailable");
+ break;
+ case RMobilePhone::ECallForwardingStatusUnknown:
+ EntryStatus = _L("ECallForwardingStatusUnknown");
+ break;
+ case RMobilePhone::ECallForwardingStatusActivePIAllowed:
+ EntryStatus = _L("ECallForwardingStatusActivePIAllowed");
+ break;
+ case RMobilePhone::ECallForwardingStatusActivePINotAvailable:
+ EntryStatus = _L("ECallForwardingStatusActivePINotAvailable");
+ break;
+ case RMobilePhone::ECallForwardingStatusActivePIClir:
+ EntryStatus = _L("ECallForwardingStatusActivePIClir");
+ break;
+ case RMobilePhone::ECallForwardingStatusActivePIClirSIVerified:
+ EntryStatus = _L("ECallForwardingStatusActivePIClirSIVerified");
+ break;
+ case RMobilePhone::ECallForwardingStatusActivePIClirSINotScreened:
+ EntryStatus = _L("ECallForwardingStatusActivePIClirSINotScreened");
+ break;
+ case RMobilePhone::ECallForwardingStatusActivePIClirSINetwork:
+ EntryStatus = _L("ECallForwardingStatusActivePIClirSINetwork");
+ break;
+ case RMobilePhone::ECallForwardingStatusQuiescent:
+ EntryStatus = _L("ECallForwardingStatusQuiescent");
+ break;
+ default:
+ break;
+ }
+ iTest->INFO_PRINTF3(_L("Entry %d: condition = >%S<"),aEntryNumber,&EntryCondition);
+ iTest->INFO_PRINTF3(_L("Entry %d: service group = >%S<"),aEntryNumber,&EntryServiceGroup);
+ iTest->INFO_PRINTF3(_L("Entry %d: status = >%S<"),aEntryNumber,&EntryStatus);
+ iTest->INFO_PRINTF3(_L("Entry %d: Mobile address = >%S<"),aEntryNumber,&aCfEntry.iNumber.iTelNumber );
+ iTest->INFO_PRINTF3(_L("Entry %d: Timeout = >%d<"),aEntryNumber,aCfEntry.iTimeout);
+ }
+
+void CTestGetCFList::PrintCondition(RMobilePhone::TMobilePhoneCFCondition aCondition)
+ {
+ TBuf<200> EntryCondition;
+
+ switch (aCondition)
+ {
+ case RMobilePhone::ECallForwardingUnspecified:
+ EntryCondition = _L("ECallForwardingUnspecified");
+ break;
+ case RMobilePhone::ECallForwardingUnconditional:
+ EntryCondition = _L("ECallForwardingUnconditional");
+ break;
+ case RMobilePhone::ECallForwardingBusy:
+ EntryCondition = _L("ECallForwardingBusy");
+ break;
+ case RMobilePhone::ECallForwardingNoReply:
+ EntryCondition = _L("ECallForwardingNoReply");
+ break;
+ case RMobilePhone::ECallForwardingNotReachable:
+ EntryCondition = _L("ECallForwardingNotReachable");
+ break;
+ case RMobilePhone::ECallForwardingAllCases:
+ EntryCondition = _L("ECallForwardingAllCases");
+ break;
+ case RMobilePhone::ECallForwardingAllConditionalCases:
+ EntryCondition = _L("ECallForwardingAllConditionalCases");
+ break;
+ default:
+ break;
+ }
+ iTest->INFO_PRINTF2(_L("Retrieve for condition = >%S<"),&EntryCondition);
+
+ }
+
+
+TInt CTestGetCFList::CheckResultsL()
+ {
+ CMobilePhoneCFList* cfList=NULL;
+ TRAPD(ret,cfList=iRetrieveCF->RetrieveListL());
+
+ if(ret!=KErrNone)
+ {
+ iTest->INFO_PRINTF2( _L("CMobilePhoneCBList::RetrieveListL returned with %d"),ret);
+ // see if we know of such errors
+ // if so then they are expected by the test cases
+ if ((ret==KErrNotFound)
+ || (ret==KErrAccessDenied)
+ || (ret==KErrArgument))
+ {
+ return KErrNone;
+ }
+ else
+ {
+ return ret;
+ }
+ }
+
+ TInt cnt=cfList->Enumerate();
+ TInt expctcnt(0);
+ if (iChecked)
+ {
+ expctcnt=iExpectedCfList->Enumerate();
+ if (expctcnt != cnt)
+ {
+ iTest->INFO_PRINTF1(_L("The number of entries doesnt match with the number of the expected ones"));
+ iTest->TEST(0);
+ }
+ }
+ for(TInt i=0;i<cnt;i++)
+ {
+ RMobilePhone::TMobilePhoneCFInfoEntryV1 entry=cfList->GetEntryL(i);
+ if (expctcnt == cnt)
+ {
+ if (iChecked)
+ {
+ for(TInt j=0;j<expctcnt;j++)
+ {
+ RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry=iExpectedCfList->GetEntryL(j);
+ if (entry.iCondition == ExpectedEntry.iCondition)
+ break;
+ if (j == (expctcnt-1))
+ iTest->TEST(entry.iCondition == ExpectedEntry.iCondition);
+ }
+ for(TInt k=0;k<expctcnt;k++)
+ {
+ RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry=iExpectedCfList->GetEntryL(k);
+ if (entry.iServiceGroup == ExpectedEntry.iServiceGroup)
+ break;
+ if (k == (expctcnt-1))
+ iTest->TEST(entry.iServiceGroup == ExpectedEntry.iServiceGroup);
+ }
+ for(TInt l=0;l<expctcnt;l++)
+ {
+ RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry=iExpectedCfList->GetEntryL(l);
+ if (entry.iStatus == ExpectedEntry.iStatus)
+ break;
+ if (l == (expctcnt-1))
+ iTest->TEST(entry.iStatus == ExpectedEntry.iStatus);
+ }
+ }
+ }
+ PrintEntry(entry,i);
+ iTest->INFO_PRINTF1(_L("Opened Call object"));
+
+ }
+ if (iChecked)
+ {
+ delete iExpectedCfList;
+ iChecked = EFalse;
+ }
+ delete cfList;
+ return KErrNone;
+ }
+
+CTestGetCFList::~CTestGetCFList()
+ {
+ delete iRetrieveCF;
+ }
+
+
+/**************************************************************/
+//
+// Testing asynchronous retrieve of Call Waiting list
+//
+/**************************************************************/
+
+CTestGetCWList* CTestGetCWList::NewLC(RMobilePhone& aPhone, CTestCallWaiting* aTest)
+ {
+ CTestGetCWList* r=new(ELeave) CTestGetCWList(aPhone, aTest);
+ CleanupStack::PushL(r);
+ r->ConstructL();
+ CleanupStack::Pop();
+ return r;
+ }
+
+CTestGetCWList::CTestGetCWList(RMobilePhone& aPhone, CTestCallWaiting* aTest)
+ : CActive(EPriorityNormal),
+ iPhone(aPhone),
+ iTest(aTest)
+ {}
+
+void CTestGetCWList::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+ iRetrieveCW=CRetrieveMobilePhoneCWList::NewL(iPhone);
+
+ }
+
+void CTestGetCWList::Start()
+ {
+ iRetrieveCW->Start(iStatus);
+ SetActive();
+ }
+
+void CTestGetCWList::RunL()
+ {
+ TInt ret=iStatus.Int();
+
+ User::LeaveIfError(ret);
+ ret=CheckResultsL();
+ User::LeaveIfError(ret);
+ CActiveScheduler::Stop();
+ }
+
+void CTestGetCWList::DoCancel()
+ {
+ iRetrieveCW->Cancel();
+ }
+
+TInt CTestGetCWList::SetExpectedResultsL(RMobilePhone::TMobilePhoneCWInfoEntryV1 aExpectedEntry)
+ {
+ if (!iChecked)
+ iExpectedcwList=CMobilePhoneCWList::NewL();
+ TRAPD(ret,iExpectedcwList->AddEntryL(aExpectedEntry););
+ if(ret!=KErrNone)
+ return ret;
+ iChecked = ETrue;
+ return KErrNone;
+ }
+
+void CTestGetCWList::PrintEntry(RMobilePhone::TMobilePhoneCWInfoEntryV1 aCwEntry, TInt aEntryNumber)
+ {
+ TBuf<200> EntryServiceGroup;
+ TBuf<200> EntryStatus;
+
+ switch (aCwEntry.iServiceGroup)
+ {
+ case RMobilePhone::EServiceUnspecified:
+ EntryServiceGroup = _L("EServiceUnspecified");
+ break;
+ case RMobilePhone::EVoiceService:
+ EntryServiceGroup = _L("EVoiceService");
+ break;
+ case RMobilePhone::EAuxVoiceService:
+ EntryServiceGroup = _L("EAuxVoiceService");
+ break;
+ case RMobilePhone::ECircuitDataService:
+ EntryServiceGroup = _L("ECircuitDataService");
+ break;
+ case RMobilePhone::EPacketDataService:
+ EntryServiceGroup = _L("EPacketDataService");
+ break;
+ case RMobilePhone::EFaxService:
+ EntryServiceGroup = _L("EFaxService");
+ break;
+ case RMobilePhone::EShortMessageService:
+ EntryServiceGroup = _L("EShortMessageService");
+ break;
+ case RMobilePhone::EAllServices:
+ EntryServiceGroup = _L("EAllServices");
+ break;
+ case RMobilePhone::EAllTele:
+ EntryServiceGroup = _L("EAllTele");
+ break;
+ case RMobilePhone::ETelephony:
+ EntryServiceGroup = _L("ETelephony");
+ break;
+ case RMobilePhone::EAllDataTele:
+ EntryServiceGroup = _L("EAllDataTele");
+ break;
+ case RMobilePhone::EAllDataExSms:
+ EntryServiceGroup = _L("EBarUnspecified");
+ break;
+ case RMobilePhone::EAllTeleExcSms:
+ EntryServiceGroup = _L("EAllTeleExcSms");
+ break;
+ case RMobilePhone::EAllPlmnTele:
+ EntryServiceGroup = _L("EAllPlmnTele");
+ break;
+ case RMobilePhone::EPlmnTele1:
+ EntryServiceGroup = _L("EPlmnTele1");
+ break;
+ case RMobilePhone::EPlmnTele2:
+ EntryServiceGroup = _L("EPlmnTele2");
+ break;
+ case RMobilePhone::EPlmnTele3:
+ EntryServiceGroup = _L("EPlmnTele3");
+ break;
+ case RMobilePhone::EPlmnTele4:
+ EntryServiceGroup = _L("EPlmnTele4");
+ break;
+ case RMobilePhone::EPlmnTele5:
+ EntryServiceGroup = _L("EPlmnTele5");
+ break;
+ case RMobilePhone::EPlmnTele6:
+ EntryServiceGroup = _L("EPlmnTele6");
+ break;
+ case RMobilePhone::EPlmnTele7:
+ EntryServiceGroup = _L("EPlmnTele7");
+ break;
+ case RMobilePhone::EPlmnTele8:
+ EntryServiceGroup = _L("EPlmnTele8");
+ break;
+ case RMobilePhone::EPlmnTele9:
+ EntryServiceGroup = _L("EPlmnTele9");
+ break;
+ case RMobilePhone::EPlmnTeleA:
+ EntryServiceGroup = _L("EPlmnTeleA");
+ break;
+ case RMobilePhone::EPlmnTeleB:
+ EntryServiceGroup = _L("EPlmnTeleB");
+ break;
+ case RMobilePhone::EPlmnTeleC:
+ EntryServiceGroup = _L("EPlmnTeleC");
+ break;
+ case RMobilePhone::EPlmnTeleD:
+ EntryServiceGroup = _L("EPlmnTeleD");
+ break;
+ case RMobilePhone::EPlmnTeleE:
+ EntryServiceGroup = _L("EPlmnTeleE");
+ break;
+ case RMobilePhone::EPlmnTeleF:
+ EntryServiceGroup = _L("EPlmnTeleF");
+ break;
+ case RMobilePhone::EAllBearer:
+ EntryServiceGroup = _L("EAllBearer");
+ break;
+ case RMobilePhone::EAllAsync:
+ EntryServiceGroup = _L("EAllAsync");
+ break;
+ case RMobilePhone::EAllSync:
+ EntryServiceGroup = _L("EAllSync");
+ break;
+ case RMobilePhone::ESyncData:
+ EntryServiceGroup = _L("ESyncData");
+ break;
+ case RMobilePhone::EAsyncData:
+ EntryServiceGroup = _L("EAsyncData");
+ break;
+ case RMobilePhone::EPacketData:
+ EntryServiceGroup = _L("EPacketData");
+ break;
+ case RMobilePhone::EPadAccess:
+ EntryServiceGroup = _L("EPadAccess");
+ break;
+ case RMobilePhone::EAllPlmnBearer:
+ EntryServiceGroup = _L("EAllPlmnBearer");
+ break;
+ case RMobilePhone::EPlmnBearerServ1:
+ EntryServiceGroup = _L("EPlmnBearerServ1");
+ break;
+ case RMobilePhone::EPlmnBearerServ2:
+ EntryServiceGroup = _L("EPlmnBearerServ2");
+ break;
+ case RMobilePhone::EPlmnBearerServ3:
+ EntryServiceGroup = _L("EPlmnBearerServ3");
+ break;
+ case RMobilePhone::EPlmnBearerServ4:
+ EntryServiceGroup = _L("EPlmnBearerServ4");
+ break;
+ case RMobilePhone::EPlmnBearerServ5:
+ EntryServiceGroup = _L("EPlmnBearerServ5");
+ break;
+ case RMobilePhone::EPlmnBearerServ6:
+ EntryServiceGroup = _L("EPlmnBearerServ6");
+ break;
+ case RMobilePhone::EPlmnBearerServ7:
+ EntryServiceGroup = _L("EPlmnBearerServ7");
+ break;
+ case RMobilePhone::EPlmnBearerServ8:
+ EntryServiceGroup = _L("EPlmnBearerServ8");
+ break;
+ case RMobilePhone::EPlmnBearerServ9:
+ EntryServiceGroup = _L("EPlmnBearerServ9");
+ break;
+ case RMobilePhone::EPlmnBearerServA:
+ EntryServiceGroup = _L("EPlmnBearerServA");
+ break;
+ case RMobilePhone::EPlmnBearerServB:
+ EntryServiceGroup = _L("EPlmnBearerServB");
+ break;
+ case RMobilePhone::EPlmnBearerServC:
+ EntryServiceGroup = _L("EPlmnBearerServC");
+ break;
+ case RMobilePhone::EPlmnBearerServD:
+ EntryServiceGroup = _L("EPlmnBearerServD");
+ break;
+ case RMobilePhone::EPlmnBearerServE:
+ EntryServiceGroup = _L("EPlmnBearerServE");
+ break;
+ case RMobilePhone::EPlmnBearerServF:
+ EntryServiceGroup = _L("EPlmnBearerServF");
+ break;
+ case RMobilePhone::EAltTele:
+ EntryServiceGroup = _L("EAltTele");
+ break;
+ case RMobilePhone::EVoiceGroupCall:
+ EntryServiceGroup = _L("EVoiceGroupCall");
+ break;
+ case RMobilePhone::EVoiceBroadcast:
+ EntryServiceGroup = _L("EVoiceBroadcast");
+ break;
+ case RMobilePhone::EAllGprsBearer:
+ EntryServiceGroup = _L("EAllGprsBearer");
+ break;
+ default:
+ break;
+ }
+
+ switch (aCwEntry.iStatus)
+ {
+ case RMobilePhone::ECallWaitingStatusActive:
+ EntryStatus = _L("ECallWaitingStatusActive");
+ break;
+ case RMobilePhone::ECallWaitingStatusNotActive:
+ EntryStatus = _L("ECallWaitingStatusNotActive");
+ break;
+ case RMobilePhone::ECallWaitingStatusNotProvisioned:
+ EntryStatus = _L("ECallWaitingStatusNotProvisioned");
+ break;
+ case RMobilePhone::ECallWaitingStatusNotAvailable:
+ EntryStatus = _L("ECallBarringStatusNotAvailable");
+ break;
+ case RMobilePhone::ECallWaitingStatusUnknown:
+ EntryStatus = _L("ECallWaitingStatusUnknown");
+ break;
+ default:
+ break;
+ }
+ iTest->INFO_PRINTF3(_L("Entry %d: service group = >%S<"),aEntryNumber,&EntryServiceGroup);
+ iTest->INFO_PRINTF3(_L("Entry %d: status = >%S<"),aEntryNumber,&EntryStatus);
+
+ }
+
+
+TInt CTestGetCWList::CheckResultsL()
+ {
+ CMobilePhoneCWList* cwList=NULL;
+ TRAPD(ret,cwList=iRetrieveCW->RetrieveListL());
+ if(ret!=KErrNone)
+ {
+ iTest->INFO_PRINTF2( _L("CMobilePhoneCWList::RetrieveListL left with %d"),ret);
+ if ( ret == KErrNotFound )
+ return KErrNone;
+ else
+ return ret;
+ }
+
+ TInt cnt=cwList->Enumerate();
+ TInt expctcnt(0);
+ if (iChecked)
+ {
+ expctcnt=iExpectedcwList->Enumerate();
+ if (expctcnt != cnt)
+ {
+ iTest->INFO_PRINTF3(_L("The number of entries %d doesnt match with the number of the expected ones %d "),cnt, expctcnt);
+ iTest->TEST(0);
+ }
+ }
+ for(TInt i=0;i<cnt;i++)
+ {
+ RMobilePhone::TMobilePhoneCWInfoEntryV1 entry=cwList->GetEntryL(i);
+ if (expctcnt == cnt)
+ {
+ if (iChecked)
+ {
+ for(TInt k=0;k<expctcnt;k++)
+ {
+ RMobilePhone::TMobilePhoneCWInfoEntryV1 ExpectedEntry=iExpectedcwList->GetEntryL(k);
+ if (entry.iServiceGroup == ExpectedEntry.iServiceGroup)
+ break;
+ if (k == (expctcnt-1))
+ iTest->TEST(entry.iServiceGroup == ExpectedEntry.iServiceGroup);
+ }
+ for(TInt l=0;l<expctcnt;l++)
+ {
+ RMobilePhone::TMobilePhoneCWInfoEntryV1 ExpectedEntry=iExpectedcwList->GetEntryL(l);
+ if (entry.iStatus == ExpectedEntry.iStatus)
+ break;
+ if (l == (expctcnt-1))
+ iTest->TEST(entry.iStatus == ExpectedEntry.iStatus);
+ }
+ }
+ }
+ PrintEntry(entry,i);
+ }
+
+ if (iChecked)
+ {
+ delete iExpectedcwList;
+ iChecked = EFalse;
+ }
+
+ delete cwList;
+ return KErrNone;
+ }
+
+CTestGetCWList::~CTestGetCWList()
+ {
+ delete iRetrieveCW;
+ }
+
+
+
+//------------------------------------------------------------------
+// ** TEST STEPS ***
+//------------------------------------------------------------------
+
+CTestCallBarring::CTestCallBarring()
+ {
+ SetTestStepName(_L("TestCallBarring"));
+ }
+
+enum TVerdict CTestCallBarring::doTestStepL()
+/**
+ * Local function that creates a CTestData object.
+ * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
+ * function (which runs the tests) and then disconnects from the ETel Server at
+ * the end of the tests.
+ */
+ {
+ CActiveScheduler* actSched=new(ELeave) CActiveScheduler();
+ CleanupStack::PushL(actSched);
+ CActiveScheduler::Install(actSched);
+
+ SetTestNumberL(0);
+
+ INFO_PRINTF1(_L("CTestCallBarring"));
+ TRequestStatus reqStat=KErrNone;
+ TRequestStatus reqStat2=KErrNone;
+ _LIT8(pswrd1, "1111");
+ _LIT8(pswrd2, "2222");
+ RMobilePhone::TMobilePhoneCBCondition condition=RMobilePhone::EBarAllOutgoing;
+ RMobilePhone::TMobilePhoneCBChangeV1 changeInfo;
+
+ CTestGetCBList* retrieveCBList=NULL;
+
+ retrieveCBList = CTestGetCBList::NewLC(iPhone, this);
+
+ RMobilePhone::TMobilePhoneCBInfoEntryV1 ExpectedEntry1;
+
+ // position is important!
+ // Test case: K.17 - Cancel notification with no previous reposts
+ INFO_PRINTF1(_L("Test case: K.17 - Cancel notification with no previous reposts"));
+ //register notification
+ iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
+
+ // disable EMobilePhoneNotifyCallBarringStatusChange
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallBarringStatusChange);
+
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat2==KErrCancel);
+ // because it is assumed no previous CTestGetCBList
+ INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
+
+
+ // Test case: K.1 - Retrieve the status - preset
+ INFO_PRINTF1(_L("Test case: K.1 - Retrieve the status from config"));
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition = RMobilePhone::EBarUnspecified;
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.2 - Disable Call barring for Voice :EBarAllOutgoingServices
+ INFO_PRINTF1(_L("Test case: K.2 - De-activate Call Barring for all outgoing voice services"));
+ condition = RMobilePhone::EBarAllOutgoingServices;
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ // should not have anything here - empty list
+ // as we are asking for a specific condition -EBarAllOutgoing
+ condition = RMobilePhone::EBarAllOutgoing;
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+ INFO_PRINTF1(_L(""));
+
+ // Test case: K.3 - Erase all services and request info for all services
+ INFO_PRINTF1(_L("Test case: K.3 - Erase all services and request info for all services"));
+ condition=RMobilePhone::EBarAllCases;
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionErase;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ condition=RMobilePhone::EBarUnspecified;
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllCases;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusNotActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.4 - Enable Call barring for Voice :EBarAllOutgoing
+ INFO_PRINTF1(_L("Test case: K.4 - Activate Call Barring for all outgoing voice services"));
+ condition = RMobilePhone::EBarAllOutgoing;
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition,changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.5 - Enable Call barring for Voice but :EBarOutgoingInternational
+ INFO_PRINTF1(_L("Test case: K.5 - Activate Call Barring (intl only) for outgoing Voice services"));
+ condition = RMobilePhone::EBarOutgoingInternational;
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.5 - Enable Call barring for Voice but :EBarOutgoingInternational again
+ INFO_PRINTF1(_L("Test case: K.5 - Activate Call Barring (intl only) for outgoing Voice services again"));
+ condition = RMobilePhone::EBarOutgoingInternational;
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.6 - Set Call Barring Status for all outgoing services
+ INFO_PRINTF1(_L("Activate Call Barring for all outgoing services"));
+ condition = RMobilePhone::EBarAllOutgoing;
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.6 - Set Call Barring Status for all outgoing services again
+ INFO_PRINTF1(_L("Test case: K.6 - Activate Call Barring for all outgoing services again"));
+ condition = RMobilePhone::EBarAllOutgoing;
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.7 - deactivate for voice service & notification with different condition
+ INFO_PRINTF1(_L("Test case: K.7 - Deactivate for outgoing voice service & notification with diferent condition"));
+ condition = RMobilePhone::EBarAllOutgoing;
+ iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
+ User::After(2000000);
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ condition=RMobilePhone::EBarAllOutgoingServices;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ User::After(2000000);
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat2==KErrNone);//notification did not complete(wrong condition)
+ retrieveCBList->PrintCondition(condition);
+ TEST(condition==RMobilePhone::EBarAllOutgoingServices);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::EBarAllOutgoing;
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.7 - deactivate for voice service & notification with different condition
+ INFO_PRINTF1(_L("Test case: K.7 - Deactivate for outgoing voice service & notification with diferent condition"));
+ condition = RMobilePhone::EBarAllOutgoing;
+ iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
+ User::After(2000000);
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ condition=RMobilePhone::EBarAllOutgoingServices;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ User::After(2000000);
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat2==KErrNone);//notification did not complete(wrong condition)
+ retrieveCBList->PrintCondition(condition);
+ TEST(condition==RMobilePhone::EBarAllOutgoingServices);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::EBarAllOutgoing;
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.8 - Activate EAuxVoiceService Service for outgoing international condition
+ INFO_PRINTF1(_L("Test case: K.8 - Activate EAuxVoiceService Service for outgoing international condition"));
+ changeInfo.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ condition=RMobilePhone::EBarOutgoingInternational;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ condition=RMobilePhone::EBarUnspecified;
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::EBarAllOutgoing;
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.9 - Activate for ECircuitDataService service, different conditions :EBarIncomingRoaming & notify
+ INFO_PRINTF1(_L("Test case: K.9 - Activate for ECircuitDataService service, different conditions :EBarIncomingRoaming & notify"));
+ changeInfo.iServiceGroup=RMobilePhone::ECircuitDataService;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ condition=RMobilePhone::EBarIncomingRoaming;
+ changeInfo.iPassword.Copy(pswrd1);
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve for this condition
+ ExpectedEntry1.iCondition=RMobilePhone::EBarIncomingRoaming;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.10 - Retrieve for all conditions
+ INFO_PRINTF1(_L("Test case: K.10 - Now retrieve for all conditions"));
+ condition=RMobilePhone::EBarUnspecified;
+
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iCondition=RMobilePhone::EBarIncomingRoaming;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve for all
+ INFO_PRINTF1(_L("Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve for all"));
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ condition=RMobilePhone::EBarAllIncomingServices;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ condition=RMobilePhone::EBarUnspecified;
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve for all
+ INFO_PRINTF1(_L("Test case: K.11 - Deactivate EBarAllIncomingServices general condition and retrieve all"));
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ condition=RMobilePhone::EBarAllIncomingServices;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ condition=RMobilePhone::EBarUnspecified;
+ ExpectedEntry1.iCondition=RMobilePhone::EBarAllOutgoing;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallBarringStatusActive;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iCondition=RMobilePhone::EBarOutgoingInternational;
+ retrieveCBList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCBList->PrintCondition(condition);
+ retrieveCBList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: K.12 - Set Call Barring Status for all services with wrong password
+ INFO_PRINTF1(_L("Test case: K.12 - Set Call Barring Status for all services with wrong password"));
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd2);
+ condition=RMobilePhone::EBarAllOutgoing;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrAccessDenied);
+
+ // Test case: K.13 - Change Call Barrring Password
+ INFO_PRINTF1(_L("Test case: K.13 - Change Call Barrring Password"));
+ RMobilePhone::TMobilePhonePasswordChangeV1 passChange;
+ passChange.iOldPassword.Copy(pswrd1);
+ passChange.iNewPassword.Copy(pswrd2);
+ iPhone.SetCallBarringPassword(reqStat,passChange);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ // Test case: K.12 - Set Call Barring Status for all services with wrong (original) password
+ INFO_PRINTF1(_L("Test case: K.12 - Set Call Barring Status for all services with wrong (original) password"));
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd1);
+ condition=RMobilePhone::EBarAllOutgoing;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrAccessDenied);
+
+ // Test case: K.14 - Set Call Barring Status for all services with correct password
+ INFO_PRINTF1(_L("Test case: K.14 - Set Call Barring Status for all services with correct password"));
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd2);
+ condition=RMobilePhone::EBarAllOutgoing;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ // Test case: K.15 - Set wrong parameter - EBarAllCases - for activation
+ INFO_PRINTF1(_L("Test case: K.15 - Set wrong parameters - EBarAllCases - for activation"));
+ reqStat = KErrNone;
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd2);
+ condition=RMobilePhone::EBarAllCases;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrArgument);
+
+ // Test case: K.16 - Cancel notification
+ INFO_PRINTF1(_L("Test case: K.16 - Cancel notification"));
+
+ //register notification
+ iPhone.NotifyCallBarringStatusChange(reqStat2,condition);
+
+ // do a set
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iPassword.Copy(pswrd2);
+ condition=RMobilePhone::EBarAllOutgoing;
+ iPhone.SetCallBarringStatus(reqStat,condition, changeInfo);
+
+ // disable EMobilePhoneNotifyCallBarringStatusChange
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallBarringStatusChange);
+
+ User::WaitForRequest(reqStat2);
+ TEST((reqStat2==KErrCancel)||(reqStat2==KErrNone));//notification did not complete(wrong condition)
+ INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ // cleanup phase; remove
+ CActiveScheduler::Install(NULL);
+ CleanupStack::PopAndDestroy();
+ delete retrieveCBList;
+
+ INFO_PRINTF1(_L("End CB test"));
+ return TestStepResult();
+ }
+
+
+CTestCallForwarding::CTestCallForwarding()
+ {
+ SetTestStepName(_L("TestCallForwarding"));
+ }
+
+enum TVerdict CTestCallForwarding::doTestStepL()
+/**
+ * Local function that creates a CTestData object.
+ * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
+ * function (which runs the tests) and then disconnects from the ETel Server at
+ * the end of the tests.
+ */
+ {
+ CActiveScheduler* actSched = new(ELeave) CActiveScheduler();
+ CleanupStack::PushL(actSched);
+ CActiveScheduler::Install(actSched);
+
+ SetTestNumberL(0);
+ INFO_PRINTF1(_L("CTestCallForwarding"));
+
+ TRequestStatus reqStat = KErrNone;
+ TRequestStatus reqStat2 = KErrNone;
+
+ _LIT8(newCFNumber, "01632960000");
+ _LIT8(newCFNumber1, "01632960000");
+
+ CTestGetCFList* retrieveCFList = NULL;
+ retrieveCFList = CTestGetCFList::NewLC(iPhone, this);
+
+ RMobilePhone::TMobilePhoneCFCondition condition = RMobilePhone::ECallForwardingUnconditional;
+
+ // ******************* NOTE: Position is important! **************************************
+
+ // Test case: L.1 - Cancel notification with no previous reposts
+ INFO_PRINTF1(_L("Test case: L.1 - Cancel notification with no previous reposts"));
+
+ //register notification
+ iPhone.NotifyCallForwardingStatusChange(reqStat2, condition);
+
+ // disable EMobilePhoneNotifyCallForwardingStatusChange
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallForwardingStatusChange);
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat2 == KErrCancel);
+
+ // because it is assumed no previous CTestGetCFList
+ INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
+
+ // Test case: L.2 - Retrieve the status for all basic services for a specific condition
+ INFO_PRINTF1(_L("Test case: L.2 - Retrieve the status for all basic services for a specific condition"));
+ condition = RMobilePhone::ECallForwardingUnconditional;
+
+ RMobilePhone::TMobilePhoneCFInfoEntryV1 ExpectedEntry1;
+
+ // there should be only one entry
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.3 - Retrieve the status for all basic services for a specific condition
+ INFO_PRINTF1(_L("Test case: L.3 - Retrieve the status for all basic services for a specific condition"));
+ condition = RMobilePhone::ECallForwardingNotReachable;
+
+ // there should be only one entry
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNotReachable;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EPacketDataService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.4 - Retrieve the configuration for erroneous condition
+ //there should be no entries
+ INFO_PRINTF1(_L("Test case: L.4 - Retrieve the configuration for erroneous condition"));
+ condition = RMobilePhone::ECallForwardingAllCases;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.5 - Retrieve the configuration for correct condition but for which there are no registered services
+ INFO_PRINTF1(_L("Test case: L.5 - Retrieve the configuration for correct condition but for which there are no registered services"));
+ condition = RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+ INFO_PRINTF1(_L(""));
+
+ RMobilePhone::TMobileService serviceGroup = RMobilePhone::EVoiceService;
+
+ // Test case: L.6 - Retrieve the configuration for correct condition but for specific registered group
+ INFO_PRINTF1(_L("Test case: L.6 - Retrieve the configuration for correct condition but for specific registered group"));
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition, serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.7 - Retrieve the configuration for correct condition but for specific non registered group
+ INFO_PRINTF1(_L("Test case: L.7 - Retrieve the configuration for correct condition but for specific non registered group"));
+ serviceGroup = RMobilePhone::EAuxVoiceService;
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition, serviceGroup);
+ CActiveScheduler::Start();
+ INFO_PRINTF1(_L(""));
+
+ // *********** Now we have retrieved our conditions list. Now modify the list. *************
+
+ RMobilePhone::TMobilePhoneCFChangeV1 changeInfo;
+
+ // Test case: L.8 - Register a previously not registered CF condition for all services to registered
+ INFO_PRINTF1(_L("Test case: L.8 - Register a previously CF condition for all services to registered"));
+ condition = RMobilePhone::ECallForwardingNoReply;
+ changeInfo.iServiceGroup = RMobilePhone::EAllServices;
+ changeInfo.iAction = RMobilePhone::EServiceActionRegister;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ changeInfo.iTimeout=30;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat == KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition = RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.9 - Activate a previously not active CF condition for all services
+ INFO_PRINTF1(_L("Test case: L.9 - De-activate a previously active CF condition for all services"));
+ condition = RMobilePhone::ECallForwardingNoReply;
+ changeInfo.iServiceGroup = RMobilePhone::EAllServices;
+ changeInfo.iAction = RMobilePhone::EServiceActionActivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EAllServices;
+ condition = RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.10 - De-activate a previously active CF condition for all services
+ INFO_PRINTF1(_L("Test case: L.10 - De-activate a previously active CF condition for all services"));
+ condition = RMobilePhone::ECallForwardingNoReply;
+ changeInfo.iServiceGroup = RMobilePhone::EAllServices;
+ changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EAllServices;
+ condition = RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.11 - Erase a previously non active CF condition for all services
+ INFO_PRINTF1(_L("Test case: L.11 - Erase a previously non active CF condition for all services"));
+ condition = RMobilePhone::ECallForwardingNoReply;
+ changeInfo.iServiceGroup = RMobilePhone::EAllServices;
+ changeInfo.iAction = RMobilePhone::EServiceActionErase;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ serviceGroup = RMobilePhone::EAllServices;
+ condition = RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.12 - Register a previously not registered CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.12 - Register a previously not registered CF condition for a single service"));
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EAuxVoiceService;
+ changeInfo.iAction = RMobilePhone::EServiceActionRegister;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ changeInfo.iTimeout = 30;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat == KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EAuxVoiceService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.13 - Activate a previously not registered CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.13 - Activate a previously not registered CF condition for a single service"));
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EFaxService;
+ changeInfo.iAction = RMobilePhone::EServiceActionActivate;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ changeInfo.iTimeout = 25;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ serviceGroup = RMobilePhone::EFaxService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ // should not return anything as cannot activate
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+ INFO_PRINTF1(_L(""));
+
+ // Test case: L.14 - Register a previously not registered CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.14 - Register a previously not registered CF condition for a single service"));
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup=RMobilePhone::EFaxService;
+ changeInfo.iAction=RMobilePhone::EServiceActionRegister;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ changeInfo.iTimeout=30;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EFaxService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EFaxService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.15 - Activate a previously registered CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.15 - Activate a previously not registered CF condition for a single service"));
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EFaxService;
+ changeInfo.iAction = RMobilePhone::EServiceActionActivate;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ changeInfo.iTimeout = 25;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EFaxService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EFaxService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.16 - De-activate a previously active CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.16 - De-activate a previously active CF condition for a single service"));
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EFaxService;
+ changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EFaxService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EFaxService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.17 - Erase a previously active CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.17 - Erase a previously active CF condition for a single service"));
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionErase;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ serviceGroup = RMobilePhone::EAuxVoiceService;
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.18 - Erase a previously not active CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.18 - Erase a previously not active CF condition for a single service"));
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EFaxService;
+ changeInfo.iAction = RMobilePhone::EServiceActionErase;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ serviceGroup = RMobilePhone::EFaxService;
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+ //there should be no entries printed as the service is deactivated
+ INFO_PRINTF1(_L(""));
+
+// Tests on Quiescent state //
+
+ // Test case: L.19 - De-activate a previously active CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.19 - De-activate a previously active CF condition for a single service"));
+ condition=RMobilePhone::ECallForwardingBusy;
+ changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
+ changeInfo.iAction = RMobilePhone::EServiceActionRegister;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::ECircuitDataService;
+ condition = RMobilePhone::ECallForwardingBusy;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.20 - Try and activate a single CF service
+ // is active
+ INFO_PRINTF1(_L("Test case: L.20 - Activate a single CF service"));
+ condition=RMobilePhone::ECallForwardingBusy;
+ changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
+ changeInfo.iAction = RMobilePhone::EServiceActionActivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::ECircuitDataService;
+ condition = RMobilePhone::ECallForwardingBusy;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.21 - De-activate active call forwarding unconditional service
+ // is active
+ INFO_PRINTF1(_L("Test case: L.21 - De-activate a previously active CF condition for a single service"));
+ condition=RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
+ changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EVoiceService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.22 - Try and activate call forwarding busy when call forwarding unconditional not active
+ INFO_PRINTF1(_L("Test case: L.22 - Activate a previously active CF condition for a single service"));
+ condition=RMobilePhone::ECallForwardingBusy;
+ changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
+ changeInfo.iAction = RMobilePhone::EServiceActionActivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::ECircuitDataService;
+ condition = RMobilePhone::ECallForwardingBusy;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.23 - Activate call forwarding unconditional when call forwarding busy active
+ INFO_PRINTF1(_L("Test case: L.23 - Activate a previously active CF condition for a single service"));
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
+ changeInfo.iAction = RMobilePhone::EServiceActionActivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EVoiceService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusQuiescent;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::ECircuitDataService;
+ condition = RMobilePhone::ECallForwardingBusy;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ // Test case: L.24 - De-activate call forwarding unconditional
+ INFO_PRINTF1(_L("Test case: L.24 - De-activate a previously active CF condition for a single service"));
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
+ changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingUnconditional;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::EVoiceService;
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ serviceGroup = RMobilePhone::ECircuitDataService;
+ condition = RMobilePhone::ECallForwardingBusy;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition,serviceGroup);
+ CActiveScheduler::Start();
+
+//Tests on Notifications//
+
+ INFO_PRINTF1(_L("Change simtsy config number"));
+ SetTestNumberL(1);
+
+ // Test case: L.25 - Register all services for a CF condition, whilst there are some previously reistered/non-active
+ INFO_PRINTF1(_L("Test case: L.25 - Register all services for a CF condition, whilst there are some previously reistered/non-active"));
+ changeInfo.iServiceGroup = RMobilePhone::EAllServices;
+ changeInfo.iAction = RMobilePhone::EServiceActionRegister;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber1);
+ condition = RMobilePhone::ECallForwardingNoReply;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition = RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.26 - Activate all services for a CF condition, whilst there are some previously reistered/non-active
+ INFO_PRINTF1(_L("Test case: L.26 - Activate all services for a CF condition, whilst there are some previously reistered/non-active"));
+ changeInfo.iServiceGroup = RMobilePhone::EAllServices;
+ changeInfo.iAction = RMobilePhone::EServiceActionActivate;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber1);
+ condition = RMobilePhone::ECallForwardingNoReply;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition = RMobilePhone::ECallForwardingNoReply;
+ ExpectedEntry1.iServiceGroup = RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus = RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition = RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.27 - Enable notification whilst disable a service enabled for that condition
+ INFO_PRINTF1(_L("Test case: L.27 - Enable notification whilst disable a service enabled for that condition"));
+ condition = RMobilePhone::ECallForwardingNoReply;
+ iPhone.NotifyCallForwardingStatusChange(reqStat2,condition);
+ User::After(2000000);
+ changeInfo.iServiceGroup = RMobilePhone::ECircuitDataService;
+ changeInfo.iAction = RMobilePhone::EServiceActionDeactivate;
+ condition = RMobilePhone::ECallForwardingNoReply;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+
+ condition = RMobilePhone::ECallForwardingUnconditional;
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat2==KErrNone);
+ //notification should be
+ INFO_PRINTF1(_L("Notification condition"));
+ retrieveCFList->PrintCondition(condition);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNoReply;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::ECallForwardingNoReply;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // activate for 1 service but different condition
+
+ // Test case: L.28 - Enable notification whilst disable a service enabled for other condition
+ INFO_PRINTF1(_L("Test case: L.28 - Enable notification whilst disable a service enabled for other condition"));
+
+ iPhone.NotifyCallForwardingStatusChange(reqStat2,condition);
+ User::After(2000000);
+
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionRegister;
+ condition=RMobilePhone::ECallForwardingBusy;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat2==KErrNone);
+ //notification should be
+ INFO_PRINTF1(_L("Notification condition"));
+ retrieveCFList->PrintCondition(condition);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.29 - Cancel notification with previous reposts
+ INFO_PRINTF1(_L("Test case: L.29 - Cancel notification with previous reposts"));
+ //register notification
+ iPhone.NotifyCallForwardingStatusChange(reqStat2,condition);
+
+ //set
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionRegister;
+ condition=RMobilePhone::ECallForwardingBusy;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+
+ // disable EMobilePhoneNotifyCallForwardingStatusChange
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallForwardingStatusChange);
+
+ User::WaitForRequest(reqStat2);
+ TEST((reqStat2==KErrCancel)||(reqStat2==KErrNone));
+ // because it is NOT assumed no previous CTestGetCFList
+ INFO_PRINTF2(_L("The notify change returned %d"), reqStat2.Int());
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+//Tests on Specific Actions//
+
+ INFO_PRINTF1(_L("Change simtsy config number"));
+ SetTestNumberL(2);
+ // there is just a single entry
+
+ // Test case: L.30 - Retrieve the status for all basic services for a specific condition
+ INFO_PRINTF1(_L("Test case: L.30 - Retrieve the status for all basic services for a specific condition"));
+ condition=RMobilePhone::ECallForwardingBusy;
+ // there should be only one entry
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;//EAllServices;//ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.31 - Register a CF condition for all services to registered, whilst there is an active service for that condition
+ INFO_PRINTF1(_L("Test case: L.31 - Register a CF condition for all services to registered, whilst there is an active service for that condition"));
+ condition=RMobilePhone::ECallForwardingBusy;
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionRegister;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ changeInfo.iTimeout=30;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::ECallForwardingBusy;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.32 - Register a CF condition for one services, whilst all services are registered for that condition
+ INFO_PRINTF1(_L("Test case: L.32 -Register a CF condition for one services, whilst all services are registered for that condition"));
+ condition=RMobilePhone::ECallForwardingBusy;
+ changeInfo.iServiceGroup=RMobilePhone::EFaxService;
+ changeInfo.iAction=RMobilePhone::EServiceActionRegister;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber1);
+ changeInfo.iTimeout=20;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again for the specific
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingBusy;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ //retrieve for all - in fact here should return all as enabled
+ condition=RMobilePhone::ECallForwardingBusy;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // Test case: L.33 - incorporates L.6 and L.9 with the outcome that there
+ // are N-1 active service entries in the list and all with the same settings
+ // as those for all groups.
+ INFO_PRINTF1(_L("Test case:L.33 - incorporates L.6 and L.9"));
+
+ // Test case: L.34 - Register a previously not registered CF condition for all services to registered
+ INFO_PRINTF1(_L("Test case: L.34 - Register a previously not registered CF condition for all services to registered"));
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionRegister;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ condition=RMobilePhone::ECallForwardingNotReachable;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::ECallForwardingNotReachable;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+
+ // Test case: L.35 - Register a previously not registered CF condition for all services to registered
+ INFO_PRINTF1(_L("Test case: L.35 - Register a previously not registered CF condition for all services to registered"));
+ changeInfo.iServiceGroup = RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionActivate;
+ changeInfo.iNumber.iTelNumber.Copy(newCFNumber);
+ condition=RMobilePhone::ECallForwardingNotReachable;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::ECallForwardingNotReachable;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ //Deactivate call forwarding not reachable active for voice service
+ // Test case: L.36 - De-activate a previously active CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.36 - De-activate a previously active CF condition for a single service"));
+ changeInfo.iServiceGroup=RMobilePhone::EVoiceService;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ // Test case Final Result Retrieve again - in this case the output is different - all services are active bar one
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::ECallForwardingNotReachable;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // just to show that we can deactivate other services
+ // Test case: L.37 - De-activate a previously active CF condition for a single service
+ INFO_PRINTF1(_L("Test case: L.37 - De-activate a previously active CF condition for a single service"));
+ //Deactivate call forwarding not reachable actif for data service
+ changeInfo.iServiceGroup=RMobilePhone::ECircuitDataService;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::ECallForwardingNotReachable;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // just to show that we can deactivate all services
+ // Test case: L.38 - De-activate previously active CF condition for a set of single services
+ INFO_PRINTF1(_L("Test case: L.38 - De-activate previously active CF condition for a set of single services"));
+ condition=RMobilePhone::ECallForwardingNotReachable;
+
+ changeInfo.iServiceGroup=RMobilePhone::EAllServices;
+ changeInfo.iAction=RMobilePhone::EServiceActionDeactivate;
+ iPhone.SetCallForwardingStatus(reqStat,condition, changeInfo);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+
+ //Retrieve again
+ ExpectedEntry1.iCondition=RMobilePhone::ECallForwardingNotReachable;
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallForwardingStatusNotActive;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EPacketDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EShortMessageService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCFList->SetExpectedResultsL(ExpectedEntry1);
+
+ condition=RMobilePhone::ECallForwardingNotReachable;
+ retrieveCFList->PrintCondition(condition);
+ retrieveCFList->Start(condition);
+ CActiveScheduler::Start();
+
+ // cleanup phase; remove
+ CActiveScheduler::Install(NULL);
+ CleanupStack::PopAndDestroy();
+ delete retrieveCFList;
+
+ INFO_PRINTF1(_L("End CF test"));
+ return TestStepResult();
+ }
+
+
+CTestCallWaiting::CTestCallWaiting()
+ {
+ SetTestStepName(_L("TestCallWaiting"));
+ }
+
+enum TVerdict CTestCallWaiting::doTestStepL()
+/**
+ * Local function that creates a CTestData object.
+ * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
+ * function (which runs the tests) and then disconnects from the ETel Server at
+ * the end of the tests.
+ */
+ {
+ CActiveScheduler* actSched=new(ELeave) CActiveScheduler();
+ CleanupStack::PushL(actSched);
+ CActiveScheduler::Install(actSched);
+
+ INFO_PRINTF1(_L("CTestCallWaiting"));
+
+ SetTestNumberL(0);
+
+ TRequestStatus reqStat=KErrNone;
+ TRequestStatus reqStat2=KErrNone;
+
+
+ // Test case: M.1 -retrieve CW status
+ //expect 1 entry: active for voice as defined in config file
+ INFO_PRINTF1(_L("Test case: M.1 - Retrieve CW status from config file"));
+
+ CTestGetCWList* retrieveCWList=NULL;
+ INFO_PRINTF1(_L("Step 1"));
+
+ retrieveCWList = CTestGetCWList::NewLC(iPhone, this);
+
+ RMobilePhone::TMobilePhoneCWInfoEntryV1 ExpectedEntry1;
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCWList->Start();
+ CActiveScheduler::Start();
+
+
+ // Test case: M.2 activate data, notify
+ //and retrieve list with 2 entries
+ INFO_PRINTF1(_L("Test case: M.2 - Activate data, notify and retrieve list with 2 entries"));
+
+ RMobilePhone::TMobilePhoneCWInfoEntryV1 aCWInfo;
+ RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg aCWInfoBufPckg(aCWInfo);
+ iPhone.NotifyCallWaitingStatusChange(reqStat2,aCWInfoBufPckg);
+
+ iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::ECircuitDataService,RMobilePhone::EServiceActionActivate );
+
+ User::WaitForRequest(reqStat);
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat==KErrNone);
+ TEST(reqStat2==KErrNone);
+ TEST(aCWInfo.iServiceGroup == RMobilePhone::ECircuitDataService);
+ TEST(aCWInfo.iStatus == RMobilePhone::ECallWaitingStatusActive);
+
+ iPhone.NotifyCallWaitingStatusChange(reqStat2,aCWInfoBufPckg);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCWList->Start();
+ CActiveScheduler::Start();
+
+ // Test case: M.3 - - cancel notification, deactivate voice,
+ //and retrieve list that contains 1 entry
+ INFO_PRINTF1(_L("Test case: M.3 - Cancel notification, deactivate voice,and retrieve list that contains 1 entry"));
+
+ //deregister the notification reposted previously
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyCallWaitingStatusChange);
+ User::WaitForRequest(reqStat2);
+ TEST(reqStat2==KErrCancel);
+
+ iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EVoiceService,RMobilePhone::EServiceActionDeactivate );
+ User::WaitForRequest(reqStat);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCWList->Start();
+ CActiveScheduler::Start();
+
+
+ // Test case: M.4 - activate all and retrieve list that contains 1 entry
+ INFO_PRINTF1(_L("Test case: M.4 - activate all and retrieve list that contains 1 entry"));
+
+ iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EAllServices,RMobilePhone::EServiceActionActivate );
+ User::WaitForRequest(reqStat);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCWList->Start();
+ CActiveScheduler::Start();
+
+
+ // Test case: M.5 - Deactivate 1 and retrieve list that active entries for all but this one
+ INFO_PRINTF1(_L("Test case: M.5 - Deactivate 1 and retrieve list that active entries for all but this oney"));
+
+ iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EPacketDataService,RMobilePhone::EServiceActionDeactivate );
+ User::WaitForRequest(reqStat);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EVoiceService;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusActive;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAuxVoiceService;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::ECircuitDataService;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EFaxService;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCWList->Start();
+ CActiveScheduler::Start();
+
+
+ // Test case: M.6 - deactivate all and retrieve list that contains 1 entries
+ INFO_PRINTF1(_L("Test case: M.6 - Deactivate all and retrieve list that contains 1 entries"));
+
+ iPhone.SetCallWaitingStatus(reqStat,RMobilePhone::EAllServices,RMobilePhone::EServiceActionDeactivate );
+ User::WaitForRequest(reqStat);
+
+ ExpectedEntry1.iServiceGroup=RMobilePhone::EAllServices;
+ ExpectedEntry1.iStatus=RMobilePhone::ECallWaitingStatusNotActive;
+ retrieveCWList->SetExpectedResultsL(ExpectedEntry1);
+
+ retrieveCWList->Start();
+ CActiveScheduler::Start();
+
+ // cleanup phase; remove
+ CActiveScheduler::Install(NULL);
+ CleanupStack::PopAndDestroy();
+ delete retrieveCWList;
+
+ INFO_PRINTF1(_L("End CW test"));
+ return TestStepResult();
+ }
+
+CTestIdentityService::CTestIdentityService()
+ {
+ SetTestStepName(_L("TestIdentityService"));
+ }
+
+enum TVerdict CTestIdentityService::doTestStepL()
+/**
+ * Local function that creates a CTestData object.
+ * Connects to the ETel Server, loads the phone module (SIM TSY), calls the BeginTest()
+ * function (which runs the tests) and then disconnects from the ETel Server at
+ * the end of the tests.
+ */
+ {
+ CActiveScheduler* actSched=new(ELeave) CActiveScheduler();
+ CleanupStack::PushL(actSched);
+ CActiveScheduler::Install(actSched);
+
+ INFO_PRINTF1(_L("CTestIdentityService"));
+ INFO_PRINTF1(_L("Change simtsy config number"));
+
+ SetTestNumberL(3);
+ TRequestStatus reqStat=KErrNone;
+ RMobilePhone::TMobilePhoneIdServiceStatus IdServiceStat;
+ RMobilePhone::TMobilePhoneIdService IdService=RMobilePhone::EIdServiceCallerPresentation;
+
+ // Test case: N.1 - Get Caller presentation status
+ INFO_PRINTF1(_L("Test case: N.1 - Get Caller presentation status"));
+ iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ TEST(IdServiceStat==RMobilePhone::EIdServiceActivePermanent);
+ PrintIdServiceStatus(IdServiceStat, IdService);
+
+ // Test case: N.2 - Get Caller restriction status
+ INFO_PRINTF1(_L("Test case: N.2 - Get Caller restriction status"));
+ IdService=RMobilePhone::EIdServiceCallerRestriction;
+ iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ TEST(IdServiceStat==RMobilePhone::EIdServiceActiveDefaultRestricted);
+ PrintIdServiceStatus(IdServiceStat, IdService);
+
+ // Test case: N.3 - Get connected presentation status
+ INFO_PRINTF1(_L("Test case: N.3 - Get connected presentation status"));
+ IdService=RMobilePhone::EIdServiceConnectedPresentation;
+ iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ TEST(IdServiceStat==RMobilePhone::EIdServiceActiveDefaultAllowed);
+ PrintIdServiceStatus(IdServiceStat, IdService);
+
+ // Test case: N.4 - Get connected restriction status
+ INFO_PRINTF1(_L("Test case: N.4 - Get connected restriction status"));
+ IdService=RMobilePhone::EIdServiceConnectedRestriction;
+ iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ TEST(IdServiceStat==RMobilePhone::EIdServiceNotProvisioned);
+ PrintIdServiceStatus(IdServiceStat, IdService);
+
+ // Test case: N.5 - Get caller name status
+ INFO_PRINTF1(_L("Test case: N.5 - Get caller name status"));
+ IdService=RMobilePhone::EIdServiceCallerName;
+ iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ TEST(IdServiceStat==RMobilePhone::EIdServiceActivePermanent);
+ PrintIdServiceStatus(IdServiceStat, IdService);
+
+ // Test case: N.6 - Get called presentation status
+ INFO_PRINTF1(_L("Test case: N.6 - Get called presentation status"));
+ IdService=RMobilePhone::EIdServiceCalledPresentation;
+ iPhone.GetIdentityServiceStatus(reqStat, IdService, IdServiceStat, RMobilePhone::EInfoLocationNetwork);
+ User::WaitForRequest(reqStat);
+ TEST(reqStat==KErrNone);
+ TEST(IdServiceStat==RMobilePhone::EIdServiceActiveDefaultRestricted);
+ PrintIdServiceStatus(IdServiceStat, IdService);
+ INFO_PRINTF1(_L(""));
+
+ CActiveScheduler::Install(NULL);
+ CleanupStack::PopAndDestroy(actSched);
+ //Retrieve the status
+ return TestStepResult();
+
+ }
+
+void CTestIdentityService::PrintIdServiceStatus(RMobilePhone::TMobilePhoneIdServiceStatus aIdServiceStat, RMobilePhone::TMobilePhoneIdService aIdService)
+ {
+ TBuf<200> IdServiceStatus;
+ TBuf<200> IdService;
+
+ switch (aIdServiceStat)
+ {
+ case RMobilePhone::EIdServiceActivePermanent:
+ IdServiceStatus = _L("EIdServiceActivePermanent");
+ break;
+ case RMobilePhone::EIdServiceActiveDefaultRestricted:
+ IdServiceStatus = _L("EIdServiceActiveDefaultRestricted");
+ break;
+ case RMobilePhone::EIdServiceActiveDefaultAllowed:
+ IdServiceStatus = _L("EIdServiceActiveDefaultAllowed");
+ break;
+ case RMobilePhone::EIdServiceNotProvisioned:
+ IdServiceStatus = _L("EIdServiceNotProvisioned");
+ break;
+ case RMobilePhone::EIdServiceUnknown:
+ IdServiceStatus = _L("EIdServiceUnknown");
+ break;
+ default:
+ break;
+ }
+
+ switch (aIdService)
+ {
+ case RMobilePhone::EIdServiceUnspecified:
+ IdService = _L("EIdServiceUnspecified");
+ break;
+ case RMobilePhone::EIdServiceCallerPresentation:
+ IdService = _L("EIdServiceCallerPresentation");
+ break;
+ case RMobilePhone::EIdServiceCallerRestriction:
+ IdService = _L("EIdServiceCallerRestriction");
+ break;
+ case RMobilePhone::EIdServiceConnectedPresentation:
+ IdService = _L("EIdServiceConnectedPresentation");
+ break;
+ case RMobilePhone::EIdServiceConnectedRestriction:
+ IdService = _L("EIdServiceConnectedRestriction");
+ break;
+ case RMobilePhone::EIdServiceCallerName:
+ IdService = _L("EIdServiceCallerName");
+ break;
+ case RMobilePhone::EIdServiceCalledPresentation:
+ IdService = _L("EIdServiceCalledPresentation");
+ break;
+ default:
+ break;
+ }
+
+ INFO_PRINTF3(_L("Phone Identity Status for >%S< = >%S<"),&IdService,&IdServiceStatus);
+ }