--- a/telephonyserverplugins/common_tsy/test/component/src/cctsyfixeddiallingfu.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyfixeddiallingfu.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,2355 +1,2355 @@
-// 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:
-// The TEFUnit test suite for FixedDialling in the Common TSY.
-//
-//
-
-/**
- @file
-*/
-
-#include "cctsyfixeddiallingfu.h"
-#include <etel.h>
-#include <etelmm.h>
-#include <et_clsvr.h>
-#include <ctsy/mmtsy_names.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#include "tmockltsydata.h"
-#include <ctsy/serviceapi/gsmerror.h>
-
-CTestSuite* CCTsyFixedDiallingFU::CreateSuiteL(const TDesC& aName)
- {
- SUB_SUITE;
-
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0001bL);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0001cL);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0005L);
-
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0006L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0006bL);
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0007L); still not supported
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0008L); still not supported
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0009L); still not supported
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00010L); still not supported
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00011L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00012L); still not supported
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00013L); still not supported
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00014L); still not supported
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00015L); still not supported
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0002L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0002L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0005L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0002L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0003L);
- ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0004L);
- //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0005L);
-
- END_SUITE;
- }
-
-
-//
-// Actual test cases
-//
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- TInt errorCode = KErrNone;
-
- //-- For Voice1 -------------------------
-
- TBuf<256> lineName(KMmTsyVoice1LineName);
- // Open new line
- RLine line;
- errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
- // open call
- _LIT(KDoubleColon, "::");
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
- _LIT(KSomeNumber, "123456789");
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
- // data for ExpextL
- RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
- TInt expecteCallId = 0;
-
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
- RMobileCall::TMobileCallInfoV8 callInfo;
-
- callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo.iService = mobileService;
- callInfo.iStatus = RMobileCall::EStatusUnknown;
- callInfo.iCallId = -1;
- callInfo.iExitCode =0;
- callInfo.iEmergency =0;
- callInfo.iForwarded =0;
- callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
- callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
- //callInfo.iDuration.iIntervel = 0; // this is protected value
- callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
- callInfo.iDialledParty.iNumberPlan =
- RMobilePhone::EUnknownNumberingPlan;
- callInfo.iDialledParty.iTypeOfNumber =
- RMobilePhone::EUnknownNumber;
-
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV8 >
- mockCallData(expecteCallId, mobileService, callParams, callInfo);
- mockCallData.SerialiseL(expectData);
-
-
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNotSupported);
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
- CleanupStack::PopAndDestroy();// call
-
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RMobileCall::DialNoFdnCheck
- //-------------------------------------------------------------------------
- TInt callId = 1;
- // create new incoming call
- TName incomingCallName;
- RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusIdle;
-
- errorCode = CreateIncomingCallL(line, callId, lineName, incomingCallName,
- mobileService, mobileCallStatus);
- ASSERT_EQUALS(KErrNone, errorCode);
-
- // -------- make for this call callId > 0 --------------------------------------
- line.NotifyIncomingCall(requestStatus, incomingCallName);
-
- callInfo.iService = mobileService;
- TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> idleCallData3(callId, mobileService, callInfo);
- idleCallData3.SerialiseL(completeData);
-
- TRequestStatus mockLtsyStatus;
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EEtelLineNotifyIncomingCall, KErrNone, completeData);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- errorCode = call.OpenExistingCall(line, incomingCallName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
- //-------------------------------------------------------------------------
-
- // data for ExpectL
- callInfo.iRemoteParty.iDirection = RMobileCall::EDirectionUnknown;
-
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
- mockCallData2(callId, mobileService, callParams, callInfo);
- expectData.Close();
- mockCallData2.SerialiseL(expectData);
- // data for CompleteL
- TMockLtsyCallData0 mockDataComplete(callId, mobileService);
- completeData.Close();
- mockDataComplete.SerialiseL(completeData);
-
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrGeneral, completeData);
-
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RMobileCall::DialNoFdnCheck when result is not cached.
- //-------------------------------------------------------------------------
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
-
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RMobileCall::DialNoFdnCheck
- // from LTSY.
- //-------------------------------------------------------------------------
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST 1 for coverage increasing
- //-------------------------------------------------------------------------
- // change status of call
- mobileCallStatus = RMobileCall::EStatusRinging;
-
- TMockLtsyCallData1<RMobileCall::TMobileCallStatus> mockCallData4(callId, mobileService, mobileCallStatus);
- completeData.Close();
- mockCallData4.SerialiseL(completeData);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, completeData);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- // data for ExpectL
- TInt hangUpCause( KErrGsmReleaseByUser );
- TBool autoStChangeDisable = EFalse;
-
- TMockLtsyCallData2< TInt, TBool >
- mockCallDataClose(callId, mobileService, hangUpCause, autoStChangeDisable);
- expectData.Close();
- mockCallDataClose.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EEtelCallHangUp, expectData); // this expect is necessary for call closing when EStatusRinging
- CleanupStack::PopAndDestroy(); // call
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST 2 for coverage increasing
- //-------------------------------------------------------------------------
- // create new call
- callId = 2;
- mobileCallStatus = RMobileCall::EStatusIdle;
- errorCode = CreateIncomingCallL(line, callId, lineName, incomingCallName,
- mobileService, mobileCallStatus);
- ASSERT_EQUALS(KErrNone, errorCode);
-
- errorCode = call.OpenExistingCall(line, incomingCallName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- // set RFStatus to Inactive state
- TRfStateInfo rfInfo (ERfsStateInfoInactive);
-
- TMockLtsyData1<TRfStateInfo> mockCallData5(rfInfo);
- completeData.Close();
- mockCallData5.SerialiseL(completeData);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, completeData);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
- User::WaitForRequest(requestStatus);
-
- TInt expectedErrorCode = ( KErrGeneral & 0x0000FFFF ) |( KErrGsmOfflineOpNotAllowed << 16 );
- expectedErrorCode = (expectedErrorCode>>16) | 0xFFFF0000;
-
-
- ASSERT_EQUALS(expectedErrorCode, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- // close call, cause theres no way to use it again
- CleanupStack::PopAndDestroy(&call);
- AssertMockLtsyStatusL();
-
-
- // create new incoming call
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- // set RFStatus to Normal state
- rfInfo = ERfsStateInfoNormal;
-
- TMockLtsyData1<TRfStateInfo> mockCallData6(rfInfo);
-
- completeData.Close();
- mockCallData6.SerialiseL(completeData);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, completeData);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-
- // data for ExpectL
- callInfo.iRemoteParty.iDirection = RMobileCall::EDirectionUnknown;
-
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
- mockCallData7(expecteCallId, mobileService, callParams, callInfo);
- expectData.Close();
- mockCallData7.SerialiseL(expectData);
-
- // Test A: ...
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNotSupported);
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- // ...and now repeat this test A
- // This repetition is here to test that SetDialFlag(EFalse) is called when
- // the EMobileCallDialNoFdnCheck request completes with an error
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNotSupported);
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST to show defect 120102
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
- CallGetMobileCallInfoL(callId, mobileService, KSomeNumber);
-
- completeData.Close();
- TMockLtsyCallData0 mockDataComplete2(callId, mobileService);
- mockDataComplete2.SerialiseL(completeData);
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
-
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(5, this); // ... this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0001b
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0001bL()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- TInt errorCode = KErrNone;
-
- //-- For Voice1 -------------------------
- TBuf<256> lineName(KMmTsyVoice1LineName);
-
- // Open new line
- RLine line;
- errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
-
- // open call
- _LIT(KDoubleColon, "::");
-
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
-
- _LIT(KSomeNumber, "123456789");
-
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- // for API version without params
- // i.e. for void RMobileCall::DialNoFdnCheck(TRequestStatus& aReqStatus,const TDesC& aTelNumber)
- //-------------------------------------------------------------------------
- // data for ExpextL
- RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
- TInt expecteCallId = 0;
-
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
- RMobileCall::TMobileCallInfoV1 callInfo;
-
- callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo.iService = mobileService;
- callInfo.iStatus = RMobileCall::EStatusUnknown;
- callInfo.iCallId = -1;
- callInfo.iExitCode =0;
- callInfo.iEmergency =0;
- callInfo.iForwarded =0;
- callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
- callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
- //callInfo.iDuration.iIntervel = 0; // this is protected value
- callInfo.iTch = RMobileCall::ETchUnknown;
- callInfo.iRemoteParty.iCallingName = KNullDesC;
- callInfo.iRemoteParty.iRemoteIdStatus = RMobileCall::ERemoteIdentityUnknown;
- callInfo.iRemoteParty.iRemoteNumber.iTelNumber = KNullDesC;
- callInfo.iRemoteParty.iRemoteNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
- callInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber;
- callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
- callInfo.iDialledParty.iNumberPlan =
- RMobilePhone::EUnknownNumberingPlan;
- callInfo.iDialledParty.iTypeOfNumber =
- RMobilePhone::EUnknownNumber;
-
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
- mockCallData(expecteCallId, mobileService, callParams, callInfo);
- mockCallData.SerialiseL(expectData);
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 120101);
- iMockLTSY.ExpectL(EEtelCallDial, expectData, KErrNone);
-
- // Cause to fail to show defect 120101
- ASSERT_TRUE(EFalse);
-
- call.DialNoFdnCheck(requestStatus, KSomeNumber);
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(4, this); // call,line, expectData, this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0001c
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for voice calls with minimal parameters (RCall::TCallParams)
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0001cL()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- TInt errorCode = KErrNone;
-
- //-- For Voice1 -------------------------
-
- TBuf<256> lineName(KMmTsyVoice1LineName);
- // Open new line
- RLine line;
- errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
- // open call
- _LIT(KDoubleColon, "::");
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
- _LIT(KSomeNumber, "123456789");
-
- RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
- TInt expecteCallId = 0;
-
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
- RMobileCall::TMobileCallInfoV8 callInfo;
- callParams.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
- callParams.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
- callParams.iInterval = 100;
- callParams.iWaitForDialTone = RCall::EDialToneWait;
- callParams.iIdRestrict = RMobileCall::EIdRestrictDefault;
- callParams.iCug.iExplicitInvoke = EFalse;
- callParams.iCug.iCugIndex = 0xFFFF;
- callParams.iCug.iSuppressPrefCug = EFalse;
- callParams.iCug.iSuppressOA = EFalse;
- callParams.iAutoRedial = EFalse;
- callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo.iService = mobileService;
- callInfo.iStatus = RMobileCall::EStatusUnknown;
- callInfo.iCallId =-1;
- callInfo.iExitCode =0;
- callInfo.iEmergency =0;
- callInfo.iForwarded =0;
- callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
- callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
- //callInfo.iDuration.iIntervel = 0; // this is protected value
- callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
- callInfo.iDialledParty.iNumberPlan =
- RMobilePhone::EUnknownNumberingPlan;
- callInfo.iDialledParty.iTypeOfNumber =
- RMobilePhone::EUnknownNumber;
-
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV8 >
- mockCallData(expecteCallId, mobileService, callParams, callInfo);
- mockCallData.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
-
- TInt callId = 1;
-
- completeData.Close();
- TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> callInfoData(callId, mobileService, callInfo);
- callInfoData.SerialiseL(completeData);
- //Complete Mobile Call Info in order to set the call ID
- iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, completeData);
-
- TMockLtsyCallData0 mockDataComplete(callId, mobileService);
- completeData.Close();
- mockDataComplete.SerialiseL(completeData);
- // Complete the Dial
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
-
- RCall::TCallParams callParamsX;
- callParamsX.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
- callParamsX.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
- callParamsX.iInterval = 100;
- callParamsX.iWaitForDialTone = RCall::EDialToneWait;
- TPckg<RCall::TCallParams> pckgCallParamsX(callParamsX);
-
- call.DialNoFdnCheck(requestStatus, pckgCallParamsX, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(5,this);
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0002L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- TInt errorCode = KErrNone;
-
- //-- For Voice1 -------------------------
-
- TBuf<256> lineName(KMmTsyVoice1LineName);
- // Open new line
- RLine line;
- errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
- // open call
- _LIT(KDoubleColon, "::");
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
- _LIT(KSomeNumber, "123456789");
-
- RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
-
- TInt expectCallId = 0;
-
- // -------- make for this call callId > 0 --------------------------------------
- RMobileCall::TMobileCallInfoV8 callInfo;
-
- //-------------------------------------------------------------------------
- // Test cancelling of RMobileCall::DialNoFdnCheck
- //-------------------------------------------------------------------------
-
- // data for ExpextL
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
-
- callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo.iService = mobileService;
- callInfo.iStatus = RMobileCall::EStatusUnknown;
- callInfo.iCallId = -1;
- callInfo.iExitCode =0;
- callInfo.iEmergency =0;
- callInfo.iForwarded =0;
- callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
- callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
- callInfo.iTch = RMobileCall::ETchUnknown;
- callInfo.iRemoteParty.iCallingName = KNullDesC;
- callInfo.iRemoteParty.iRemoteIdStatus = RMobileCall::ERemoteIdentityUnknown;
- callInfo.iRemoteParty.iRemoteNumber.iTelNumber = KNullDesC;
- callInfo.iRemoteParty.iRemoteNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
- callInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber;
- callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
- callInfo.iDialledParty.iNumberPlan =
- RMobilePhone::EUnknownNumberingPlan;
- callInfo.iDialledParty.iTypeOfNumber =
- RMobilePhone::EUnknownNumber;
-
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
- mockCallData(expectCallId, mobileService, callParams, callInfo);
- mockCallData.SerialiseL(expectData);
-
- // Expect the dial
-
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNone);
-
- // Dial and cancel
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
- call.CancelAsyncRequest(EMobileCallDialNoFdnCheck);
-
- // prepare and complete Mobile Call info
-
- TInt callId = 1;
-
- _LIT(KNullDesC , "");
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- RMobileCall::TMobileCallInfoV1 callInfo2;
- callInfo2.iDialledParty.iTelNumber.Copy(KSomeNumber);
- callInfo2.iService = mobileService;
- callInfo2.iEmergency = EFalse;
- callInfo2.iRemoteParty.iCallingName = KNullDesC;
- callInfo2.iRemoteParty.iRemoteIdStatus = RMobileCall::ERemoteIdentityUnknown;
- callInfo2.iRemoteParty.iRemoteNumber.iTelNumber = KNullDesC;
- callInfo2.iRemoteParty.iRemoteNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
- callInfo2.iRemoteParty.iRemoteNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber;
- callInfo2.iForwarded = EFalse;
- callInfo2.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallRemoteParty;
-
- TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> callInfoData(callId, mobileService, callInfo2);
- callInfoData.SerialiseL(data);
-
- iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, data);
-
- //Pause the MockLTSY so we can program the sequence of Expect - Completes involved
- //with cancelling
- iMockLTSY.PauseCompletion();
-
- RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusDialling;
- TMockLtsyCallData1<RMobileCall::TMobileCallStatus> mockCallDataStatus(callId, mobileService, mobileCallStatus);
- completeData.Close();
- mockCallDataStatus.SerialiseL(completeData);
-
- //Change state to dialling, this set the call ID
- iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, completeData);
-
-
- TInt hangUpCause = KErrGsmReleaseByUser;
- TBool autoStChangeDisable = ETrue;
- TMockLtsyCallData2<TInt, TBool> mockCallData2(callId, mobileService,
- hangUpCause,
- autoStChangeDisable);
- expectData.Close();
- mockCallData2.SerialiseL(expectData);
- // Since the call ID has been set, the CTSY will go ahead with the cancellation
- // by hanging up.
- iMockLTSY.ExpectL(EEtelCallHangUp, expectData);
-
- // Cancelled Dial request. After this CTSY hangs up the call and it goes to idle state.
-
-
- RMobileCall::TMobileCallStatus mobileCallStatus2 = RMobileCall::EStatusIdle;
- TMockLtsyCallData1<RMobileCall::TMobileCallStatus> mockCallDataStatus2(callId, mobileService, mobileCallStatus2);
- completeData.Close();
- mockCallDataStatus2.SerialiseL(completeData);
-
- // Complete the hangup
- iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrGsmReleaseByUser, completeData);
-
- // Release the MockLTSY so that the above sequence is triggered.
- iMockLTSY.ResumeCompletion();
-
-
- // Check results.
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
-
- CleanupStack::PopAndDestroy(6, this); // expectData, this ...
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0004L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(telServer2, KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 expectData2;
- CleanupClosePushL(expectData2);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- RBuf8 completeData2;
- CleanupClosePushL(completeData2);
-
-
- //-- Voice1 -------------------------
- TBuf<256> lineName(KMmTsyVoice1LineName);
- // Open new line
- RLine line;
- ret = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(line);
-
-
- //-- Voice1-------------------------
- TBuf<256> lineName2(KMmTsyVoice1LineName);
- // Open new line
- RLine line2;
- ret = line2.Open(phone2, lineName2);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(line2);
- //----------------------------------------
-
- // open call
- _LIT(KDoubleColon, "::");
-
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- RMobileCall call2;
-
- TInt callId = 1;
- TInt callId2 = 2;
- TName incomingCallName;
- TName incomingCallName2;
- TRequestStatus requestStatus;
- TRequestStatus requestStatus2;
- TRequestStatus mockLtsyStatus;
-
- RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusIdle;
- RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
-
- // create new incoming call
- ret = CreateIncomingCallL(line, callId, lineName, incomingCallName,
- mobileService, mobileCallStatus);
- ASSERT_EQUALS(KErrNone, ret);
- // -------- make for the first call callId > 0 --------------------------------------
- RMobileCall::TMobileCallInfoV1 callInfo;
-
- line.NotifyIncomingCall(requestStatus, incomingCallName);
-
- callInfo.iService = mobileService;
- TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> idleCallData(callId, mobileService, callInfo);
- idleCallData.SerialiseL(completeData);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EEtelLineNotifyIncomingCall, KErrNone, completeData);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-
- TInt errorCode = call.OpenExistingCall(line, incomingCallName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
-
- // create new incoming call
- ret = CreateIncomingCallL(line2, callId2, lineName2, incomingCallName2,
- mobileService, mobileCallStatus);
- ASSERT_EQUALS(KErrNone, ret);
- // ------- make for the second call callId > 0 --------------------------------------
- RMobileCall::TMobileCallInfoV1 callInfo2;
-
- line2.NotifyIncomingCall(requestStatus2, incomingCallName2);
-
- callInfo2.iService = mobileService;
- TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> idleCallData2(callId2, mobileService, callInfo2);
- idleCallData2.SerialiseL(completeData2);
-
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EEtelLineNotifyIncomingCall, KErrNone, completeData2);
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- User::WaitForRequest(requestStatus2);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- errorCode = call2.OpenExistingCall(line2, incomingCallName2);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call2);
- //-------------------------------------------------------------------------
-
- _LIT(KSomeNumber, "123456789");
- _LIT(KSomeNumber2, "987654321");
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // --- data for first ExpectL ---
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
-
- // set up callInfo
- callInfo.iRemoteParty.iDirection = RMobileCall::EMobileTerminated;
- callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo.iService = mobileService;
- callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
- mockCallData2(callId, mobileService, callParams, callInfo);
- mockCallData2.SerialiseL(expectData);
-
- // --- data for the first CompleteL ---
- TMockLtsyCallData0 mockDataComplete(callId, mobileService);
- completeData.Close();
- mockDataComplete.SerialiseL(completeData);
-
- // --- data for second ExpectL ---
- RMobileCall::TMobileCallParamsV1 callParams2;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams2(callParams2);
-
- // set up callInfo
- callInfo2.iRemoteParty.iDirection = RMobileCall::EMobileTerminated;
- callInfo2.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo2.iService = mobileService;
- callInfo2.iDialledParty.iTelNumber.Copy( KSomeNumber2 );
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
- mockCallData3(callId2, mobileService, callParams2, callInfo2);
- mockCallData3.SerialiseL(expectData2);
-
- // --- data for the second CompleteL ---
- TMockLtsyCallData0 mockDataComplete2(callId2, mobileService);
- completeData2.Close();
- mockDataComplete2.SerialiseL(completeData2);
-
-
- // first DialNoFdnCheck
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- // second DialNoFdnCheck
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData2);
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData2);
- call2.DialNoFdnCheck(requestStatus2, pckgCallParams2, KSomeNumber2);
-
- //wait for the first answer
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- //wait for the second answer
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
-
- AssertMockLtsyStatusL();
- // Done !
- CleanupStack::PopAndDestroy(12, this); // phone2, telServer2, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with timeout for voice calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck and tests for timeout for voice calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0005L()
- {
-
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- TBuf<256> lineName(KMmTsyVoice1LineName);
-
- // Open new line
- RLine line;
- TInt errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
-
- // open call
- _LIT(KDoubleColon, "::");
-
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
- _LIT(KSomeNumber, "123456789");
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RCall::GetCallParams
- //-------------------------------------------------------------------------
- // data for ExpectL
- RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
- TInt expecteCallId = 0;
-
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
- RMobileCall::TMobileCallInfoV1 callInfo;
-
- callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo.iService = mobileService;
- callInfo.iStatus = RMobileCall::EStatusUnknown;
- callInfo.iCallId = -1;
- callInfo.iExitCode =0;
- callInfo.iEmergency =0;
- callInfo.iForwarded =0;
- callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
- callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
- //callInfo.iDuration.iIntervel = 0; // this is protected value
- callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
- callInfo.iDialledParty.iNumberPlan =
- RMobilePhone::EUnknownNumberingPlan;
- callInfo.iDialledParty.iTypeOfNumber =
- RMobilePhone::EUnknownNumber;
-
- TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
- mockCallData(expecteCallId, mobileService, callParams, callInfo);
- mockCallData.SerialiseL(expectData);
-
-
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- // Done !
- CleanupStack::PopAndDestroy(4, this); //... this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0006
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for data calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for data calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0006L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TInt errorCode = KErrNone;
-
- //-- For Data -------------------------
- TBuf<256> lineName(KMmTsyDataLineName);
-
- // Open new line
- RLine line;
- errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
-
- // open call
- _LIT(KDoubleColon, "::");
-
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
- _LIT(KSomeNumber, "123456789");
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RMobileCall::DialNoFdnCheck when result is not cached.
- //-------------------------------------------------------------------------
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
-
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
-
- // DialNoFdnCheck isn't supported for Data Line (or rather, it's broken)
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3, this); // ... this
- }
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0006b
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for data calls with minimal parameters (RCall::TCallParams)
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0006bL()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 expectData;
- CleanupClosePushL(expectData);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- TInt errorCode = KErrNone;
-
- //-- For Voice1 -------------------------
-
- TBuf<256> lineName(KMmTsyDataLineName);
- // Open new line
- RLine line;
- errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
- // open call
- _LIT(KDoubleColon, "::");
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
- _LIT(KSomeNumber, "123456789");
-
- RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
- TInt expecteCallId = 0;
-
- RMobileCall::TMobileDataCallParamsV8 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
- RMobileCall::TMobileCallInfoV8 callInfo;
- callParams.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
- callParams.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
- callParams.iInterval = 100;
- callParams.iWaitForDialTone = RCall::EDialToneWait;
- callParams.iIdRestrict = RMobileCall::EIdRestrictDefault;
- callParams.iCug.iExplicitInvoke = EFalse;
- callParams.iCug.iCugIndex = 0xFFFF;
- callParams.iCug.iSuppressPrefCug = EFalse;
- callParams.iCug.iSuppressOA = EFalse;
- callParams.iAutoRedial = EFalse;
- callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
- callInfo.iService = mobileService;
- callInfo.iStatus = RMobileCall::EStatusUnknown;
- callInfo.iCallId =-1;
- callInfo.iExitCode =0;
- callInfo.iEmergency =0;
- callInfo.iForwarded =0;
- callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
- callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
- //callInfo.iDuration.iIntervel = 0; // this is protected value
- callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
- callInfo.iDialledParty.iNumberPlan =
- RMobilePhone::EUnknownNumberingPlan;
- callInfo.iDialledParty.iTypeOfNumber =
- RMobilePhone::EUnknownNumber;
-
- TMockLtsyCallData2< RMobileCall::TMobileDataCallParamsV8, RMobileCall::TMobileCallInfoV8 >
- mockCallData(expecteCallId, mobileService, callParams, callInfo);
- mockCallData.SerialiseL(expectData);
-
- iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
-
- TInt callId = 1;
-
- completeData.Close();
- TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> callInfoData(callId, mobileService, callInfo);
- callInfoData.SerialiseL(completeData);
- //Complete Mobile Call Info in order to set the call ID
- iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, completeData);
-
- TMockLtsyCallData0 mockDataComplete(callId, mobileService);
- completeData.Close();
- mockDataComplete.SerialiseL(completeData);
- // Complete the Dial
- iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
-
- RCall::TCallParams callParamsX;
- callParamsX.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
- callParamsX.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
- callParamsX.iInterval = 100;
- callParamsX.iWaitForDialTone = RCall::EDialToneWait;
- TPckg<RCall::TCallParams> pckgCallParamsX(callParamsX);
-
- call.DialNoFdnCheck(requestStatus, pckgCallParamsX, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(5,this);
-
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0007
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::DialNoFdnCheck for data calls
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileCall::DialNoFdnCheck for data calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0007L()
- {
-//
-// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
-//
-
-
-// This test should test cancellation of GetCallParams
-// If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if this is not relevant for this API
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- // User::WaitForRequest(mockLtsyStatus);
- CleanupStack::PopAndDestroy(2); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0008
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with bad parameter data for data calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck with bad parameter data for data calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0008L()
- {
-//
-// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
-//
-
-// This test should test sending bad parameter data for GetCallParams
-// If this API does not have any parameters, then remove this test completely.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- // Done !
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-0009
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::DialNoFdnCheck for data calls
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileCall::DialNoFdnCheck for data calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck0009L()
- {
-//
-// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
-//
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // If this API is flow controlled by Etel or if this API is
- // synchronous, remove this test completely.
-
- // To write this test:
- // If this API has parameters which have different versions, then each
- // client in this test should use a different version of parameter.
- // Otherwise, they should use the same version.
- // All versions of parameters should be used. i.e. If there are three
- // versions of a parameter, there should be three clients, one using
- // each one. If the parameter does not have different versions, use
- // two clients each using the same version.
-
-
- // Done !
- CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-00010
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with timeout for data calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck and tests for timeout for data calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck00010L()
- {
-//
-// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
-//
-
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // If this API does not have a timeout, then remove this test completely.
-
- // Done !
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-00011
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for fax calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for fax calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck00011L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TInt errorCode = KErrNone;
-
- //-- For Fax -------------------------
- TBuf<256> lineName(KMmTsyFaxLineName);
-
- // Open new line
- RLine line;
- errorCode = line.Open(iPhone, lineName);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(line);
-
- // open call
- _LIT(KDoubleColon, "::");
-
- TBuf<256> name;
- name = KMmTsyPhoneName;
- name.Append(KDoubleColon);
- name.Append(lineName);
- name.Append(KDoubleColon);
-
- RMobileCall call;
- errorCode = call.OpenNewCall(line, name);
- ASSERT_EQUALS(KErrNone, errorCode);
- CleanupClosePushL(call);
-
- TRequestStatus requestStatus;
- _LIT(KSomeNumber, "123456789");
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RMobileCall::DialNoFdnCheck when result is not cached.
- //-------------------------------------------------------------------------
- RMobileCall::TMobileCallParamsV1 callParams;
- RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
-
- call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
-
- User::WaitForRequest(requestStatus);
-
- // DialNoFdnCheck isn't supported for Fax Line
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3, this); // ... this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-00012
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::DialNoFdnCheck for fax calls
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileCall::DialNoFdnCheck for fax calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck00012L()
- {
-//
-// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
-//
-
-// This test should test cancellation of GetCallParams
-// If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if this is not relevant for this API
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- // User::WaitForRequest(mockLtsyStatus);
- CleanupStack::PopAndDestroy(2); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-00013
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with bad parameter data for fax calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck with bad parameter data for fax calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck00013L()
- {
-//
-// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
-//
-
-// This test should test sending bad parameter data for GetCallParams
-// If this API does not have any parameters, then remove this test completely.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test A: Test passing wrong version of parameters to
- // RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- //-------------------------------------------------------------------------
- // Test B: Test passing wrong descriptor size to parameter in
- // RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- //-------------------------------------------------------------------------
- // Test C: Test passing out of bounds parameters to
- // RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // Remove the test above if it is not relevant for this API
-
- // Done !
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-00014
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::DialNoFdnCheck for fax calls
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileCall::DialNoFdnCheck for fax calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck00014L()
- {
-//
-// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
-//
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(iTelServer,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // If this API is flow controlled by Etel or if this API is
- // synchronous, remove this test completely.
-
- // To write this test:
- // If this API has parameters which have different versions, then each
- // client in this test should use a different version of parameter.
- // Otherwise, they should use the same version.
- // All versions of parameters should be used. i.e. If there are three
- // versions of a parameter, there should be three clients, one using
- // each one. If the parameter does not have different versions, use
- // two clients each using the same version.
-
-
- // Done !
- CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-CDNFC-00015
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with timeout for fax calls
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileCall::DialNoFdnCheck and tests for timeout for fax calls
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestDialNoFdnCheck00015L()
- {
-//
-// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
-//
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RCall::GetCallParams
- //-------------------------------------------------------------------------
-
- // If this API does not have a timeout, then remove this test completely.
-
- // Done !
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MGFS-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetFdnStatus
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::GetFdnStatus
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestGetFdnStatus0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus;
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus, KErrNotSupported);
-
- iPhone.GetFdnStatus(requestStatus, fdnStatus);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
-
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus, KErrNotSupported);
- TInt ret = iPhone.GetFdnStatus(fdnStatus);
- ASSERT_EQUALS(KErrNotSupported, ret);
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
-
- RMobilePhone::TMobilePhoneFdnStatus fdnStatusComplete(RMobilePhone::EFdnActive);
- TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> ltsyData2(fdnStatusComplete);
- ltsyData2.SerialiseL(completeData);
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
- iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrGeneral, completeData);
-
- iPhone.GetFdnStatus(requestStatus, fdnStatus);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RMobilePhone::GetFdnStatus when result is not cached.
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
- iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
-
- fdnStatus = RMobilePhone::EFdnNotActive;
-
- iPhone.GetFdnStatus(requestStatus, fdnStatus);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_TRUE(fdnStatusComplete == fdnStatus);
-
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
- iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
-
- fdnStatus = RMobilePhone::EFdnNotActive;
-
- ret = iPhone.GetFdnStatus(fdnStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, ret);
- ASSERT_TRUE(fdnStatusComplete == fdnStatus);
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RMobilePhone::GetFdnStatus
- // from LTSY.
- //-------------------------------------------------------------------------
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
- User::WaitForRequest(mockLtsyStatus);
-
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(2, this); // completeData, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MGFS-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::GetFdnStatus
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobilePhone::GetFdnStatus
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestGetFdnStatus0002L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnNotActive);
-
- RMobilePhone::TMobilePhoneFdnStatus fdnStatusComplete(RMobilePhone::EFdnActive);
- TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> ltsyData2(fdnStatusComplete);
- ltsyData2.SerialiseL(completeData);
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
- iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
-
- iPhone.GetFdnStatus(requestStatus, fdnStatus);
- iPhone.CancelAsyncRequest(EMobilePhoneGetFdnStatus);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(2); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MGFS-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::GetFdnStatus
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobilePhone::GetFdnStatus
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestGetFdnStatus0004L()
- {
-
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(telServer2,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RMobilePhone::GetFdnStatus
- //-------------------------------------------------------------------------
-
- // If this API is flow controlled by Etel or if this API is
- // synchronous, remove this test completely.
-
- RBuf8 completeData;
- CleanupClosePushL(completeData);
-
-
- TRequestStatus requestStatus;
- TRequestStatus requestStatus2;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnNotActive);
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus2(RMobilePhone::EFdnNotActive);
-
- RMobilePhone::TMobilePhoneFdnStatus fdnStatusComplete(RMobilePhone::EFdnActive);
- TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> ltsyData2(fdnStatusComplete);
- ltsyData2.SerialiseL(completeData);
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
- iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
-
- iPhone.GetFdnStatus(requestStatus, fdnStatus);
-
- phone2.GetFdnStatus(requestStatus2, fdnStatus2);
-
- User::WaitForRequest(requestStatus);
-
- User::WaitForRequest(requestStatus2);
-
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());
-
- // Done !
- CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
-
- }
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MGFS-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetFdnStatus with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::GetFdnStatus and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestGetFdnStatus0005L()
- {
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RMobilePhone::SetFdnSetting
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus;
-
- iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
-
- iPhone.GetFdnStatus(requestStatus, fdnStatus);
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
-
- CleanupStack::PopAndDestroy(1, this); // data, this
- }
-
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MSFS-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobilePhone::SetFdnSetting
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::SetFdnSetting
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestSetFdnSetting0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
-
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrGeneral);
-
- iPhone.SetFdnSetting(requestStatus, fdnSetting);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
-
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RMobilePhone::SetFdnSetting when result is not cached.
- //-------------------------------------------------------------------------
-
-
- TRequestStatus requestStatus2;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
- //to check what will be set
- iPhone.NotifyFdnStatusChange(requestStatus2, fdnStatus);
-
- fdnSetting = RMobilePhone::EFdnSetOff;
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
-
- iPhone.SetFdnSetting(requestStatus, fdnSetting);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus);
-
-
- iPhone.NotifyFdnStatusChange(requestStatus2, fdnStatus);
-
- fdnSetting = RMobilePhone::EFdnSetOn;
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
-
- iPhone.SetFdnSetting(requestStatus, fdnSetting);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(RMobilePhone::EFdnActive, fdnStatus);
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of RMobilePhone::SetFdnSetting
- // from LTSY.
- //-------------------------------------------------------------------------
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
- User::WaitForRequest(mockLtsyStatus);
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(1, this); // this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MSFS-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::SetFdnSetting
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobilePhone::SetFdnSetting
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestSetFdnSetting0002L()
- {
-
-// This test should test cancellation of SetFdnSetting
-// If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RMobilePhone::SetFdnSetting
- //-------------------------------------------------------------------------
-
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
-
- iPhone.SetFdnSetting(requestStatus, fdnSetting);
-
- iPhone.CancelAsyncRequest(EMobilePhoneSetFdnSetting);
-
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
-
- User::WaitForRequest(requestStatus);
- AssertMockLtsyStatusL();
-
- //TSY has started a request and it is not possible to then
- //cancel this request. The best thing for the TSY to do in this case
- //is to proceed as though the Cancel never happened. The server's call
- //to the TSY cancel function will return synchronously. The TSY then
- //continues to wait for the original acknowledgement and when it
- //receives it, the TSY will complete the original request.
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- User::WaitForRequest(mockLtsyStatus);
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(1); // this
-
- }
-
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MSFS-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::SetFdnSetting
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobilePhone::SetFdnSetting
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestSetFdnSetting0004L()
- {
-
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(telServer2,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RMobilePhone::SetFdnSetting
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus1;
- TRequestStatus requestStatus2;
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting1(RMobilePhone::EFdnSetOff);
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting2(RMobilePhone::EFdnSetOn);
- iPhone.SetFdnSetting(requestStatus1, fdnSetting1);
- phone2.SetFdnSetting(requestStatus2, fdnSetting2);
-
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
-
- User::WaitForRequest(requestStatus1);
- ASSERT_EQUALS(KErrNone, requestStatus1.Int());
-
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- // Done !
- CleanupStack::PopAndDestroy(3, this); // phone2, telServer2, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MSFS-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobilePhone::SetFdnSetting with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::SetFdnSetting and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestSetFdnSetting0005L()
- {
-
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of RMobilePhone::SetFdnSetting
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 120302);
- // assert added because request stays uncompleted and this prevents later test from correct execution
- ASSERT_TRUE(EFalse);
-
- iPhone.SetFdnSetting(requestStatus, fdnSetting);
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
- // Done !
- CleanupStack::PopAndDestroy(1, this); // data, this
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MNFSC-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobilePhone::NotifyFdnStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::NotifyFdnStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestNotifyFdnStatusChange0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
-
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOn);
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // RMobilePhone::NotifyFdnStatusChange when result is not cached.
- //-------------------------------------------------------------------------
-
- iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
-
- TRequestStatus requestStatus2;
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
- iPhone.SetFdnSetting(requestStatus2, fdnSetting);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(RMobilePhone::EFdnActive, fdnStatus);
- AssertMockLtsyStatusL();
-
-
-
- fdnSetting = RMobilePhone::EFdnSetOff;
-
- iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
-
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
- iPhone.SetFdnSetting(requestStatus2, fdnSetting);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus);
-
- // test E not needed cause complete for EMobilePhoneNotifyFdnStatusChange
- // is called only in EMobilePhoneSetFdnSetting request
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(1, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MNFSC-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::NotifyFdnStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobilePhone::NotifyFdnStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestNotifyFdnStatusChange0002L()
- {
-
-// This test should test cancellation of NotifyFdnStatusChange
-// If this API does not have a cancel, the test step should be completely removed.
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- //-------------------------------------------------------------------------
- // Test cancelling of RMobilePhone::NotifyFdnStatusChange
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
- iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
-
- iPhone.CancelAsyncRequest(EMobilePhoneNotifyFdnStatusChange);
-
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOn);
- TRequestStatus requestStatus2;
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
- iPhone.SetFdnSetting(requestStatus2, fdnSetting);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- User::WaitForRequest(mockLtsyStatus);
- CleanupStack::PopAndDestroy(1); // data, this
-
- }
-
-
-
-/**
-@SYMTestCaseID BA-CTSY-FXD-MNFSC-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::NotifyFdnStatusChange
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobilePhone::NotifyFdnStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyFixedDiallingFU::TestNotifyFdnStatusChange0004L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- // Open second client
- RTelServer telServer2;
- TInt ret = telServer2.Connect();
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(telServer2);
-
- RMobilePhone phone2;
- ret = phone2.Open(telServer2,KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting RMobilePhone::NotifyFdnStatusChange
- //-------------------------------------------------------------------------
- TRequestStatus requestStatus;
- TRequestStatus requestStatus2;
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
- RMobilePhone::TMobilePhoneFdnStatus fdnStatus2(RMobilePhone::EFdnUnknown);
-
- iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
- phone2.NotifyFdnStatusChange(requestStatus2, fdnStatus2);
-
- RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
- TRequestStatus requestStatus3;
- iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
- iPhone.SetFdnSetting(requestStatus3, fdnSetting);
-
- User::WaitForRequest(requestStatus3);
- ASSERT_EQUALS(KErrNone, requestStatus3.Int());
-
- User::WaitForRequest(requestStatus);
- ASSERT_EQUALS(KErrNone, requestStatus.Int());
- ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus);
-
- User::WaitForRequest(requestStatus2);
- ASSERT_EQUALS(KErrNone, requestStatus2.Int());
- ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus2);
-
-
- // Done !
- CleanupStack::PopAndDestroy(3, this); // phone2, telServer2, this
-
- }
-
-
-
-
+// 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:
+// The TEFUnit test suite for FixedDialling in the Common TSY.
+//
+//
+
+/**
+ @file
+*/
+
+#include "cctsyfixeddiallingfu.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <ctsy/mmtsy_names.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include "tmockltsydata.h"
+#include <ctsy/serviceapi/gsmerror.h>
+
+CTestSuite* CCTsyFixedDiallingFU::CreateSuiteL(const TDesC& aName)
+ {
+ SUB_SUITE;
+
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0001bL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0001cL);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0005L);
+
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0006L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0006bL);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0007L); still not supported
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0008L); still not supported
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck0009L); still not supported
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00010L); still not supported
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00011L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00012L); still not supported
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00013L); still not supported
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00014L); still not supported
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestDialNoFdnCheck00015L); still not supported
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0002L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestGetFdnStatus0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0002L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestSetFdnSetting0005L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0002L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0003L);
+ ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0004L);
+ //ADD_TEST_STEP_ISO_CPP(CCTsyFixedDiallingFU, TestNotifyFdnStatusChange0005L);
+
+ END_SUITE;
+ }
+
+
+//
+// Actual test cases
+//
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ TInt errorCode = KErrNone;
+
+ //-- For Voice1 -------------------------
+
+ TBuf<256> lineName(KMmTsyVoice1LineName);
+ // Open new line
+ RLine line;
+ errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+ // open call
+ _LIT(KDoubleColon, "::");
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+ _LIT(KSomeNumber, "123456789");
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+ // data for ExpextL
+ RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
+ TInt expecteCallId = 0;
+
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+ RMobileCall::TMobileCallInfoV8 callInfo;
+
+ callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo.iService = mobileService;
+ callInfo.iStatus = RMobileCall::EStatusUnknown;
+ callInfo.iCallId = -1;
+ callInfo.iExitCode =0;
+ callInfo.iEmergency =0;
+ callInfo.iForwarded =0;
+ callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
+ callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
+ //callInfo.iDuration.iIntervel = 0; // this is protected value
+ callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
+ callInfo.iDialledParty.iNumberPlan =
+ RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iDialledParty.iTypeOfNumber =
+ RMobilePhone::EUnknownNumber;
+
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV8 >
+ mockCallData(expecteCallId, mobileService, callParams, callInfo);
+ mockCallData.SerialiseL(expectData);
+
+
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNotSupported);
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+ CleanupStack::PopAndDestroy();// call
+
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RMobileCall::DialNoFdnCheck
+ //-------------------------------------------------------------------------
+ TInt callId = 1;
+ // create new incoming call
+ TName incomingCallName;
+ RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusIdle;
+
+ errorCode = CreateIncomingCallL(line, callId, lineName, incomingCallName,
+ mobileService, mobileCallStatus);
+ ASSERT_EQUALS(KErrNone, errorCode);
+
+ // -------- make for this call callId > 0 --------------------------------------
+ line.NotifyIncomingCall(requestStatus, incomingCallName);
+
+ callInfo.iService = mobileService;
+ TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> idleCallData3(callId, mobileService, callInfo);
+ idleCallData3.SerialiseL(completeData);
+
+ TRequestStatus mockLtsyStatus;
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EEtelLineNotifyIncomingCall, KErrNone, completeData);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ errorCode = call.OpenExistingCall(line, incomingCallName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+ //-------------------------------------------------------------------------
+
+ // data for ExpectL
+ callInfo.iRemoteParty.iDirection = RMobileCall::EDirectionUnknown;
+
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
+ mockCallData2(callId, mobileService, callParams, callInfo);
+ expectData.Close();
+ mockCallData2.SerialiseL(expectData);
+ // data for CompleteL
+ TMockLtsyCallData0 mockDataComplete(callId, mobileService);
+ completeData.Close();
+ mockDataComplete.SerialiseL(completeData);
+
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrGeneral, completeData);
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RMobileCall::DialNoFdnCheck when result is not cached.
+ //-------------------------------------------------------------------------
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RMobileCall::DialNoFdnCheck
+ // from LTSY.
+ //-------------------------------------------------------------------------
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST 1 for coverage increasing
+ //-------------------------------------------------------------------------
+ // change status of call
+ mobileCallStatus = RMobileCall::EStatusRinging;
+
+ TMockLtsyCallData1<RMobileCall::TMobileCallStatus> mockCallData4(callId, mobileService, mobileCallStatus);
+ completeData.Close();
+ mockCallData4.SerialiseL(completeData);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, completeData);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ // data for ExpectL
+ TInt hangUpCause( KErrGsmReleaseByUser );
+ TBool autoStChangeDisable = EFalse;
+
+ TMockLtsyCallData2< TInt, TBool >
+ mockCallDataClose(callId, mobileService, hangUpCause, autoStChangeDisable);
+ expectData.Close();
+ mockCallDataClose.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EEtelCallHangUp, expectData); // this expect is necessary for call closing when EStatusRinging
+ CleanupStack::PopAndDestroy(); // call
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST 2 for coverage increasing
+ //-------------------------------------------------------------------------
+ // create new call
+ callId = 2;
+ mobileCallStatus = RMobileCall::EStatusIdle;
+ errorCode = CreateIncomingCallL(line, callId, lineName, incomingCallName,
+ mobileService, mobileCallStatus);
+ ASSERT_EQUALS(KErrNone, errorCode);
+
+ errorCode = call.OpenExistingCall(line, incomingCallName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ // set RFStatus to Inactive state
+ TRfStateInfo rfInfo (ERfsStateInfoInactive);
+
+ TMockLtsyData1<TRfStateInfo> mockCallData5(rfInfo);
+ completeData.Close();
+ mockCallData5.SerialiseL(completeData);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, completeData);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+ User::WaitForRequest(requestStatus);
+
+ TInt expectedErrorCode = ( KErrGeneral & 0x0000FFFF ) |( KErrGsmOfflineOpNotAllowed << 16 );
+ expectedErrorCode = (expectedErrorCode>>16) | 0xFFFF0000;
+
+
+ ASSERT_EQUALS(expectedErrorCode, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ // close call, cause theres no way to use it again
+ CleanupStack::PopAndDestroy(&call);
+ AssertMockLtsyStatusL();
+
+
+ // create new incoming call
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ // set RFStatus to Normal state
+ rfInfo = ERfsStateInfoNormal;
+
+ TMockLtsyData1<TRfStateInfo> mockCallData6(rfInfo);
+
+ completeData.Close();
+ mockCallData6.SerialiseL(completeData);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EMmTsyBootGetRFStatusIPC, KErrNone, completeData);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+
+ // data for ExpectL
+ callInfo.iRemoteParty.iDirection = RMobileCall::EDirectionUnknown;
+
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
+ mockCallData7(expecteCallId, mobileService, callParams, callInfo);
+ expectData.Close();
+ mockCallData7.SerialiseL(expectData);
+
+ // Test A: ...
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNotSupported);
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ // ...and now repeat this test A
+ // This repetition is here to test that SetDialFlag(EFalse) is called when
+ // the EMobileCallDialNoFdnCheck request completes with an error
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNotSupported);
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST to show defect 120102
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
+ CallGetMobileCallInfoL(callId, mobileService, KSomeNumber);
+
+ completeData.Close();
+ TMockLtsyCallData0 mockDataComplete2(callId, mobileService);
+ mockDataComplete2.SerialiseL(completeData);
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(5, this); // ... this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0001b
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0001bL()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ TInt errorCode = KErrNone;
+
+ //-- For Voice1 -------------------------
+ TBuf<256> lineName(KMmTsyVoice1LineName);
+
+ // Open new line
+ RLine line;
+ errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+
+ // open call
+ _LIT(KDoubleColon, "::");
+
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+
+ _LIT(KSomeNumber, "123456789");
+
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ // for API version without params
+ // i.e. for void RMobileCall::DialNoFdnCheck(TRequestStatus& aReqStatus,const TDesC& aTelNumber)
+ //-------------------------------------------------------------------------
+ // data for ExpextL
+ RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
+ TInt expecteCallId = 0;
+
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+ RMobileCall::TMobileCallInfoV1 callInfo;
+
+ callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo.iService = mobileService;
+ callInfo.iStatus = RMobileCall::EStatusUnknown;
+ callInfo.iCallId = -1;
+ callInfo.iExitCode =0;
+ callInfo.iEmergency =0;
+ callInfo.iForwarded =0;
+ callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
+ callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
+ //callInfo.iDuration.iIntervel = 0; // this is protected value
+ callInfo.iTch = RMobileCall::ETchUnknown;
+ callInfo.iRemoteParty.iCallingName = KNullDesC;
+ callInfo.iRemoteParty.iRemoteIdStatus = RMobileCall::ERemoteIdentityUnknown;
+ callInfo.iRemoteParty.iRemoteNumber.iTelNumber = KNullDesC;
+ callInfo.iRemoteParty.iRemoteNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber;
+ callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
+ callInfo.iDialledParty.iNumberPlan =
+ RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iDialledParty.iTypeOfNumber =
+ RMobilePhone::EUnknownNumber;
+
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
+ mockCallData(expecteCallId, mobileService, callParams, callInfo);
+ mockCallData.SerialiseL(expectData);
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 120101);
+ iMockLTSY.ExpectL(EEtelCallDial, expectData, KErrNone);
+
+ // Cause to fail to show defect 120101
+ ASSERT_TRUE(EFalse);
+
+ call.DialNoFdnCheck(requestStatus, KSomeNumber);
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(4, this); // call,line, expectData, this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0001c
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for voice calls with minimal parameters (RCall::TCallParams)
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0001cL()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ TInt errorCode = KErrNone;
+
+ //-- For Voice1 -------------------------
+
+ TBuf<256> lineName(KMmTsyVoice1LineName);
+ // Open new line
+ RLine line;
+ errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+ // open call
+ _LIT(KDoubleColon, "::");
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+ _LIT(KSomeNumber, "123456789");
+
+ RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
+ TInt expecteCallId = 0;
+
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+ RMobileCall::TMobileCallInfoV8 callInfo;
+ callParams.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
+ callParams.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
+ callParams.iInterval = 100;
+ callParams.iWaitForDialTone = RCall::EDialToneWait;
+ callParams.iIdRestrict = RMobileCall::EIdRestrictDefault;
+ callParams.iCug.iExplicitInvoke = EFalse;
+ callParams.iCug.iCugIndex = 0xFFFF;
+ callParams.iCug.iSuppressPrefCug = EFalse;
+ callParams.iCug.iSuppressOA = EFalse;
+ callParams.iAutoRedial = EFalse;
+ callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo.iService = mobileService;
+ callInfo.iStatus = RMobileCall::EStatusUnknown;
+ callInfo.iCallId =-1;
+ callInfo.iExitCode =0;
+ callInfo.iEmergency =0;
+ callInfo.iForwarded =0;
+ callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
+ callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
+ //callInfo.iDuration.iIntervel = 0; // this is protected value
+ callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
+ callInfo.iDialledParty.iNumberPlan =
+ RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iDialledParty.iTypeOfNumber =
+ RMobilePhone::EUnknownNumber;
+
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV8 >
+ mockCallData(expecteCallId, mobileService, callParams, callInfo);
+ mockCallData.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
+
+ TInt callId = 1;
+
+ completeData.Close();
+ TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> callInfoData(callId, mobileService, callInfo);
+ callInfoData.SerialiseL(completeData);
+ //Complete Mobile Call Info in order to set the call ID
+ iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, completeData);
+
+ TMockLtsyCallData0 mockDataComplete(callId, mobileService);
+ completeData.Close();
+ mockDataComplete.SerialiseL(completeData);
+ // Complete the Dial
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
+
+ RCall::TCallParams callParamsX;
+ callParamsX.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
+ callParamsX.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
+ callParamsX.iInterval = 100;
+ callParamsX.iWaitForDialTone = RCall::EDialToneWait;
+ TPckg<RCall::TCallParams> pckgCallParamsX(callParamsX);
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParamsX, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(5,this);
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0002L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ TInt errorCode = KErrNone;
+
+ //-- For Voice1 -------------------------
+
+ TBuf<256> lineName(KMmTsyVoice1LineName);
+ // Open new line
+ RLine line;
+ errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+ // open call
+ _LIT(KDoubleColon, "::");
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+ _LIT(KSomeNumber, "123456789");
+
+ RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
+
+ TInt expectCallId = 0;
+
+ // -------- make for this call callId > 0 --------------------------------------
+ RMobileCall::TMobileCallInfoV8 callInfo;
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RMobileCall::DialNoFdnCheck
+ //-------------------------------------------------------------------------
+
+ // data for ExpextL
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+
+ callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo.iService = mobileService;
+ callInfo.iStatus = RMobileCall::EStatusUnknown;
+ callInfo.iCallId = -1;
+ callInfo.iExitCode =0;
+ callInfo.iEmergency =0;
+ callInfo.iForwarded =0;
+ callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
+ callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
+ callInfo.iTch = RMobileCall::ETchUnknown;
+ callInfo.iRemoteParty.iCallingName = KNullDesC;
+ callInfo.iRemoteParty.iRemoteIdStatus = RMobileCall::ERemoteIdentityUnknown;
+ callInfo.iRemoteParty.iRemoteNumber.iTelNumber = KNullDesC;
+ callInfo.iRemoteParty.iRemoteNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iRemoteParty.iRemoteNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber;
+ callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
+ callInfo.iDialledParty.iNumberPlan =
+ RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iDialledParty.iTypeOfNumber =
+ RMobilePhone::EUnknownNumber;
+
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
+ mockCallData(expectCallId, mobileService, callParams, callInfo);
+ mockCallData.SerialiseL(expectData);
+
+ // Expect the dial
+
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData, KErrNone);
+
+ // Dial and cancel
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+ call.CancelAsyncRequest(EMobileCallDialNoFdnCheck);
+
+ // prepare and complete Mobile Call info
+
+ TInt callId = 1;
+
+ _LIT(KNullDesC , "");
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ RMobileCall::TMobileCallInfoV1 callInfo2;
+ callInfo2.iDialledParty.iTelNumber.Copy(KSomeNumber);
+ callInfo2.iService = mobileService;
+ callInfo2.iEmergency = EFalse;
+ callInfo2.iRemoteParty.iCallingName = KNullDesC;
+ callInfo2.iRemoteParty.iRemoteIdStatus = RMobileCall::ERemoteIdentityUnknown;
+ callInfo2.iRemoteParty.iRemoteNumber.iTelNumber = KNullDesC;
+ callInfo2.iRemoteParty.iRemoteNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
+ callInfo2.iRemoteParty.iRemoteNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber;
+ callInfo2.iForwarded = EFalse;
+ callInfo2.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallRemoteParty;
+
+ TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> callInfoData(callId, mobileService, callInfo2);
+ callInfoData.SerialiseL(data);
+
+ iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, data);
+
+ //Pause the MockLTSY so we can program the sequence of Expect - Completes involved
+ //with cancelling
+ iMockLTSY.PauseCompletion();
+
+ RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusDialling;
+ TMockLtsyCallData1<RMobileCall::TMobileCallStatus> mockCallDataStatus(callId, mobileService, mobileCallStatus);
+ completeData.Close();
+ mockCallDataStatus.SerialiseL(completeData);
+
+ //Change state to dialling, this set the call ID
+ iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, completeData);
+
+
+ TInt hangUpCause = KErrGsmReleaseByUser;
+ TBool autoStChangeDisable = ETrue;
+ TMockLtsyCallData2<TInt, TBool> mockCallData2(callId, mobileService,
+ hangUpCause,
+ autoStChangeDisable);
+ expectData.Close();
+ mockCallData2.SerialiseL(expectData);
+ // Since the call ID has been set, the CTSY will go ahead with the cancellation
+ // by hanging up.
+ iMockLTSY.ExpectL(EEtelCallHangUp, expectData);
+
+ // Cancelled Dial request. After this CTSY hangs up the call and it goes to idle state.
+
+
+ RMobileCall::TMobileCallStatus mobileCallStatus2 = RMobileCall::EStatusIdle;
+ TMockLtsyCallData1<RMobileCall::TMobileCallStatus> mockCallDataStatus2(callId, mobileService, mobileCallStatus2);
+ completeData.Close();
+ mockCallDataStatus2.SerialiseL(completeData);
+
+ // Complete the hangup
+ iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrGsmReleaseByUser, completeData);
+
+ // Release the MockLTSY so that the above sequence is triggered.
+ iMockLTSY.ResumeCompletion();
+
+
+ // Check results.
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+
+ CleanupStack::PopAndDestroy(6, this); // expectData, this ...
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0004L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(telServer2, KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 expectData2;
+ CleanupClosePushL(expectData2);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ RBuf8 completeData2;
+ CleanupClosePushL(completeData2);
+
+
+ //-- Voice1 -------------------------
+ TBuf<256> lineName(KMmTsyVoice1LineName);
+ // Open new line
+ RLine line;
+ ret = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(line);
+
+
+ //-- Voice1-------------------------
+ TBuf<256> lineName2(KMmTsyVoice1LineName);
+ // Open new line
+ RLine line2;
+ ret = line2.Open(phone2, lineName2);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(line2);
+ //----------------------------------------
+
+ // open call
+ _LIT(KDoubleColon, "::");
+
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ RMobileCall call2;
+
+ TInt callId = 1;
+ TInt callId2 = 2;
+ TName incomingCallName;
+ TName incomingCallName2;
+ TRequestStatus requestStatus;
+ TRequestStatus requestStatus2;
+ TRequestStatus mockLtsyStatus;
+
+ RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusIdle;
+ RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
+
+ // create new incoming call
+ ret = CreateIncomingCallL(line, callId, lineName, incomingCallName,
+ mobileService, mobileCallStatus);
+ ASSERT_EQUALS(KErrNone, ret);
+ // -------- make for the first call callId > 0 --------------------------------------
+ RMobileCall::TMobileCallInfoV1 callInfo;
+
+ line.NotifyIncomingCall(requestStatus, incomingCallName);
+
+ callInfo.iService = mobileService;
+ TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> idleCallData(callId, mobileService, callInfo);
+ idleCallData.SerialiseL(completeData);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EEtelLineNotifyIncomingCall, KErrNone, completeData);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+
+ TInt errorCode = call.OpenExistingCall(line, incomingCallName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+
+ // create new incoming call
+ ret = CreateIncomingCallL(line2, callId2, lineName2, incomingCallName2,
+ mobileService, mobileCallStatus);
+ ASSERT_EQUALS(KErrNone, ret);
+ // ------- make for the second call callId > 0 --------------------------------------
+ RMobileCall::TMobileCallInfoV1 callInfo2;
+
+ line2.NotifyIncomingCall(requestStatus2, incomingCallName2);
+
+ callInfo2.iService = mobileService;
+ TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> idleCallData2(callId2, mobileService, callInfo2);
+ idleCallData2.SerialiseL(completeData2);
+
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EEtelLineNotifyIncomingCall, KErrNone, completeData2);
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ User::WaitForRequest(requestStatus2);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ errorCode = call2.OpenExistingCall(line2, incomingCallName2);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call2);
+ //-------------------------------------------------------------------------
+
+ _LIT(KSomeNumber, "123456789");
+ _LIT(KSomeNumber2, "987654321");
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // --- data for first ExpectL ---
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+
+ // set up callInfo
+ callInfo.iRemoteParty.iDirection = RMobileCall::EMobileTerminated;
+ callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo.iService = mobileService;
+ callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
+ mockCallData2(callId, mobileService, callParams, callInfo);
+ mockCallData2.SerialiseL(expectData);
+
+ // --- data for the first CompleteL ---
+ TMockLtsyCallData0 mockDataComplete(callId, mobileService);
+ completeData.Close();
+ mockDataComplete.SerialiseL(completeData);
+
+ // --- data for second ExpectL ---
+ RMobileCall::TMobileCallParamsV1 callParams2;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams2(callParams2);
+
+ // set up callInfo
+ callInfo2.iRemoteParty.iDirection = RMobileCall::EMobileTerminated;
+ callInfo2.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo2.iService = mobileService;
+ callInfo2.iDialledParty.iTelNumber.Copy( KSomeNumber2 );
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
+ mockCallData3(callId2, mobileService, callParams2, callInfo2);
+ mockCallData3.SerialiseL(expectData2);
+
+ // --- data for the second CompleteL ---
+ TMockLtsyCallData0 mockDataComplete2(callId2, mobileService);
+ completeData2.Close();
+ mockDataComplete2.SerialiseL(completeData2);
+
+
+ // first DialNoFdnCheck
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ // second DialNoFdnCheck
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData2);
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData2);
+ call2.DialNoFdnCheck(requestStatus2, pckgCallParams2, KSomeNumber2);
+
+ //wait for the first answer
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ //wait for the second answer
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+
+ AssertMockLtsyStatusL();
+ // Done !
+ CleanupStack::PopAndDestroy(12, this); // phone2, telServer2, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with timeout for voice calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck and tests for timeout for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0005L()
+ {
+
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ TBuf<256> lineName(KMmTsyVoice1LineName);
+
+ // Open new line
+ RLine line;
+ TInt errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+
+ // open call
+ _LIT(KDoubleColon, "::");
+
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+ _LIT(KSomeNumber, "123456789");
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RCall::GetCallParams
+ //-------------------------------------------------------------------------
+ // data for ExpectL
+ RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
+ TInt expecteCallId = 0;
+
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+ RMobileCall::TMobileCallInfoV1 callInfo;
+
+ callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo.iService = mobileService;
+ callInfo.iStatus = RMobileCall::EStatusUnknown;
+ callInfo.iCallId = -1;
+ callInfo.iExitCode =0;
+ callInfo.iEmergency =0;
+ callInfo.iForwarded =0;
+ callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
+ callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
+ //callInfo.iDuration.iIntervel = 0; // this is protected value
+ callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
+ callInfo.iDialledParty.iNumberPlan =
+ RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iDialledParty.iTypeOfNumber =
+ RMobilePhone::EUnknownNumber;
+
+ TMockLtsyCallData2< RMobileCall::TMobileCallParamsV1, RMobileCall::TMobileCallInfoV1 >
+ mockCallData(expecteCallId, mobileService, callParams, callInfo);
+ mockCallData.SerialiseL(expectData);
+
+
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ // Done !
+ CleanupStack::PopAndDestroy(4, this); //... this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0006
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0006L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TInt errorCode = KErrNone;
+
+ //-- For Data -------------------------
+ TBuf<256> lineName(KMmTsyDataLineName);
+
+ // Open new line
+ RLine line;
+ errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+
+ // open call
+ _LIT(KDoubleColon, "::");
+
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+ _LIT(KSomeNumber, "123456789");
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RMobileCall::DialNoFdnCheck when result is not cached.
+ //-------------------------------------------------------------------------
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+
+ // DialNoFdnCheck isn't supported for Data Line (or rather, it's broken)
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3, this); // ... this
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0006b
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for data calls with minimal parameters (RCall::TCallParams)
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for voice calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0006bL()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 expectData;
+ CleanupClosePushL(expectData);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ TInt errorCode = KErrNone;
+
+ //-- For Voice1 -------------------------
+
+ TBuf<256> lineName(KMmTsyDataLineName);
+ // Open new line
+ RLine line;
+ errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+ // open call
+ _LIT(KDoubleColon, "::");
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+ _LIT(KSomeNumber, "123456789");
+
+ RMobilePhone::TMobileService mobileService = RMobilePhone::ECircuitDataService;
+ TInt expecteCallId = 0;
+
+ RMobileCall::TMobileDataCallParamsV8 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+ RMobileCall::TMobileCallInfoV8 callInfo;
+ callParams.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
+ callParams.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
+ callParams.iInterval = 100;
+ callParams.iWaitForDialTone = RCall::EDialToneWait;
+ callParams.iIdRestrict = RMobileCall::EIdRestrictDefault;
+ callParams.iCug.iExplicitInvoke = EFalse;
+ callParams.iCug.iCugIndex = 0xFFFF;
+ callParams.iCug.iSuppressPrefCug = EFalse;
+ callParams.iCug.iSuppressOA = EFalse;
+ callParams.iAutoRedial = EFalse;
+ callInfo.iValid = RMobileCall::KCallDialledParty | RMobileCall::KCallAlternating;
+ callInfo.iService = mobileService;
+ callInfo.iStatus = RMobileCall::EStatusUnknown;
+ callInfo.iCallId =-1;
+ callInfo.iExitCode =0;
+ callInfo.iEmergency =0;
+ callInfo.iForwarded =0;
+ callInfo.iPrivacy = RMobilePhone::EPrivacyUnspecified;
+ callInfo.iAlternatingCall = RMobilePhone::EAlternatingModeUnspecified;
+ //callInfo.iDuration.iIntervel = 0; // this is protected value
+ callInfo.iDialledParty.iTelNumber.Copy( KSomeNumber );
+ callInfo.iDialledParty.iNumberPlan =
+ RMobilePhone::EUnknownNumberingPlan;
+ callInfo.iDialledParty.iTypeOfNumber =
+ RMobilePhone::EUnknownNumber;
+
+ TMockLtsyCallData2< RMobileCall::TMobileDataCallParamsV8, RMobileCall::TMobileCallInfoV8 >
+ mockCallData(expecteCallId, mobileService, callParams, callInfo);
+ mockCallData.SerialiseL(expectData);
+
+ iMockLTSY.ExpectL(EMobileCallDialNoFdnCheck, expectData);
+
+ TInt callId = 1;
+
+ completeData.Close();
+ TMockLtsyCallData1<RMobileCall::TMobileCallInfoV1> callInfoData(callId, mobileService, callInfo);
+ callInfoData.SerialiseL(completeData);
+ //Complete Mobile Call Info in order to set the call ID
+ iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, completeData);
+
+ TMockLtsyCallData0 mockDataComplete(callId, mobileService);
+ completeData.Close();
+ mockDataComplete.SerialiseL(completeData);
+ // Complete the Dial
+ iMockLTSY.CompleteL(EMobileCallDialNoFdnCheck, KErrNone, completeData);
+
+ RCall::TCallParams callParamsX;
+ callParamsX.iSpeakerControl = RCall::EMonitorSpeakerControlOnUntilCarrier;
+ callParamsX.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow;
+ callParamsX.iInterval = 100;
+ callParamsX.iWaitForDialTone = RCall::EDialToneWait;
+ TPckg<RCall::TCallParams> pckgCallParamsX(callParamsX);
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParamsX, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(5,this);
+
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0007
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::DialNoFdnCheck for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileCall::DialNoFdnCheck for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0007L()
+ {
+//
+// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
+//
+
+
+// This test should test cancellation of GetCallParams
+// If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if this is not relevant for this API
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ // User::WaitForRequest(mockLtsyStatus);
+ CleanupStack::PopAndDestroy(2); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0008
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with bad parameter data for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck with bad parameter data for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0008L()
+ {
+//
+// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
+//
+
+// This test should test sending bad parameter data for GetCallParams
+// If this API does not have any parameters, then remove this test completely.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ // Done !
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-0009
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::DialNoFdnCheck for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileCall::DialNoFdnCheck for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck0009L()
+ {
+//
+// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
+//
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // If this API is flow controlled by Etel or if this API is
+ // synchronous, remove this test completely.
+
+ // To write this test:
+ // If this API has parameters which have different versions, then each
+ // client in this test should use a different version of parameter.
+ // Otherwise, they should use the same version.
+ // All versions of parameters should be used. i.e. If there are three
+ // versions of a parameter, there should be three clients, one using
+ // each one. If the parameter does not have different versions, use
+ // two clients each using the same version.
+
+
+ // Done !
+ CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-00010
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with timeout for data calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck and tests for timeout for data calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck00010L()
+ {
+//
+// DialNoFdnCheck isn't supported for Data Line, so this test is not relevant
+//
+
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // If this API does not have a timeout, then remove this test completely.
+
+ // Done !
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-00011
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck00011L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TInt errorCode = KErrNone;
+
+ //-- For Fax -------------------------
+ TBuf<256> lineName(KMmTsyFaxLineName);
+
+ // Open new line
+ RLine line;
+ errorCode = line.Open(iPhone, lineName);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(line);
+
+ // open call
+ _LIT(KDoubleColon, "::");
+
+ TBuf<256> name;
+ name = KMmTsyPhoneName;
+ name.Append(KDoubleColon);
+ name.Append(lineName);
+ name.Append(KDoubleColon);
+
+ RMobileCall call;
+ errorCode = call.OpenNewCall(line, name);
+ ASSERT_EQUALS(KErrNone, errorCode);
+ CleanupClosePushL(call);
+
+ TRequestStatus requestStatus;
+ _LIT(KSomeNumber, "123456789");
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RMobileCall::DialNoFdnCheck when result is not cached.
+ //-------------------------------------------------------------------------
+ RMobileCall::TMobileCallParamsV1 callParams;
+ RMobileCall::TMobileCallParamsV1Pckg pckgCallParams(callParams);
+
+ call.DialNoFdnCheck(requestStatus, pckgCallParams, KSomeNumber);
+
+ User::WaitForRequest(requestStatus);
+
+ // DialNoFdnCheck isn't supported for Fax Line
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3, this); // ... this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-00012
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileCall::DialNoFdnCheck for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileCall::DialNoFdnCheck for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck00012L()
+ {
+//
+// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
+//
+
+// This test should test cancellation of GetCallParams
+// If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if this is not relevant for this API
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ // User::WaitForRequest(mockLtsyStatus);
+ CleanupStack::PopAndDestroy(2); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-00013
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with bad parameter data for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck with bad parameter data for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck00013L()
+ {
+//
+// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
+//
+
+// This test should test sending bad parameter data for GetCallParams
+// If this API does not have any parameters, then remove this test completely.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test passing wrong version of parameters to
+ // RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ //-------------------------------------------------------------------------
+ // Test B: Test passing wrong descriptor size to parameter in
+ // RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ //-------------------------------------------------------------------------
+ // Test C: Test passing out of bounds parameters to
+ // RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // Remove the test above if it is not relevant for this API
+
+ // Done !
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-00014
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileCall::DialNoFdnCheck for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileCall::DialNoFdnCheck for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck00014L()
+ {
+//
+// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
+//
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(iTelServer,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // If this API is flow controlled by Etel or if this API is
+ // synchronous, remove this test completely.
+
+ // To write this test:
+ // If this API has parameters which have different versions, then each
+ // client in this test should use a different version of parameter.
+ // Otherwise, they should use the same version.
+ // All versions of parameters should be used. i.e. If there are three
+ // versions of a parameter, there should be three clients, one using
+ // each one. If the parameter does not have different versions, use
+ // two clients each using the same version.
+
+
+ // Done !
+ CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-CDNFC-00015
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileCall::DialNoFdnCheck with timeout for fax calls
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileCall::DialNoFdnCheck and tests for timeout for fax calls
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestDialNoFdnCheck00015L()
+ {
+//
+// DialNoFdnCheck isn't supported for fax calls, so this test is not relevant
+//
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RCall::GetCallParams
+ //-------------------------------------------------------------------------
+
+ // If this API does not have a timeout, then remove this test completely.
+
+ // Done !
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MGFS-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetFdnStatus
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::GetFdnStatus
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestGetFdnStatus0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus;
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus, KErrNotSupported);
+
+ iPhone.GetFdnStatus(requestStatus, fdnStatus);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());
+
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus, KErrNotSupported);
+ TInt ret = iPhone.GetFdnStatus(fdnStatus);
+ ASSERT_EQUALS(KErrNotSupported, ret);
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatusComplete(RMobilePhone::EFdnActive);
+ TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> ltsyData2(fdnStatusComplete);
+ ltsyData2.SerialiseL(completeData);
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
+ iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrGeneral, completeData);
+
+ iPhone.GetFdnStatus(requestStatus, fdnStatus);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RMobilePhone::GetFdnStatus when result is not cached.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
+ iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
+
+ fdnStatus = RMobilePhone::EFdnNotActive;
+
+ iPhone.GetFdnStatus(requestStatus, fdnStatus);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_TRUE(fdnStatusComplete == fdnStatus);
+
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
+ iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
+
+ fdnStatus = RMobilePhone::EFdnNotActive;
+
+ ret = iPhone.GetFdnStatus(fdnStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, ret);
+ ASSERT_TRUE(fdnStatusComplete == fdnStatus);
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RMobilePhone::GetFdnStatus
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
+ User::WaitForRequest(mockLtsyStatus);
+
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(2, this); // completeData, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MGFS-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::GetFdnStatus
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobilePhone::GetFdnStatus
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestGetFdnStatus0002L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnNotActive);
+
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatusComplete(RMobilePhone::EFdnActive);
+ TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> ltsyData2(fdnStatusComplete);
+ ltsyData2.SerialiseL(completeData);
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
+ iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
+
+ iPhone.GetFdnStatus(requestStatus, fdnStatus);
+ iPhone.CancelAsyncRequest(EMobilePhoneGetFdnStatus);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(2); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MGFS-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::GetFdnStatus
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobilePhone::GetFdnStatus
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestGetFdnStatus0004L()
+ {
+
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(telServer2,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RMobilePhone::GetFdnStatus
+ //-------------------------------------------------------------------------
+
+ // If this API is flow controlled by Etel or if this API is
+ // synchronous, remove this test completely.
+
+ RBuf8 completeData;
+ CleanupClosePushL(completeData);
+
+
+ TRequestStatus requestStatus;
+ TRequestStatus requestStatus2;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnNotActive);
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus2(RMobilePhone::EFdnNotActive);
+
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatusComplete(RMobilePhone::EFdnActive);
+ TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> ltsyData2(fdnStatusComplete);
+ ltsyData2.SerialiseL(completeData);
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
+ iMockLTSY.CompleteL(EMobilePhoneGetFdnStatus, KErrNone, completeData);
+
+ iPhone.GetFdnStatus(requestStatus, fdnStatus);
+
+ phone2.GetFdnStatus(requestStatus2, fdnStatus2);
+
+ User::WaitForRequest(requestStatus);
+
+ User::WaitForRequest(requestStatus2);
+
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());
+
+ // Done !
+ CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
+
+ }
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MGFS-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetFdnStatus with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::GetFdnStatus and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestGetFdnStatus0005L()
+ {
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RMobilePhone::SetFdnSetting
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus;
+
+ iMockLTSY.ExpectL(EMobilePhoneGetFdnStatus);
+
+ iPhone.GetFdnStatus(requestStatus, fdnStatus);
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());
+
+ CleanupStack::PopAndDestroy(1, this); // data, this
+ }
+
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MSFS-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhone::SetFdnSetting
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::SetFdnSetting
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestSetFdnSetting0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
+
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrGeneral);
+
+ iPhone.SetFdnSetting(requestStatus, fdnSetting);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrGeneral, requestStatus.Int());
+
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RMobilePhone::SetFdnSetting when result is not cached.
+ //-------------------------------------------------------------------------
+
+
+ TRequestStatus requestStatus2;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
+ //to check what will be set
+ iPhone.NotifyFdnStatusChange(requestStatus2, fdnStatus);
+
+ fdnSetting = RMobilePhone::EFdnSetOff;
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+
+ iPhone.SetFdnSetting(requestStatus, fdnSetting);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus);
+
+
+ iPhone.NotifyFdnStatusChange(requestStatus2, fdnStatus);
+
+ fdnSetting = RMobilePhone::EFdnSetOn;
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+
+ iPhone.SetFdnSetting(requestStatus, fdnSetting);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(RMobilePhone::EFdnActive, fdnStatus);
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of RMobilePhone::SetFdnSetting
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+ User::WaitForRequest(mockLtsyStatus);
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(1, this); // this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MSFS-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::SetFdnSetting
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobilePhone::SetFdnSetting
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestSetFdnSetting0002L()
+ {
+
+// This test should test cancellation of SetFdnSetting
+// If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RMobilePhone::SetFdnSetting
+ //-------------------------------------------------------------------------
+
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
+
+ iPhone.SetFdnSetting(requestStatus, fdnSetting);
+
+ iPhone.CancelAsyncRequest(EMobilePhoneSetFdnSetting);
+
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+
+ User::WaitForRequest(requestStatus);
+ AssertMockLtsyStatusL();
+
+ //TSY has started a request and it is not possible to then
+ //cancel this request. The best thing for the TSY to do in this case
+ //is to proceed as though the Cancel never happened. The server's call
+ //to the TSY cancel function will return synchronously. The TSY then
+ //continues to wait for the original acknowledgement and when it
+ //receives it, the TSY will complete the original request.
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ User::WaitForRequest(mockLtsyStatus);
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(1); // this
+
+ }
+
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MSFS-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::SetFdnSetting
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobilePhone::SetFdnSetting
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestSetFdnSetting0004L()
+ {
+
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(telServer2,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RMobilePhone::SetFdnSetting
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus1;
+ TRequestStatus requestStatus2;
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting1(RMobilePhone::EFdnSetOff);
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting2(RMobilePhone::EFdnSetOn);
+ iPhone.SetFdnSetting(requestStatus1, fdnSetting1);
+ phone2.SetFdnSetting(requestStatus2, fdnSetting2);
+
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+
+ User::WaitForRequest(requestStatus1);
+ ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ // Done !
+ CleanupStack::PopAndDestroy(3, this); // phone2, telServer2, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MSFS-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhone::SetFdnSetting with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::SetFdnSetting and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestSetFdnSetting0005L()
+ {
+
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of RMobilePhone::SetFdnSetting
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 120302);
+ // assert added because request stays uncompleted and this prevents later test from correct execution
+ ASSERT_TRUE(EFalse);
+
+ iPhone.SetFdnSetting(requestStatus, fdnSetting);
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+ // Done !
+ CleanupStack::PopAndDestroy(1, this); // data, this
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MNFSC-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhone::NotifyFdnStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::NotifyFdnStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestNotifyFdnStatusChange0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOn);
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // RMobilePhone::NotifyFdnStatusChange when result is not cached.
+ //-------------------------------------------------------------------------
+
+ iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
+
+ TRequestStatus requestStatus2;
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+ iPhone.SetFdnSetting(requestStatus2, fdnSetting);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(RMobilePhone::EFdnActive, fdnStatus);
+ AssertMockLtsyStatusL();
+
+
+
+ fdnSetting = RMobilePhone::EFdnSetOff;
+
+ iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
+
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+ iPhone.SetFdnSetting(requestStatus2, fdnSetting);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus);
+
+ // test E not needed cause complete for EMobilePhoneNotifyFdnStatusChange
+ // is called only in EMobilePhoneSetFdnSetting request
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(1, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MNFSC-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobilePhone::NotifyFdnStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobilePhone::NotifyFdnStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestNotifyFdnStatusChange0002L()
+ {
+
+// This test should test cancellation of NotifyFdnStatusChange
+// If this API does not have a cancel, the test step should be completely removed.
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of RMobilePhone::NotifyFdnStatusChange
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
+ iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
+
+ iPhone.CancelAsyncRequest(EMobilePhoneNotifyFdnStatusChange);
+
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOn);
+ TRequestStatus requestStatus2;
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+ iPhone.SetFdnSetting(requestStatus2, fdnSetting);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ User::WaitForRequest(mockLtsyStatus);
+ CleanupStack::PopAndDestroy(1); // data, this
+
+ }
+
+
+
+/**
+@SYMTestCaseID BA-CTSY-FXD-MNFSC-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::NotifyFdnStatusChange
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobilePhone::NotifyFdnStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyFixedDiallingFU::TestNotifyFdnStatusChange0004L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ // Open second client
+ RTelServer telServer2;
+ TInt ret = telServer2.Connect();
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(telServer2);
+
+ RMobilePhone phone2;
+ ret = phone2.Open(telServer2,KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting RMobilePhone::NotifyFdnStatusChange
+ //-------------------------------------------------------------------------
+ TRequestStatus requestStatus;
+ TRequestStatus requestStatus2;
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus(RMobilePhone::EFdnUnknown);
+ RMobilePhone::TMobilePhoneFdnStatus fdnStatus2(RMobilePhone::EFdnUnknown);
+
+ iPhone.NotifyFdnStatusChange(requestStatus, fdnStatus);
+ phone2.NotifyFdnStatusChange(requestStatus2, fdnStatus2);
+
+ RMobilePhone::TMobilePhoneFdnSetting fdnSetting(RMobilePhone::EFdnSetOff);
+ TRequestStatus requestStatus3;
+ iMockLTSY.CompleteL(EMobilePhoneSetFdnSetting, KErrNone);
+ iPhone.SetFdnSetting(requestStatus3, fdnSetting);
+
+ User::WaitForRequest(requestStatus3);
+ ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+
+ User::WaitForRequest(requestStatus);
+ ASSERT_EQUALS(KErrNone, requestStatus.Int());
+ ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus);
+
+ User::WaitForRequest(requestStatus2);
+ ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+ ASSERT_EQUALS(RMobilePhone::EFdnNotActive, fdnStatus2);
+
+
+ // Done !
+ CleanupStack::PopAndDestroy(3, this); // phone2, telServer2, this
+
+ }
+
+
+
+