--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestphoneidentity.cpp Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,1254 @@
+// Copyright (c) 2007-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:
+// Test step definitions for the PhoneIdentity functional unit.
+//
+//
+
+/**
+ @internalTechnology
+*/
+
+#include "cctsyintegrationtestphoneidentity.h"
+
+#include "cctsyinidata.h"
+
+
+CCTSYIntegrationTestPhoneIdentityBase::CCTSYIntegrationTestPhoneIdentityBase(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr), iCallControlHelper(*this), iSupplementalHelper(*this), iNetworkTestHelper(*this)
+/**
+ * Constructor
+ */
+ {
+ }
+
+CCTSYIntegrationTestPhoneIdentityBase::~CCTSYIntegrationTestPhoneIdentityBase()
+/*
+ * Destructor
+ */
+ {
+ }
+
+
+CCTSYIntegrationTestPhoneIdentity0001::CCTSYIntegrationTestPhoneIdentity0001(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0001::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0001::~CCTSYIntegrationTestPhoneIdentity0001()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0001::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0001
+ * @SYMFssID BA/CTSY/PID-0001
+ * @SYMTestCaseDesc Deactivate Calling Line Identification Restriction (CLIR).
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileCall::NotifyMobileCallStatusChange, RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus, RMobileCall::GetMobileCallInfo, RCall::Dial, RCall::HangUp
+ * @SYMTestExpectedResults Pass - CLIR can be deactivated and remote party can get the calling number.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify service status notifications complete and called party can get the calling number.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetClirStatus
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ TUint32 callServiceCaps;
+
+ CHECK_TRUE_L(mobilePhone.GetCallServiceCaps(callServiceCaps)==KErrNone, _L("RMobilePhone::GetCallServiceCaps return value is not KErrNone"));
+ TUint32 expectedServiceCaps = RMobilePhone::KCapsGetClirStatus;
+ CHECK_BITS_SET_L(callServiceCaps, expectedServiceCaps, KNoUnwantedBits, _L("RMobilePhone::GetCallServiceCaps returned wrong caps"));
+
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+
+ // Get Voice Line 1.
+ RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KVoiceLine);
+
+ // Get Call 1.
+ RMobileCall& mobileCall= iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KVoiceLine, KCall1);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerRestriction and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActiveDefaultAllowed
+ RMobilePhone::TMobilePhoneIdServiceStatus idServiceStatus;
+ TExtEtelRequestStatus getIdentityServiceStatus(mobilePhone, EMobilePhoneGetIdentityServiceStatus);
+ CleanupStack::PushL(getIdentityServiceStatus);
+
+ mobilePhone.GetIdentityServiceStatus(getIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, idServiceStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(getIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus getIdentityServiceStatus completed with incorrect error"));
+
+ ASSERT_EQUALS(idServiceStatus, RMobilePhone::EIdServiceActiveDefaultAllowed, _L("RMobilePhone::GetIdentityServiceStatus idServiceStatus is not RMobilePhone::EIdServiceActiveDefaultAllowed"));
+
+ /* $CTSYProblem
+ * The CTSY does not support setting of the identity service status with RMobilePhone::SetIdentityServiceStatus API.
+ * If support is added, the rest of this test case can be used.
+ */
+ ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: RMobilePhone::SetIdentityServiceStatus not supported by CTSY.<font color=Black>"));
+
+ // Set CLIR with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerRestriction aSetting=EIdServicePresentationRestricted
+ /*TExtEtelRequestStatus setIdentityServiceStatus(mobilePhone, EMobilePhoneSetIdentityServiceStatus);
+ CleanupStack::PushL(setIdentityServiceStatus);
+
+ mobilePhone.SetIdentityServiceStatus(setIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, RMobilePhone::EIdServicePresentationRestricted);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(setIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus setIdentityServiceStatus completed with incorrect error"));
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerRestriction and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActiveDefaultRestricted
+ mobilePhone.GetIdentityServiceStatus(getIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, idServiceStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(getIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus getIdentityServiceStatus completed with incorrect error"));
+
+ ASSERT_EQUALS(idServiceStatus, RMobilePhone::EIdServiceActiveDefaultRestricted, _L("RMobilePhone::GetIdentityServiceStatus idServiceStatus is not RMobilePhone::EIdServiceActiveDefaultRestricted"));
+
+
+ // === Check that caller ID is not available when CLIR is active ===
+
+ // Display a prompt to the user to telling them that they should have set their own phone number to voice number 1 in the config file
+ DisplayUserInteractionPromptL(_L("You should have set your own phone number to voice number 1 in the config file?"), ETimeMedium);
+
+ // Dial the user's phone number.
+ RMobileCall::TMobileCallStatus mobileCallState;
+
+ // Post notification for RMobileCall::NotifyMobileCallStatusChange
+ TExtEtelRequestStatus notifyMobileCallStatus(mobileCall, EMobileCallNotifyMobileCallStatusChange);
+ CleanupStack::PushL(notifyMobileCallStatus);
+
+ mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallState);
+
+ TPtrC number;
+ ASSERT_TRUE(GetStringFromConfig(KIniVoiceNumSection, KIniVoiceNumber1, number) != EFalse, _L("GetStringFromConfig did not complete as expected"));
+ DEBUG_PRINTF2(_L("Board Now Dialling: %S"), &number);
+ TCoreEtelRequestStatus<RCall> dialStatus(mobileCall, &RCall::DialCancel);
+ CleanupStack::PushL(dialStatus);
+ mobileCall.Dial(dialStatus, number);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
+ ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial problem dialling"));
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusConnected.
+ RMobileCall::TMobileCallStatus expectedMobileCallStatus=RMobileCall::EStatusConnected;
+ iCallControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+ notifyMobileCallStatus,
+ mobileCallState,
+ expectedMobileCallStatus,
+ KErrNone);
+
+ mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallState);
+
+ // User should check that they can not see the caller's number
+ DisplayUserInteractionPromptL(_L("User should check that they have received a phone call and should check that can not see the caller's number."), ETimeMedium);
+
+ // Hang up.
+ DEBUG_PRINTF1(_L("Hangup call"));
+ ASSERT_EQUALS(mobileCall.HangUp(), KErrNone, _L("RCall::HangUp return value not KErrNone"));
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusIdle.
+ expectedMobileCallStatus=RMobileCall::EStatusIdle;
+ iCallControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+ notifyMobileCallStatus,
+ mobileCallState,
+ expectedMobileCallStatus,
+ KErrNone);
+
+ mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallState);
+
+ // === Deactivate CLIR ===
+
+ // Deactivate CLIR with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerRestriction aSetting=EIdServicePresentationAllowed
+ RMobilePhone::TMobilePhoneIdService idService = RMobilePhone::EIdServiceCallerRestriction;
+ RMobilePhone::TMobilePhoneIdServiceStatus idServiceStateNotify;
+
+ // Post notification for RMobileCall::NotifyIdentityServiceStatus
+ TExtEtelRequestStatus notifyIdentityServiceStatus(mobilePhone, EMobilePhoneNotifyIdentityServiceStatus);
+ CleanupStack::PushL(notifyIdentityServiceStatus);
+
+ mobilePhone.NotifyIdentityServiceStatus(notifyIdentityServiceStatus, idService, idServiceStateNotify);
+
+ mobilePhone.SetIdentityServiceStatus(setIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, RMobilePhone::EIdServicePresentationAllowed);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(setIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus setIdentityServiceStatus completed with incorrect error"));
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceCallerRestriction completes with aStatus=EIdServiceActiveDefaultAllowed
+ RMobilePhone::TMobilePhoneIdService expectedService=RMobilePhone::EIdServiceCallerRestriction;
+ iSupplementalHelper.WaitForMobilePhoneNotifyIdentityServiceStatus(mobilePhone,
+ notifyIdentityServiceStatus,
+ idService,
+ expectedService,
+ idServiceStateNotify,
+ KErrNone);
+
+ mobilePhone.NotifyIdentityServiceStatus(notifyIdentityServiceStatus, idService, idServiceStateNotify);
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerRestriction and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActiveDefaultAllowed
+ mobilePhone.GetIdentityServiceStatus(getIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, idServiceStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(getIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus getIdentityServiceStatus completed with incorrect error"));
+
+ ASSERT_EQUALS(idServiceStatus, RMobilePhone::EIdServiceActiveDefaultAllowed, _L("RMobilePhone::GetIdentityServiceStatus idServiceStatus is not RMobilePhone::EIdServiceActiveDefaultAllowed"));
+
+ // === Make a call and see if the remote number is present ===
+
+ // Dial the user's phone number.
+ DisplayUserInteractionPromptL(_L("You should have set your own phone number to voice number 1 in the config file?"), ETimeMedium);
+
+ DEBUG_PRINTF2(_L("Board Now Dialling: %S"), &number);
+ mobileCall.Dial(dialStatus, number);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
+ ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial problem dialling"));
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusConnected.
+ expectedMobileCallStatus=RMobileCall::EStatusConnected;
+ iCallControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+ notifyMobileCallStatus,
+ mobileCallState,
+ expectedMobileCallStatus,
+ KErrNone);
+
+ // User should check that they can see the caller's number
+ DisplayUserInteractionPromptL(_L("User should check that they have received a phone call and should check that can see the caller's number."), ETimeMedium);
+
+ // Hang up.
+ DEBUG_PRINTF1(_L("Hangup call"));
+ ASSERT_EQUALS(mobileCall.HangUp(), KErrNone, _L("RCall::HangUp return value not KErrNone"));
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusIdle.
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyMobileCallStatus, ETimeMedium), KErrNone, _L("RMobileCall::HangUp timed-out"));
+ ASSERT_EQUALS(notifyMobileCallStatus.Int(), KErrNone, _L("RMobileCall::HangUp notifyMobileCallStatus completed with incorrect error"));
+
+ ASSERT_EQUALS(mobileCallState, RMobileCall::EStatusIdle, _L("RMobileCall::HangUp mobileCallState is not EStatusIdle"));
+
+ // === Reactivate CLIR ===
+
+ // Activate CLIR with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerRestriction aSetting=EIdServicePresentationRestricted
+ mobilePhone.SetIdentityServiceStatus(setIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, RMobilePhone::EIdServicePresentationRestricted);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(setIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus setIdentityServiceStatus completed with incorrect error"));
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceCallerRestriction completes with aStatus=EIdServiceActiveDefaultRestricted
+ expectedService=RMobilePhone::EIdServiceCallerRestriction;
+ iSupplementalHelper.WaitForMobilePhoneNotifyIdentityServiceStatus(mobilePhone,
+ notifyIdentityServiceStatus,
+ idService,
+ expectedService,
+ idServiceStateNotify,
+ KErrNone);
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerRestriction and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActiveDefaultRestricted
+ mobilePhone.GetIdentityServiceStatus(getIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, idServiceStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(getIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus getIdentityServiceStatus completed with incorrect error"));
+
+ ASSERT_EQUALS(idServiceStatus, RMobilePhone::EIdServiceActiveDefaultRestricted, _L("RMobilePhone::GetIdentityServiceStatus idServiceStatus is not RMobilePhone::EIdServiceActiveDefaultRestricted"));
+*/
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ CleanupStack::PopAndDestroy(&getIdentityServiceStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0001::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0001");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0002::CCTSYIntegrationTestPhoneIdentity0002(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0002::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0002::~CCTSYIntegrationTestPhoneIdentity0002()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0002::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0002
+ * @SYMFssID BA/CTSY/PID-0002
+ * @SYMTestCaseDesc Activate Calling Line Identification Restriction (CLIR).
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetIdentityServiceStatus, RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus, RMobileCall::GetMobileCallInfo, RCall::Dial, RCall::HangUp
+ * @SYMTestExpectedResults Pass - CLIR can be activated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify service status notifications complete and called party does not get the calling party's number.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetClirStatus
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ TUint32 callServiceCaps;
+
+ CHECK_TRUE_L(mobilePhone.GetCallServiceCaps(callServiceCaps)==KErrNone, _L("RMobilePhone::GetCallServiceCaps return value is not KErrNone"));
+ TUint32 expectedservicecaps = RMobilePhone::KCapsGetClirStatus;
+ CHECK_BITS_SET_L(callServiceCaps, expectedservicecaps, KNoUnwantedBits, _L("RMobilePhone::GetCallServiceCaps returned wrong caps"));
+
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+
+ // Get Voice Line 1.
+ RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KVoiceLine);
+
+ // Get Call 1.
+ RMobileCall& mobileCall= iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KVoiceLine, KCall1);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerRestriction and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActiveDefaultAllowed
+ RMobilePhone::TMobilePhoneIdServiceStatus idServiceStatus;
+ TExtEtelRequestStatus getIdentityServiceStatus(mobilePhone, EMobilePhoneGetIdentityServiceStatus);
+ CleanupStack::PushL(getIdentityServiceStatus);
+
+ mobilePhone.GetIdentityServiceStatus(getIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, idServiceStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(getIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus getIdentityServiceStatus completed with incorrect error"));
+ ASSERT_EQUALS(idServiceStatus, RMobilePhone::EIdServiceActiveDefaultAllowed, _L("RMobilePhone::GetIdentityServiceStatus idServiceStatus is not RMobilePhone::EIdServiceActiveDefaultAllowed"));
+
+ // $CTSYProblem
+ // The CTSY currently does not support RMobilePhone::SetIdentityServiceStatus
+ // so the rest of this test case is not applicable. If support is added for this API
+ // The rest of this test can be uncommented and used.
+ ERR_PRINTF1(_L("<font color=Cyan>$CTSYProblem: RMobilePhone::SetIdentityServiceStatus not supported by CTSY.<font color=Black>"));
+ /*
+ // === Activate CLIR ===
+
+ // Activate CLIR with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerRestriction aSetting=EIdServicePresentationRestricted
+ RMobilePhone::TMobilePhoneIdService idService = RMobilePhone::EIdServiceCallerRestriction;
+ RMobilePhone::TMobilePhoneIdServiceStatus idServiceStateNotify;
+
+ // Post notification for RMobileCall::NotifyIdentityServiceStatus
+ TExtEtelRequestStatus notifyIdentityServiceStatus(mobilePhone, EMobilePhoneNotifyIdentityServiceStatus);
+ CleanupStack::PushL(notifyIdentityServiceStatus);
+
+ mobilePhone.NotifyIdentityServiceStatus(notifyIdentityServiceStatus, idService, idServiceStateNotify);
+
+ mobilePhone.SetIdentityServiceStatus(setIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, RMobilePhone::EIdServicePresentationRestricted);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(setIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::SetIdentityServiceStatus setIdentityServiceStatus completed with incorrect error"));
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceCallerRestriction completes with aStatus=EIdServiceActiveDefaultRestricted
+ RMobilePhone::TMobilePhoneIdService expectedService=RMobilePhone::EIdServiceCallerRestriction;
+ iSupplementalHelper.WaitForMobilePhoneNotifyIdentityServiceStatus(mobilePhone,
+ notifyIdentityServiceStatus,
+ idService,
+ expectedService,
+ idServiceStateNotify,
+ KErrNone);
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerRestriction and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActiveDefaultRestricted
+ mobilePhone.GetIdentityServiceStatus(getIdentityServiceStatus, RMobilePhone::EIdServiceCallerRestriction, idServiceStatus);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getIdentityServiceStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus timed-out"));
+ ASSERT_EQUALS(getIdentityServiceStatus.Int(), KErrNone, _L("RMobilePhone::GetIdentityServiceStatus getIdentityServiceStatus completed with incorrect error"));
+
+ ASSERT_EQUALS(idServiceStatus, RMobilePhone::EIdServiceActiveDefaultRestricted, _L("RMobilePhone::GetIdentityServiceStatus idServiceStatus is not RMobilePhone::EIdServiceActiveDefaultAllowed"));
+
+ // === Check that caller ID is not available when CLIR is active ===
+
+ // Display a prompt to the user to telling them that they should have set their own phone number to voice number 1 in the config file
+ DisplayUserInteractionPromptL(_L("You should have set your own phone number to voice number 1 in the config file?"), ETimeMedium);
+
+ // Dial the user's phone number.
+ RMobileCall::TMobileCallStatus mobileCallState;
+
+ TExtEtelRequestStatus notifyMobileCallStatus(mobileCall, EMobileCallNotifyMobileCallStatusChange);
+ CleanupStack::PushL(notifyMobileCallStatus);
+
+ mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallState);
+
+ TPtrC number;
+ ASSERT_TRUE(GetStringFromConfig(KIniVoiceNumSection, KIniVoiceNumber1, number) != EFalse, _L("GetStringFromConfig did not complete as expected"));
+ DEBUG_PRINTF2(_L("Board Now Dialling: %S"), &number);
+ TCoreEtelRequestStatus<RCall> dialStatus(mobileCall, &RCall::DialCancel);
+ CleanupStack::PushL(dialStatus);
+ mobileCall.Dial(dialStatus, number);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
+ ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial problem dialling"));
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusConnected.
+ RMobileCall::TMobileCallStatus expectedMobileCallState=RMobileCall::EStatusConnected;
+ iCallControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+ notifyMobileCallStatus,
+ mobileCallState,
+ expectedMobileCallState,
+ KErrNone);
+
+ mobileCall.NotifyMobileCallStatusChange(notifyMobileCallStatus, mobileCallState);
+
+ // User should check that they can not see the caller's number
+ DisplayUserInteractionPromptL(_L("User should check that they have received a phone call and should check that can not see the caller's number."), ETimeMedium);
+
+ // Hang up.
+ DEBUG_PRINTF1(_L("Hangup call"));
+ ASSERT_EQUALS(mobileCall.HangUp(), KErrNone, _L("RCall::HangUp return value not KErrNone"));
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusIdle.
+ expectedMobileCallState=RMobileCall::EStatusIdle;
+ iCallControlHelper.WaitForMobileCallNotifyMobileCallStatusChange(mobileCall,
+ notifyMobileCallStatus,
+ mobileCallState,
+ expectedMobileCallState,
+ KErrNone);
+ */
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ CleanupStack::PopAndDestroy(&getIdentityServiceStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0002::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0002");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0003::CCTSYIntegrationTestPhoneIdentity0003(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0003::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0003::~CCTSYIntegrationTestPhoneIdentity0003()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0003::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0003
+ * @SYMFssID BA/CTSY/PID-0003
+ * @SYMTestCaseDesc Activate Calling Line Identity Presentation (CLIP)
+ * @SYMTestPriority High
+ * @SYMTestActions RCall::AnswerIncomingCall, RMobileCall::NotifyMobileCallStatusChange, RMobilePhone::GetIdentityServiceStatus, RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus, RMobileCall::GetMobileCallInfo, RCall::HangUp
+ * @SYMTestExpectedResults Pass - Remote party's number retrieved correctly.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify service status notifications complete and remote party information is correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetClipStatus capability.
+
+ // Ensure RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerPresentation and aLocation=EInfoLocationCachePreferred does not return aStatus=EIdServiceActiveDefaultAllowed
+
+ // Get Voice Line 1
+
+ // Get Call 1
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Activate CLIP - Be able to see who is calling you - check notification completes ===
+
+ // Activate CLIP with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerPresentation and aSetting=EIdServicePresentationAllowed
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceCallerPresentation completes with aStatus=EIdServiceActivePermanent
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerPresentation and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActivePermanent
+
+ // === Request incoming call and check that the remote number can be retrieved ===
+
+ // Request an incoming call from RPS.
+
+ // Answer the call.
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusConnected.
+
+ // Check RMobileCall::GetMobileCallInfo returns iRemoteParty.iCallingName has length > 0
+ // Check RMobileCall::GetMobileCallInfo returns iRemoteParty.iDirection = EMobileTerminated
+ // Check RMobileCall::GetMobileCallInfo returns iRemoteParty.iRemoteIdStatus = ERemoteIdentityAvailable
+ // Check RMobileCall::GetMobileCallInfo returns iRemoteParty.iRemoteNumber is the number RPS is calling from (coded in BCD)
+ // Check RMobileCall::GetMobileCallInfo returns iValid > 0.
+ // Check RMobileCall::GetMobileCallInfo returns data for attributes marked as valid in iValid.
+
+ // Hang up call.
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0003::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0003");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0004::CCTSYIntegrationTestPhoneIdentity0004(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0004::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0004::~CCTSYIntegrationTestPhoneIdentity0004()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0004::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0004
+ * @SYMFssID BA/CTSY/PID-0004
+ * @SYMTestCaseDesc Deactivate Calling Line Identity Presentation (CLIP)
+ * @SYMTestPriority High
+ * @SYMTestActions RCall::AnswerIncomingCall, RMobileCall::NotifyMobileCallStatusChange, RMobilePhone::GetIdentityServiceStatus, RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus, RMobileCall::GetMobileCallInfo, RCall::HangUp
+ * @SYMTestExpectedResults Pass - Remote party's number not retrieved.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify service status notifications complete and it is not possible to get the calling line identity.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetClipStatus capability.
+
+ // Ensure RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerPresentation and aLocation=EInfoLocationCachePreferred does not return aStatus=EIdServiceActiveDefaultRestricted
+
+ // Get Voice Line 1
+
+ // Get Call 1
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Deactivate (restrict) CLIP - Not be able to see who is calling you - check notification completes ===
+
+ // Deactivate CLIP with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerPresentation and aSetting=EIdServicePresentationRestricted
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceCallerPresentation completes with aStatus=EIdServiceActivePermanent
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerPresentation and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActivePermanent
+
+ // === Request incoming call and check that the remote number can be retrieved ===
+
+ // Request an incoming call from RPS.
+
+ // Answer the call.
+
+ // Check RMobileCall::NotifyMobileCallStatusChange completes with EStatusConnected.
+
+ // Check RMobileCall::GetMobileCallInfo returns iRemoteParty.iCallingName has length > 0
+ // Check RMobileCall::GetMobileCallInfo returns iRemoteParty.iDirection = EMobileTerminated
+ // Check RMobileCall::GetMobileCallInfo returns iRemoteParty.iRemoteIdStatus = ERemoteIdentityAvailableNoCliUnavailable or = ERemoteIdentityUnavailableNoCliInteractionWithOtherService
+ // Check RMobileCall::GetMobileCallInfo returns iValid > 0.
+ // Check RMobileCall::GetMobileCallInfo returns data for attributes marked as valid in iValid.
+
+ // Hang up call.
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0004::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0004");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0005::CCTSYIntegrationTestPhoneIdentity0005(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0005::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0005::~CCTSYIntegrationTestPhoneIdentity0005()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0005::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0005
+ * @SYMFssID BA/CTSY/PID-0005
+ * @SYMTestCaseDesc Receive rejection of suppression of calling identity.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentitySuppressionRejected
+ * @SYMTestExpectedResults Pass - Notification of identity suppression rejected completes.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify notification completes.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetClirStatus capability.
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Attempt to restrict caller ID ===
+
+ // Activate CLIR with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerRestriction aSetting=EIdServicePresentationRestricted
+
+ // Simulator should reject CLIR activation
+
+ // Check RMobilePhone::NotifyIdentitySuppressionRejected completes with KErrNone
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerRestriction and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActiveDefaultRestricted
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0005::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0005");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0006::CCTSYIntegrationTestPhoneIdentity0006(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0006::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0006::~CCTSYIntegrationTestPhoneIdentity0006()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0006::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0006
+ * @SYMFssID BA/CTSY/PID-0006
+ * @SYMTestCaseDesc Activate and deactivate CNAP (calling name presentation)
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus
+ * @SYMTestExpectedResults Pass - Identity service status notification completes and service status is correct.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify notification completes and identity status is correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetCnapStatus capability.
+
+ // Ensure RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerName and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActivePermanent
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Activate CNAP ===
+
+ // Activate CNAP with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerName and aSetting=EIdServicePresentationRestricted
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceCallerName completes with aStatus=EIdServicePresentationRestricted
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerName and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActivePermanent
+
+ // === Deactivate CNAP ===
+
+ // Deactivate CNAP with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceCallerName and aSetting=EIdServicePresentationAllowed
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceCallerName completes with aStatus=EIdServicePresentationAllowed
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceCallerName and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActivePermanent
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0006::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0006");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0007::CCTSYIntegrationTestPhoneIdentity0007(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0007::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0007::~CCTSYIntegrationTestPhoneIdentity0007()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0007::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0007
+ * @SYMFssID BA/CTSY/PID-0007
+ * @SYMTestCaseDesc Get subscriber ID (IMSI) when no SIM present.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileCall::GetSubscriberId
+ * @SYMTestExpectedResults Pass - Error returned on attempt to get IMSI with no SIM.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify IMSI retrieval fails.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // Remove the SIM.
+ TBuf<100> prompt(_L("Ensure SIM is not present"));
+ DisplayUserInteractionPromptL(prompt); // 30 seconds
+
+ // Check RMobilePhone::GetSubscriberId completes with error != KErrNone
+ TExtEtelRequestStatus getSubscriberIdStatus(mobilePhone, EMobilePhoneGetSubscriberId);
+ RMobilePhone::TMobilePhoneSubscriberId subscriberId;
+ CleanupStack::PushL(getSubscriberIdStatus);
+
+ mobilePhone.GetSubscriberId(getSubscriberIdStatus,subscriberId);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getSubscriberIdStatus, ETimeShort), KErrNone, _L("RMobilePhone::GetSubscriberId timed-out"));
+ ASSERT_TRUE(getSubscriberIdStatus.Int() != KErrNone, _L("RMobilePhone::getSubscriberIdStatus returned with an error"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ CleanupStack::PopAndDestroy(&getSubscriberIdStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0007::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0007");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0008::CCTSYIntegrationTestPhoneIdentity0008(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0008::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0008::~CCTSYIntegrationTestPhoneIdentity0008()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0008::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0008
+ * @SYMFssID BA/CTSY/PID-0008
+ * @SYMTestCaseDesc Activate and deactivate COLP (connected line identification presentation)
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus
+ * @SYMTestExpectedResults Pass - Identity service status notification completes and service status is correct.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify notification completes and identity status is correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetColpStatus
+
+ // Ensure RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceConnectedPresentation and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActivePermanent
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Activate COLP ===
+
+ // Activate COLP with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceConnectedPresentation and aSetting=EIdServicePresentationRestricted
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceConnectedPresentation completes with aStatus=EIdServicePresentationRestricted
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceConnectedPresentation and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActivePermanent
+
+ // === Deactivate COLP ===
+
+ // Deactivate COLP with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceConnectedPresentation and aSetting=EIdServicePresentationAllowed
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceConnectedPresentation completes with aStatus=EIdServicePresentationAllowed
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceConnectedPresentation and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActivePermanent
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0008::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0008");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0009::CCTSYIntegrationTestPhoneIdentity0009(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0009::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0009::~CCTSYIntegrationTestPhoneIdentity0009()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0009::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0009
+ * @SYMFssID BA/CTSY/PID-0009
+ * @SYMTestCaseDesc Activate and deactivate COLR (connected line identity restriction)
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - COLR activated and deactivated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify notification completes and identity status is correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure RMobilePhone::GetCallServiceCaps returns caps in set of KCapsGetColrStatus
+
+ // Ensure RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceConnectedRestriction and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActivePermanent
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Activate COLR ===
+
+ // Activate COLR with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceConnectedRestriction and aSetting=EIdServicePresentationRestricted
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceConnectedRestriction completes with aStatus=EIdServicePresentationRestricted
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceConnectedRestriction and aLocation=EInfoLocationCachePreferred returns aStatus=EIdServiceActivePermanent
+
+ // === Deactivate COLR ===
+
+ // Deactivate COLR with RMobilePhone::SetIdentityServiceStatus with aService=EIdServiceConnectedRestriction and aSetting=EIdServicePresentationAllowed
+
+ // Check RMobilePhone::NotifyIdentityServiceStatus with aService=EIdServiceConnectedRestriction completes with aStatus=EIdServicePresentationAllowed
+
+ // Check RMobilePhone::GetIdentityServiceStatus with aService=EIdServiceConnectedRestriction and aLocation=EInfoLocationCachePreferred returns aStatus!=EIdServiceActivePermanent
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0009::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0009");
+ }
+
+
+
+CCTSYIntegrationTestPhoneIdentity0010::CCTSYIntegrationTestPhoneIdentity0010(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestPhoneIdentityBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestPhoneIdentity0010::GetTestStepName());
+ }
+
+CCTSYIntegrationTestPhoneIdentity0010::~CCTSYIntegrationTestPhoneIdentity0010()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestPhoneIdentity0010::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PID-0010
+ * @SYMFssID BA/CTSY/PID-0010
+ * @SYMTestCaseDesc Get the phone identity
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - Phone manufacturer, model, revision and serial number returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify manufacturer, model, revision and serial number returned.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // EnsureRMobilePhone::GetIdentityCaps returns caps in set of
+ // RMobilePhone::KCapsGetManufacturer | RMobilePhone::KCapsGetModel | RMobilePhone::KCapsGetRevision |
+ // RMobilePhone::KCapsGetSerialNumber
+
+ TUint32 caps;
+ TInt result = phone.GetIdentityCaps(caps);
+ CHECK_TRUE_L(result == KErrNone, _L("RMobilePhone::GetIdentityCaps failed."))
+
+ // Needs all caps
+ TUint neededCaps = RMobilePhone::KCapsGetManufacturer | RMobilePhone::KCapsGetModel |
+ RMobilePhone::KCapsGetRevision | RMobilePhone::KCapsGetSerialNumber;
+ CHECK_BITS_SET_L( caps, neededCaps, KNoUnwantedBits, _L("RMobilePhone::GetIdentityCaps returned wrong mask") )
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get the phone identity ===
+ RMobilePhone::TMobilePhoneIdentityV1 phoneId;
+ TExtEtelRequestStatus requestStatus(phone, EMobilePhoneGetPhoneId);
+ CleanupStack::PushL(requestStatus);
+ phone.GetPhoneId(requestStatus, phoneId);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(requestStatus, ETimeLong),
+ KErrNone, _L("RMobilePhone::GetPhoneId timed out."))
+ ASSERT_EQUALS(requestStatus.Int(), KErrNone, _L("RMobilePhone::GetPhoneId completed with incorrect status"))
+
+ // Check RMobilePhone::GetPhoneId returns aId.iManufacturer with length > 0
+ ASSERT_TRUE(phoneId.iManufacturer.Length() > 0,
+ _L("RMobilePhone::GetPhoneId returned invalid manufacturer"))
+
+ // Check RMobilePhone::GetPhoneId returns aId.iModel with length > 0
+ ASSERT_TRUE(phoneId.iModel.Length() > 0,
+ _L("RMobilePhone::GetPhoneId returned invalid model"))
+
+ // Check RMobilePhone::GetPhoneId returns aId.iRevision with length > 0
+ ASSERT_TRUE(phoneId.iRevision.Length() > 0,
+ _L("RMobilePhone::GetPhoneId returned invalid revision"))
+
+ // Check RMobilePhone::GetPhoneId returns aId.iSerialNumber with length > 0
+ ASSERT_TRUE(phoneId.iSerialNumber.Length() > 0,
+ _L("RMobilePhone::GetPhoneId returned invalid serial number"))
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ CleanupStack::Pop(); // requestStatus
+
+ return TestStepResult();
+ }
+
+
+TPtrC CCTSYIntegrationTestPhoneIdentity0010::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestPhoneIdentity0010");
+ }
+
+
+