diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyserverplugins/common_tsy/test/component/src/cctsycustomipcfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsycustomipcfu.cpp Mon May 03 13:37:20 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsycustomipcfu.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,19679 +1,19679 @@ -/* -* Copyright (c) 2008-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: -* -*/ - - - -/** -@file -The TEFUnit test suite for CustomIPC in the Common TSY. -*/ - -#include "cctsycustomipcfu.h" -#include -#include -#include -#include "tmockltsydata.h" -#include -#include -#include "CMmCustomSecurityTsy.h" - -// constants used by ReadViagHomeZoneCache/WriteViagHomeZoneCache tests -const TInt KViagHomeZoneCacheIdMin = 1; -const TInt KViagHomeZoneCacheIdMax = KPhEngMaxViagHomeZones; -const TInt KViagHomeZoneCacheRecordIdMin = 0; -const TInt KViagHomeZoneCacheRecordIdMax = KPhEngMaxCacheId - 1; -const TInt KOneSecond=1000000; // Used in a time out function, 1 second (in microSeconds) - -CTestSuite* CCTsyCustomIPCFU::CreateSuiteL(const TDesC& aName) - { - SUB_SUITE; - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyDtmfEvent0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyDtmfEvent0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyDtmfEvent0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetDiagnosticInfo0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetRemoteAlertingToneStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCallOrigin0001L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyAlsBlockedChanged0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyAlsBlockedChanged0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyAlsBlockedChanged0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCipheringInfoChange0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCipheringInfoChange0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCipheringInfoChange0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNSPSStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNSPSStatus0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNSPSStatus0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0005L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001bL); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001cL); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0005L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsAdditionalInfoNotification0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsAdditionalInfoNotification0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsAdditionalInfoNotification0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsRequestCompleteNotification0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsRequestCompleteNotification0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsRequestCompleteNotification0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestIsBlocked0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestIsBlocked0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetActivePin0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAirTimeDuration0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0001bL); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetPndCacheStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetPndCacheStatus0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyProgrammableOperatorLogoChange0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySsNetworkEvent0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySsNetworkEvent0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySsNetworkEvent0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCancelUssdSession0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSatRefreshCompleteNotification0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSatRefreshCompleteNotification0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSatRefreshCompleteNotification0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReleaseFile0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestRestartFile0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestStartSimCbTopicBrowsing0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestStartSimCbTopicBrowsing0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestStartSimCbTopicBrowsing0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNextSimCbTopic0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNetworkConnectionFailure0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNetworkConnectionFailure0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNetworkConnectionFailure0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetEGprsInfo0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetEGprsInfo0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0004L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGet3GPBInfo0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0005L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySimCardStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySimCardStatus0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySimCardStatus0004L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0001L); //!!! - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0005L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSimMessageStatusRead0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyRauEvent0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyRauEvent0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyRauEvent0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyHSxPAStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyHSxPAStatus0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyHSxPAStatus0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0005L); - - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0002L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0003L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0004L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0005L); - - END_SUITE; - } - - -////////////////////////////////////////////////////////////////// -// Actual test cases -///////////////////////////////////////////////////////////////// - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetDriveMode -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetDriveMode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetDriveMode0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - TRequestStatus requestStatus; - RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - // data for ExpectL - TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData, KErrNotSupported); - - customAPI.SetDriveMode(requestStatus, modeStatus); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); - iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrGeneral); - - customAPI.SetDriveMode(requestStatus, modeStatus); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SetDriveMode when result is not cached. - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); - iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone); - - customAPI.SetDriveMode(requestStatus, modeStatus); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SetDriveMode - // from LTSY. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetDriveMode -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SetDriveMode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetDriveMode0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SetDriveMode - //------------------------------------------------------------------------- - - // data for ExpectL - TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); - - customAPI.SetDriveMode(requestStatus, modeStatus); - - iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone, 20); - - customAPI.CancelAsyncRequest(ECustomSetDriveModeIPC); - - User::WaitForRequest(requestStatus); - // TSY has started a request and it is not possible to then - // cancel it. 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 methods - // acknowledgement and when it receives it, the TSY will complete - // the original request. - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetDriveMode -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetDriveMode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetDriveMode0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 expectData2; - CleanupClosePushL(expectData2); - - TRequestStatus requestStatus; - RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); - - TRequestStatus requestStatus2; - RMmCustomAPI::TSetDriveMode modeStatus2(RMmCustomAPI::EDeactivateDriveMode); - - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::SetDriveMode - //------------------------------------------------------------------------- - - // data for the first ExpectL - TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); - ltsyData.SerialiseL(expectData); - - // data for the second ExpectL - TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData2(modeStatus2); - ltsyData2.SerialiseL(expectData2); - - // first SetDriveMode - iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); - iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone, 20); - - customAPI.SetDriveMode(requestStatus, modeStatus); - - - - customAPI2.SetDriveMode(requestStatus2, modeStatus2); - - - // wait for the first answer - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - // wait for the second answer - User::WaitForRequest(requestStatus2); - // Documentation says that KErrServerBusy should be in case of multiple requests - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(8, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetDriveMode with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetDriveMode and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetDriveMode0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - TRequestStatus requestStatus; - RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::SetDriveMode - //------------------------------------------------------------------------- - - // data for ExpectL - TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); - - customAPI.SetDriveMode(requestStatus, modeStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCASL-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ActivateSimLock -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ActivateSimLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestActivateSimLock0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator); - - // data for ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > - ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData, KErrNotSupported); - - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - // use othere number for coverage increasing - lockNumber = RMmCustomAPI::EGid1; - - // data for ExpectL - expectData.Close(); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrGeneral); - - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::ActivateSimLock when result is not cached. - //------------------------------------------------------------------------- - // use othere number for coverage increasing - lockNumber = RMmCustomAPI::EGid2; - - // data for ExpectL - expectData.Close(); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); - - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ActivateSimLock - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // just to increase coverage - //------------------------------------------------------------------------- - // use othere number for coverage increasing - lockNumber = RMmCustomAPI::EImsi; - - // data for ExpectL - expectData.Close(); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); - - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCASL-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ActivateSimLock -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::ActivateSimLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestActivateSimLock0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - // to wait CompleteL - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TRequestStatus requestStatus; - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::ActivateSimLock - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EImsi); - - // data for ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > - ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); - - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - // cancel this request - customAPI.CancelAsyncRequest(ECustomSimLockActivateIPC); - // try to complete canceled request - iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); - - // wait for request - User::WaitForRequest(requestStatus); - // this request can't be canceled - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - // wait for CompleteL - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCASL-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ActivateSimLock with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ActivateSimLock with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestActivateSimLock0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // Test A: Test passing wrong parameters to - // RMmCustomAPI::ActivateSimLock - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber((RMmCustomAPI::TLockNumber) 0); - - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCASL-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ActivateSimLock -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ActivateSimLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestActivateSimLock0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - // 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::ActivateSimLock - //------------------------------------------------------------------------- - // data for the first request - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid1); - - // data for the second request - RMmCustomAPI::TSimLockPassword password2(_L("changeme2")); - RMmCustomAPI::TLockNumber lockNumber2(RMmCustomAPI::EOperator_Gid2); - - // data for the first ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - - // send first request - iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - - // send second request - customAPI2.ActivateSimLock(requestStatus2, password2, lockNumber2); - - // wait for the first answer - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - // wait for the second answer - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - // Done ! - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCASL-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ActivateSimLock with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ActivateSimLock and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestActivateSimLock0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::ActivateSimLock - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid2); - - // data for ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > - ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); - - customAPI.ActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - // Done ! - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeActivateSimLock -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DeActivateSimLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeActivateSimLock0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator); - - // data for ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > - ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData, KErrNotSupported); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - // use othere number for coverage increasing - lockNumber = RMmCustomAPI::EGid1; - - // data for ExpectL - expectData.Close(); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrGeneral); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::DeActivateSimLock when result is not cached. - //------------------------------------------------------------------------- - // use othere number for coverage increasing - lockNumber = RMmCustomAPI::EGid2; - - // data for ExpectL - expectData.Close(); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::DeActivateSimLock - // from LTSY. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // just to increase coverage - //------------------------------------------------------------------------- - // use othere number for coverage increasing - lockNumber = RMmCustomAPI::EGlobalUnlock; - - // data for ExpectL - expectData.Close(); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // just to increase coverage - //------------------------------------------------------------------------- - // use othere number for coverage increasing - lockNumber = RMmCustomAPI::EImsi; - - // data for ExpectL - expectData.Close(); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::DeActivateSimLock -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::DeActivateSimLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeActivateSimLock0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - TRequestStatus mockLtsyStatus; - // to wait CompleteL - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TRequestStatus requestStatus; - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::DeActivateSimLock - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EImsi); - - // data for ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > - ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - // cancel this request - customAPI.CancelAsyncRequest(ECustomSimLockDeActivateIPC); - // try to complete canceled request - iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); - - // wait for request - User::WaitForRequest(requestStatus); - // this request can't be canceled - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - // wait for CompleteL - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeActivateSimLock with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DeActivateSimLock with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeActivateSimLock0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // Test A: Test passing wrong version of parameters to - // RMmCustomAPI::DeActivateSimLock - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber((RMmCustomAPI::TLockNumber) 0); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::DeActivateSimLock -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::DeActivateSimLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeActivateSimLock0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - // 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::DeActivateSimLock - //------------------------------------------------------------------------- - // data for the first request - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid1); - - // data for the second request - RMmCustomAPI::TSimLockPassword password2(_L("changeme2")); - RMmCustomAPI::TLockNumber lockNumber2(RMmCustomAPI::EOperator_Gid2); - - // data for the first ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - - // send first request - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); - iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - // send second request - customAPI2.DeActivateSimLock(requestStatus2, password2, lockNumber2); - - // wait for the first answer - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - // wait for the second answer - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - // Done ! - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeActivateSimLock with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DeActivateSimLock and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeActivateSimLock0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::DeActivateSimLock - //------------------------------------------------------------------------- - RMmCustomAPI::TSimLockPassword password(_L("changeme")); - RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid2); - - // data for ExpectL - TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > - ltsyData(password, lockNumber); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); - - customAPI.DeActivateSimLock(requestStatus, password, lockNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - // Done ! - CleanupStack::PopAndDestroy(3, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNDE-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyDtmfEvent -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyDtmfEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyDtmfEvent0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for CompleteL - RMmCustomAPI::TDtmfInfo completeInfo; - completeInfo.iType = RMmCustomAPI::EDtmfSequence; - completeInfo.iEvent = RMmCustomAPI::EDtmfStop; - completeInfo.iTone = 0x10; - TMockLtsyData1 ltsyData(completeInfo); - ltsyData.SerialiseL(completeData); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyDtmfEvent - // from LTSY. - // Test here cause this is a self-reposting request. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // data for NotifyDtmfEvent itself - TRequestStatus requestStatus; - RMmCustomAPI::TDtmfInfo info; - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - customAPI.NotifyDtmfEvent(requestStatus, info); - iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrGeneral, completeData); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyDtmfEvent when result is not cached. - //------------------------------------------------------------------------- - customAPI.NotifyDtmfEvent(requestStatus, info); - iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(completeInfo.iType, info.iType); - ASSERT_EQUALS(completeInfo.iEvent, info.iEvent); - ASSERT_EQUALS(completeInfo.iTone, info.iTone); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNDE-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyDtmfEvent -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyDtmfEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyDtmfEvent0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for CompleteL - RMmCustomAPI::TDtmfInfo completeInfo; - completeInfo.iType = RMmCustomAPI::EDtmfSequence; - completeInfo.iEvent = RMmCustomAPI::EDtmfStop; - completeInfo.iTone = 0x10; - TMockLtsyData1 ltsyData(completeInfo); - ltsyData.SerialiseL(completeData); - - // data for NotifyDtmfEvent itself - TRequestStatus requestStatus; - RMmCustomAPI::TDtmfInfo info; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyDtmfEvent - //------------------------------------------------------------------------- - - customAPI.NotifyDtmfEvent(requestStatus, info); - // cancel request - customAPI.CancelAsyncRequest(ECustomNotifyDtmfEventIPC); - // try to complete request - iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - // Wait for completion of iMockLTSY.NotifyTerminated - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNDE-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyDtmfEvent -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyDtmfEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyDtmfEvent0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - // 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); - - RMmCustomAPI customAPI2; - CleanupClosePushL(customAPI2); - customAPI2.Open(phone2); - - // data for CompleteL - RMmCustomAPI::TDtmfInfo completeInfo; - completeInfo.iType = RMmCustomAPI::EDtmfSequence; - completeInfo.iEvent = RMmCustomAPI::EDtmfStop; - completeInfo.iTone = 0x10; - TMockLtsyData1 ltsyData(completeInfo); - ltsyData.SerialiseL(completeData); - - // data for the first NotifyDtmfEvent - TRequestStatus requestStatus; - RMmCustomAPI::TDtmfInfo info; - - - // data for the second NotifyDtmfEvent - TRequestStatus requestStatus2; - RMmCustomAPI::TDtmfInfo info2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyDtmfEvent - //------------------------------------------------------------------------- - - // send first request - customAPI.NotifyDtmfEvent(requestStatus, info); - - // send second request - customAPI2.NotifyDtmfEvent(requestStatus2, info2); - - // Complete - iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); - - // 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(); - - // check first request's data - ASSERT_EQUALS(completeInfo.iType, info.iType); - ASSERT_EQUALS(completeInfo.iEvent, info.iEvent); - ASSERT_EQUALS(completeInfo.iTone, info.iTone); - - // check second request's data - ASSERT_EQUALS(completeInfo.iType, info2.iType); - ASSERT_EQUALS(completeInfo.iEvent, info2.iEvent); - ASSERT_EQUALS(completeInfo.iTone, info2.iTone); - - // Done ! - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGDO-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetDiagnosticInfo -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetDiagnosticInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetDiagnosticInfo0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - //------------------------------------------------------------------------- - // try to get info for non-existing call - //------------------------------------------------------------------------- - TName callName; - TInt status = customAPI.GetDiagnosticInfo(callName); - - ASSERT_EQUALS(KErrNotFound, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with initial iDiagnosticOctet ( == NULL) - //------------------------------------------------------------------------- - - // -----------Open Line and Call --------------------- - RLine line; - RCall call; - // Open new line - TInt errorCode = line.Open(iPhone, KMmTsyVoice1LineName); - ASSERT_EQUALS(KErrNone, errorCode); - CleanupClosePushL(line); - - TName incomingCallName; - TInt callId = 1; - RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; - RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusRinging; - - // create new incoming call - errorCode = CreateIncomingCallL(line, callId, KMmTsyVoice1LineName, incomingCallName, - mobileService, mobileCallStatus); - ASSERT_EQUALS(KErrNone, errorCode); - CleanupClosePushL(call); - - errorCode = call.OpenExistingCall(line, incomingCallName); - ASSERT_EQUALS(KErrNone, errorCode); - //------------------------------------------------------------------------- - - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrNone, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredWithCUG - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - TDiagnosticInfoValues diagnostic(KDiagnosticInfoBarredWithCUG); - TMockLtsyData2 ltsyData(callId, diagnostic); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredWithCUG, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredNoCUG - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - diagnostic = KDiagnosticInfoBarredNoCUG; - completeData.Close(); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredNoCUG, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredUnknownCUG - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - diagnostic = KDiagnosticInfoBarredUnknownCUG; - completeData.Close(); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredUnknownCUG, status); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredIncompatibleCUG - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - diagnostic = KDiagnosticInfoBarredIncompatibleCUG; - completeData.Close(); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredIncompatibleCUG, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredFailureCUG - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - diagnostic = KDiagnosticInfoBarredFailureCUG; - completeData.Close(); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredFailureCUG, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredClirNotSubscribed - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - diagnostic = KDiagnosticInfoBarredClirNotSubscribed; - completeData.Close(); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredClirNotSubscribed, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredCCBSPossible - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - diagnostic = KDiagnosticInfoBarredCCBSPossible; - completeData.Close(); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredCCBSPossible, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredCCBSNotPossible - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - diagnostic = KDiagnosticInfoBarredCCBSNotPossible; - completeData.Close(); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrDiagnosticInfoBarredCCBSNotPossible, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // try to get info for existing call, with iDiagnosticOctet = some arbitrary value - //------------------------------------------------------------------------- - - // set iDiagnosticOctet ... - iMockLTSY.NotifyTerminated(mockLtsyStatus); - TInt someDiagnostic = -11; // some arbitrary value - TMockLtsyData2 ltsyData2(callId, someDiagnostic); - completeData.Close(); - ltsyData2.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // ... and get info - status = customAPI.GetDiagnosticInfo(incomingCallName); - ASSERT_EQUALS(KErrNone, status); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetDiagnosticInfo - // from LTSY. - //------------------------------------------------------------------------- - //just set iDiagnosticOctet to non-existing callId - iMockLTSY.NotifyTerminated(mockLtsyStatus); - callId = 100; - completeData.Close(); - ltsyData2.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlsBlocked -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetAlsBlocked -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlsBlocked0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for SetAlsBlocked itself - TRequestStatus reguestStatus; - RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); - - // data for ExpectL - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData, KErrNotSupported); - - customAPI.SetAlsBlocked(reguestStatus, blockStatus); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNotSupported, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrGeneral); - - customAPI.SetAlsBlocked(reguestStatus, blockStatus); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrGeneral, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SetAlsBlocked when result is not cached. - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); - - customAPI.SetAlsBlocked(reguestStatus, blockStatus); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SetAlsBlocked - // from LTSY. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetAlsBlocked -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SetAlsBlocked -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlsBlocked0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for SetAlsBlocked itself - TRequestStatus reguestStatus; - RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); - - // data for ExpectL - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SetAlsBlocked - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - - customAPI.SetAlsBlocked(reguestStatus, blockStatus); - // try to cancel request - customAPI.CancelAsyncRequest(ECustomSetAlsBlockedIPC); - - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); - - User::WaitForRequest(reguestStatus); - - // TSY has started a request and it is not possible to then - // cancel it. 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 methods - // acknowledgement and when it receives it, the TSY will complete - // the original request. - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetAlsBlocked -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetAlsBlocked -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlsBlocked0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 expectData2; - CleanupClosePushL(expectData2); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // 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); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - // data for the first SetAlsBlocked - TRequestStatus reguestStatus; - RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EDeactivateBlock); - - // data for the first ExpectL - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); - ltsyData.SerialiseL(expectData); - - - // data for the second SetAlsBlocked - TRequestStatus reguestStatus2; - RMmCustomAPI::TSetAlsBlock blockStatus2(RMmCustomAPI::EActivateBlock); - - // data for the second ExpectL - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData2(blockStatus2); - ltsyData2.SerialiseL(expectData2); - - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::SetAlsBlocked - //------------------------------------------------------------------------- - - - // first request - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone, 10); - customAPI.SetAlsBlocked(reguestStatus, blockStatus); - - // there is no way to check KErrServerBusy return value because second - // request is put to a wating queue by ETel and it is resumed only after - // first request is completed - - - customAPI2.SetAlsBlocked(reguestStatus2, blockStatus2); - - // wait for the first request - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - - // wait for the second request - User::WaitForRequest(reguestStatus2); - // Documentation says that KErrServerBusy should be in case of multiple requests - - ASSERT_EQUALS(KErrServerBusy, reguestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(7, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlsBlocked with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetAlsBlocked and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlsBlocked0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for SetAlsBlocked itself - TRequestStatus reguestStatus; - RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); - - // data for ExpectL - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::SetAlsBlocked - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - customAPI.SetAlsBlocked(reguestStatus, blockStatus); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrTimedOut, reguestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetAlsBlocked -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetAlsBlocked -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetAlsBlocked0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for GetAlsBlocked itself - TRequestStatus reguestStatus; - RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); - - // data for CompleteL - RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus(RMmCustomAPI::EBlockStatusActive); - TMockLtsyData1< RMmCustomAPI::TGetAlsBlockStatus > ltsyData(completeBlockStatus); - ltsyData.SerialiseL(completeData); - - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC, KErrNotSupported); - - customAPI.GetAlsBlocked(reguestStatus, blockStatus); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNotSupported, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); - iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrGeneral, completeData); - - customAPI.GetAlsBlocked(reguestStatus, blockStatus); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrGeneral, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetAlsBlocked when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); - iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone, completeData); - - customAPI.GetAlsBlocked(reguestStatus, blockStatus); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - ASSERT_EQUALS(completeBlockStatus, blockStatus); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetAlsBlocked - // from LTSY. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetAlsBlocked -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetAlsBlocked -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetAlsBlocked0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for GetAlsBlocked itself - TRequestStatus reguestStatus; - RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); - - // data for CompleteL - RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus(RMmCustomAPI::EBlockStatusActive); - TMockLtsyData1< RMmCustomAPI::TGetAlsBlockStatus > ltsyData(completeBlockStatus); - ltsyData.SerialiseL(completeData); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetAlsBlocked - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); - customAPI.GetAlsBlocked(reguestStatus, blockStatus); - - // try to cancel request - customAPI.CancelAsyncRequest(ECustomGetAlsBlockedIPC); - - // try to Complete request - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // wait for request completion - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrCancel, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - - - CleanupStack::PopAndDestroy(3, this); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetAlsBlocked -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetAlsBlocked -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetAlsBlocked0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // 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); - - RMmCustomAPI customAPI2; - CleanupClosePushL(customAPI2); - customAPI2.Open(phone2); - - - // data for the first GetAlsBlocked - TRequestStatus reguestStatus; - RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); - // data for the first CompleteL - RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus(RMmCustomAPI::EBlockStatusInactive); - TMockLtsyData1< RMmCustomAPI::TGetAlsBlockStatus > ltsyData(completeBlockStatus); - ltsyData.SerialiseL(completeData); - - // data for the second GetAlsBlocked - TRequestStatus reguestStatus2; - RMmCustomAPI::TGetAlsBlockStatus blockStatus2(RMmCustomAPI::EBlockStatusUnknown); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetAlsBlocked - //------------------------------------------------------------------------- - // first request - iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); - iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone, completeData, 10); - customAPI.GetAlsBlocked(reguestStatus, blockStatus); - - // second request - customAPI2.GetAlsBlocked(reguestStatus2, blockStatus2); - - // wait for the first answer - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - ASSERT_EQUALS(completeBlockStatus, blockStatus); - - // wait for the second answer - User::WaitForRequest(reguestStatus2); - ASSERT_EQUALS(KErrServerBusy, reguestStatus2.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetAlsBlocked with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetAlsBlocked and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetAlsBlocked0005L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for GetAlsBlocked itself - TRequestStatus reguestStatus; - RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::GetAlsBlocked - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); - customAPI.GetAlsBlocked(reguestStatus, blockStatus); - - // wait for request completion - User::WaitForRequest(reguestStatus); - - ASSERT_EQUALS(KErrTimedOut, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckAlsPpSupport -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckAlsPpSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckAlsPpSupport0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for CompleteL - RMmCustomAPI::TAlsSupport completeAlsSupport(RMmCustomAPI::EAlsSupportOff); - TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData(completeAlsSupport); - ltsyData.SerialiseL(completeData); - - // data for CheckAlsPpSupport itself - TRequestStatus reguestStatus; - RMmCustomAPI::TAlsSupport alsSupport; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC, KErrNotSupported); - - customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNotSupported, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrGeneral, completeData); - - customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrGeneral, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::CheckAlsPpSupport when result is not cached. - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData); - - customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - ASSERT_EQUALS(completeAlsSupport, alsSupport); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C1 just to increase coverage - //------------------------------------------------------------------------- - // new data for CompleteL - RMmCustomAPI::TAlsSupport completeAlsSupport2(RMmCustomAPI::EAlsSupportOn); - TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData2(completeAlsSupport2); - completeData.Close(); - ltsyData2.SerialiseL(completeData); - - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData); - - customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - ASSERT_EQUALS(completeAlsSupport2, alsSupport); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::CheckAlsPpSupport - // from LTSY. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckAlsPpSupport -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckAlsPpSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckAlsPpSupport0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for CompleteL - RMmCustomAPI::TAlsSupport completeAlsSupport(RMmCustomAPI::EAlsSupportOff); - TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData(completeAlsSupport); - ltsyData.SerialiseL(completeData); - - // data for CheckAlsPpSupport itself - TRequestStatus reguestStatus; - RMmCustomAPI::TAlsSupport alsSupport; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::CheckAlsPpSupport - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData, 20); - - customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); - - customAPI.CancelAsyncRequest(ECustomCheckAlsPpSupportIPC); - - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrCancel, reguestStatus.Int()); - - // Wait for completion of iMockLTSY.NotifyTerminated - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckAlsPpSupport -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckAlsPpSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckAlsPpSupport0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // 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 completeData2; - CleanupClosePushL(completeData2); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - // data for the first CompleteL - RMmCustomAPI::TAlsSupport completeAlsSupport(RMmCustomAPI::EAlsSupportOff); - TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData(completeAlsSupport); - ltsyData.SerialiseL(completeData); - - // data for the first CheckAlsPpSupport itself - TRequestStatus reguestStatus; - RMmCustomAPI::TAlsSupport alsSupport; - - // data for the second CheckAlsPpSupport itself - TRequestStatus reguestStatus2; - RMmCustomAPI::TAlsSupport alsSupport2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::CheckAlsPpSupport - //------------------------------------------------------------------------- - // send first request - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData, 10); - customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); - - // send second request - customAPI2.CheckAlsPpSupport(reguestStatus2, alsSupport2); - - // wait for the first answer - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrNone, reguestStatus.Int()); - ASSERT_EQUALS(completeAlsSupport, alsSupport); - - // wait for the second answer - User::WaitForRequest(reguestStatus2); - ASSERT_EQUALS(KErrNone, reguestStatus2.Int()); - ASSERT_EQUALS(completeAlsSupport, alsSupport2); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(7, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckAlsPpSupport with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckAlsPpSupport and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckAlsPpSupport0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // data for CheckAlsPpSupport itself - TRequestStatus reguestStatus; - RMmCustomAPI::TAlsSupport alsSupport; - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::CheckAlsPpSupport - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); - - // There is no time out for this IPC (ECustomCheckAlsPpSupportIPC) - User::WaitForRequest(reguestStatus); - ASSERT_EQUALS(KErrTimedOut, reguestStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGRATS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetRemoteAlertingToneStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetRemoteAlertingToneStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetRemoteAlertingToneStatus0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // TEST Get initial toneStatus - //------------------------------------------------------------------------- - RMmCustomAPI::TRemoteAlertingToneStatus expectedStatus(RMmCustomAPI::EUiNoTone); - RMmCustomAPI::TRemoteAlertingToneStatus toneStatus; - - customAPI.GetRemoteAlertingToneStatus(toneStatus); - - ASSERT_EQUALS(expectedStatus, toneStatus); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST D: RMmCustomAPI::GetRemoteAlertingToneStatus again, this time CTSY - // will get result from the cache. - //------------------------------------------------------------------------- - - // --- change tone status --- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - // data for changing - TBool playRemoteAlertToneLocally (ETrue); - TMockLtsyData1 ltsyData(playRemoteAlertToneLocally); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetRemoteAlertingToneStatusIPC, KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - // new expected Status - expectedStatus = RMmCustomAPI::EUiRbtTone; - // -------------------------- - - // get changed data - customAPI.GetRemoteAlertingToneStatus(toneStatus); - - ASSERT_EQUALS(expectedStatus, toneStatus); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST D2: just for coverage increasing - //------------------------------------------------------------------------- - - // --- change tone status --- - iMockLTSY.NotifyTerminated(mockLtsyStatus); - // data for changing - playRemoteAlertToneLocally = EFalse; - TMockLtsyData1 ltsyData2(playRemoteAlertToneLocally); - completeData.Close(); - ltsyData2.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetRemoteAlertingToneStatusIPC, KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - // new expected Status - expectedStatus = RMmCustomAPI::EUiStopTone; - // -------------------------- - - // get changed data - customAPI.GetRemoteAlertingToneStatus(toneStatus); - - ASSERT_EQUALS(expectedStatus, toneStatus); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCO-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CallOrigin -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CallOrigin -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCallOrigin0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - // data for CallOrigin itself - TName callName; - RMmCustomAPI::TCallOrigin origin; - - //------------------------------------------------------------------------- - // TEST: Get origin for non-existing call - //------------------------------------------------------------------------- - customAPI.CallOrigin(callName, origin); - ASSERT_EQUALS(RMmCustomAPI::EUnknown, origin); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST: Get origin for call created through ETel - //------------------------------------------------------------------------- - RLine line; - RCall call; - // Open Line and Call - TInt errorCode = line.Open(iPhone, KMmTsyVoice1LineName); - ASSERT_EQUALS(KErrNone, errorCode); - CleanupClosePushL(line); - TInt callId = 1; - RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; - RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusRinging; - - // create new incoming call - errorCode = CreateIncomingCallL(line, callId, KMmTsyVoice1LineName,callName, - mobileService, mobileCallStatus); - ASSERT_EQUALS(KErrNone, errorCode); - CleanupClosePushL(call); - - errorCode = call.OpenExistingCall(line, callName); - ASSERT_EQUALS(KErrNone, errorCode); - - //Get origin for call created through ETel - customAPI.CallOrigin(callName, origin); - ASSERT_EQUALS(RMmCustomAPI::EETelCall, origin); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST: Get origin for Ghost call (NOT created through ETel) - //------------------------------------------------------------------------- - TRequestStatus requestStatus; - // for getting ghost call name - TName ghostCallName; - line.NotifyCallAdded(requestStatus, ghostCallName); - - // ------------ Create ghost call ----------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - RMobileCall::TMobileCallInfoV1 callInfo; - callId = 2; - callInfo.iCallId = callId; - callInfo.iStatus = RMobileCall::EStatusDialling; - callInfo.iService = mobileService; - - TMockLtsyCallData1 callInfoData(callId, mobileService, callInfo); - callInfoData.SerialiseL(completeData); - iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - //------------------------------------------------------------------------- - - // wait for NotifyCallAdded (for getting ghost call name) - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - //Get origin for call NOT created through ETel - customAPI.CallOrigin(ghostCallName, origin); - - ASSERT_EQUALS(RMmCustomAPI::EOutsider, origin); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCTC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::TerminateCall -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::TerminateCall -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestTerminateCall0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - TName callName; - TBool isError(ETrue); - TInt callId(1); - RLine line; - RCall call; - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - OpenLineLC(line, iPhone, KMmTsyVoice1LineName); - - CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, - callId, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - TMockLtsyData2 mockData2(callId, isError); - mockData2.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNotSupported); - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData); - iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrGeneral); - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::TerminateCall when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); - iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone); - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::TerminateCall - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - //------------------------------------------------------------------------- - // TerminateCall with KTerminateAllCalls - //------------------------------------------------------------------------- - - callName.Copy(KTerminateAllCalls); - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - - //------------------------------------------------------------------------- - // TerminateCall with KTerminateAllCalls when there is a call with EStatusConnecting - //------------------------------------------------------------------------- - - RCall call2; - callId = 2; - - CreateAndOpenIncomingCalLC(line, call2, callName, KMmTsyVoice1LineName, - callId, RMobileCall::EStatusConnecting, RMobilePhone::EVoiceService); - - callName.Copy(KTerminateAllCalls); - callId = (-callId); - isError = EFalse; - TMockLtsyData2 mockData2b(callId, isError); - expectData.Close(); - mockData2b.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); - iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone); - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - - CleanupStack::PopAndDestroy(6, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCTC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::TerminateCall -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::TerminateCall -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestTerminateCall0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - TName callName; - TBool isError(ETrue); - TInt callId(1); - RLine line; - RCall call; - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - OpenLineLC(line, iPhone, KMmTsyVoice1LineName); - - CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, - callId, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::TerminateCall - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TMockLtsyData2 mockData2(callId, isError); - mockData2.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData); - iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone, 10); - - customAPI.TerminateCall(requestStatus, callName); - customAPI.CancelAsyncRequest(ECustomTerminateCallIPC); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCTC-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::TerminateCall with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::TerminateCall with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestTerminateCall0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - TName callName; - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test passing callName with length equals null - //------------------------------------------------------------------------- - - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); - - //------------------------------------------------------------------------- - // Test A: Test passing wrong version of parameters to - // RMmCustomAPI::TerminateCall - //------------------------------------------------------------------------- - - _LIT(KBadParam, "Bad name"); - callName.Copy(KBadParam); - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCTC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::TerminateCall -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::TerminateCall -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestTerminateCall0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - // Open second client - RTelServer telServer2; - TInt ret = telServer2.Connect(); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(telServer2); - - TRequestStatus requestStatus1; - TRequestStatus requestStatus2; - - RMobilePhone phone2; - ret = phone2.Open(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - //------------------------------------------------------------------------- - // Calls of functions for first client. - //------------------------------------------------------------------------- - - TName callName1; - TBool isError(ETrue); - TInt callId1(1); - - RLine line1; - RCall call1; - - RMmCustomAPI customAPI1; - OpenCustomAPILC(customAPI1, iPhone); - - OpenLineLC(line1, iPhone, KMmTsyVoice1LineName); - - CreateAndOpenIncomingCalLC(line1, call1, callName1, KMmTsyVoice1LineName, - callId1, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); - - //------------------------------------------------------------------------- - // Calls of functions for second client. - //------------------------------------------------------------------------- - - TName callName2; - TInt callId2(2); - - RLine line2; - RCall call2; - RMmCustomAPI customAPI2; - - OpenCustomAPILC(customAPI2, phone2, EFalse); - - OpenLineLC(line2, phone2, KMmTsyVoice1LineName); - - CreateAndOpenIncomingCalLC(line2, call2, callName2, KMmTsyVoice1LineName, - callId2, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::TerminateCall - //------------------------------------------------------------------------- - - TMockLtsyData2 mockData21(callId1, isError); - mockData21.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); - iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone, 20); - customAPI1.TerminateCall(requestStatus1, callName1); - - customAPI2.TerminateCall(requestStatus2, callName2); - - User::WaitForRequest(requestStatus1); - ASSERT_EQUALS(KErrNone, requestStatus1.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(10, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCTC-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::TerminateCall with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::TerminateCall and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestTerminateCall0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - - TName callName; - TBool isError(ETrue); - TInt callId(1); - RLine line; - RCall call; - RMmCustomAPI customAPI; - - OpenCustomAPILC(customAPI, iPhone); - - OpenLineLC(line, iPhone, KMmTsyVoice1LineName); - - CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, - callId, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::TerminateCall - //------------------------------------------------------------------------- - - TMockLtsyData2 mockData2(callId, isError); - mockData2.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); - customAPI.TerminateCall(requestStatus, callName); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - CleanupStack::PopAndDestroy(5, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCBABC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyAlsBlockedChanged -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyAlsBlockedChanged -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyAlsBlockedChanged0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - TRequestStatus requestStatus; - RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus; - RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); - RMmCustomAPI customAPI; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyAlsBlockedChanged - // from LTSY. - // Must be first because the request is self-reposting - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyAlsBlockedChangedIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyAlsBlockedChanged when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyAlsBlockedChanged(requestStatus, completeBlockStatus); - - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); - - TRequestStatus requestStatus2; - customAPI.SetAlsBlocked(requestStatus2, blockStatus); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - AssertMockLtsyStatusL(); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(RMmCustomAPI::EBlockStatusActive, completeBlockStatus); - - //------------------------------------------------------------------------- - // for coverage increasing - //------------------------------------------------------------------------- - - customAPI.NotifyAlsBlockedChanged(requestStatus, completeBlockStatus); - - blockStatus = RMmCustomAPI::EDeactivateBlock; - expectData.Close(); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); - customAPI.SetAlsBlocked(requestStatus2, blockStatus); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - AssertMockLtsyStatusL(); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(RMmCustomAPI::EBlockStatusInactive, completeBlockStatus); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCBABC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyAlsBlockedChanged -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyAlsBlockedChanged -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyAlsBlockedChanged0002L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus; - RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); - RMmCustomAPI customAPI; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyAlsBlockedChanged - //------------------------------------------------------------------------- - - customAPI.NotifyAlsBlockedChanged(requestStatus, completeBlockStatus); - customAPI.CancelAsyncRequest(ECustomNotifyAlsBlockedChangedIPC); - - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); - customAPI.SetAlsBlocked(requestStatus2, blockStatus); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCBABC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyAlsBlockedChanged -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyAlsBlockedChanged -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyAlsBlockedChanged0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - TRequestStatus requestStatus1; - TRequestStatus requestStatus2; - TRequestStatus reqStatus; - RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus1; - RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus2; - RMmCustomAPI::TSetAlsBlock activateBlockStatus(RMmCustomAPI::EActivateBlock); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyAlsBlockedChanged - //------------------------------------------------------------------------- - - customAPI1.NotifyAlsBlockedChanged(requestStatus1, completeBlockStatus1); - customAPI2.NotifyAlsBlockedChanged(requestStatus2, completeBlockStatus2); - - TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(activateBlockStatus); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); - iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); - customAPI1.SetAlsBlocked(reqStatus, activateBlockStatus); - - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrNone, reqStatus.Int()); - - User::WaitForRequest(requestStatus1); - ASSERT_EQUALS(KErrNone, requestStatus1.Int()); - - User::WaitForRequest(requestStatus2); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_EQUALS(RMmCustomAPI::EBlockStatusActive, completeBlockStatus1); - ASSERT_EQUALS(RMmCustomAPI::EBlockStatusActive, completeBlockStatus2); - - CleanupStack::PopAndDestroy(6, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCipheringInfo -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetCipheringInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCipheringInfo0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - RMmCustomAPI::TCipheringInfo info; - - TBool indReq(ETrue); - TPckg pckgIndReq(indReq); - - //------------------------------------------------------------------------- - // TEST D: RMmCustomAPI::GetCipheringInfo again, this time CTSY - // will get result from the cache. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); - iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); - customAPI.GetCipheringInfo(requestStatus, info); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(indReq, info.iIndStatus); - ASSERT_TRUE(EFalse == info.iCiphStatus); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC, KErrNotSupported); - customAPI.GetCipheringInfo(requestStatus, info); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); - iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrGeneral, pckgIndReq); - customAPI.GetCipheringInfo(requestStatus, info); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetCipheringInfo when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - RMmCustomAPI::TCipheringInfo strInfo; - strInfo.iCiphStatus = ETrue; - TPckg pckg(strInfo); - iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); - iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); - customAPI.GetCipheringInfo(requestStatus, info); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(indReq, info.iIndStatus); - ASSERT_EQUALS(strInfo.iCiphStatus, info.iCiphStatus); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetCipheringInfo - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(2, this); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetCipheringInfo -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetCipheringInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCipheringInfo0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - RMmCustomAPI::TCipheringInfo info; - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TBool indReq(ETrue); - TPckg pckgIndReq(indReq); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetCipheringInfo - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); - iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq, 10); - customAPI.GetCipheringInfo(requestStatus, info); - customAPI.CancelAsyncRequest(ECustomGetCipheringInfoIPC); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetCipheringInfo -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetCipheringInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCipheringInfo0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus1; - TRequestStatus requestStatus2; - - RMmCustomAPI::TCipheringInfo info1; - RMmCustomAPI::TCipheringInfo info2; - - TBool ciphStatus(EFalse); - TBool indReq(ETrue); - TPckg pckgIndReq(indReq); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetCipheringInfo - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); - iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); - customAPI1.GetCipheringInfo(requestStatus1, info1); - - customAPI2.GetCipheringInfo(requestStatus2, info2); - - User::WaitForRequest(requestStatus1); - ASSERT_EQUALS(KErrNone, requestStatus1.Int()); - - User::WaitForRequest(requestStatus2); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - ASSERT_EQUALS(indReq, info1.iIndStatus); - ASSERT_EQUALS(ciphStatus, info1.iCiphStatus); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCipheringInfo with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetCipheringInfo and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCipheringInfo0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TCipheringInfo info; - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::GetCipheringInfo - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); - customAPI.GetCipheringInfo(requestStatus, info); - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNCIC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyCipheringInfoChange -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyCipheringInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyCipheringInfoChange0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - RMmCustomAPI::TCipheringInfo info; - RMmCustomAPI::TCipheringInfo completeInfo; - completeInfo.iIndStatus = ETrue; - completeInfo.iCiphStatus = ETrue; - TPckg pckg(completeInfo); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyCipheringInfoChange when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyCipheringInfoChange(requestStatus, info); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(completeInfo.iIndStatus, info.iIndStatus); - ASSERT_EQUALS(completeInfo.iCiphStatus, info.iCiphStatus); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyCipheringInfoChange - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNCIC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyCipheringInfoChange -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyCipheringInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyCipheringInfoChange0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - RMmCustomAPI::TCipheringInfo info; - RMmCustomAPI::TCipheringInfo completeInfo; - completeInfo.iIndStatus = ETrue; - completeInfo.iCiphStatus = ETrue; - TPckg pckg(completeInfo); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyCipheringInfoChange - //------------------------------------------------------------------------- - - customAPI.NotifyCipheringInfoChange(requestStatus, info); - customAPI.CancelAsyncRequest(ECustomNotifyCipheringInfoChangeIPC); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNCIC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyCipheringInfoChange -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyCipheringInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyCipheringInfoChange0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus1; - TRequestStatus requestStatus2; - TRequestStatus mockLtsyStatus; - - RMmCustomAPI::TCipheringInfo info1; - RMmCustomAPI::TCipheringInfo info2; - RMmCustomAPI::TCipheringInfo completeInfo; - completeInfo.iIndStatus = ETrue; - completeInfo.iCiphStatus = ETrue; - TPckg pckg(completeInfo); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyCipheringInfoChange - //------------------------------------------------------------------------- - - customAPI1.NotifyCipheringInfoChange(requestStatus1, info1); - customAPI2.NotifyCipheringInfoChange(requestStatus2, info2); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus1); - ASSERT_EQUALS(KErrNone, requestStatus1.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_EQUALS(completeInfo.iIndStatus, info1.iIndStatus); - ASSERT_EQUALS(completeInfo.iCiphStatus, info1.iCiphStatus); - ASSERT_EQUALS(completeInfo.iIndStatus, info2.iIndStatus); - ASSERT_EQUALS(completeInfo.iCiphStatus, info2.iCiphStatus); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNNS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyNSPSStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyNSPSStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyNSPSStatus0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - TBool nspsIsOn(ETrue); - TPckg pckg(nspsIsOn); - RMmCustomAPI::TNspsStatus nspsStatus; - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyNSPSStatus - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyNSPSStatus when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyNSPSStatus(requestStatus, nspsStatus); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(RMmCustomAPI::ENspsOn, nspsStatus); - - //------------------------------------------------------------------------- - // for coverage increasing - //------------------------------------------------------------------------- - - customAPI.NotifyNSPSStatus(requestStatus, nspsStatus); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - nspsIsOn = EFalse; - iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(RMmCustomAPI::ENspsOff, nspsStatus); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNNS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyNSPSStatus -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyNSPSStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyNSPSStatus0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - TBool nspsIsOn(ETrue); - TPckg pckg(nspsIsOn); - RMmCustomAPI::TNspsStatus nspsStatus; - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyNSPSStatus - //------------------------------------------------------------------------- - - customAPI.NotifyNSPSStatus(requestStatus, nspsStatus); - customAPI.CancelAsyncRequest(ECustomNotifyNSPSStatusIPC); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNNS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyNSPSStatus -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyNSPSStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyNSPSStatus0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus1; - TRequestStatus requestStatus2; - TRequestStatus mockLtsyStatus; - - TBool nspsIsOn(ETrue); - TPckg pckg(nspsIsOn); - RMmCustomAPI::TNspsStatus nspsStatus1; - RMmCustomAPI::TNspsStatus nspsStatus2; - RMmCustomAPI::TNspsStatus nspsOn(RMmCustomAPI::ENspsOn); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyNSPSStatus - //------------------------------------------------------------------------- - - customAPI1.NotifyNSPSStatus(requestStatus1, nspsStatus1); - customAPI2.NotifyNSPSStatus(requestStatus2, nspsStatus2); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus1); - ASSERT_EQUALS(KErrNone, requestStatus1.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_EQUALS(nspsOn, nspsStatus1); - ASSERT_EQUALS(nspsOn, nspsStatus2); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNW-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NetWakeup -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NetWakeup -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNetWakeup0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomNetWakeupIPC, KErrNotSupported); - customAPI.NetWakeup(requestStatus); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomNetWakeupIPC); - iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrGeneral); - customAPI.NetWakeup(requestStatus); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NetWakeup when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomNetWakeupIPC); - iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); - customAPI.NetWakeup(requestStatus); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NetWakeup - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNW-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NetWakeup -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NetWakeup -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNetWakeup0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NetWakeup - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.ExpectL(ECustomNetWakeupIPC); - iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone, 10); - customAPI.NetWakeup(requestStatus); - customAPI.CancelAsyncRequest(ECustomNetWakeupIPC); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNW-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NetWakeup -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NetWakeup -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNetWakeup0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus1; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NetWakeup - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomNetWakeupIPC); - iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); - customAPI1.NetWakeup(requestStatus1); - - iMockLTSY.ExpectL(ECustomNetWakeupIPC); - iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); - customAPI2.NetWakeup(requestStatus2); - - User::WaitForRequest(requestStatus1); - ASSERT_EQUALS(KErrNone, requestStatus1.Int()); - - User::WaitForRequest(requestStatus2); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - CleanupStack::PopAndDestroy(5, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNW-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NetWakeup with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NetWakeup and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNetWakeup0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::NetWakeup - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomNetWakeupIPC); - customAPI.NetWakeup(requestStatus); - - /* - * Test support in CTSY for RmobilePhone::GetServiceTable with timeout - * IS ABOUT TO ABORT DUE TO TEF TIMEOUT. - */ - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 401601); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - CleanupStack::PopAndDestroy(2, this); - - } - - -void CCTsyCustomIPCFU::FillWithRandomDataLC( RMmCustomAPI::TViagElements*& aElem, TInt aRnd) const - { - - aElem = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(aElem); - - _LIT(KName, "Name"); - - RMmCustomAPI::TViagElement element; - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - element.iActiveFlag = ( i%2 == 0 ) ? RMmCustomAPI::ECityZone : RMmCustomAPI::ENotActive; - element.iCoordinates.iR2 = 2*i + aRnd; - element.iCoordinates.iX = i + aRnd; - element.iCoordinates.iY = RMmCustomAPI::KViagElementCount - i + aRnd; - element.iCoordinates.iZoneId = 2*i + 1 + aRnd; - element.iName = KName; - TBuf<2> number; - number.Format(_L("%d"), i + aRnd); - element.iName.Append(number); - aElem->AppendL(element); - } - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneParams -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0001L() - { - - AuxReadViagHomeZoneParamsL(); - - /* - * Test increases CMmSIMTsy::ReadViagHomeZoneParamsL coverage - * covers "if ( iMmCustomTsy->Phone()->NosBootState()->iSIMReady )" condition - */ - - AuxReadViagHomeZoneParamsForIncreasingCoverageL(); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadViagHomeZoneParams -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadViagHomeZoneParams -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - RMmCustomAPI::TViagElement element; - _LIT(KScp, "Lenin lives!"); - _LIT(KSmsC, "revolution"); - - // Variables for call ReadViagHomeZoneParams. - RMmCustomAPI::TViagParams param; - RMmCustomAPI::TViagElements* elems; - - elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(elems); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - elems->AppendL(element); - } - - // Variables for call CompleteL. - RMmCustomAPI::TViagParams completeParam; - completeParam.iScp = KScp; - completeParam.iSmsC = KSmsC; - completeParam.iSubscribedZoneAndVersion = 17; - - RMmCustomAPI::TViagElements* completeElems; - - FillWithRandomDataLC(completeElems); - - TMockLtsyData2 - mockData2(completeParam, completeElems); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::ReadViagHomeZoneParams - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); - - mockData2.SerialiseL(completeData); - iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData, 10); - - customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); - - customAPI.CancelAsyncRequest(EReadViagHomeZoneParamsIPC); - - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneParams with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - // Variables for call ReadViagHomeZoneParams. - RMmCustomAPI::TViagParams param; - RMmCustomAPI::TViagElements* elems = NULL; - elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(elems); - - //------------------------------------------------------------------------- - // Test C: Test passing out of bounds parameters to - // RMmCustomAPI::ReadViagHomeZoneParams - //------------------------------------------------------------------------- - - customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadViagHomeZoneParams -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadViagHomeZoneParams -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - TRequestStatus requestStatus1; - TRequestStatus requestStatus2; - - RMmCustomAPI::TViagElement element; - _LIT(KScp, "Lenin lives!"); - _LIT(KSmsC, "revolution"); - - // Variables for call ReadViagHomeZoneParams of first client. - RMmCustomAPI::TViagParams param1; - RMmCustomAPI::TViagElements* elems1 = NULL; - - elems1 = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(elems1); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - elems1->AppendL(element); - } - - // Variables for call ReadViagHomeZoneParams of second client. - RMmCustomAPI::TViagParams param2; - RMmCustomAPI::TViagElements* elems2 = NULL; - - elems2 = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(elems2); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - elems2->AppendL(element); - } - - // Variables for call CompleteL. - RMmCustomAPI::TViagParams completeParam; - completeParam.iScp = KScp; - completeParam.iSmsC = KSmsC; - completeParam.iSubscribedZoneAndVersion = 17; - - RMmCustomAPI::TViagElements* completeElems; - - FillWithRandomDataLC(completeElems); - - - TMockLtsyData2 - mockData2(completeParam, completeElems); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::ReadViagHomeZoneParams - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); - mockData2.SerialiseL(completeData); - iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); - customAPI1.ReadViagHomeZoneParams(requestStatus1, param1, *elems1); - - customAPI2.ReadViagHomeZoneParams(requestStatus2, param2, *elems2); - - User::WaitForRequest(requestStatus1); - ASSERT_EQUALS(KErrNone, requestStatus1.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - ASSERT_EQUALS(0, completeParam.iScp.Compare(param1.iScp)); - ASSERT_EQUALS(0, completeParam.iSmsC.Compare(param1.iSmsC)); - ASSERT_EQUALS(completeParam.iSubscribedZoneAndVersion, param1.iSubscribedZoneAndVersion); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - ASSERT_EQUALS(completeElems->At(i).iActiveFlag , elems1->At(i).iActiveFlag ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iR2 , elems1->At(i).iCoordinates.iR2 ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iX , elems1->At(i).iCoordinates.iX ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iY , elems1->At(i).iCoordinates.iY ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iZoneId, elems1->At(i).iCoordinates.iZoneId); - ASSERT_EQUALS(0, completeElems->At(i).iName.Compare(elems1->At(i).iName)); - } - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(9, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneParams and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TViagElement element; - - // Variables for call ReadViagHomeZoneParams. - RMmCustomAPI::TViagParams param; - RMmCustomAPI::TViagElements* elems = NULL; - - elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(elems); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - elems->AppendL(element); - } - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::ReadViagHomeZoneParams - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); - customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); - - /* - * Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams with timeout - * IS ABOUT TO ABORT DUE TO TEF TIMEOUT. - */ - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 401702); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - RMmCustomAPI customAPI; - - //---------------------------------------------- - // TEST D: CTSY will get results from the cache. - //---------------------------------------------- - - //******************************************************************************** - //* To initialize the VIAG home zone cache properly RMmCustomAPI::OpenL should be - //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. - //* That's why OpenPhoneAndCustomAPILC was implemented and is used here - //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. - //******************************************************************************** - - OpenPhoneAndCustomAPILC(customAPI); - - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - RMmCustomAPI::TViagCacheRecordId recId; - recId.iCacheId = c; - recId.iRecordId = r; - - RMmCustomAPI::TViagCacheRecordContent recContent; - - TRequestStatus reqStatus; - customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); - User::WaitForRequest(reqStatus); - - ASSERT_EQUALS(KErrNone,reqStatus.Int()); - - const RMmCustomAPI::TViagCacheRecordContent& expectedContent = - iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; - ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); - ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); - } - } - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ReadViagHomeZoneCache - // from LTSY. - //------------------------------------------------------------------------- - - // unsolicited EReadViagHomeZoneCacheIPC completion crashes CTSY - - RMmCustomAPI::TViagCacheRecordContent unsolicitedData; - TPckgC unsolicitedDataPckg(unsolicitedData); - unsolicitedData.iCellId = 111; - unsolicitedData.iLac = 222; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,KErrNone,unsolicitedDataPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001b -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request failed by NTSY -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001bL() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - RMmCustomAPI customAPI; - - //******************************************************************************** - //* To initialize the VIAG home zone cache properly RMmCustomAPI::OpenL should be - //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. - //* That's why OpenPhoneAndCustomAPILC was implemented and is used here - //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. - //******************************************************************************** - - OpenPhoneAndCustomAPILC(customAPI, KErrGeneral); - - // Complete with an error - MockPrimeEReadViagHomeZoneCacheIPCL(KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin, ETrue, ETrue, KErrGeneral); - - RMmCustomAPI::TViagCacheRecordContent recContent; - TRequestStatus reqStatus; - RMmCustomAPI::TViagCacheRecordId recId; - recId.iCacheId = 2; - recId.iRecordId = 2; - customAPI.ReadViagHomeZoneCache(reqStatus, recId, recContent); - User::WaitForRequest(reqStatus); - - ASSERT_EQUALS(KErrGeneral,reqStatus.Int()); - - //complete without an error - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, KErrNone); - } - } - - - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - recId.iCacheId = c; - recId.iRecordId = r; - customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); - User::WaitForRequest(reqStatus); - - ASSERT_EQUALS(KErrNone,reqStatus.Int()); - - const RMmCustomAPI::TViagCacheRecordContent& expectedContent = - iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; - ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); - ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); - } - } - - AssertMockLtsyStatusL(); - - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001c -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request complete when customAPI is dead -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001cL() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - RBuf8 data; - data.CleanupClosePushL(); - - RMmCustomAPI customAPI; - CleanupClosePushL(customAPI); - TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, err); - - err=iMockLTSY.Connect(); - ASSERT_EQUALS(KErrNone, err); - - RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; - currentlyRetrievedCache.iCacheId = 1; - currentlyRetrievedCache.iRecordId = 0; - TMockLtsyData1 ltsyData(currentlyRetrievedCache); - - // Only Expect, no complete - MockPrimeEReadViagHomeZoneCacheIPCL(KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin, EFalse, ETrue ); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //************************************************************ - //* Invoke RMmCustomAPI::Open prior to triggering any further - //* CTSY events including EMmTsyBootNotifySimStatusReadyIPC - //************************************************************ - err = customAPI.Open(iPhone); - ASSERT_EQUALS(KErrNone, err); - - // EMmTsyBootNotifyModemStatusReadyIPC - iMockLTSY.CompleteL(EMmTsyBootNotifyModemStatusReadyIPC,KErrNone); - - // EMobilePhoneGetNetworkRegistrationStatus - iMockLTSY.ExpectL(EMobilePhoneGetNetworkRegistrationStatus); - iMockLTSY.CompleteL(EMobilePhoneGetNetworkRegistrationStatus,KErrNone,0); - - // EMmTsyBootNotifySimStatusReadyIPC - iMockLTSY.ExpectL(EMmTsyBootNotifySimStatusReadyIPC); - iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); - - - // EMobilePhoneGetHomeNetwork - RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetwork; - homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; - homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; - homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; - homeNetwork.iCountryCode = _L("234"); - homeNetwork.iCdmaSID = _L(""); - homeNetwork.iAnalogSID = _L(""); - homeNetwork.iNetworkId = _L("23499"); - homeNetwork.iDisplayTag = _L("symbian"); - homeNetwork.iShortName = _L("symbian"); - homeNetwork.iLongName = _L("symbian mobile"); - homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; - homeNetwork.iEgprsAvailableIndicator = ETrue; - homeNetwork.iHsdpaAvailableIndicator = ETrue; - TMockLtsyData1 homeNetworkData(homeNetwork); - homeNetworkData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); - iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0); - - // EMmTsyPhoneGetPin1DisableSupportedIPC - TBool pin1DisableSupport = ETrue; - TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); - data.Close(); - pin1DisableSupportData.SerialiseL(data); - iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); - iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,data,0); - - // EMmTsySimRefreshRegisterIPC - iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); - iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); - - // EMobilePhoneGetServiceTable - RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; - TMockLtsyData1 serviceTableData(serviceTable); - data.Close(); - serviceTableData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, data); - RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; - serviceTableResult.iServices1To8 = 0xFF; - serviceTableResult.iServices9To16 = 0xFF; - serviceTableResult.iServices17To24= 0xFF; - serviceTableResult.iServices25To32= 0xFF; - serviceTableResult.iServices33To40= 0xFF; - serviceTableResult.iServices41To48= 0xFF; - serviceTableResult.iServices49To56= 0xFF; - TMockLtsyData1 serviceTableResultData(serviceTableResult); - data.Close(); - serviceTableResultData.SerialiseL(data); - iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0); - - // EMobilePhoneGetALSLine - RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; - TMockLtsyData1 alsLineData(alsLine); - data.Close(); - alsLineData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetALSLine); - iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,data,0); - - // ECustomGetIccCallForwardingStatusIPC - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - // EMobilePhoneGetIccMessageWaitingIndicators - RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; - TMockLtsyData1 - indicatorsData(expectedMessageIndicators); - data.Close(); - indicatorsData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); - iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, data); - - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); - - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // Close the customAPI. - CleanupStack::PopAndDestroy(&customAPI); - // Wait for server to clear... - User::After(KOneSecond); - - // ECustomGetIccCallForwardingStatusIPC - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, KErrNone); - } - } - - // Open another client - RMmCustomAPI customAPI2; - CleanupClosePushL(customAPI2); - ASSERT_EQUALS(KErrNone,customAPI2.Open(iPhone)); - - - - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - TRequestStatus reqStatus; - RMmCustomAPI::TViagCacheRecordId recId; - recId.iCacheId = c; - recId.iRecordId = r; - RMmCustomAPI::TViagCacheRecordContent recContent; - customAPI2.ReadViagHomeZoneCache(reqStatus,recId,recContent); - User::WaitForRequest(reqStatus); - - ASSERT_EQUALS(KErrNone,reqStatus.Int()); - - const RMmCustomAPI::TViagCacheRecordContent& expectedContent = - iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; - ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); - ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); - } - } - - AssertMockLtsyStatusL(); - - - CleanupStack::PopAndDestroy(3, this); // customAPI2, data, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0002L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus reqStatus; - - RMmCustomAPI::TViagCacheRecordId recId; - recId.iCacheId = KViagHomeZoneCacheIdMax; - recId.iRecordId = KViagHomeZoneCacheRecordIdMax; - RMmCustomAPI::TViagCacheRecordContent recContent; - - customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); - customAPI.CancelAsyncRequest(EReadViagHomeZoneCacheIPC); - - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrCancel, reqStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0003L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test C: Test passing out of bounds parameters to RMmCustomAPI::ReadViagHomeZoneCache - //------------------------------------------------------------------------- - - RMmCustomAPI::TViagCacheRecordId KBadRecId[] = - { - {KViagHomeZoneCacheIdMin - 1, KViagHomeZoneCacheRecordIdMin }, - {KViagHomeZoneCacheIdMax + 1, KViagHomeZoneCacheRecordIdMin }, - {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin -1 }, - {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMax + 1} - }; - - for(TInt i = 0; i < sizeof(KBadRecId)/sizeof(KBadRecId[0]); i++) - { - TRequestStatus reqStatus; - - RMmCustomAPI::TViagCacheRecordContent recContent; - - customAPI.ReadViagHomeZoneCache(reqStatus,KBadRecId[i],recContent); - - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrArgument,reqStatus.Int()); - } - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - 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 RMmCustomAPI::ReadViagHomeZoneCache - //------------------------------------------------------------------------- - RMmCustomAPI customAPI2; - RMmCustomAPI customAPI1; - - const RMmCustomAPI::TViagCacheRecordContent& expectedContent2 = - iViagHomeZoneCache[0][0]; - - const RMmCustomAPI::TViagCacheRecordContent& expectedContent1 = - iViagHomeZoneCache[KViagHomeZoneCacheIdMax - KViagHomeZoneCacheIdMin][KViagHomeZoneCacheRecordIdMax - KViagHomeZoneCacheRecordIdMin]; - - RMmCustomAPI::TViagCacheRecordId recId2 = {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin }; - RMmCustomAPI::TViagCacheRecordId recId1 = {KViagHomeZoneCacheIdMax, KViagHomeZoneCacheRecordIdMax }; - - RMmCustomAPI::TViagCacheRecordContent recContent2; - RMmCustomAPI::TViagCacheRecordContent recContent1; - - TRequestStatus reqStatus2; - TRequestStatus reqStatus1; - - //OpenPhoneAndCustomAPILC(customAPI1); - OpenPhoneL(); - OpenCustomAPILC(customAPI1, iPhone, ETrue); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - // start reading from the 2-nd client. - customAPI2.ReadViagHomeZoneCache(reqStatus2,recId2,recContent2); - - // start reading from the 1-st client - customAPI1.ReadViagHomeZoneCache(reqStatus1,recId1,recContent1); - - // Complete the cashing - TBool expect = EFalse; - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, expect); - expect = ETrue; - } - } - - // wait for results - User::WaitForRequest(reqStatus1); - User::WaitForRequest(reqStatus2); - - // check 1-st client results - ASSERT_EQUALS(KErrNone,reqStatus1.Int()); - ASSERT_EQUALS(expectedContent1.iLac, recContent1.iLac); - ASSERT_EQUALS(expectedContent1.iCellId, recContent1.iCellId); - - // check 2-nd client results - ASSERT_EQUALS(KErrNone,reqStatus2.Int()); - ASSERT_EQUALS(expectedContent2.iLac, recContent2.iLac); - ASSERT_EQUALS(expectedContent2.iCellId, recContent2.iCellId); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); // customAPI2,phone2,telServer2,customAPI,this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0005L() - { - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404902); - ASSERT_TRUE(EFalse); - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI); - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::ReadViagHomeZoneCache - //------------------------------------------------------------------------- - TRequestStatus reqStatus; - - RMmCustomAPI::TViagCacheRecordId recId = {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin }; - - RMmCustomAPI::TViagCacheRecordContent recContent; - - // the request is never timed out - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 401805); - ASSERT_TRUE(EFalse); - - customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); - - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrTimedOut,reqStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneCache -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - RMmCustomAPI customAPI; - - //******************************************************************************** - //* To initiazlize the VIAG home zone cache properly RMmCustomAPI::OpenL should be - //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. - //* That's why OpenPhoneAndCustomAPILC was implemented and is used here - //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. - //******************************************************************************** - - OpenPhoneAndCustomAPILC(customAPI); - - RBuf8 data; - data.CleanupClosePushL(); - - RMmCustomAPI::TViagCacheRecordId expRecId; - expRecId.iCacheId = KViagHomeZoneCacheIdMin; - expRecId.iRecordId = KViagHomeZoneCacheRecordIdMin; - - RMmCustomAPI::TViagCacheRecordContent expContent; - expContent.iCellId = 3000; - expContent.iLac = 4000; - - TMockLtsyData2 expData(expRecId,expContent); - - TRequestStatus reqStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - expData.SerialiseL(data); - iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data,KErrGeneral); - - customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrGeneral,reqStatus.Int()) - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); - iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrGeneral); - - customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrGeneral,reqStatus.Int()) - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::WriteViagHomeZoneCache when result is not cached. - //------------------------------------------------------------------------- - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - expRecId.iCacheId = c; - expRecId.iRecordId = r; - - expContent.iCellId = 3000 + c; - expContent.iLac = 4000 + r; - - expData.Close(); - expData.SerialiseL(data); - - iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); - iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrNone); - - // write new cache content - customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrNone,reqStatus.Int()) - - // read it to verify that it was written correctly - RMmCustomAPI::TViagCacheRecordContent newContent; - customAPI.ReadViagHomeZoneCache(reqStatus,expRecId,newContent); - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrNone,reqStatus.Int()) - ASSERT_EQUALS(expContent.iCellId,newContent.iCellId); - ASSERT_EQUALS(expContent.iLac,newContent.iLac); - } - } - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::WriteViagHomeZoneCache - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrNone); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); // data, customAPI, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::WriteViagHomeZoneCache -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::WriteViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - data.CleanupClosePushL(); - - RMmCustomAPI::TViagCacheRecordId expRecId; - expRecId.iCacheId = KViagHomeZoneCacheIdMin; - expRecId.iRecordId = KViagHomeZoneCacheRecordIdMin; - - RMmCustomAPI::TViagCacheRecordContent expContent; - expContent.iCellId = 3000; - expContent.iLac = 4000; - - TMockLtsyData2 expData(expRecId,expContent); - - TRequestStatus reqStatus; - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::WriteViagHomeZoneCache - //------------------------------------------------------------------------- - expData.SerialiseL(data); - iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); - - customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); - customAPI.CancelAsyncRequest(EWriteViagHomeZoneCacheIPC); - - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrCancel,reqStatus.Int()) - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3,this); // data, customAPI, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneCache with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneCache with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test C: Test passing out of bounds parameters to - // RMmCustomAPI::WriteViagHomeZoneCache - //------------------------------------------------------------------------- - const RMmCustomAPI::TViagCacheRecordId KBadRecId[] = - { - {KViagHomeZoneCacheIdMin - 1, KViagHomeZoneCacheRecordIdMin }, - {KViagHomeZoneCacheIdMax + 1, KViagHomeZoneCacheRecordIdMin }, - {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin -1 }, - {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMax + 1} - }; - - const RMmCustomAPI::TViagCacheRecordContent KRecContent = {0,0}; - - for(TInt i = 0; i < sizeof(KBadRecId)/sizeof(KBadRecId[0]); i++) - { - TRequestStatus reqStatus; - - customAPI.WriteViagHomeZoneCache(reqStatus,KBadRecId[i],KRecContent); - - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrArgument,reqStatus.Int()); - } - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::WriteViagHomeZoneCache -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::WriteViagHomeZoneCache -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - // Open 2-nd phone - 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); - - // now open 1-st phone and two RMmCustomAPI-s - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - - OpenPhoneAndCustomAPILC(customAPI1); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::WriteViagHomeZoneCache - //------------------------------------------------------------------------- - RMmCustomAPI::TViagCacheRecordId expRecId1; - expRecId1.iCacheId = KViagHomeZoneCacheIdMin; - expRecId1.iRecordId = KViagHomeZoneCacheRecordIdMin; - - RMmCustomAPI::TViagCacheRecordId expRecId2; - expRecId2.iCacheId = KViagHomeZoneCacheIdMax; - expRecId2.iRecordId = KViagHomeZoneCacheRecordIdMax; - - RMmCustomAPI::TViagCacheRecordContent expContent1; - expContent1.iCellId = 3001; - expContent1.iLac = 4001; - - RMmCustomAPI::TViagCacheRecordContent expContent2; - expContent2.iCellId = 3002; - expContent2.iLac = 4002; - - TRequestStatus reqStatus1; - TRequestStatus reqStatus2; - - TMockLtsyData2 expData(expRecId1,expContent1); - - RBuf8 data; - data.CleanupClosePushL(); - - // Only one EWriteViagHomeZoneCacheIPC request is passed to the Mock LTSY - expData.SerialiseL(data); - iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); - iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrNone); - - // Try to invoke two simultaneous EWriteViagHomeZoneCacheIPC requests. - // The 2-nd one should fail with KErrServerBusy. - customAPI1.WriteViagHomeZoneCache(reqStatus1,expRecId1,expContent1); - customAPI2.WriteViagHomeZoneCache(reqStatus2,expRecId2,expContent2); - User::WaitForRequest(reqStatus1); - User::WaitForRequest(reqStatus2); - ASSERT_EQUALS(KErrNone,reqStatus1.Int()); - ASSERT_EQUALS(KErrServerBusy,reqStatus2.Int()); - - // verify that the record changed by the 1-st client is changed succesfully - RMmCustomAPI::TViagCacheRecordContent newContent; - customAPI1.ReadViagHomeZoneCache(reqStatus1,expRecId1,newContent); - User::WaitForRequest(reqStatus1); - - ASSERT_EQUALS(KErrNone,reqStatus1.Int()); - ASSERT_EQUALS(expContent1.iLac, newContent.iLac); - ASSERT_EQUALS(expContent1.iCellId, newContent.iCellId); - - AssertMockLtsyStatusL(); - - // data, customAPI2, customAPI1, phone2, telServer2, this - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneCache with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneCache and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0005L() - { - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404902); - ASSERT_TRUE(EFalse); - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI); - - RBuf8 data; - data.CleanupClosePushL(); - - RMmCustomAPI::TViagCacheRecordId expRecId; - expRecId.iCacheId = KViagHomeZoneCacheIdMax; - expRecId.iRecordId = KViagHomeZoneCacheRecordIdMax; - - RMmCustomAPI::TViagCacheRecordContent expContent; - expContent.iCellId = 6000; - expContent.iLac = 7000; - - TMockLtsyData2 expData(expRecId,expContent); - - TRequestStatus reqStatus; - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::WriteViagHomeZoneCache - //------------------------------------------------------------------------- - expData.SerialiseL(data); - iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); - - customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrTimedOut,reqStatus.Int()) - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); // data, customAPI, this - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ClearCallBlackList -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ClearCallBlackList -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestClearCallBlackList0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomClearCallBlackListIPC, KErrNotSupported); - - customAPI.ClearCallBlackList(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); - - iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrGeneral); - - customAPI.ClearCallBlackList(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::ClearCallBlackList when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); - iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone); - - customAPI.ClearCallBlackList(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ClearCallBlackList - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ClearCallBlackList -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::ClearCallBlackList -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestClearCallBlackList0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::ClearCallBlackList - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); - iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone, 20); - - customAPI.ClearCallBlackList(requestStatus); - - customAPI.CancelAsyncRequest(ECustomClearCallBlackListIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ClearCallBlackList -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ClearCallBlackList -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestClearCallBlackList0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::ClearCallBlackList - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomClearCallBlackListIPC, KErrNone); - iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone, 20); - customAPI.ClearCallBlackList(requestStatus); - - customAPI2.ClearCallBlackList(requestStatus2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ClearCallBlackList with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ClearCallBlackList and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestClearCallBlackList0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); - - customAPI.ClearCallBlackList(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAIN-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SsAdditionalInfoNotification -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SsAdditionalInfoNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSsAdditionalInfoNotification0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - _LIT8(KInfo, "Info"); - - RMmCustomAPI::TSsAdditionalInfo info; - RMmCustomAPI::TSsAdditionalInfo compInfo; - compInfo.iOperationCode = 0xFF; - compInfo.iAdditionalInfo.Copy(KInfo); - TPckg pckg(compInfo); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SsAdditionalInfoNotification - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SsAdditionalInfoNotification when result is not cached. - //------------------------------------------------------------------------- - - customAPI.SsAdditionalInfoNotification(requestStatus, info); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compInfo.iOperationCode == info.iOperationCode); - ASSERT_TRUE(0 == info.iAdditionalInfo.Compare(compInfo.iAdditionalInfo)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAIN-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SsAdditionalInfoNotification -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SsAdditionalInfoNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSsAdditionalInfoNotification0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - _LIT8(KInfo, "Info"); - - RMmCustomAPI::TSsAdditionalInfo info; - RMmCustomAPI::TSsAdditionalInfo compInfo; - compInfo.iOperationCode = 0xFF; - compInfo.iAdditionalInfo.Copy(KInfo); - TPckg pckg(compInfo); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SsAdditionalInfoNotification - //------------------------------------------------------------------------- - - customAPI.SsAdditionalInfoNotification(requestStatus, info); - customAPI.CancelAsyncRequest(ECustomSsAdditionalInfoNotificationIPC); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAIN-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SsAdditionalInfoNotification -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SsAdditionalInfoNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSsAdditionalInfoNotification0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - TRequestStatus mockLtsyStatus; - - _LIT8(KInfo, "Info"); - - RMmCustomAPI::TSsAdditionalInfo info; - RMmCustomAPI::TSsAdditionalInfo info2; - RMmCustomAPI::TSsAdditionalInfo compInfo; - compInfo.iOperationCode = 0xFF; - compInfo.iAdditionalInfo.Copy(KInfo); - TPckg pckg(compInfo); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::SsAdditionalInfoNotification - //------------------------------------------------------------------------- - - customAPI1.SsAdditionalInfoNotification(requestStatus, info); - customAPI2.SsAdditionalInfoNotification(requestStatus2, info2); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_TRUE(compInfo.iOperationCode == info.iOperationCode); - ASSERT_TRUE(0 == info.iAdditionalInfo.Compare(compInfo.iAdditionalInfo)); - - ASSERT_TRUE(compInfo.iOperationCode == info2.iOperationCode); - ASSERT_TRUE(0 == info2.iAdditionalInfo.Compare(compInfo.iAdditionalInfo)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSRCN-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SsRequestCompleteNotification -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SsRequestCompleteNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSsRequestCompleteNotification0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - TInt status; - const TInt compStatus = 0xFF; - TPckg pckg(compStatus); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SsRequestCompleteNotification - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SsRequestCompleteNotification when result is not cached. - //------------------------------------------------------------------------- - - customAPI.SsRequestCompleteNotification(requestStatus, status); - - iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(status, compStatus); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSRCN-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SsRequestCompleteNotification -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SsRequestCompleteNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSsRequestCompleteNotification0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - TInt status; - const TInt compStatus = 0xFF; - TPckg pckg(compStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SsRequestCompleteNotification - //------------------------------------------------------------------------- - - customAPI.SsRequestCompleteNotification(requestStatus, status); - customAPI.CancelAsyncRequest(ECustomNotifySsRequestCompleteIPC); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSRCN-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SsRequestCompleteNotification -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SsRequestCompleteNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSsRequestCompleteNotification0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI1; - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI1, iPhone); - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - TInt status; - TInt status2; - const TInt compStatus = 0xFF; - TPckg pckg(compStatus); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::SsRequestCompleteNotification - //------------------------------------------------------------------------- - - customAPI1.SsRequestCompleteNotification(requestStatus, status); - customAPI2.SsRequestCompleteNotification(requestStatus2, status2); - - iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_EQUALS(compStatus, status); - ASSERT_EQUALS(compStatus, status2); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCIB-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::IsBlocked -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::IsBlocked -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestIsBlocked0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); - TBool result; - - TUint8 codeId(KSecCodePin); - - TMockLtsyData1 ltsyData(codeId); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomIsBlockedIPC, data, KErrNotSupported); - - TInt ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrNotSupported, ret); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - const TBool compResult(ETrue); - TPckg resPckg(compResult); - - iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); - iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrGeneral, resPckg); - - ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrGeneral, ret); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::IsBlocked when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); - iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); - - ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrNone, ret); - ASSERT_EQUALS(compResult, result); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::IsBlocked when result is not cached. - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityCodePin2; - codeId = KSecCodePin2; - - data.Close(); - ltsyData.SerialiseL(data); - iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); - iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); - - ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrNone, ret); - ASSERT_EQUALS(compResult, result); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C3: Completion request of - // RMmCustomAPI::IsBlocked - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityCodePuk1; - - ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrArgument, ret); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST C4: Completion request of - // RMmCustomAPI::IsBlocked - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityUniversalPin; - - ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrArgument, ret); - - AssertMockLtsyStatusL(); - - - - //- making ICC3G ---------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TICCType iccType(EICCTypeSim3G); - - TMockLtsyData1 iccData(iccType); - data.Close(); - iccData.SerialiseL(data); - - iMockLTSY.CompleteL(EMmTsySimGetICCType, KErrNone, data); - - iMockLTSY.ExpectL(EMmTsySecurityGetSimActivePinStateIPC); - iMockLTSY.CompleteL(EMmTsySecurityGetSimActivePinStateIPC, KErrNone); - - // Wait for completion of iMockLTSY.NotifyTerminated - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C5: Successful completion request of - // RMmCustomAPI::IsBlocked when result is not cached. - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityUniversalPin; - codeId = KSecCodeUpin; - - data.Close(); - ltsyData.SerialiseL(data); - iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); - iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); - - ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrNone, ret); - ASSERT_EQUALS(compResult, result); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C6: Successful completion request of - // RMmCustomAPI::IsBlocked when result is not cached. - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityCodePassPhrase; - codeId = KSecCodeSecurity; - - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); - iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); - - ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrNone, ret); - ASSERT_EQUALS(compResult, result); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::IsBlocked - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCIB-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::IsBlocked with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::IsBlocked and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestIsBlocked0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); - TBool result; - - TUint8 codeId(KSecCodePin); - - TMockLtsyData1 ltsyData(codeId); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 402401); - // Request ECustomIsBlockedIPC is not completed by timeout. - - // to void next test blocking - ASSERT_TRUE(EFalse); - - TInt ret = customAPI.IsBlocked(type, result); - - ASSERT_EQUALS(KErrTimedOut, ret); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckSecurityCode -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckSecurityCode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckSecurityCode0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 data2; - CleanupClosePushL(data2); - - TRequestStatus requestStatus; - - RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); - TUint8 codeId(KSecCodePin); - RMobilePhone::TMobilePassword secCode; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - TMockLtsyData2 ltsyData(codeId, secCode); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data, KErrNotSupported); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrGeneral); - - TBool flag(EFalse); - TMockLtsyData2 ltsyData2(codeId, flag); - ltsyData2.SerialiseL(data2); - - // this is because HandleRequest(ECustomCheckSecurityCodeCancelIPC) is called when completing by error - iMockLTSY.ExpectL( ECustomCheckSecurityCodeCancelIPC, data2); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::CheckSecurityCode when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::CheckSecurityCode when result is not cached. - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityCodePin2; - codeId = KSecCodePin2; - - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C3: Successful completion request of - // RMmCustomAPI::CheckSecurityCode when result is not cached. - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityCodePuk1; - codeId = KSecCodePuk; - - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C4: Successful completion request of - // RMmCustomAPI::CheckSecurityCode when result is not cached. - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityCodePuk2; - codeId = KSecCodePuk2; - - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST C5: Successful completion request of - // RMmCustomAPI::CheckSecurityCode when result is not cached. - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityCodePassPhrase; - codeId = KSecCodeSecurity; - - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C6: Completion request of - // RMmCustomAPI::CheckSecurityCode when result type is ESecurityUniversalPin - //------------------------------------------------------------------------- - - type = RMmCustomAPI::ESecurityUniversalPin; - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::CheckSecurityCode - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckSecurityCode -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckSecurityCode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckSecurityCode0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 data2; - CleanupClosePushL(data2); - - TRequestStatus requestStatus; - - RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); - TUint8 codeId(KSecCodePin); - RMobilePhone::TMobilePassword secCode; - - TMockLtsyData2 ltsyData(codeId, secCode); - ltsyData.SerialiseL(data); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test A: Cancelling of RMmCustomAPI::CheckSecurityCode - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - - customAPI.CheckSecurityCode(requestStatus, type); - - TBool flag(ETrue); - TMockLtsyData2 ltsyData2(codeId, flag); - ltsyData2.SerialiseL(data2); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeCancelIPC, data2); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrCancel); - - customAPI.CancelAsyncRequest(ECustomCheckSecurityCodeIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - //------------------------------------------------------------------------- - // Test B: Cancelling of RMmCustomAPI::CheckSecurityCode - // Baseband returns the request successfully before handling cancel function. - //------------------------------------------------------------------------- - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone, 20); - - customAPI.CheckSecurityCode(requestStatus, type); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeCancelIPC, data2); - - customAPI.CancelAsyncRequest(ECustomCheckSecurityCodeIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckSecurityCode -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckSecurityCode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckSecurityCode0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); - RMmCustomAPI::TSecurityCodeType type2(RMmCustomAPI::ESecurityCodePin1); - TUint8 codeId(KSecCodePin); - RMobilePhone::TMobilePassword secCode; - - TMockLtsyData2 ltsyData(codeId, secCode); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::CheckSecurityCode - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone,20); - - customAPI.CheckSecurityCode(requestStatus, type); - customAPI2.CheckSecurityCode(requestStatus2, type2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckSecurityCode with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckSecurityCode and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckSecurityCode0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - - RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); - TUint8 codeId(KSecCodePin); - RMobilePhone::TMobilePassword secCode; - - TMockLtsyData2 ltsyData(codeId, secCode); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 402502); - // Request ECustomCheckSecurityCodeIPC is not completed by timeout. - - // to avoid next test blocking - ASSERT_TRUE(EFalse); - - customAPI.CheckSecurityCode(requestStatus, type); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGAP-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetActivePin -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetActivePin -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetActivePin0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMobilePhone::TMobilePhoneSecurityCode code; - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetActivePin when result is not cached. - //------------------------------------------------------------------------- - - customAPI.GetActivePin(code); - - ASSERT_EQUALS(RMobilePhone::ESecurityCodePin1, code); - - AssertMockLtsyStatusL(); - - // now change the pin and get the changed value - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - const RMobilePhone::TMobilePhoneSecurityCode compCode(RMobilePhone::ESecurityCodePin2); - TPckg compPckg(compCode); - - iMockLTSY.CompleteL(EMmTsySecurityGetSimActivePinStateIPC, KErrNone, compPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - customAPI.GetActivePin(code); - - ASSERT_EQUALS(compCode, code); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGATD-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetAirTimeDuration -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetAirTimeDuration -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetAirTimeDuration0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TTimeIntervalSeconds sec; - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetAirTimeDuration when result is not cached. - //------------------------------------------------------------------------- - // check when there were no any calls on air - - TInt ret = customAPI.GetAirTimeDuration(sec); - - ASSERT_EQUALS(KErrNone, ret); - ASSERT_EQUALS(0, sec.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::GetAirTimeDuration when result is not cached. - //------------------------------------------------------------------------- - // check when there was a call on air - - // first make the connected call - - TName callName; - TInt callId(1); - RLine line; - RMobileCall call; - RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; - - OpenLineLC(line, iPhone, KMmTsyVoice1LineName); - - CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, - callId, RMobileCall::EStatusAnswering, mobileService); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusConnected; - TMockLtsyCallData1 mockCallData2(callId, mobileService, mobileCallStatus); - mockCallData2.SerialiseL(completeData); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // wait a little - User::After(2000000); //mcsec - - ret = customAPI.GetAirTimeDuration(sec); - - ASSERT_EQUALS(KErrNone, ret); - - ASSERT_TRUE(0 < sec.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNetworkProviderName -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetNetworkProviderName0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TName name; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC, KErrNotSupported); - - customAPI.GetNetworkProviderName(requestStatus, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); - - _LIT(KName, "ProviderName"); - TName compName(KName); - TPckg compPckg(compName); - - iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrGeneral, compPckg); - - customAPI.GetNetworkProviderName(requestStatus, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetNetworkProviderName when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); - iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg); - - customAPI.GetNetworkProviderName(requestStatus, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(0 == name.Compare(compName)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetNetworkProviderName - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); // customAPI, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetNetworkProviderName -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetNetworkProviderName -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetNetworkProviderName0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TName name; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetNetworkProviderName - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); - - - _LIT(KName, "ProviderName"); - TName compName(KName); - TPckg compPckg(compName); - - iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg, 20); - - customAPI.GetNetworkProviderName(requestStatus, name); - - customAPI.CancelAsyncRequest(ECustomGetNetworkProviderNameIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); // customAPI, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNetworkProviderName with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetNetworkProviderName0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TBuf<1> littleBuf; - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); - - _LIT(KName, "ProviderName"); - TName compName(KName); - TPckg compPckg(compName); - - iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg); - - customAPI.GetNetworkProviderName(requestStatus, littleBuf); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); // customAPI, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetNetworkProviderName -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetNetworkProviderName -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetNetworkProviderName0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - TName name; - TName name2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetNetworkProviderName - //------------------------------------------------------------------------- - - _LIT(KName, "ProviderName"); - TName compName(KName); - TPckg compPckg(compName); - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); - iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg, 20); - - customAPI.GetNetworkProviderName(requestStatus, name); - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); - - _LIT(KName2, "ProviderName2"); - TName compName2(KName2); - TPckg compPckg2(compName2); - - iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg2); - - customAPI2.GetNetworkProviderName(requestStatus2, name2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(0 == name.Compare(compName)); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_TRUE(0 == name2.Compare(compName2)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); // customAPI2, customAPI, phone2, telServer2, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNetworkProviderName with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetNetworkProviderName0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TName name; - - iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); - - customAPI.GetNetworkProviderName(requestStatus, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); // customAPI, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckEmergencyNumber -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckEmergencyNumber -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckEmergencyNumber0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - _LIT(KEmerNum, "IfThisIsEmer?"); - - TRequestStatus requestStatus; - RMmCustomAPI::TEmerNumberCheckMode mode; - - mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; - mode.iNumber.Copy(KEmerNum); - - TBool result; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData, KErrNotSupported); - - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); - - _LIT(KNumber, "Number"); - - RMmCustomAPI::TMobileTelNumber telNumber(KNumber); - RMmCustomAPI::TMobileTelNumber* telNumberPtr(&telNumber); - - TMockLtsyData1< RMmCustomAPI::TMobileTelNumber* > ltsyData2(telNumberPtr); - ltsyData2.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrGeneral, compData); - - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::CheckEmergencyNumber when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); - iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); - - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, mode.iNumber.Compare(telNumber)); - ASSERT_EQUALS(1, result); - - - //------------------------------------------------------------------------- - // TEST C1: mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; - //------------------------------------------------------------------------- - - mode.iNumber.Copy(KEmerNum); - mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); - iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); - - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, mode.iNumber.Compare(telNumber)); - ASSERT_EQUALS(1, result); - - - //------------------------------------------------------------------------- - // TEST C2: now check with telNumberPtr = NULL - //------------------------------------------------------------------------- - - telNumberPtr = NULL; - compData.Close(); - ltsyData2.SerialiseL(compData); - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); - iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); - - mode.iNumber.Copy(KEmerNum); - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, mode.iNumber.Compare(KEmerNum)); - ASSERT_TRUE(EFalse == result); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::CheckEmergencyNumber - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - - // check a branch with iISVDialNumberCheck - - TName callName; - TInt callId(1); - RLine line; - RMobileCall call; - RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; - - OpenLineLC(line, iPhone, KMmTsyVoice1LineName); - - CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, - callId, RMobileCall::EStatusIdle, mobileService); - - _LIT(KPhoneNumber, "135468456456"); - - RMobileCall::TEtel3rdPartyMobileCallParamsV1 callParams; - callParams.iIdRestrict = RMobileCall::ESendMyId; - callParams.iAutoRedial = ETrue; - - mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; - mode.iNumber.Copy(KPhoneNumber); - expectData.Close(); - ltsyData.SerialiseL(expectData); - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData, KErrNotSupported); - - TPckg pckgCallParams(callParams); - - call.DialISV(requestStatus, pckgCallParams, KPhoneNumber); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrServerBusy, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckEmergencyNumber -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckEmergencyNumber -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckEmergencyNumber0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - _LIT(KEmerNum, "IfThisIsEmer?"); - - TRequestStatus requestStatus; - TBool result; - RMmCustomAPI::TEmerNumberCheckMode mode; - - mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; - mode.iNumber.Copy(KEmerNum); - - TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::CheckEmergencyNumber - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); - - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - - customAPI.CancelAsyncRequest(ECustomCheckEmergencyNumberIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - _LIT(KNumber, "Number"); - - RMmCustomAPI::TMobileTelNumber telNumber(KNumber); - RMmCustomAPI::TMobileTelNumber* telNumberPtr(&telNumber); - - TMockLtsyData1< RMmCustomAPI::TMobileTelNumber* > ltsyData2(telNumberPtr); - ltsyData2.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckEmergencyNumber -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckEmergencyNumber -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckEmergencyNumber0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - - _LIT(KEmerNum, "IfThisIsEmer?"); - - TRequestStatus requestStatus; - TBool result; - RMmCustomAPI::TEmerNumberCheckMode mode; - - mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; - mode.iNumber.Copy(KEmerNum); - - TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); - ltsyData.SerialiseL(expectData); - - TRequestStatus requestStatus2; - TBool result2; - RMmCustomAPI::TEmerNumberCheckMode mode2; - - mode2.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; - mode2.iNumber.Copy(KEmerNum); - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); - - _LIT(KNumber, "Number"); - - RMmCustomAPI::TMobileTelNumber telNumber(KNumber); - RMmCustomAPI::TMobileTelNumber* telNumberPtr(&telNumber); - - TMockLtsyData1< RMmCustomAPI::TMobileTelNumber* > ltsyData2(telNumberPtr); - ltsyData2.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData, 10); - - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - customAPI2.CheckEmergencyNumber(requestStatus2, mode2, result2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(7, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckEmergencyNumber with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckEmergencyNumber and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckEmergencyNumber0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - _LIT(KEmerNum, "IfThisIsEmer?"); - - TRequestStatus requestStatus; - TBool result; - RMmCustomAPI::TEmerNumberCheckMode mode; - - mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; - mode.iNumber.Copy(KEmerNum); - - TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); - - customAPI.CheckEmergencyNumber(requestStatus, mode, result); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyPndCacheReady -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyPndCacheReady -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyPndCacheReady0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TName name; - - RMobilePhoneBookStore bookStore; - TName pbName(KETelIccAdnPhoneBook); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of RMmCustomAPI::NotifyPndCacheReady - //------------------------------------------------------------------------- - - customAPI.NotifyPndCacheReady(requestStatus, name); - - OpenPhoneBookStoreL(bookStore, pbName, iPhone); - CleanupClosePushL(bookStore); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(0, name.Compare(pbName)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0001b -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyPndCacheReady when caching has been originated from SIM. -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyPndCacheReady -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyPndCacheReady0001bL() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TName name; - - TName pbName(KETelIccAdnPhoneBook); - - //------------------------------------------------------------------------- - // TEST A: Successful completion request of RMmCustomAPI::NotifyPndCacheReady - // when caching has been originated from SIM. - //------------------------------------------------------------------------- - customAPI.NotifyPndCacheReady(requestStatus, name); - - TInt simError = KErrNone; - - RMobilePhoneBookStore bookStore; - OpenPhoneBookStoreWithSIMRefreshL(bookStore, pbName, iPhone, simError); - CleanupClosePushL(bookStore); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(0, name.Compare(pbName)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - //---------------------------------------------------------- - // Telephony server has to be opened to test this - // scenario otherwise the below condition is not - // easy to test. - //---------------------------------------------------------- - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, iPhone); - - TRequestStatus requestStatus2; - TName name2; - - //------------------------------------------------------------------------- - // TEST B: Unsuccessful completion request of RMmCustomAPI::NotifyPndCacheReady - // when caching has been originated from SIM. - //------------------------------------------------------------------------- - customAPI2.NotifyPndCacheReady(requestStatus2, name2); - - RMobilePhoneBookStore bookStore2; - simError = KErrGeneral; - OpenPhoneBookStoreWithSIMRefreshL(bookStore2, pbName, iPhone, simError); - CleanupClosePushL(bookStore2); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrGeneral, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyPndCacheReady -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyPndCacheReady -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyPndCacheReady0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TName name; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyPndCacheReady - //------------------------------------------------------------------------- - - customAPI.NotifyPndCacheReady(requestStatus, name); - - _LIT(KName, "Name"); - - TName compName(KName); - TPckg compNamePckg(compName); - - iMockLTSY.CompleteL(ECustomNotifyPndCacheReadyIPC, KErrNone, compNamePckg, 20); - - customAPI.CancelAsyncRequest(ECustomNotifyPndCacheReadyIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyPndCacheReady with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyPndCacheReady with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyPndCacheReady0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TName name; - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 data2; - CleanupClosePushL(data2); - - RBuf8 data3; - CleanupClosePushL(data3); - - RMobilePhoneBookStore bookStore; - TName pbName(KETelIccAdnPhoneBook); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TMockLtsyPhoneBookData0 storeInitData(pbName); - storeInitData.SerialiseL(data); - - CStorageInfoData storageData; - - SetStorageInfoData(storageData); - - TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(pbName, storageData); - retStoreInitC.SerialiseL(data2); - - //EMmTsyPhoneBookStoreCacheIPC - CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); - CleanupStack::PushL(cache); - - TMockLtsyPhoneBookData1*> storeCacheData(pbName, cache); - storeCacheData.SerialiseL(data3); - - //------------------------------------------------------------------------- - // TEST 1: completion by error value from CMmPhoneBookStoreTsy::CompletePBStoreInitializationL() - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); - iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrGeneral, data2); - - customAPI.NotifyPndCacheReady(requestStatus, name); - - TInt ret = bookStore.Open(iPhone, pbName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(bookStore); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - ASSERT_EQUALS(0, name.Compare(pbName)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(1); - - //------------------------------------------------------------------------- - // TEST 2: completion by error value from CMmPhoneBookStoreTsy::CompleteCachingL() - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); - iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data2); - - iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, data); - iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrGeneral, data3); - - customAPI.NotifyPndCacheReady(requestStatus, name); - - ret = bookStore.Open(iPhone, pbName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(bookStore); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - ASSERT_EQUALS(0, name.Compare(pbName)); - - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(7, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyPndCacheReady -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyPndCacheReady -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyPndCacheReady0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - TName name; - TName name2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyPndCacheReady - //------------------------------------------------------------------------- - - customAPI.NotifyPndCacheReady(requestStatus, name); - customAPI2.NotifyPndCacheReady(requestStatus2, name2); - - RMobilePhoneBookStore bookStore; - TName pbName(KETelIccAdnPhoneBook); - - OpenPhoneBookStoreL(bookStore, pbName, iPhone); - CleanupClosePushL(bookStore); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(0, name.Compare(pbName)); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - ASSERT_EQUALS(0, name2.Compare(pbName)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGPCS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetPndCacheStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetPndCacheStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetPndCacheStatus0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TPndCacheStatus status; - - // TEST C: Successful completion request of - // RMmCustomAPI::GetPndCacheStatus when result is not cached. - // Check KETelIccAdnPhoneBook - - TName name; - name.Copy(KETelIccAdnPhoneBook); - - customAPI.GetPndCacheStatus(requestStatus, status, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::ECacheNotReady == status); - - AssertMockLtsyStatusL(); - - - // TEST C2: Successful completion request of - // RMmCustomAPI::GetPndCacheStatus when result is not cached. - // Check KETelIccFdnPhoneBook - - name.Copy(KETelIccFdnPhoneBook); - - customAPI.GetPndCacheStatus(requestStatus, status, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::ECacheNotReady == status); - - AssertMockLtsyStatusL(); - - // TEST C3: Successful completion request of - // RMmCustomAPI::GetPndCacheStatus when result is not cached. - // Check KETelIccBdnPhoneBook - - name.Copy(KETelIccBdnPhoneBook ); - - customAPI.GetPndCacheStatus(requestStatus, status, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::ECacheNotUsed == status); - - AssertMockLtsyStatusL(); - - // TEST C4: Successful completion request of - // RMmCustomAPI::GetPndCacheStatus when result is not cached. - // Check KETelIccSdnPhoneBook - - name.Copy(KETelIccSdnPhoneBook ); - - customAPI.GetPndCacheStatus(requestStatus, status, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::ECacheNotUsed == status); - - AssertMockLtsyStatusL(); - - // TEST C5: Successful completion request of - // RMmCustomAPI::GetPndCacheStatus when result is not cached. - // Check KETelIccVoiceMailBox - - name.Copy(KETelIccVoiceMailBox ); - - customAPI.GetPndCacheStatus(requestStatus, status, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::ECacheNotUsed == status); - - AssertMockLtsyStatusL(); - - // TEST C6: Successful completion request of - // RMmCustomAPI::GetPndCacheStatus. - // Get cache ready. - - name.Copy(KETelIccAdnPhoneBook ); - RMobilePhoneBookStore bookStore; - - OpenPhoneBookStoreL(bookStore, name, iPhone); - CleanupClosePushL(bookStore); - - customAPI.GetPndCacheStatus(requestStatus, status, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::ECacheReady == status); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGPCS-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetPndCacheStatus with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetPndCacheStatus with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetPndCacheStatus0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TPndCacheStatus status; - - // Check non-existing phoneBookStore - - _LIT(KBadName, "BadName"); - - TName name; - name.Copy(KBadName); - - customAPI.GetPndCacheStatus(requestStatus, status, name); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGON-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetOperatorName -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetOperatorName -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetOperatorName0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TOperatorNameInfo info; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetOperatorNameIPC, KErrNotSupported); - - customAPI.GetOperatorName(requestStatus, info); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); - - _LIT(KName, "OperName"); - - RMmCustomAPI::TOperatorNameInfo compInfo; - compInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; - compInfo.iName.Copy(KName); - TPckg compInfoPckg(compInfo); - - iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrGeneral, compInfoPckg); - - customAPI.GetOperatorName(requestStatus, info); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetOperatorName when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); - iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg); - - customAPI.GetOperatorName(requestStatus, info); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compInfo.iType == info.iType); - ASSERT_TRUE(0 == info.iName.Compare(compInfo.iName)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetOperatorName - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGON-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetOperatorName -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetOperatorName -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetOperatorName0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TOperatorNameInfo info; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetOperatorName - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); - - _LIT(KName, "OperName"); - - RMmCustomAPI::TOperatorNameInfo compInfo; - compInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; - compInfo.iName.Copy(KName); - TPckg compInfoPckg(compInfo); - - iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg, 20); - - customAPI.GetOperatorName(requestStatus, info); - - customAPI.CancelAsyncRequest(ECustomGetOperatorNameIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGON-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetOperatorName -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetOperatorName -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetOperatorName0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TOperatorNameInfo info; - RMmCustomAPI::TOperatorNameInfo info2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetOperatorName - //------------------------------------------------------------------------- - - _LIT(KName, "OperName"); - - RMmCustomAPI::TOperatorNameInfo compInfo; - compInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; - compInfo.iName.Copy(KName); - TPckg compInfoPckg(compInfo); - - iMockLTSY.ExpectL( ECustomGetOperatorNameIPC, KErrNone); - iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg, 20); - - customAPI.GetOperatorName(requestStatus, info); - - _LIT(KName2, "OperName2"); - - RMmCustomAPI::TOperatorNameInfo compInfo2; - compInfo2.iType = RMmCustomAPI::EOperatorNameNitzShort; - compInfo2.iName.Copy(KName2); - TPckg compInfoPckg2(compInfo2); - - iMockLTSY.ExpectL( ECustomGetOperatorNameIPC, KErrNone); - iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg2); - - customAPI2.GetOperatorName(requestStatus2, info2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compInfo.iType == info.iType); - ASSERT_TRUE(0 == info.iName.Compare(compInfo.iName)); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_TRUE(compInfo2.iType == info2.iType); - ASSERT_TRUE(0 == info2.iName.Compare(compInfo2.iName)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGON-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetOperatorName with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetOperatorName and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetOperatorName0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TOperatorNameInfo info; - - iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); - - customAPI.GetOperatorName(requestStatus, info); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetProgrammableOperatorLogo -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetProgrammableOperatorLogo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI::TOperatorId oper; - RMmCustomAPI::TOperatorLogo logo; - - TBuf8<128> buf; - logo.iOperatorLogo = &buf; - - oper.iMcc = 0; - oper.iMnc = 0; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - TRequestStatus requestStatus; - - TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData, KErrNotSupported); - - customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); - - _LIT8(KBuf, "BufBufBufBufBuf"); - TBuf8 compBuf(KBuf); - - RMmCustomAPI::TOperatorId operComp; - RMmCustomAPI::TOperatorLogo logoComp; - - operComp.iMcc = 1; - operComp.iMnc = 1; - - logoComp.iLogoInfo.iLogoWidth = 2; - logoComp.iLogoInfo.iLogoHeight = 2; - logoComp.iLogoInfo.iCompression = 2; - logoComp.iLogoInfo.iDepth = RMmCustomAPI::EBitPerPixel1; - logoComp.iOperatorLogo = &compBuf; - - TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); - ltsyData2.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrGeneral, compData); - - customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetProgrammableOperatorLogo when result is not cached. - //------------------------------------------------------------------------- - - - iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); - iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); - - customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(operComp.iMcc == oper.iMcc); - ASSERT_TRUE(operComp.iMnc == oper.iMnc); - ASSERT_TRUE(logoComp.iLogoInfo.iLogoWidth == logo.iLogoInfo.iLogoWidth); - ASSERT_TRUE(logoComp.iLogoInfo.iLogoHeight == logo.iLogoInfo.iLogoHeight); - ASSERT_TRUE(logoComp.iLogoInfo.iCompression == logo.iLogoInfo.iCompression); - ASSERT_TRUE(logoComp.iLogoInfo.iDepth == logo.iLogoInfo.iDepth); - ASSERT_TRUE(0 == logoComp.iOperatorLogo->Compare(*logo.iOperatorLogo)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetProgrammableOperatorLogo - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetProgrammableOperatorLogo -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetProgrammableOperatorLogo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - RMmCustomAPI::TOperatorId oper; - RMmCustomAPI::TOperatorLogo logo; - - oper.iMcc = 0; - oper.iMnc = 0; - - TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetProgrammableOperatorLogo - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); - - customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); - - customAPI.CancelAsyncRequest(ECustomGetProgrammableOperatorLogoIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - RMmCustomAPI::TOperatorId operComp; - RMmCustomAPI::TOperatorLogo logoComp; - - _LIT8(KBuf, "BufBufBufBufBuf"); - TBuf8 compBuf(KBuf); - logoComp.iOperatorLogo = &compBuf; - - TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); - ltsyData2.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4); - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetProgrammableOperatorLogo with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetProgrammableOperatorLogo with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0003L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - - TRequestStatus requestStatus; - - RMmCustomAPI::TOperatorId oper; - RMmCustomAPI::TOperatorLogo logo; - - oper.iMcc = 0; - oper.iMnc = 0; - - TBuf8<1> littleBuf; - logo.iOperatorLogo = &littleBuf; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); - ltsyData.SerialiseL(expectData); - - RMmCustomAPI::TOperatorId operComp; - RMmCustomAPI::TOperatorLogo logoComp; - - _LIT8(KBuf, "BufBufBufBufBuf"); - TBuf8 compBuf(KBuf); - - operComp.iMcc = 1; - operComp.iMnc = 1; - - logoComp.iLogoInfo.iLogoWidth = 2; - logoComp.iLogoInfo.iLogoHeight = 2; - logoComp.iLogoInfo.iCompression = 2; - logoComp.iLogoInfo.iDepth = RMmCustomAPI::EBitPerPixel1; - logoComp.iOperatorLogo = &compBuf; - - TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); - ltsyData2.SerialiseL(compData); - - iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); - iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); - - customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTooBig, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4, this); - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetProgrammableOperatorLogo -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetProgrammableOperatorLogo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TOperatorId oper; - RMmCustomAPI::TOperatorLogo logo; - - oper.iMcc = 0; - oper.iMnc = 0; - - RMmCustomAPI::TOperatorId oper2; - RMmCustomAPI::TOperatorLogo logo2; - - oper2.iMcc = 0; - oper2.iMnc = 0; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); - - RMmCustomAPI::TOperatorId operComp; - RMmCustomAPI::TOperatorLogo logoComp; - - _LIT8(KBuf, "BufBufBufBufBuf"); - TBuf8 compBuf(KBuf); - - operComp.iMcc = 1; - operComp.iMnc = 1; - - logoComp.iLogoInfo.iLogoWidth = 2; - logoComp.iLogoInfo.iLogoHeight = 2; - logoComp.iLogoInfo.iCompression = 2; - logoComp.iLogoInfo.iDepth = RMmCustomAPI::EBitPerPixel1; - logoComp.iOperatorLogo = &compBuf; - - TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); - ltsyData2.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData, 20); - - - customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); - customAPI2.GetProgrammableOperatorLogo(requestStatus2, oper2, logo2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(7, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetProgrammableOperatorLogo with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetProgrammableOperatorLogo and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TOperatorId oper; - RMmCustomAPI::TOperatorLogo logo; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); - - customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNPOLC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyProgrammableOperatorLogoChange -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyProgrammableOperatorLogoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyProgrammableOperatorLogoChange0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TOperatorId operatorId; - operatorId.iMcc = 0; - operatorId.iMnc = 0; - - // tests for RMmCustomAPI::NotifyProgrammableOperatorLogoChange should be written when ECustomNotifyProgrammableOperatorLogoChangeIPC - // would be proccessed. - - customAPI.NotifyProgrammableOperatorLogoChange( requestStatus, operatorId); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNSNE-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifySsNetworkEvent -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifySsNetworkEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifySsNetworkEvent0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - - RMmCustomAPI::TSsTypeAndMode ssTypeAndMode; - RMmCustomAPI::TSsInfo ssInfo; - - RMmCustomAPI::TSsTypeAndMode ssTypeAndModeComp; - RMmCustomAPI::TSsInfo ssInfoComp; - - // fill with random data - _LIT(KRemote, "Remote"); - - ssTypeAndModeComp.iSsType = RMmCustomAPI::ESsForwNoReply; - ssTypeAndModeComp.iSsMode = RMmCustomAPI::ESsModeActive; - - ssInfoComp.iForwMode = RMmCustomAPI::ESsOutCallForwToC; - ssInfoComp.iCallWait = ETrue; - ssInfoComp.iCallHold = RMmCustomAPI::ESsHoldResume; - ssInfoComp.iConfInd = ETrue; - ssInfoComp.iCugIndex = 15; - ssInfoComp.iClirSuppReject = EFalse; - ssInfoComp.iEctCallState = RMmCustomAPI::ESsEctAlerting; - ssInfoComp.iChoice = RMmCustomAPI::ESsPresRestrictedAddress; - ssInfoComp.iRemoteAddress.Copy(KRemote); - - TMockLtsyData2< RMmCustomAPI::TSsTypeAndMode, RMmCustomAPI::TSsInfo > - ltsyData(ssTypeAndModeComp, ssInfoComp); - ltsyData.SerialiseL(data); - - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifySsNetworkEvent - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); - - iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrGeneral, data); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifySsNetworkEvent when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); - - iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(ssTypeAndModeComp.iSsType == ssTypeAndMode.iSsType); - ASSERT_TRUE(ssTypeAndModeComp.iSsMode == ssTypeAndMode.iSsMode); - ASSERT_TRUE(ssInfoComp.iForwMode == ssInfo.iForwMode); - ASSERT_TRUE(ssInfoComp.iCallWait == ssInfo.iCallWait); - ASSERT_TRUE(ssInfoComp.iCallHold == ssInfo.iCallHold); - ASSERT_TRUE(ssInfoComp.iConfInd == ssInfo.iConfInd); - ASSERT_TRUE(ssInfoComp.iCugIndex == ssInfo.iCugIndex); - ASSERT_TRUE(ssInfoComp.iClirSuppReject == ssInfo.iClirSuppReject); - ASSERT_TRUE(ssInfoComp.iEctCallState == ssInfo.iEctCallState); - ASSERT_TRUE(ssInfoComp.iChoice == ssInfo.iChoice); - ASSERT_TRUE(0 == ssInfo.iRemoteAddress.Compare(ssInfoComp.iRemoteAddress)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNSNE-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifySsNetworkEvent -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifySsNetworkEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifySsNetworkEvent0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - - RMmCustomAPI::TSsTypeAndMode ssTypeAndMode; - RMmCustomAPI::TSsInfo ssInfo; - - RMmCustomAPI::TSsTypeAndMode ssTypeAndModeComp; - RMmCustomAPI::TSsInfo ssInfoComp; - - TMockLtsyData2< RMmCustomAPI::TSsTypeAndMode, RMmCustomAPI::TSsInfo > - ltsyData(ssTypeAndModeComp, ssInfoComp); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifySsNetworkEvent - //------------------------------------------------------------------------- - customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); - - customAPI.CancelAsyncRequest(ECustomNotifySsNetworkEventIPC); - - iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNSNE-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifySsNetworkEvent -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifySsNetworkEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifySsNetworkEvent0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TSsTypeAndMode ssTypeAndMode; - RMmCustomAPI::TSsInfo ssInfo; - - RMmCustomAPI::TSsTypeAndMode ssTypeAndMode2; - RMmCustomAPI::TSsInfo ssInfo2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifySsNetworkEvent - //------------------------------------------------------------------------- - customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); - customAPI2.NotifySsNetworkEvent(requestStatus2, ssTypeAndMode2, ssInfo2); - - // fill with random data - _LIT(KRemote, "Remote"); - - RMmCustomAPI::TSsTypeAndMode ssTypeAndModeComp; - RMmCustomAPI::TSsInfo ssInfoComp; - - ssTypeAndModeComp.iSsType = RMmCustomAPI::ESsForwNoReply; - ssTypeAndModeComp.iSsMode = RMmCustomAPI::ESsModeActive; - - ssInfoComp.iForwMode = RMmCustomAPI::ESsOutCallForwToC; - ssInfoComp.iCallWait = ETrue; - ssInfoComp.iCallHold = RMmCustomAPI::ESsHoldResume; - ssInfoComp.iConfInd = ETrue; - ssInfoComp.iCugIndex = 15; - ssInfoComp.iClirSuppReject = EFalse; - ssInfoComp.iEctCallState = RMmCustomAPI::ESsEctAlerting; - ssInfoComp.iChoice = RMmCustomAPI::ESsPresRestrictedAddress; - ssInfoComp.iRemoteAddress.Copy(KRemote); - - TMockLtsyData2< RMmCustomAPI::TSsTypeAndMode, RMmCustomAPI::TSsInfo > - ltsyData(ssTypeAndModeComp, ssInfoComp); - ltsyData.SerialiseL(data); - - iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(ssTypeAndModeComp.iSsType == ssTypeAndMode.iSsType); - ASSERT_TRUE(ssTypeAndModeComp.iSsMode == ssTypeAndMode.iSsMode); - ASSERT_TRUE(ssInfoComp.iForwMode == ssInfo.iForwMode); - ASSERT_TRUE(ssInfoComp.iCallWait == ssInfo.iCallWait); - ASSERT_TRUE(ssInfoComp.iCallHold == ssInfo.iCallHold); - ASSERT_TRUE(ssInfoComp.iConfInd == ssInfo.iConfInd); - ASSERT_TRUE(ssInfoComp.iCugIndex == ssInfo.iCugIndex); - ASSERT_TRUE(ssInfoComp.iClirSuppReject == ssInfo.iClirSuppReject); - ASSERT_TRUE(ssInfoComp.iEctCallState == ssInfo.iEctCallState); - ASSERT_TRUE(ssInfoComp.iChoice == ssInfo.iChoice); - ASSERT_TRUE(0 == ssInfo.iRemoteAddress.Compare(ssInfoComp.iRemoteAddress)); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_TRUE(ssTypeAndModeComp.iSsType == ssTypeAndMode2.iSsType); - ASSERT_TRUE(ssTypeAndModeComp.iSsMode == ssTypeAndMode2.iSsMode); - ASSERT_TRUE(ssInfoComp.iForwMode == ssInfo2.iForwMode); - ASSERT_TRUE(ssInfoComp.iCallWait == ssInfo2.iCallWait); - ASSERT_TRUE(ssInfoComp.iCallHold == ssInfo2.iCallHold); - ASSERT_TRUE(ssInfoComp.iConfInd == ssInfo2.iConfInd); - ASSERT_TRUE(ssInfoComp.iCugIndex == ssInfo2.iCugIndex); - ASSERT_TRUE(ssInfoComp.iClirSuppReject == ssInfo2.iClirSuppReject); - ASSERT_TRUE(ssInfoComp.iEctCallState == ssInfo2.iEctCallState); - ASSERT_TRUE(ssInfoComp.iChoice == ssInfo2.iChoice); - ASSERT_TRUE(0 == ssInfo2.iRemoteAddress.Compare(ssInfoComp.iRemoteAddress)); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCUS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CancelUssdSession -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CancelUssdSession -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCancelUssdSession0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - // tests for RMmCustomAPI::CancelUssdSession should be written when ECustomCancelUssdSessionIPC - // would be proccessed. - - customAPI.CancelUssdSession( requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSRCN2-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SatRefreshCompleteNotification -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SatRefreshCompleteNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSatRefreshCompleteNotification0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SatRefreshCompleteNotification - // from LTSY. - // The test comes first because the request is self-reposting - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SatRefreshCompleteNotification when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone); - - customAPI.SatRefreshCompleteNotification(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSRCN2-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SatRefreshCompleteNotification -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SatRefreshCompleteNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSatRefreshCompleteNotification0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SatRefreshCompleteNotification - //------------------------------------------------------------------------- - - customAPI.SatRefreshCompleteNotification(requestStatus); - - iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone, 20); - - customAPI.CancelAsyncRequest(ECustomSatRefreshCompleteNotificationIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSRCN2-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SatRefreshCompleteNotification -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SatRefreshCompleteNotification -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSatRefreshCompleteNotification0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyNetworkConnectionFailure - //------------------------------------------------------------------------- - - iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone, 20); - - customAPI.SatRefreshCompleteNotification(requestStatus); - customAPI2.SatRefreshCompleteNotification(requestStatus2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckTwoDigitDialSupport -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckTwoDigitDialSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TTwoDigitDialSupport support; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC, KErrNotSupported); - - customAPI.CheckTwoDigitDialSupport(requestStatus, support); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); - - const RMmCustomAPI::TTwoDigitDialSupport compData(RMmCustomAPI::ETwoDigitDialSupportOn); - TPckg compPckg(compData); - - iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrGeneral, compPckg); - - customAPI.CheckTwoDigitDialSupport(requestStatus, support); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::CheckTwoDigitDialSupport when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); - iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg); - - customAPI.CheckTwoDigitDialSupport(requestStatus, support); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(compData, support); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::CheckTwoDigitDialSupport - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckTwoDigitDialSupport -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckTwoDigitDialSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TTwoDigitDialSupport support; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::CheckTwoDigitDialSupport - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); - - const RMmCustomAPI::TTwoDigitDialSupport compData(RMmCustomAPI::ETwoDigitDialSupportOn); - TPckg compPckg(compData); - - iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg, 20); - - customAPI.CheckTwoDigitDialSupport(requestStatus, support); - - customAPI.CancelAsyncRequest(ECustomCheckTwoDigitDialSupportIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckTwoDigitDialSupport -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckTwoDigitDialSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TTwoDigitDialSupport support; - RMmCustomAPI::TTwoDigitDialSupport support2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::CheckTwoDigitDialSupport - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); - - const RMmCustomAPI::TTwoDigitDialSupport compData(RMmCustomAPI::ETwoDigitDialSupportOn); - TPckg compPckg(compData); - - iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg, 20); - - customAPI.CheckTwoDigitDialSupport(requestStatus, support); - - // second client - iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); - - const RMmCustomAPI::TTwoDigitDialSupport compData2(RMmCustomAPI::ETwoDigitDialSupportOff); - TPckg compPckg2(compData2); - - iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg2); - - customAPI2.CheckTwoDigitDialSupport(requestStatus2, support2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(compData, support); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_EQUALS(compData2, support2); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckTwoDigitDialSupport with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::CheckTwoDigitDialSupport and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TLifeTimeData ltData; - TPckg ltPckg(ltData); - - iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); - - RMmCustomAPI::TTwoDigitDialSupport support; - - customAPI.CheckTwoDigitDialSupport(requestStatus, support); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ResetNetServer -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ResetNetServer -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestResetNetServer0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomResetNetServerIPC, KErrNotSupported); - - customAPI.ResetNetServer(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomResetNetServerIPC); - - iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrGeneral); - - customAPI.ResetNetServer(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::ResetNetServer when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomResetNetServerIPC); - iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone); - - customAPI.ResetNetServer(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ResetNetServer - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ResetNetServer -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::ResetNetServer -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestResetNetServer0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::ResetNetServer - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomResetNetServerIPC); - iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone, 20); - - customAPI.ResetNetServer(requestStatus); - - customAPI.CancelAsyncRequest(ECustomResetNetServerIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ResetNetServer -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ResetNetServer -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestResetNetServer0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::ResetNetServer - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomResetNetServerIPC, KErrNone); - iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone, 20); - customAPI.ResetNetServer(requestStatus); - - iMockLTSY.ExpectL( ECustomResetNetServerIPC, KErrNone); - iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone); - customAPI2.ResetNetServer(requestStatus2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ResetNetServer with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ResetNetServer and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestResetNetServer0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - iMockLTSY.ExpectL( ECustomResetNetServerIPC); - - customAPI.ResetNetServer(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRF-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReleaseFile -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReleaseFile -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReleaseFile0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - _LIT(KFile, "FileName"); - TRequestStatus requestStatus; - - customAPI.ReleaseFile( requestStatus, KFile); - - // tests for RMmCustomAPI::ReleaseFile should be written when ECustomReleaseFileIPC - // would be proccessed. - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCREF-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::RestartFile -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::RestartFile -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestRestartFile0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - _LIT(KFile, "FileName"); - TRequestStatus requestStatus; - - // tests for RMmCustomAPI::RestartFile should be written when ECustomRestartFileIPC - // would be proccessed. - - customAPI.RestartFile( requestStatus, KFile); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSCTB-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::StartSimCbTopicBrowsing -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::StartSimCbTopicBrowsing -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestStartSimCbTopicBrowsing0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - RBuf8 compData; - CleanupClosePushL(compData); - - CArrayFixFlat* simTopicArray = new ( ELeave ) CArrayFixFlat - (1); - CleanupStack::PushL(simTopicArray); - - _LIT(KTopic, "Topic"); - RMmCustomAPI::TSimCbTopic topic; - topic.iNumber = 0; - topic.iName.Copy(KTopic); - - simTopicArray->AppendL( topic ); - - TMockLtsyData1< CArrayFixFlat* > ltsyData(simTopicArray); - ltsyData.SerialiseL(compData); - - iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); - iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrGeneral, compData); - - TInt ret = customAPI.StartSimCbTopicBrowsing(); - - ASSERT_EQUALS(KErrGeneral, ret); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::StartSimCbTopicBrowsing when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); - iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); - - ret = customAPI.StartSimCbTopicBrowsing(); - - ASSERT_EQUALS(KErrNone, ret); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::StartSimCbTopicBrowsing - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC, KErrNotSupported); - - ret = customAPI.StartSimCbTopicBrowsing(); - - ASSERT_EQUALS(KErrNotSupported, ret); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSCTB-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::StartSimCbTopicBrowsing with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::StartSimCbTopicBrowsing with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestStartSimCbTopicBrowsing0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - // Passing zero pointer - - iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); - - RBuf8 compData; - CleanupClosePushL(compData); - - CArrayFixFlat* simTopicArray = NULL; - - TMockLtsyData1< CArrayFixFlat* > ltsyData(simTopicArray); - ltsyData.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); - - TInt ret = customAPI.StartSimCbTopicBrowsing(); - - ASSERT_EQUALS(KErrNone, ret); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSCTB-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::StartSimCbTopicBrowsing with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::StartSimCbTopicBrowsing and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestStartSimCbTopicBrowsing0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); - - TInt ret = customAPI.StartSimCbTopicBrowsing(); - - ASSERT_EQUALS(KErrTimedOut, ret); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGNSCT-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNextSimCbTopic -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetNextSimCbTopic -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetNextSimCbTopic0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetNextSimCbTopic when result is not cached. - //------------------------------------------------------------------------- - // testing with not initialized topics - - RMmCustomAPI::TSimCbTopic topic; - - customAPI.GetNextSimCbTopic(requestStatus, topic); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - _LIT(KTopic, "Topic"); - TInt num = 0; - - InitSimCbTopicsL(customAPI, KTopic, num); - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::GetNextSimCbTopic when result is not cached. - //------------------------------------------------------------------------- - - customAPI.GetNextSimCbTopic(requestStatus, topic); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(num == topic.iNumber); - ASSERT_TRUE(0 == topic.iName.Compare(KTopic)); - - CleanupStack::PopAndDestroy(2, this); - - } - - - -void CCTsyCustomIPCFU::InitSimCbTopicsL(RMmCustomAPI &aCustomApi, const TDesC& aTopic, TInt aNum) - { - - RBuf8 compData; - CleanupClosePushL(compData); - - CArrayFixFlat* simTopicArray = new ( ELeave ) CArrayFixFlat - (1); - CleanupStack::PushL(simTopicArray); - - RMmCustomAPI::TSimCbTopic topic; - topic.iNumber = aNum; - topic.iName.Copy(aTopic); - - simTopicArray->AppendL( topic ); - - TMockLtsyData1< CArrayFixFlat* > ltsyData(simTopicArray); - ltsyData.SerialiseL(compData); - - iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); - iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); - TInt ret = aCustomApi.StartSimCbTopicBrowsing(); - ASSERT_EQUALS(KErrNone, ret); - - CleanupStack::PopAndDestroy(2); //simTopicArray, compData - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeleteSimCbTopic -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DeleteSimCbTopic -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeleteSimCbTopic0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - InitSimCbTopicsL(customAPI, _L("Topic"), 0); - - TUint index(0); - TUint expIndex(index); - TBool deleteFlag(ETrue); - - TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); - ltsyData2.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData, KErrNotSupported); - - customAPI.DeleteSimCbTopic(requestStatus, index); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); - iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrGeneral); - - customAPI.DeleteSimCbTopic(requestStatus, index); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::DeleteSimCbTopic - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST C: deletion of not existing entry. - //------------------------------------------------------------------------- - - index = 100; - expIndex = index; - deleteFlag = EFalse; - expectData.Close(); - ltsyData2.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); - iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrArgument); - - customAPI.DeleteSimCbTopic(requestStatus, index); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::DeleteSimCbTopic when result is not cached. - //------------------------------------------------------------------------- - - index = 0; - expIndex = index; - deleteFlag = ETrue; - expectData.Close(); - ltsyData2.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); - iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone); - - customAPI.DeleteSimCbTopic(requestStatus, index); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::DeleteSimCbTopic -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::DeleteSimCbTopic -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeleteSimCbTopic0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - InitSimCbTopicsL(customAPI, _L("Topic"), 0); - - TRequestStatus requestStatus; - - TUint index(0); - TUint expIndex(index); - TBool deleteFlag(ETrue); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); - ltsyData2.SerialiseL(expectData); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::DeleteSimCbTopic - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); - iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone, 20); - - customAPI.DeleteSimCbTopic(requestStatus, index); - - customAPI.CancelAsyncRequest(ECustomDeleteSimCbTopicIPC); - - // operation (ECustomDeleteSimCbTopicIPC) cannot be cancelled on DOS side as per CTSY. - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeleteSimCbTopic with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DeleteSimCbTopic with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeleteSimCbTopic0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TUint index(0); - TUint expIndex(index); - TBool deleteFlag(EFalse); - - TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); - ltsyData2.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); - iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone); - - // Successful completion of ECustomDeleteSimCbTopicIPC request in case of not initialized iSimCbTopics - customAPI.DeleteSimCbTopic(requestStatus, index); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::DeleteSimCbTopic -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::DeleteSimCbTopic -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeleteSimCbTopic0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - InitSimCbTopicsL(customAPI, _L("Topic"), 0); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - TUint index(0); - TUint index2(0); - TUint expIndex(index); - TBool deleteFlag(ETrue); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); - ltsyData2.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::DeleteSimCbTopic - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); - iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone, 20); - - customAPI.DeleteSimCbTopic(requestStatus, index); - customAPI2.DeleteSimCbTopic(requestStatus2, index2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); // telServer2, phone2, customAPI, customAPI2, expectData, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeleteSimCbTopic with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DeleteSimCbTopic and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDeleteSimCbTopic0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - InitSimCbTopicsL(customAPI, _L("Topic"), 0); - - TRequestStatus requestStatus; - - TUint index(0); - TUint expIndex(index); - TBool deleteFlag(ETrue); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); - ltsyData2.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); - - customAPI.DeleteSimCbTopic(requestStatus, index); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNNCF-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyNetworkConnectionFailure -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyNetworkConnectionFailure -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyNetworkConnectionFailure0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyNetworkConnectionFailure - // from LTSY. - // The test comes first because the request is self-reposting - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyNetworkConnectionFailure when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone); - - customAPI.NotifyNetworkConnectionFailure(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNNCF-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyNetworkConnectionFailure -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyNetworkConnectionFailure -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyNetworkConnectionFailure0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyNetworkConnectionFailure - //------------------------------------------------------------------------- - - customAPI.NotifyNetworkConnectionFailure(requestStatus); - - iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone, 20); - - customAPI.CancelAsyncRequest(ECustomNotifyNetworkConnectionFailureIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNNCF-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyNetworkConnectionFailure -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyNetworkConnectionFailure -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyNetworkConnectionFailure0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyNetworkConnectionFailure - //------------------------------------------------------------------------- - - iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone, 20); - - customAPI.NotifyNetworkConnectionFailure(requestStatus); - customAPI2.NotifyNetworkConnectionFailure(requestStatus2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SendAPDUReq -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SendAPDUReq -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSendAPDUReq0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TInt cardReaderId = 1; - _LIT8(KCmdData, "1234"); - CmdDataBuf cmdData(KCmdData); - - TRequestStatus requestStatus; - RMmCustomAPI::TApduParameters apdu; - - apdu.iCardReaderId = cardReaderId; - apdu.iCmdData.Copy(cmdData); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData, KErrNotSupported); - customAPI.SendAPDUReq(requestStatus, apdu); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); - - _LIT8(KRspData,"ApduResponse"); - RspDataBuf rspData(KRspData); - - TMockLtsyData1< RspDataBuf > ltsyRetData(rspData); - ltsyRetData.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrGeneral, compData); - - customAPI.SendAPDUReq (requestStatus, apdu); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SendAPDUReq when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); - iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); - - customAPI.SendAPDUReq(requestStatus, apdu); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, (apdu.iCardReaderId != cardReaderId)?1:0); - ASSERT_EQUALS(0, apdu.iCmdData.Compare(cmdData)); - ASSERT_EQUALS(0, apdu.iRspData.Compare(rspData)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SendAPDUReq - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SendAPDUReq -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SendAPDUReq -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSendAPDUReq0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TInt cardReaderId = 1; - _LIT8(KCmdData, "1234"); - CmdDataBuf cmdData(KCmdData); - - TRequestStatus requestStatus; - RMmCustomAPI::TApduParameters apdu; - - apdu.iCardReaderId = cardReaderId; - apdu.iCmdData.Copy(cmdData); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); - ltsyData.SerialiseL(expectData); - - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SendAPDUReq - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); - - customAPI.SendAPDUReq(requestStatus, apdu); - - customAPI.CancelAsyncRequest(ECustomSendAPDUReqV2IPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - - _LIT8(KRspData,"ApduResponse"); - RspDataBuf rspData(KRspData); - - TMockLtsyData1< RspDataBuf > ltsyRetData(rspData); - ltsyRetData.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SendAPDUReq with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SendAPDUReq with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSendAPDUReq0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TInt cardReaderId = 1; - _LIT8(KCmdData, "1234"); - CmdDataBuf cmdData(KCmdData); - - TRequestStatus requestStatus; - RMmCustomAPI::TApduParameters apdu; - - apdu.iCardReaderId = cardReaderId; - apdu.iCmdData.Copy(cmdData); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); - customAPI.SendAPDUReq(requestStatus, apdu); - - _LIT8(KRspBig,"bigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbi"); - RspBigBuf bigBuf(KRspBig); - - TMockLtsyData1< TBuf8<300> > ltsyDataComp(bigBuf); - ltsyDataComp.SerialiseL(compData); - - iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrOverflow, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SendAPDUReq -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SendAPDUReq -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSendAPDUReq0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - - TInt cardReaderId = 1; - _LIT8(KCmdData, "1234"); - CmdDataBuf cmdData(KCmdData); - - TRequestStatus requestStatus; - RMmCustomAPI::TApduParameters apdu; - - apdu.iCardReaderId = cardReaderId; - apdu.iCmdData.Copy(cmdData); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - RBuf8 compData; - CleanupClosePushL(compData); - - TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); - ltsyData.SerialiseL(expectData); - - - iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); - - - _LIT8(KRspData,"ApduResponse"); - RspDataBuf rspData(KRspData); - - TMockLtsyData1< TBuf8<20> > ltsyRetData(rspData); - ltsyRetData.SerialiseL(compData); - - iMockLTSY.CompleteL(ECustomSendAPDUReqV2IPC, KErrNone, compData, 20); - - //sending request to the first client - customAPI.SendAPDUReq(requestStatus, apdu); - - TRequestStatus requestStatus2; - RMmCustomAPI::TApduParameters apdu2; // empty request as api cannot be called twice - - - //sending request to the second client - customAPI2.SendAPDUReq(requestStatus2, apdu2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(7, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SendAPDUReq with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SendAPDUReq and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSendAPDUReq0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - _LIT8(KCmdData, "1234"); - CmdDataBuf cmdData(KCmdData); - - TRequestStatus requestStatus; - RMmCustomAPI::TApduParameters apdu; - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL(ECustomSendAPDUReqV2IPC, expectData); - - customAPI.SendAPDUReq(requestStatus, apdu); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DisablePhoneLock -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DisablePhoneLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDisablePhoneLock0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - _LIT(KPassword, "password"); - - TRequestStatus requestStatus; - RMobilePhone::TMobilePassword pswd(KPassword); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData, KErrNotSupported); - - customAPI.DisablePhoneLock(requestStatus, pswd); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); - iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrGeneral); - - customAPI.DisablePhoneLock(requestStatus, pswd); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::DisablePhoneLock when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); - iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone); - - customAPI.DisablePhoneLock(requestStatus, pswd); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::DisablePhoneLock - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::DisablePhoneLock -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::DisablePhoneLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDisablePhoneLock0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - _LIT(KPassword, "password"); - - TRequestStatus requestStatus; - RMobilePhone::TMobilePassword pswd(KPassword); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); - ltsyData.SerialiseL(expectData); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::DisablePhoneLock - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); - iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone, 20); - - customAPI.DisablePhoneLock(requestStatus, pswd); - - customAPI.CancelAsyncRequest(ECustomDisablePhoneLockIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::DisablePhoneLock -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::DisablePhoneLock -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDisablePhoneLock0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - _LIT(KPassword, "password"); - - RMobilePhone::TMobilePassword pswd(KPassword); - RMobilePhone::TMobilePassword pswd2(KPassword); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::DisablePhoneLock - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); - iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone, 20); - - customAPI.DisablePhoneLock(requestStatus, pswd); - customAPI2.DisablePhoneLock(requestStatus2, pswd2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DisablePhoneLock with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::DisablePhoneLock and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestDisablePhoneLock0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - _LIT(KPassword, "password"); - - TRequestStatus requestStatus; - RMobilePhone::TMobilePassword pswd(KPassword); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404602); - //Request ECustomDisablePhoneLockIPC is not completed by timeout. - - //The test is stopped to avoid blocking of next tests. - ASSERT_TRUE(EFalse); - - customAPI.DisablePhoneLock(requestStatus, pswd); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyEGprsInfoChange -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyEGprsInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - RMmCustomAPI::TGprsInformation info; - TPckg infoPckg(info); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyEGprsInfoChange - // from LTSY. - //------------------------------------------------------------------------- - - TBool lastEdgeGprsSupport = ETrue; - TMockLtsyData1 ltsyData(lastEdgeGprsSupport); - ltsyData.SerialiseL(data); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyEGprsInfoChange when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); - - iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info.iGprsInfo); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::NotifyEGprsInfoChange - //------------------------------------------------------------------------- - - lastEdgeGprsSupport = EFalse; - - data.Close(); - ltsyData.SerialiseL(data); - - customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); - - iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::EGprs == info.iGprsInfo); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyEGprsInfoChange -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyEGprsInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - RMmCustomAPI::TGprsInformation info; - TPckg infoPckg(info); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyEGprsInfoChange - //------------------------------------------------------------------------- - - customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); - - customAPI.CancelAsyncRequest(ECustomNotifyEGprsInfoChange); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - TBool lastEdgeGprsSupport = ETrue; - TMockLtsyData1 ltsyData(lastEdgeGprsSupport); - ltsyData.SerialiseL(data); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyEGprsInfoChange with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyEGprsInfoChange with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - TBuf8<1> littleBuf; - - //------------------------------------------------------------------------- - // Test on passing too little buffer to NotifyEGprsInfoChange - //------------------------------------------------------------------------- - - customAPI.NotifyEGprsInfoChange(requestStatus, littleBuf); - - TBool lastEdgeGprsSupport = ETrue; - TMockLtsyData1 ltsyData(lastEdgeGprsSupport); - ltsyData.SerialiseL(data); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyEGprsInfoChange -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyEGprsInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - RPacketService packetService2; - ret = packetService2.Open(phone2); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(packetService2); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TGprsInformation info; - TPckg infoPckg(info); - - RMmCustomAPI::TGprsInformation info2; - TPckg infoPckg2(info2); - - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyEGprsInfoChange - //------------------------------------------------------------------------- - customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); - customAPI2.NotifyEGprsInfoChange(requestStatus2, infoPckg2); - - TBool lastEdgeGprsSupport = ETrue; - TMockLtsyData1 ltsyData(lastEdgeGprsSupport); - ltsyData.SerialiseL(data); - - iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data, 20); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info.iGprsInfo); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info2.iGprsInfo); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(8, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGEI-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetEGprsInfo -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetEGprsInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetEGprsInfo0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - TRequestStatus requestStatus; - RMmCustomAPI::TGprsInformation info; - TPckg infoPckg(info); - - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetEGprsInfo when result is not cached. - //------------------------------------------------------------------------- - - customAPI.GetEGprsInfo(requestStatus, infoPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::EGprs == info.iGprsInfo); - - AssertMockLtsyStatusL(); - - // now set EdgeGprs - - RBuf8 data; - CleanupClosePushL(data); - - TBool lastEdgeGprsSupport = ETrue; - TMockLtsyData1 ltsyData(lastEdgeGprsSupport); - ltsyData.SerialiseL(data); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::GetEGprsInfo when EdgeGprs - //------------------------------------------------------------------------- - - customAPI.GetEGprsInfo(requestStatus, infoPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info.iGprsInfo); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGEI-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetEGprsInfo with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetEGprsInfo with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetEGprsInfo0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TGprsInformation info; - TPckg infoPckg(info); - - // Calling GetEGprsInfo without opening RPacketService - - customAPI.GetEGprsInfo(requestStatus, infoPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - - // test on passing too little buffer - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - TBuf8<1> littleBuf; - - customAPI.GetEGprsInfo(requestStatus, littleBuf); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadSimFile -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadSimFile -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadSimFile0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> responce; - RMmCustomAPI::TSimFileInfo fileInfo; - fileInfo.iPath.Fill(0x00); - fileInfo.iOffSet = 0; - fileInfo.iSize = responce.Size(); - RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); - TPckg fileInfoPckg(fileInfo); - - TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); - ltsyData.SerialiseL(expData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData, KErrNotSupported); - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); - - _LIT8(KResponce, "Responce"); - - iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrGeneral, KResponce); - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::ReadSimFile when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); - iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, responce.Compare(KResponce)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ReadSimFile - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadSimFile -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadSimFile -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadSimFile0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> responce; - RMmCustomAPI::TSimFileInfo fileInfo; - fileInfo.iPath.Fill(0x00); - fileInfo.iOffSet = 0; - fileInfo.iSize = responce.Size(); - RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); - TPckg fileInfoPckg(fileInfo); - - TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); - ltsyData.SerialiseL(expData); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::ReadSimFile - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); - - _LIT8(KResponce, "Responce"); - - iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce, 20); - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); - - customAPI.CancelAsyncRequest(ECustomReadSimFileIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadSimFile with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadSimFile with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadSimFile0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - RMmCustomAPI::TSimFileInfo fileInfo; - fileInfo.iPath.Fill(0x00); - fileInfo.iOffSet = 0; - fileInfo.iSize = 32; - RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); - TPckg fileInfoPckg(fileInfo); - TBuf8<1> littleBuf; - - TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); - ltsyData.SerialiseL(expData); - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); - - _LIT8(KResponce, "Responce"); - - iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, littleBuf); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrOverflow, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadSimFile -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadSimFile -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadSimFile0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> responce; - RMmCustomAPI::TSimFileInfo fileInfo; - fileInfo.iPath.Fill(0x00); - fileInfo.iOffSet = 0; - fileInfo.iSize = responce.Size(); - RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); - TPckg fileInfoPckg(fileInfo); - - TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); - ltsyData.SerialiseL(expData); - - RBuf8 expData2; - CleanupClosePushL(expData2); -// TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData2(fileInfo3); -// ltsyData2.SerialiseL(expData3); - - TBuf8<32> responce2; - RMmCustomAPI::TSimFileInfo fileInfo2; - fileInfo2.iPath.Fill(0x00); - fileInfo2.iOffSet = 0; - fileInfo2.iSize = responce2.Size(); - RMmCustomAPI::TSimFileInfo expFileInfo2(fileInfo2); - TPckg fileInfoPckg2(fileInfo2); - - - RMmCustomAPI::TSimFileInfo fileInfo3; - fileInfo3.iPath.Fill(0x00); - fileInfo3.iOffSet = 0x10; - fileInfo3.iSize = responce2.Size(); - RMmCustomAPI::TSimFileInfo expFileInfo3(fileInfo3); - TPckg fileInfoPckg3(fileInfo3); - - //------------------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::ReadSimFile - different data - //------------------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); - _LIT8(KResponce, "Responce"); - iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce, 20); - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); - - //iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData2); - //iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); - customAPI2.ReadSimFile(requestStatus2, fileInfoPckg2, responce2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, responce.Compare(KResponce)); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_EQUALS(0, responce2.Compare(KResponce)); - - AssertMockLtsyStatusL(); - - //----------------------------------------------------------------------------------- - // Test B: Test multiple clients requesting RMmCustomAPI::ReadSimFile with same data - //----------------------------------------------------------------------------------- - - - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); - iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce, 20); - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); - customAPI2.ReadSimFile(requestStatus2, fileInfoPckg3, responce); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(0, responce.Compare(KResponce)); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - - CleanupStack::PopAndDestroy(7, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadSimFile with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadSimFile and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadSimFile0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> responce; - RMmCustomAPI::TSimFileInfo fileInfo; - fileInfo.iPath.Fill(0x00); - fileInfo.iOffSet = 0; - fileInfo.iSize = responce.Size(); - RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); - TPckg fileInfoPckg(fileInfo); - - TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); - ltsyData.SerialiseL(expData); - - iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404902); - // Location capability missing - - customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetLifeTime -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetLifeTime -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetLifeTime0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TLifeTimeData ltData; - TPckg ltPckg(ltData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetLifeTimeIPC, KErrNotSupported); - - customAPI.GetLifeTime(requestStatus, ltPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); - - RMmCustomAPI::TLifeTimeData compData; - compData.iCaps = 0x34; // fill with random data - compData.iHours = 123; - compData.iMinutes = 21; - compData.iManufacturingDate = TDateTime(1,(TMonth)2,3,4,5,6,7); - TPckg compPckg(compData); - - iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrGeneral, compPckg); - - customAPI.GetLifeTime(requestStatus, ltPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetLifeTime when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); - iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg); - - customAPI.GetLifeTime(requestStatus, ltPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compData.iCaps == ltData.iCaps); - ASSERT_TRUE(compData.iHours == ltData.iHours); - ASSERT_TRUE(compData.iMinutes == ltData.iMinutes); - ASSERT_TRUE(compData.iManufacturingDate.Year() == ltData.iManufacturingDate.Year()); - ASSERT_TRUE(compData.iManufacturingDate.Month() == ltData.iManufacturingDate.Month()); - ASSERT_TRUE(compData.iManufacturingDate.Day() == ltData.iManufacturingDate.Day()); - ASSERT_TRUE(compData.iManufacturingDate.Hour() == ltData.iManufacturingDate.Hour()); - ASSERT_TRUE(compData.iManufacturingDate.Minute() == ltData.iManufacturingDate.Minute()); - ASSERT_TRUE(compData.iManufacturingDate.Second() == ltData.iManufacturingDate.Second()); - ASSERT_TRUE(compData.iManufacturingDate.MicroSecond() == ltData.iManufacturingDate.MicroSecond()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetLifeTime - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetLifeTime -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetLifeTime -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetLifeTime0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TLifeTimeData ltData; - TPckg ltPckg(ltData); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetLifeTime - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); - - RMmCustomAPI::TLifeTimeData compData; - compData.iCaps = 0xFF; - TPckg compPckg(compData); - - iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg, 20); - - customAPI.GetLifeTime(requestStatus, ltPckg); - - customAPI.CancelAsyncRequest(ECustomGetLifeTimeIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetLifeTime with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetLifeTime with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetLifeTime0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TBuf8<1> badPckg; - - customAPI.GetLifeTime(requestStatus, badPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetLifeTime -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetLifeTime -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetLifeTime0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TLifeTimeData ltData; - TPckg ltPckg(ltData); - - RMmCustomAPI::TLifeTimeData ltData2; - TPckg ltPckg2(ltData2); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetLifeTime - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); - - RMmCustomAPI::TLifeTimeData compData; - compData.iCaps = 0x11; - compData.iHours = 111; - compData.iMinutes = 111; - compData.iManufacturingDate = TDateTime(1,(TMonth)1,1,1,1,1,1); - TPckg compPckg(compData); - - iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg, 20); - - customAPI.GetLifeTime(requestStatus, ltPckg); - - - customAPI2.GetLifeTime(requestStatus2, ltPckg2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compData.iCaps == ltData.iCaps); - ASSERT_TRUE(compData.iHours == ltData.iHours); - ASSERT_TRUE(compData.iMinutes == ltData.iMinutes); - ASSERT_TRUE(compData.iManufacturingDate.Year() == ltData.iManufacturingDate.Year()); - ASSERT_TRUE(compData.iManufacturingDate.Month() == ltData.iManufacturingDate.Month()); - ASSERT_TRUE(compData.iManufacturingDate.Day() == ltData.iManufacturingDate.Day()); - ASSERT_TRUE(compData.iManufacturingDate.Hour() == ltData.iManufacturingDate.Hour()); - ASSERT_TRUE(compData.iManufacturingDate.Minute() == ltData.iManufacturingDate.Minute()); - ASSERT_TRUE(compData.iManufacturingDate.Second() == ltData.iManufacturingDate.Second()); - ASSERT_TRUE(compData.iManufacturingDate.MicroSecond() == ltData.iManufacturingDate.MicroSecond()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGB-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::Get3GPBInfo -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::Get3GPBInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGet3GPBInfo0001L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::T3GPBInfo info; - - Mem::FillZ((TAny*)&info, sizeof(info)); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::Get3GPBInfo when result is not cached. - // Getting data for uninitialized PB - //------------------------------------------------------------------------- - - customAPI.Get3GPBInfo(requestStatus, info); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - - // for a not initializes PB all values are -1. - ASSERT_TRUE( -1 == info.iMaxLenEmail); - ASSERT_TRUE( -1 == info.iMaxLenSne); - ASSERT_TRUE( -1 == info.iMaxLenAnr); - ASSERT_TRUE( -1 == info.iMaxLenGroupName); - ASSERT_TRUE( -1 == info.iMaxNumEmail); - ASSERT_TRUE( -1 == info.iMaxNumSne); - ASSERT_TRUE( -1 == info.iMaxNumAnr); - ASSERT_TRUE( -1 == info.iMaxNumGroupName); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C2: Successful completion request of - // RMmCustomAPI::Get3GPBInfo when phoneBookStore is initialized - //------------------------------------------------------------------------- - - TName name(KETelIccAdnPhoneBook); - RMobilePhoneBookStore bookStore; - - OpenPhoneBookStoreL(bookStore, name, iPhone); - CleanupClosePushL(bookStore); - - RBuf8 data; - CleanupClosePushL(data); - - CStorageInfoData storageData; - - storageData.iADNNumOfEntries = 1; - storageData.iADNTextLengthMax = 2; - storageData.iADNNumberLengthMax = 3; - storageData.iSNENumOfEntries = 4; - storageData.iSNENumOfEntriesPerEntry = 5; - storageData.iSNETextLengthMax = 6; - storageData.iEmailNumOfEntries = 7; - storageData.iEmailNumOfEntriesPerEntry = 8; - storageData.iEmailTextLengthMax = 9; - storageData.iFDNNumOfEntries = 10; - storageData.iFDNTextLengthMax = 11; - storageData.iFDNNumberLengthMax = 12; - storageData.iSDNNumOfEntries = 13; - storageData.iSDNTextLengthMax = 14; - storageData.iSDNNumberLengthMax = 15; - storageData.iVMBXNumOfEntries = 16; - storageData.iVMBXTextLengthMax = 17; - storageData.iVMBXNumberLengthMax = 18; - storageData.iMSISDNNumOfEntries = 19; - storageData.iMSISDNTextLengthMax = 20; - storageData.iMSISDNNumberLengthMax = 21; - storageData.iGRPNumOfEntriesPerEntry = 22; - storageData.iANRNumOfEntries = 23; - storageData.iANRNumOfEntriesPerEntry = 24; - storageData.iANRNumLengthMax = 25; - storageData.iMBDNNumOfEntries = 26; - storageData.iMBDNTextLengthMax = 27; - storageData.iMBDNNumberLengthMax = 28; - - TMockLtsyPhoneBookData1< CStorageInfoData > retStoreAndName(name, storageData); - retStoreAndName.SerialiseL(data); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data, 0); - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - customAPI.Get3GPBInfo(requestStatus, info); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE( storageData.iEmailTextLengthMax == info.iMaxLenEmail); - ASSERT_TRUE( storageData.iSNETextLengthMax == info.iMaxLenSne); - ASSERT_TRUE( storageData.iANRNumLengthMax == info.iMaxLenAnr); - ASSERT_TRUE( -1 == info.iMaxLenGroupName); - ASSERT_TRUE( storageData.iEmailNumOfEntriesPerEntry == info.iMaxNumEmail); - ASSERT_TRUE( storageData.iSNENumOfEntriesPerEntry == info.iMaxNumSne); - ASSERT_TRUE( storageData.iANRNumOfEntriesPerEntry == info.iMaxNumAnr); - ASSERT_TRUE( storageData.iGRPNumOfEntriesPerEntry == info.iMaxNumGroupName); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkModes -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkModes -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSystemNetworkModes0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TUint32 modes; - TBool useRats(EFalse); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< TBool > ltsyData(useRats); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData, KErrNotSupported); - - customAPI.GetSystemNetworkModes(requestStatus, modes); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); - - const TUint32 compModes = 0xFFFF; - TPckg modesPckg(compModes); - - iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrGeneral, modesPckg); - - customAPI.GetSystemNetworkModes(requestStatus, modes); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetSystemNetworkModes when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); - iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg); - - customAPI.GetSystemNetworkModes(requestStatus, modes); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(compModes, modes); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetSystemNetworkModes - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetSystemNetworkModes -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetSystemNetworkModes -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSystemNetworkModes0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TUint32 modes; - TBool useRats(EFalse); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< TBool > ltsyData(useRats); - ltsyData.SerialiseL(expectData); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetSystemNetworkModes - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); - - const TUint32 compModes = 0xFFFF; - TPckg modesPckg(compModes); - - iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg, 20); - - customAPI.GetSystemNetworkModes(requestStatus, modes); - - customAPI.CancelAsyncRequest(ECustomGetSystemNetworkModesIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetSystemNetworkModes -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetSystemNetworkModes -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSystemNetworkModes0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - TUint32 modes; - TUint32 modes2; - - TBool useRats(EFalse); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< TBool > ltsyData(useRats); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetSystemNetworkModes - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); - - customAPI.GetSystemNetworkModes(requestStatus, modes); - customAPI2.GetSystemNetworkModes(requestStatus2, modes2); - - const TUint32 compModes = 0xFFFF; - TPckg modesPckg(compModes); - - iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(compModes, modes); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkModes with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkModes and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSystemNetworkModes0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TUint32 modes; - TBool useRats(EFalse); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< TBool > ltsyData(useRats); - ltsyData.SerialiseL(expectData); - - iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); - - customAPI.GetSystemNetworkModes(requestStatus, modes); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 405201); - //Request ECustomGetSystemNetworkModesIPC is not completed by timeout. - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkMode -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkMode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSystemNetworkMode0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); - RMmCustomAPI::TNetworkModeCaps expCaps(caps); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData, KErrNotSupported); - - customAPI.SetSystemNetworkMode(requestStatus, caps); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); - iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrGeneral); - - customAPI.SetSystemNetworkMode(requestStatus, caps); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SetSystemNetworkMode when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); - iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone); - - customAPI.SetSystemNetworkMode(requestStatus, caps); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SetSystemNetworkMode - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetSystemNetworkMode -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SetSystemNetworkMode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSystemNetworkMode0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); - RMmCustomAPI::TNetworkModeCaps expCaps(caps); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::ECustomSetSystemNetworkModeIPC - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); - iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone, 20); - - customAPI.SetSystemNetworkMode(requestStatus, caps); - - customAPI.CancelAsyncRequest(ECustomSetSystemNetworkModeIPC); - - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetSystemNetworkMode -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetSystemNetworkMode -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSystemNetworkMode0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); - RMmCustomAPI::TNetworkModeCaps caps2(RMmCustomAPI::KCapsNetworkModeUmts); - RMmCustomAPI::TNetworkModeCaps expCaps(caps); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); - ltsyData.SerialiseL(expectData); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::SetSystemNetworkMode - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData, KErrNone); - - customAPI.SetSystemNetworkMode(requestStatus, caps); - customAPI2.SetSystemNetworkMode(requestStatus2, caps2); - - iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkMode with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkMode and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSystemNetworkMode0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); - RMmCustomAPI::TNetworkModeCaps expCaps(caps); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); - ltsyData.SerialiseL(expectData); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 405302); - //When testing RMmCustomAPI::SetSystemNetworkMode on timeout request ECustomSetSystemNetworkModeIPC - // is not completed. Test is aborted by testexecute. - - // test is stopped because otherwise it blockes the next test - ASSERT_TRUE(EFalse); - - iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); - - customAPI.SetSystemNetworkMode(requestStatus, caps); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCurrentSystemNetworkModes -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetCurrentSystemNetworkModes -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TUint32 modes; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC, KErrNotSupported); - - customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); - - const TUint32 compModes = 0xFFFF; - TPckg modesPckg(compModes); - - iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrGeneral, modesPckg); - - customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetCurrentSystemNetworkModes when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); - iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg); - - customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(compModes, modes); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetCurrentSystemNetworkModes - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetCurrentSystemNetworkModes -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetCurrentSystemNetworkModes -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TUint32 modes; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetCurrentSystemNetworkModes - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); - - const TUint32 compModes = 0xFFFF; - TPckg modesPckg(compModes); - - iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg, 20); - - customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); - - customAPI.CancelAsyncRequest(ECustomGetCurrentSystemNetworkModesIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetCurrentSystemNetworkModes -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetCurrentSystemNetworkModes -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - TUint32 modes; - TUint32 modes2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetCurrentSystemNetworkModes - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone); - - customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); - customAPI2.GetCurrentSystemNetworkModes(requestStatus2, modes2); - - const TUint32 compModes = 0xFFFF; - TPckg modesPckg(compModes); - - iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCurrentSystemNetworkModes with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetCurrentSystemNetworkModes and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - TUint32 modes; - - iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); - - customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 405401); - //Request ECustomGetCurrentSystemNetworkModesIPC is not completed by timeout. - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOn -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::PowerSimOn -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOn0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOnIPC, KErrNotSupported); - - customAPI.PowerSimOn(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOnIPC); - - iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrGeneral); - - customAPI.PowerSimOn(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::PowerSimOn when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOnIPC); - iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone); - - customAPI.PowerSimOn(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::PowerSimOn - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::PowerSimOn -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::PowerSimOn -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOn0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::PowerSimOn - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOnIPC); - iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone, 20); - - customAPI.PowerSimOn(requestStatus); - - customAPI.CancelAsyncRequest(ECustomPowerSimOnIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::PowerSimOn -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::PowerSimOn -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOn0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::PowerSimOn - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOnIPC, KErrNone); - - customAPI.PowerSimOn(requestStatus); - customAPI2.PowerSimOn(requestStatus2); - - iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOn with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::PowerSimOn and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOn0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - iMockLTSY.ExpectL( ECustomPowerSimOnIPC); - - customAPI.PowerSimOn(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOff -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::PowerSimOff -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOff0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOffIPC, KErrNotSupported); - - customAPI.PowerSimOff(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOffIPC); - - iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrGeneral); - - customAPI.PowerSimOff(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::PowerSimOff when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOffIPC); - iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone); - - customAPI.PowerSimOff(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::PowerSimOff - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::PowerSimOff -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::PowerSimOff -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOff0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::PowerSimOff - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOffIPC); - iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone, 20); - - customAPI.PowerSimOff(requestStatus); - - customAPI.CancelAsyncRequest(ECustomPowerSimOffIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::PowerSimOff -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::PowerSimOff -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOff0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::PowerSimOff - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomPowerSimOffIPC, KErrNone); - - customAPI.PowerSimOff(requestStatus); - customAPI2.PowerSimOff(requestStatus2); - - iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOff with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::PowerSimOff and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestPowerSimOff0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - iMockLTSY.ExpectL( ECustomPowerSimOffIPC); - - customAPI.PowerSimOff(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SimWarmReset -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SimWarmReset -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSimWarmReset0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSimWarmResetIPC, KErrNotSupported); - - customAPI.SimWarmReset(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSimWarmResetIPC); - - iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrGeneral); - - customAPI.SimWarmReset(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SimWarmReset when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSimWarmResetIPC); - iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone); - - customAPI.SimWarmReset(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SimWarmReset - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SimWarmReset -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SimWarmReset -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSimWarmReset0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SimWarmReset - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSimWarmResetIPC); - iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone, 20); - - customAPI.SimWarmReset(requestStatus); - - customAPI.CancelAsyncRequest(ECustomSimWarmResetIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SimWarmReset -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SimWarmReset -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSimWarmReset0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::SimWarmResetTR - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSimWarmResetIPC, KErrNone); - - customAPI.SimWarmReset(requestStatus); - customAPI2.SimWarmReset(requestStatus2); - - iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SimWarmReset with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SimWarmReset and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSimWarmReset0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - iMockLTSY.ExpectL( ECustomSimWarmResetIPC); - - customAPI.SimWarmReset(requestStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetATR -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetATR -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetATR0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> atr; - TBuf8<32> expAtr(atr); - TDesC8* ptr = &expAtr; - - TMockLtsyData1< TDesC8* > ltsyData(ptr); - ltsyData.SerialiseL(expData); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNotSupported); - - customAPI.GetATR(requestStatus, atr); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetATRIPC, expData); - - _LIT8(KAtr, "ATRATRATR"); - - iMockLTSY.CompleteL( ECustomGetATRIPC, KErrGeneral, KAtr); - - customAPI.GetATR(requestStatus, atr); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetATR when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetATRIPC, expData); - iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); - - customAPI.GetATR(requestStatus, atr); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, atr.Compare(KAtr)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetATR - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetATR -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetATR -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetATR0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> atr; - TBuf8<32> expAtr(atr); - TDesC8* ptr = &expAtr; - - TMockLtsyData1< TDesC8* > ltsyData(ptr); - ltsyData.SerialiseL(expData); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetATR - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); - - _LIT8(KAtr, "ATRATRATR"); - - iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr, 20); - - customAPI.GetATR(requestStatus, atr); - - customAPI.CancelAsyncRequest(ECustomGetATRIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetATR with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetATR with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetATR0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<1> atr; - TBuf8<1> expAtr(atr); - TDesC8* ptr = &expAtr; - - TMockLtsyData1< TDesC8* > ltsyData(ptr); - ltsyData.SerialiseL(expData); - - iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); - - _LIT8(KAtr, "ATRATRATR"); - - iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); - - customAPI.GetATR(requestStatus, atr); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrOverflow, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetATR -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetATR -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetATR0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> atr; - TBuf8<32> atr2; - TBuf8<32> expAtr(atr); - TDesC8* ptr = &expAtr; - - TMockLtsyData1< TDesC8* > ltsyData(ptr); - ltsyData.SerialiseL(expData); - - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetATR - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); - - customAPI.GetATR(requestStatus, atr); - customAPI2.GetATR(requestStatus2, atr2); - - _LIT8(KAtr, "ATRATRATR"); - - iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetATR with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetATR and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetATR0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RBuf8 expData; - CleanupClosePushL(expData); - - TBuf8<32> atr; - TBuf8<32> expAtr(atr); - TDesC8* ptr = &expAtr; - - TMockLtsyData1< TDesC8* > ltsyData(ptr); - ltsyData.SerialiseL(expData); - - iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); - - customAPI.GetATR(requestStatus, atr); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSimCardReaderStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetSimCardReaderStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TSimCardReaderStatus status; - status.SetStatus(0x33); //random - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TSimCardReaderStatus expStatus(status); - RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); - - TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); - ltsyData.SerialiseL(data); - - RMmCustomAPI::TSimCardReaderStatus compStatus; - compStatus.SetStatus(0xFF); // random - TPckg compStatusPckg(compStatus); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetSimCardReaderStatus when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); - iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compStatus.GetStatus() == status.GetStatus()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C2: RMmCustomAPI::GetSimCardReaderStatus completion with zero data - //------------------------------------------------------------------------- - - status.SetStatus(0x33); - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); - iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, KNullDesC8); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(0 == status.GetStatus()); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - expStatus = status; - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data, KErrNotSupported); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - expStatus = status; - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); - - iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrGeneral, compStatusPckg); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetSimCardReaderStatus - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - status.SetStatus(0x33); //random - expStatus = status; - data.Close(); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); - - iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrGeneral, compStatusPckg); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - ASSERT_TRUE(expStatus.GetStatus() == status.GetStatus()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetSimCardReaderStatus -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetSimCardReaderStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TSimCardReaderStatus status; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - RBuf8 data; - CleanupClosePushL(data); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetSimCardReaderStatus - //------------------------------------------------------------------------- - - RMmCustomAPI::TSimCardReaderStatus expStatus(status); - RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); - - TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); - - RMmCustomAPI::TSimCardReaderStatus compStatus; - compStatus.SetStatus(0xFF); - TPckg compStatusPckg(compStatus); - - iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg, 20); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - - customAPI.CancelAsyncRequest(ECustomGetSimCardReaderStatusIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetSimCardReaderStatus -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetSimCardReaderStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetSimCardReaderStatus - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::TSimCardReaderStatus status; - - TRequestStatus requestStatus2; - RMmCustomAPI::TSimCardReaderStatus status2; - - RMmCustomAPI::TSimCardReaderStatus expStatus(status); - RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); - - TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - customAPI2.GetSimCardReaderStatus(requestStatus2, status2); - - RMmCustomAPI::TSimCardReaderStatus compStatus; - compStatus.SetStatus(0xFF); - TPckg compStatusPckg(compStatus); - - iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg, 20); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSimCardReaderStatus with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetSimCardReaderStatus and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TSimCardReaderStatus status; - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TSimCardReaderStatus expStatus(status); - RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); - - TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); - - customAPI.GetSimCardReaderStatus(requestStatus, status); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNSCS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifySimCardStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifySimCardStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifySimCardStatus0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TSIMCardStatus cardStatus; - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifySimCardStatus when result is not cached. - //------------------------------------------------------------------------- - RMmCustomAPI::TSIMCardStatus compStatus(RMmCustomAPI::SimCardRemoved); - TPckg compStatusPckg(compStatus); - - iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg); - - customAPI.NotifySimCardStatus(requestStatus, cardStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compStatus, cardStatus); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifySimCardStatus - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNSCS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifySimCardStatus -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifySimCardStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifySimCardStatus0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TSIMCardStatus cardStatus; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifySimCardStatus - //------------------------------------------------------------------------- - - customAPI.NotifySimCardStatus(requestStatus, cardStatus); - - RMmCustomAPI::TSIMCardStatus compStatus(RMmCustomAPI::SimCardRemoved); - TPckg compStatusPckg(compStatus); - iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg, 20); - - customAPI.CancelAsyncRequest(ECustomNotifySimCardStatusIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(2); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNSCS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifySimCardStatus -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifySimCardStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifySimCardStatus0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TSIMCardStatus cardStatus; - RMmCustomAPI::TSIMCardStatus cardStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifySimCardStatus - //------------------------------------------------------------------------- - - RMmCustomAPI::TSIMCardStatus compStatus(RMmCustomAPI::SimCardRemoved); - TPckg compStatusPckg(compStatus); - iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg, 20); - - customAPI.NotifySimCardStatus(requestStatus, cardStatus); - customAPI2.NotifySimCardStatus(requestStatus2, cardStatus2); - - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compStatus, cardStatus); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - ASSERT_EQUALS(compStatus, cardStatus2); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test B: Test multiple clients requesting RMmCustomAPI::NotifySimCardStatus returning SimCardInserted - //------------------------------------------------------------------------- - - RMmCustomAPI::TSIMCardStatus compStatusB(RMmCustomAPI::SimCardInserted); - TPckg compStatusPckgB(compStatusB); - iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckgB, 20); - - cardStatus = RMmCustomAPI::SimCardUnknowError; - cardStatus2 = RMmCustomAPI::SimCardUnknowError; - customAPI.NotifySimCardStatus(requestStatus, cardStatus); - customAPI2.NotifySimCardStatus(requestStatus2, cardStatus2); - - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compStatusB, cardStatus); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - ASSERT_EQUALS(compStatusB, cardStatus2); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetWlanSimAuthenticationData -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetWlanSimAuthenticationData -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationEapSim compSim; - // get random value - FillRandom(compSim.iSRES); - FillRandom(compSim.iKC); - TPckg compSimPckg(compSim); - - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - RMmCustomAPI::TSimAuthenticationEapSim sim; - TPckg simPckg(sim); - - // get random value - FillRandom(sim.iRandomParameters); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg, KErrNotSupported); - - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - FillRandom(sim.iRandomParameters); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compSimPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetWlanSimAuthenticationData when result is not cached. - //------------------------------------------------------------------------- - FillRandom(sim.iRandomParameters); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compSim.iSRES,sim.iSRES); - ASSERT_EQUALS(compSim.iKC, sim.iKC); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetWlanSimAuthenticationData - // from LTSY. - //------------------------------------------------------------------------- - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimPckg); - - User::WaitForRequest(mockLtsyStatus); - - AssertMockLtsyStatusL(); - //------------------------------------------------------------------------- - // Test 1 for coverage increasing - //------------------------------------------------------------------------- - RMmCustomAPI::TSimAuthenticationEapAka simAka; - TPckg simAkaPckg(simAka); - - // get random value - FillRandom(simAka.iRandomParameters); - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationEapAka compSimAka; - // get random value - FillRandom(compSimAka.iCK); - FillRandom(compSimAka.iIK); - FillRandom(compSimAka.iAUTS); - TPckg compSimAkaPckg(compSimAka); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simAkaPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimAkaPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, simAkaPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compSimAka.iCK,simAka.iCK); - ASSERT_EQUALS(compSimAka.iIK, simAka.iIK); - ASSERT_EQUALS(compSimAka.iRES, simAka.iRES); - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // Test 2 for coverage increasing - // completion of RMmCustomAPI::GetWlanSimAuthenticationData - // from LTSY with error and RMmCustomAPI::TSimAuthenticationEapAka as data - //------------------------------------------------------------------------- - FillRandom(simAka.iRandomParameters); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simAkaPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compSimAkaPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, simAkaPckg); - User::WaitForRequest(requestStatus); - - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - ASSERT_EQUALS(compSimAka.iAUTS, simAka.iAUTS); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test 3 for coverage increasing - // Unsolicited completion of RMmCustomAPI::GetWlanSimAuthenticationData - // from LTSY with error - //------------------------------------------------------------------------- - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compSimPckg); - User::WaitForRequest(mockLtsyStatus); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // Test using RMmCustomAPI::TSimAuthenticationGbaBootstrap - //------------------------------------------------------------------------- - - // Data for argument - RMmCustomAPI::TSimAuthenticationGbaBootstrap bootstrap; - TPckg bootstrapPckg(bootstrap); - - // get random values and populate the packages - FillRandom(bootstrap.iRandomParameters); - FillRandom(bootstrap.iAUTN); - - // Return parameters - bootstrap.iRES.Fill(0, RMmCustomAPI::KMaxParametersLength); - bootstrap.iAUTS.Fill(0, RMmCustomAPI::KMaxParametersLength); - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationGbaBootstrap compBootstrap; - - compBootstrap.iRandomParameters = bootstrap.iRandomParameters; - compBootstrap.iAUTN = bootstrap.iAUTN; - - FillRandom(compBootstrap.iRES); - FillRandom(compBootstrap.iAUTS); - - TPckg compBootstrapPckg(compBootstrap); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, bootstrapPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compBootstrapPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, bootstrapPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compBootstrap.iRandomParameters, bootstrap.iRandomParameters); - ASSERT_EQUALS(compBootstrap.iAUTN, bootstrap.iAUTN); - ASSERT_EQUALS(compBootstrap.iAUTS, bootstrap.iAUTS); - ASSERT_EQUALS(compBootstrap.iRES, bootstrap.iRES); - - AssertMockLtsyStatusL(); - - // completion by error value - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, bootstrapPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compBootstrapPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, bootstrapPckg); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - - //------------------------------------------------------------------------- - // Test using RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate - //------------------------------------------------------------------------- - - RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate bsUpdate; - TPckg bsUpdatePckg(bsUpdate); - - // --- data for ExpectL --- - FillRandom(bsUpdate.iBTid); - FillRandom(bsUpdate.iKeyLifeTime); - bsUpdate.iRandomParameters.Fill(0, RMmCustomAPI::KMaxParametersLength); - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate compBsUpdate; - compBsUpdate.iBTid = bsUpdate.iBTid; - compBsUpdate.iKeyLifeTime = bsUpdate.iKeyLifeTime; - FillRandom(compBsUpdate.iRandomParameters); - TPckg compBsUpdatePckg(compBsUpdate); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, bsUpdatePckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compBsUpdatePckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, bsUpdatePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compBsUpdate.iBTid, bsUpdate.iBTid); - ASSERT_EQUALS(compBsUpdate.iKeyLifeTime, bsUpdate.iKeyLifeTime); - ASSERT_EQUALS(compBsUpdate.iRandomParameters, bsUpdate.iRandomParameters); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test using RMmCustomAPI::TSimAuthenticationGbaNafDerivation - //------------------------------------------------------------------------- - - RMmCustomAPI::TSimAuthenticationGbaNafDerivation naf; - FillRandom(naf.iNafId); - FillRandom(naf.iImpi); - naf.iKsExtNaf.Fill(0, RMmCustomAPI::KMaxParametersLength); - TPckg nafPckg(naf); - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationGbaNafDerivation compNaf; - // get random value - compNaf.iNafId = naf.iNafId; - compNaf.iImpi = naf.iImpi; - FillRandom(compNaf.iKsExtNaf); - TPckg compNafPckg(compNaf); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, nafPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compNafPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, nafPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compNaf.iNafId, naf.iNafId); - ASSERT_EQUALS(compNaf.iImpi, naf.iImpi); - ASSERT_EQUALS(compNaf.iKsExtNaf, naf.iKsExtNaf); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test using RMmCustomAPI::TSimAuthenticationMgvMskUpdate - //------------------------------------------------------------------------- - - //Initialize the data to zero - RMmCustomAPI::TSimAuthenticationMgvMskUpdate mskUpd; - mskUpd.iMikey.Fill(0, RMmCustomAPI::KMaxMikeyLength); - mskUpd.iBCASTManagement.Fill(0,RMmCustomAPI::KMaxParametersLength); - mskUpd.iParentalRating.Fill(0,RMmCustomAPI::KMaxKeyGroupIdLength); - mskUpd.iSecurityPolicyExt.Fill(0,RMmCustomAPI::KMaxParametersLength); - TPckg mskUpdPckg(mskUpd); - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationMgvMskUpdate compMskUpd; - // get random value - FillRandom(compMskUpd.iMikey); - FillRandom(compMskUpd.iBCASTManagement); - FillRandom(compMskUpd.iParentalRating); - FillRandom(compMskUpd.iSecurityPolicyExt); - TPckg compMskUpdPckg(compMskUpd); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, mskUpdPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compMskUpdPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, mskUpdPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compMskUpd.iMikey, mskUpd.iMikey); - //Added for MobileTV. - ASSERT_EQUALS(compMskUpd.iBCASTManagement, mskUpd.iBCASTManagement); - ASSERT_EQUALS(compMskUpd.iParentalRating, mskUpd.iParentalRating); - ASSERT_EQUALS(compMskUpd.iSecurityPolicyExt, mskUpd.iSecurityPolicyExt); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test using RMmCustomAPI::TSimAuthenticationMgvMtkGeneration - //------------------------------------------------------------------------- - - RMmCustomAPI::TSimAuthenticationMgvMtkGeneration mtkGen; - FillRandom(mtkGen.iMikey); - mtkGen.iMtkSalt.Fill(0, RMmCustomAPI::KMaxMikeyLength); - mtkGen.iBCASTManagement.Fill(0,RMmCustomAPI::KMaxParametersLength); - mtkGen.iParentalControl.Fill(0,RMmCustomAPI::KMaxKeyGroupIdLength); - mtkGen.iTrafficEncryptionKey.Fill(0,RMmCustomAPI::KMaxParametersLength); - TPckg mtkGenPckg(mtkGen); - - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationMgvMtkGeneration compMtkGen; - // get random value - compMtkGen.iMikey = mtkGen.iMikey; - FillRandom(compMtkGen.iMtkSalt); - FillRandom(compMtkGen.iBCASTManagement); - FillRandom(compMtkGen.iParentalControl); - FillRandom(compMtkGen.iTrafficEncryptionKey); - TPckg compMtkGenPckg(compMtkGen); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, mtkGenPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compMtkGenPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, mtkGenPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compMtkGen.iMikey, mtkGen.iMikey); - ASSERT_EQUALS(compMtkGen.iMtkSalt, mtkGen.iMtkSalt); - //Added for Mobile TV - ASSERT_EQUALS(compMtkGen.iBCASTManagement, mtkGen.iBCASTManagement); - ASSERT_EQUALS(compMtkGen.iParentalControl, mtkGen.iParentalControl); - ASSERT_EQUALS(compMtkGen.iTrafficEncryptionKey, mtkGen.iTrafficEncryptionKey); - - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test using RMmCustomAPI::TSimAuthenticationMgvMskDeletion - //------------------------------------------------------------------------- - - RMmCustomAPI::TSimAuthenticationMgvMskDeletion mskDel; - FillRandom(mskDel.iKeyDomainId); - FillRandom(mskDel.iKeyGroupIdPart); - TPckg mskDelPckg(mskDel); - - // --- data for CompleteL --- - RMmCustomAPI::TSimAuthenticationMgvMskDeletion compMskDel; - compMskDel.iKeyDomainId = mskDel.iKeyDomainId; - compMskDel.iKeyGroupIdPart = mskDel.iKeyGroupIdPart; - TPckg compMskDelPckg(compMskDel); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, mskDelPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compMskDelPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, mskDelPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(compMskDel.iKeyDomainId, mskDel.iKeyDomainId); - ASSERT_EQUALS(compMskDel.iKeyGroupIdPart, mskDel.iKeyGroupIdPart); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetWlanSimAuthenticationData -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetWlanSimAuthenticationData -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0002L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetWlanSimAuthenticationData - //------------------------------------------------------------------------- - // data for APi - RMmCustomAPI::TSimAuthenticationEapSim sim; - TPckg simPckg(sim); - // get random value - FillRandom(sim.iRandomParameters); - - // data for ExpectL - RMmCustomAPI::TSimAuthenticationEapSim expSim(sim); - TPckg expSimPckg(expSim); - - // data for Complete - RMmCustomAPI::TSimAuthenticationEapSim compSim; - FillRandom(compSim.iSRES); - FillRandom(compSim.iKC); - TPckg compSimPckg(compSim); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, expSimPckg); - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - - customAPI.CancelAsyncRequest(ECustomGetSimAuthenticationDataIPC); - - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); // customAPI - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetWlanSimAuthenticationData with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetWlanSimAuthenticationData with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - TInt wrongData (-1); // any value, but not 1 or 2 - TPckg wrongDataPckg(wrongData); - - //------------------------------------------------------------------------- - // Test wrong params, passed from LTSY to CTSY - //------------------------------------------------------------------------- - RMmCustomAPI::TSimAuthenticationEapAka simAka; - TPckg simAkaPckg(simAka); - // get random value - FillRandom(simAka.iRandomParameters); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simAkaPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrArgument, wrongDataPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, simAkaPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test Try to use the same Rand twice - //------------------------------------------------------------------------- - RMmCustomAPI::TSimAuthenticationEapSim sim; - TPckg simPckg(sim); - sim.iRandomParameters.Fill(0x00, RMmCustomAPI::KMaxParametersLength); - - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg); - // use this Rand first time - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - User::WaitForRequest(requestStatus); - // don't check requestStatus cause it depends on if rand_db.cur exists or not - - // use this Rand second time - // CTSY should complete request with KErrArgument - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - AssertMockLtsyStatusL(); - //------------------------------------------------------------------------- - // Test wrong params, passed to API - //------------------------------------------------------------------------- - // CTSY (CustomAPI) checks whether passed parameters are wrong. - // if they are wrong than it completes request - // and sends request with wrong parameter to LSTY !!! - - - customAPI.GetWlanSimAuthenticationData(requestStatus, wrongDataPckg); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - // Done ! - CleanupStack::PopAndDestroy (2, this); //customAPI - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetWlanSimAuthenticationData -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetWlanSimAuthenticationData -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0004L() - { - - 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(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(phone2); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - // data for the first APi - RMmCustomAPI::TSimAuthenticationEapAka simAka; - TPckg simPckg(simAka); - FillRandom(simAka.iRandomParameters); - - // data for the first ExpectL - RMmCustomAPI::TSimAuthenticationEapAka expSimAka(simAka); - TPckg expSimPckg(expSimAka); - - // data for the first Complete - RMmCustomAPI::TSimAuthenticationEapAka compSimAka; - TPckg compSimPckg(compSimAka); - - - // data for second APi - RMmCustomAPI::TSimAuthenticationEapSim sim2; - TPckg simPckg2(sim2); - FillRandom(sim2.iRandomParameters); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetWlanSimAuthenticationData - //------------------------------------------------------------------------- - // first request - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, expSimPckg); - iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimPckg); - - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - - // second request - customAPI2.GetWlanSimAuthenticationData(requestStatus2, simPckg2); - - // wait for the first answer - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - // wait for the second answer - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetWlanSimAuthenticationData with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetWlanSimAuthenticationData and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - // data for APi - RMmCustomAPI::TSimAuthenticationEapSim sim; - TPckg simPckg(sim); - FillRandom(sim.iRandomParameters); - - // data for t ExpectL - RMmCustomAPI::TSimAuthenticationEapSim expSim(sim); - TPckg expSimPckg(expSim); - - //------------------------------------------------------------------------- - // Test A: Test timeout of RMmCustomAPI::GetWlanSimAuthenticationData - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, expSimPckg); - customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - // Done ! - CleanupStack::PopAndDestroy(2, this); // customAPI - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSMSR-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSimMessageStatusRead -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetSimMessageStatusRead -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSimMessageStatusRead0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - TTime time; - time.UniversalTime(); - TInt timeZone(1); - - TTime expTime(time); - TInt expTimeZone(timeZone); - - TMockLtsyData2< TTime, TInt > ltsyData(expTime, expTimeZone); - ltsyData.SerialiseL(data); - - - // Actually the function does not have any opportunity to return error value. - // Perhaps this is a design error... - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomSetSimMessageStatusReadIPC, data, KErrNotSupported); - - customAPI.SetSimMessageStatusRead(time, timeZone); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SetSimMessageStatusRead when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomSetSimMessageStatusReadIPC, data, KErrNone); - - customAPI.SetSimMessageStatusRead(time, timeZone); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneUHZIUESettings -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneUHZIUESettings -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TViagUHZIUESettings settings; - - settings.iSettings = 0xFF; - settings.iVersion = 1; - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TViagUHZIUESettings expSettings = settings; - - - TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data, KErrNotSupported); - - customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); - iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrGeneral); - - customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyRauEvent when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); - iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone); - - customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyRauEvent - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::WriteViagHomeZoneUHZIUESettings -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::WriteViagHomeZoneUHZIUESettings -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - - TRequestStatus requestStatus; - RMmCustomAPI::TViagUHZIUESettings settings; - - settings.iSettings = 0xFF; - settings.iVersion = 1; - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TViagUHZIUESettings expSettings = settings; - - - TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::WriteViagHomeZoneUHZIUESettings - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); - iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone, 20); - - customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); - - customAPI.CancelAsyncRequest(EWriteViagHomeZoneUHZIUESettingsIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::WriteViagHomeZoneUHZIUESettings -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::WriteViagHomeZoneUHZIUESettings -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0004L() - { - - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - RMmCustomAPI::TViagUHZIUESettings settings; - RMmCustomAPI::TViagUHZIUESettings settings2; - - settings.iSettings = 0xFF; - settings.iVersion = 1; - - RMmCustomAPI::TViagUHZIUESettings expSettings = settings; - - - TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::WriteViagHomeZoneUHZIUESettings - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); - iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone, 20); - - customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); - - customAPI2.WriteViagHomeZoneUHZIUESettings(requestStatus2, settings2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneUHZIUESettings with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneUHZIUESettings and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TViagUHZIUESettings settings = {0, 0}; - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TViagUHZIUESettings expSettings = settings; - - - TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); - - customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlwaysOn -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetAlwaysOn -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlwaysOn0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - RMmCustomAPI::TSetAlwaysOnMode expMode = RMmCustomAPI::EAlwaysModeBoth; - - TMockLtsyData1 expData(expMode); - expData.SerialiseL(expectData); - - RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); - - TInt result = 0; - - TMockLtsyData1 ltsyData(result); - ltsyData.SerialiseL(data); - - iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrGeneral, data); - - customAPI.SetAlwaysOn(requestStatus, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SetAlwaysOn - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData, KErrNotSupported); - - customAPI.SetAlwaysOn(requestStatus, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SetAlwaysOn when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); - iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data); - - customAPI.SetAlwaysOn(requestStatus, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetAlwaysOn -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SetAlwaysOn -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlwaysOn0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - RMmCustomAPI::TSetAlwaysOnMode expMode = RMmCustomAPI::EAlwaysModeBoth; - - TMockLtsyData1 expData(expMode); - expData.SerialiseL(expectData); - - RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; - - TInt result = 0; - - TMockLtsyData1 ltsyData(result); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SetAlwaysOn - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); - //iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data, 20); - - customAPI.SetAlwaysOn(requestStatus, mode); - - customAPI.CancelAsyncRequest(ECustomSetAlwaysOnMode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlwaysOn with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetAlwaysOn with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlwaysOn0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; - - customAPI.SetAlwaysOn(requestStatus, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetAlwaysOn -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetAlwaysOn -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetAlwaysOn0004L() - { - - 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); - - RPacketService packetService; - - OpenPacketServiceL(packetService); - CleanupClosePushL(packetService); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - RMmCustomAPI::TSetAlwaysOnMode expMode = RMmCustomAPI::EAlwaysModeBoth; - - TRequestStatus requestStatus2; - - TMockLtsyData1 expData(expMode); - expData.SerialiseL(expectData); - - RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; - RMmCustomAPI::TSetAlwaysOnMode mode2 = RMmCustomAPI::EAlwaysModeBoth; - - TInt result = 0; - - TMockLtsyData1 ltsyData(result); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); - iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data, 20); - - customAPI.SetAlwaysOn(requestStatus, mode); - - customAPI2.SetAlwaysOn(requestStatus2, mode2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(8, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNRE-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyRauEvent -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyRauEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyRauEvent0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyRauEvent - // from LTSY. - //------------------------------------------------------------------------- - - RMmCustomAPI::TRauEventStatus completeStatus(RMmCustomAPI::ERauEventResumed); - TPckg completePckg(completeStatus); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::TRauEventStatus status(RMmCustomAPI::ERauEventActive); - - customAPI.NotifyRauEvent(requestStatus, status); - - iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrGeneral, completePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyRauEvent when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyRauEvent(requestStatus, status); - - completeStatus = RMmCustomAPI::ERauEventResumed; - - iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(completeStatus, status); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNRE-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyRauEvent -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyRauEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyRauEvent0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyRauEvent - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::TRauEventStatus status; - - customAPI.NotifyRauEvent(requestStatus, status); - - customAPI.CancelAsyncRequest(ECustomNotifyRauEventIPC); - - RMmCustomAPI::TRauEventStatus completeStatus(RMmCustomAPI::ERauEventActive); - TPckg completePckg(completeStatus); - - iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNRE-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyRauEvent -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyRauEvent -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyRauEvent0004L() - { - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TRauEventStatus status(RMmCustomAPI::ERauEventActive); - RMmCustomAPI::TRauEventStatus status2(RMmCustomAPI::ERauEventActive); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyRauEvent - //------------------------------------------------------------------------- - - customAPI.NotifyRauEvent(requestStatus, status); - customAPI2.NotifyRauEvent(requestStatus2, status2); - - RMmCustomAPI::TRauEventStatus completeStatus(RMmCustomAPI::ERauEventResumed); - TPckg completePckg(completeStatus); - - iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(completeStatus, status); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - ASSERT_EQUALS(completeStatus, status2); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadHSxPAStatus0001L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC, KErrNotSupported); - - customAPI.ReadHSxPAStatus(requestStatus, paStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); - - customAPI.ReadHSxPAStatus(requestStatus, paStatus); - - RMmCustomAPI::THSxPAStatus paStatusComplete(RMmCustomAPI::EHSxPAEnabled); - TPckg paStatusCompletePckg(paStatusComplete); - - iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrGeneral, paStatusCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::ReadHSxPAStatus when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); - - customAPI.ReadHSxPAStatus(requestStatus, paStatus); - - iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(paStatusComplete, paStatus); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C2: read another value - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); - - customAPI.ReadHSxPAStatus(requestStatus, paStatus); - - paStatusComplete = RMmCustomAPI::EHSxPADisabled; - - iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(paStatusComplete, paStatus); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ReadHSxPAStatus - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadHSxPAStatus0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::ReadHSxPAStatus - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); - - customAPI.ReadHSxPAStatus(requestStatus, paStatus); - - customAPI.CancelAsyncRequest(ECustomReadHSxPAStatusIPC); - - RMmCustomAPI::THSxPAStatus paStatusComplete(RMmCustomAPI::EHSxPAEnabled); - TPckg paStatusCompletePckg(paStatusComplete); - - iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - CleanupStack::PopAndDestroy(2); - - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadHSxPAStatus0004L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::THSxPAStatus paStatus; - RMmCustomAPI::THSxPAStatus paStatus2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::ReadHSxPAStatus - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); - - customAPI.ReadHSxPAStatus(requestStatus, paStatus); - customAPI2.ReadHSxPAStatus(requestStatus2, paStatus2); - - RMmCustomAPI::THSxPAStatus paStatusComplete(RMmCustomAPI::EHSxPAEnabled); - TPckg paStatusCompletePckg(paStatusComplete); - - iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(paStatusComplete, paStatus); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadHSxPAStatus with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::ReadHSxPAStatus and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestReadHSxPAStatus0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus; - - iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); - - customAPI.ReadHSxPAStatus(requestStatus, paStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::WriteHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteHSxPAStatus0001L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); - - TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); - tsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data, KErrNotSupported); - - customAPI.WriteHSxPAStatus(requestStatus, paStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); - - customAPI.WriteHSxPAStatus(requestStatus, paStatus); - - iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrGeneral); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::WriteHSxPAStatus when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); - - customAPI.WriteHSxPAStatus(requestStatus, paStatus); - - iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::WriteHSxPAStatus - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - - CleanupStack::PopAndDestroy(3, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::WriteHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::WriteHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteHSxPAStatus0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); - - TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); - tsyData.SerialiseL(data); - - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::WriteHSxPAStatus - //------------------------------------------------------------------------- - iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); - - customAPI.WriteHSxPAStatus(requestStatus, paStatus); - - customAPI.CancelAsyncRequest(ECustomWriteHSxPAStatusIPC); - - iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(3); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::WriteHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::WriteHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteHSxPAStatus0004L() - { - - 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); - - RBuf8 data; - CleanupClosePushL(data); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - CleanupClosePushL(customAPI2); - customAPI2.Open(phone2); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); - - TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); - tsyData.SerialiseL(data); - - RMmCustomAPI::THSxPAStatus paStatus2(RMmCustomAPI::EHSxPAEnabled); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::WriteHSxPAStatus - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); - - customAPI.WriteHSxPAStatus(requestStatus, paStatus); - customAPI2.WriteHSxPAStatus(requestStatus2, paStatus2); - - iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteHSxPAStatus with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::WriteHSxPAStatus and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestWriteHSxPAStatus0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 data; - CleanupClosePushL(data); - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); - - TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); - tsyData.SerialiseL(data); - - iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); - - customAPI.WriteHSxPAStatus(requestStatus, paStatus); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNHS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyHSxPAStatus0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyHSxPAStatus - // from LTSY. - //------------------------------------------------------------------------- - - RMmCustomAPI::THSxPAStatus paCompleteStatus(RMmCustomAPI::EHSxPAEnabled); - TPckg completePckg(paCompleteStatus); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); - - customAPI.NotifyHSxPAStatus(requestStatus, paStatus); - - iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrGeneral, completePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyHSxPAStatus when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyHSxPAStatus(requestStatus, paStatus); - - paCompleteStatus = RMmCustomAPI::EHSxPAEnabled; - - iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(paCompleteStatus, paStatus); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNHS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyHSxPAStatus0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyHSxPAStatus - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::THSxPAStatus paStatus; - - customAPI.NotifyHSxPAStatus(requestStatus, paStatus); - - customAPI.CancelAsyncRequest(ECustomNotifyHSxPAStatusIPC); - - RMmCustomAPI::THSxPAStatus paCompleteStatus(RMmCustomAPI::EHSxPADisabled); - TPckg completePckg(paCompleteStatus); - - iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNHS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyHSxPAStatus -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyHSxPAStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyHSxPAStatus0004L() - { - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - CleanupClosePushL(customAPI2); - customAPI2.Open(phone2); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); - RMmCustomAPI::THSxPAStatus paStatus2(RMmCustomAPI::EHSxPADisabled); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyHSxPAStatus - //------------------------------------------------------------------------- - - customAPI.NotifyHSxPAStatus(requestStatus, paStatus); - customAPI2.NotifyHSxPAStatus(requestStatus2, paStatus2); - - RMmCustomAPI::THSxPAStatus paCompleteStatus(RMmCustomAPI::EHSxPAEnabled); - TPckg completePckg(paCompleteStatus); - - iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(paCompleteStatus, paStatus); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - ASSERT_EQUALS(paCompleteStatus, paStatus2); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetIccCallForwardingIndicatorStatus -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetIccCallForwardingIndicatorStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TCFIndicators indi; - RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); - - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - - _LIT(KNumber, "123456789"); - indiComplete.iIndicator = 0xFF; - indiComplete.iCFNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber; - indiComplete.iCFNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; - indiComplete.iCFNumber.iTelNumber = KNumber; - - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrGeneral, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetIccCallForwardingIndicatorStatus when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); - - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(indiComplete.iIndicator, indi.iIndicator); - ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi.iCFNumber.iTypeOfNumber); - ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi.iCFNumber.iNumberPlan); - ASSERT_EQUALS(0, indi.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetIccCallForwardingIndicatorStatus - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - // here iGetIccCfStatusBootUp is true and error is set - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrGeneral, indiCompletePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - - // TEST E2: Unsolicited completion of RMmCustomAPI::GetIccCallForwardingIndicatorStatus - // from LTSY. - - // here iGetIccCfStatusBootUp is true and no error - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - // TEST E3: Unsolicited completion of RMmCustomAPI::GetIccCallForwardingIndicatorStatus - // from LTSY. - - // here iGetIccCfStatusBootUp is false - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC, KErrNotSupported); - - customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetIccCallForwardingIndicatorStatus -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetIccCallForwardingIndicatorStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - // This completes request made when customAPI is opened - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); - - TRequestStatus requestStatus; - - RMmCustomAPI::TCFIndicators indi; - RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetIccCallForwardingIndicatorStatus - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); - - customAPI.CancelAsyncRequest(ECustomGetIccCallForwardingStatusIPC); - - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetIccCallForwardingIndicatorStatus with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetIccCallForwardingIndicatorStatus with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - - //------------------------------------------------------------------------- - // Test B: Test passing wrong descriptor size to parameter in - // RMmCustomAPI::GetIccCallForwardingIndicatorStatus - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - - TBuf8<1> littleBuf; - - customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, littleBuf); - - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetIccCallForwardingIndicatorStatus -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetIccCallForwardingIndicatorStatus -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0004L() - { - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - CleanupClosePushL(customAPI2); - customAPI2.Open(phone2); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TCFIndicators indi; - RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); - - RMmCustomAPI::TCFIndicators indi2; - RMmCustomAPI::TCFIndicatorsPckg indiPckg2(indi2); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetIccCallForwardingIndicatorStatus - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); - customAPI2.GetIccCallForwardingIndicatorStatus(requestStatus2, indiPckg2); - - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - - iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetIccCallForwardingIndicatorStatus with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetIccCallForwardingIndicatorStatus and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TCFIndicators indi; - RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); - - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyIccCallForwardingStatusChange -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyIccCallForwardingStatusChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TCFIndicators indi; - RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); - - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - - - indiComplete.iIndicator = 0xFF; - - iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrGeneral, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyIccCallForwardingStatusChange when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); - - _LIT(KNumber, "123456789"); - indiComplete.iIndicator = 0x00; - indiComplete.iCFNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber; - indiComplete.iCFNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; - indiComplete.iCFNumber.iTelNumber = KNumber; - - iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(indiComplete.iIndicator, indi.iIndicator); - ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi.iCFNumber.iTypeOfNumber); - ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi.iCFNumber.iNumberPlan); - ASSERT_EQUALS(0, indi.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::NotifyIccCallForwardingStatusChange - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - indiComplete.iIndicator = 0xFF; - - iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyIccCallForwardingStatusChange -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyIccCallForwardingStatusChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - TRequestStatus requestStatus; - - RMmCustomAPI::TCFIndicators indi; - RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyIccCallForwardingStatusChange - //------------------------------------------------------------------------- - customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); - - customAPI.CancelAsyncRequest(ECustomNotifyIccCallForwardingStatusChangeIPC); - - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - - indiComplete.iIndicator = 0xFF; - - iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyIccCallForwardingStatusChange with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyIccCallForwardingStatusChange with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test B: Test passing wrong descriptor size to parameter in - // RMmCustomAPI::NotifyIccCallForwardingStatusChange - //------------------------------------------------------------------------- - TRequestStatus requestStatus; - - TBuf8<1> littleBuf; - - customAPI.NotifyIccCallForwardingStatusChange(requestStatus, littleBuf); - - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - - indiComplete.iIndicator = 0xFF; - - iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyIccCallForwardingStatusChange -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyIccCallForwardingStatusChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0004L() - { - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TCFIndicators indi; - RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); - - RMmCustomAPI::TCFIndicators indi2; - RMmCustomAPI::TCFIndicatorsPckg indiPckg2(indi2); - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::NotifyIccCallForwardingStatusChange - //------------------------------------------------------------------------- - customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); - customAPI2.NotifyIccCallForwardingStatusChange(requestStatus2, indiPckg2); - - RMmCustomAPI::TCFIndicators indiComplete; - RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); - - _LIT(KNumber, "123456789"); - - indiComplete.iIndicator = 0xFF; - indiComplete.iCFNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber; - indiComplete.iCFNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; - indiComplete.iCFNumber.iTelNumber = KNumber; - - iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(indiComplete.iIndicator, indi.iIndicator); - ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi.iCFNumber.iTypeOfNumber); - ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi.iCFNumber.iNumberPlan); - ASSERT_EQUALS(0, indi.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - - ASSERT_EQUALS(indiComplete.iIndicator, indi2.iIndicator); - ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi2.iCFNumber.iTypeOfNumber); - ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi2.iCFNumber.iNumberPlan); - ASSERT_EQUALS(0, indi2.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(5, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCellInfo -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetCellInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ - -void CCTsyCustomIPCFU::TestGetCellInfo0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo); - - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); - - RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cell); - RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); - - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCellInfoIPC, KErrNotSupported); - - customAPI.GetCellInfo(requestStatus, cellInfoPckg); - - User::WaitForRequest(requestStatus); - - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCellInfoIPC); - - customAPI.GetCellInfo(requestStatus, cellInfoPckg); - - iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrGeneral, cellPckg); - - User::WaitForRequest(requestStatus); - - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetCellInfo when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(ECustomGetCellInfoIPC); - - customAPI.GetCellInfo(requestStatus, cellInfoPckg); - - FillWithRandomData(*cell); - - iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); - - User::WaitForRequest(requestStatus); - - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo) ); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetCellInfo - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetCellInfo -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetCellInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCellInfo0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetCellInfo - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); - - RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cell); - RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); - - iMockLTSY.ExpectL(ECustomGetCellInfoIPC); - - customAPI.GetCellInfo(requestStatus, cellInfoPckg); - - customAPI.CancelAsyncRequest(ECustomGetCellInfoIPC); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCellInfo with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetCellInfo with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCellInfo0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test B: Test passing wrong descriptor size to parameter in - // RMmCustomAPI::GetCellInfo - //------------------------------------------------------------------------- - TRequestStatus requestStatus; - TBuf8<1> littleBuf; - - customAPI.GetCellInfo(requestStatus, littleBuf); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetCellInfo -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetCellInfo -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCellInfo0004L() - { - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); - RMmCustomAPI::TMmCellInfo* cellInfo2 = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo2); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg2(*cellInfo2); - - iMockLTSY.ExpectL(ECustomGetCellInfoIPC); - - customAPI.GetCellInfo(requestStatus, cellInfoPckg); - customAPI2.GetCellInfo(requestStatus2, cellInfoPckg2); - - RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cell); - RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); - - iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(8, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCellInfo with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetCellInfo and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetCellInfo0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); - - iMockLTSY.ExpectL(ECustomGetCellInfoIPC); - - customAPI.GetCellInfo(requestStatus, cellInfoPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - } - - - -void CCTsyCustomIPCFU::FillWithRandomData( RMmCustomAPI::TMmCellInfo &aCell, TInt aRnd) const - { - - aCell.iMode = RMmCustomAPI::TMmCellInfo::EGSM; - aCell.iGsmCellInfo.iTA = 100; - for( TInt i = 0; i CTSY - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); - - customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); - - iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrGeneral, cellPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::NotifyCellInfoChange when result is not cached. - //------------------------------------------------------------------------- - - customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); - - iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo) ); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyCellInfoChange -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyCellInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyCellInfoChange0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::NotifyCellInfoChange - //------------------------------------------------------------------------- - - TRequestStatus requestStatus; - RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); - - customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); - - customAPI.CancelAsyncRequest(ECustomNotifyCellInfoChangeIPC); - - RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cell); - RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); - - iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg, 10); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(4); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyCellInfoChange with bad parameter data -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::NotifyCellInfoChange with bad parameter data -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyCellInfoChange0003L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - //------------------------------------------------------------------------- - // Test B: Test passing wrong descriptor size to parameter in - // RMmCustomAPI::NotifyCellInfoChange - //------------------------------------------------------------------------- - TRequestStatus requestStatus; - TBuf8<1> littleBuf; - - customAPI.NotifyCellInfoChange(requestStatus, littleBuf); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrArgument, requestStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyCellInfoChange -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyCellInfoChange -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestNotifyCellInfoChange0004L() - { - - 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); - - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); - RMmCustomAPI::TMmCellInfo* cellInfo2 = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cellInfo2); - RMmCustomAPI::TMmCellInfoPckg cellInfoPckg2(*cellInfo2); - - customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); - customAPI2.NotifyCellInfoChange(requestStatus2, cellInfoPckg2); - - RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; - CleanupStack::PushL(cell); - RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); - - FillWithRandomData(*cell); - - iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo) ); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrNone, requestStatus2.Int()); - ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo2) ); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(8, this); - - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkBand -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkBand -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ - -void CCTsyCustomIPCFU::TestGetSystemNetworkBand0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TBandSelection band; - RMmCustomAPI::TNetworkModeCaps mode; - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetBandSelectionIPC, KErrNotSupported); - - customAPI.GetSystemNetworkBand(requestStatus, band, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); - - RMmCustomAPI::TBandSelection compBand = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps compMode = RMmCustomAPI::KCapsNetworkModeGsm; - - TMockLtsyData2 - ltsyData(compBand, compMode); - ltsyData.SerialiseL(completeData); - - iMockLTSY.CompleteL(ECustomGetBandSelectionIPC, KErrGeneral, completeData); - - customAPI.GetSystemNetworkBand(requestStatus, band, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::GetSystemNetworkBand when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); - iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData); - - customAPI.GetSystemNetworkBand(requestStatus, band, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compBand == band); - ASSERT_TRUE(compMode == mode); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::GetSystemNetworkBand - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); // customAPI, completeData, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetSystemNetworkBand -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::GetSystemNetworkBand -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSystemNetworkBand0002L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TBandSelection band; - RMmCustomAPI::TNetworkModeCaps mode; - - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::GetSystemNetworkBand - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); - - - RMmCustomAPI::TBandSelection compBand = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps compMode = RMmCustomAPI::KCapsNetworkModeGsm; - - TMockLtsyData2 - ltsyData(compBand, compMode); - ltsyData.SerialiseL(completeData); - - customAPI.GetSystemNetworkBand(requestStatus, band, mode); - - customAPI.CancelAsyncRequest(ECustomGetBandSelectionIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); // customAPI, completeData, this - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetSystemNetworkBand -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetSystemNetworkBand -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSystemNetworkBand0004L() - { - - 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); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TBandSelection band; - RMmCustomAPI::TNetworkModeCaps mode; - - RMmCustomAPI::TBandSelection band2; - RMmCustomAPI::TNetworkModeCaps mode2; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetSystemNetworkBand - //------------------------------------------------------------------------- - - RMmCustomAPI::TBandSelection compBand = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps compMode = RMmCustomAPI::KCapsNetworkModeGsm; - - TMockLtsyData2 - ltsyData(compBand, compMode); - ltsyData.SerialiseL(completeData); - - iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); - iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData, 20); - - customAPI.GetSystemNetworkBand(requestStatus, band, mode); - - customAPI2.GetSystemNetworkBand(requestStatus2, band2, mode2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_TRUE(compBand == band); - ASSERT_TRUE(compMode == mode); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkBand with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkBand and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetSystemNetworkBand0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TBandSelection band; - RMmCustomAPI::TNetworkModeCaps mode; - - iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); - - customAPI.GetSystemNetworkBand(requestStatus, band, mode); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2); // customAPI, this - - } - - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkBand -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkBand -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ - -void CCTsyCustomIPCFU::TestSetSystemNetworkBand0001L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - - RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; - - TMockLtsyData2 - ltsyData(band, mode); - ltsyData.SerialiseL(data); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data, KErrNotSupported); - - customAPI.SetSystemNetworkBand(requestStatus, band, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); - - iMockLTSY.CompleteL(ECustomSetBandSelectionIPC, KErrGeneral); - - customAPI.SetSystemNetworkBand(requestStatus, band, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::SetSystemNetworkBand when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); - iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); - - customAPI.SetSystemNetworkBand(requestStatus, band, mode); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::SetSystemNetworkBand - // from LTSY. - //------------------------------------------------------------------------- - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetSystemNetworkBand -@SYMTestPriority High -@SYMTestActions Invokes cancelling of RMmCustomAPI::SetSystemNetworkBand -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSystemNetworkBand0002L() - { - //Test works on 9.6 but causes this step and rest of the suite to fail - //ASSERT_TRUE(EFalse); - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; - - TMockLtsyData2 - ltsyData(band, mode); - ltsyData.SerialiseL(data); - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //------------------------------------------------------------------------- - // Test cancelling of RMmCustomAPI::SetSystemNetworkBand - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); - iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); - - customAPI.SetSystemNetworkBand(requestStatus, band, mode); - - customAPI.CancelAsyncRequest(ECustomSetBandSelectionIPC); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetSystemNetworkBand -@SYMTestPriority High -@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetSystemNetworkBand -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSystemNetworkBand0004L() - { - 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); - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - - TRequestStatus requestStatus; - TRequestStatus requestStatus2; - - RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; - - TMockLtsyData2 - ltsyData(band, mode); - ltsyData.SerialiseL(data); - - RMmCustomAPI::TBandSelection band2 = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps mode2 = RMmCustomAPI::KCapsNetworkModeGsm; - - //------------------------------------------------------------------------- - // Test A: Test multiple clients requesting RMmCustomAPI::GetSystemNetworkBand - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); - iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); - - customAPI.SetSystemNetworkBand(requestStatus, band, mode); - - customAPI2.SetSystemNetworkBand(requestStatus2, band2, mode2); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - User::WaitForRequest(requestStatus2); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(6, this); - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkBand with timeout -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkBand and tests for timeout -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestSetSystemNetworkBand0005L() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - TRequestStatus requestStatus; - RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; - RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; - - TMockLtsyData2 - ltsyData(band, mode); - ltsyData.SerialiseL(data); - - iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); - - customAPI.SetSystemNetworkBand(requestStatus, band, mode); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 407702); - // RMmCustomAPI::SetSystemNetworkBand is not completed by timeout. - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); - - } - - - -/** -@SYMTestCaseID BA-CTSY-CIPC-USS-0001 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetUSIMServiceSupport -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0001L() - { - //Setup - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - //End Setup - - // Start - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - TInt appNum = 68; // fill expected appNumber - TPckg appNumPckg(appNum); - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNotSupported); - - TRequestStatus requestStatus; - RMmCustomAPI::TAppSupport usimSupport; - usimSupport.iAppNum=appNum; - usimSupport.iSupported=ETrue; - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - // Successful call - // Expect and Complete Calls - - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); - - RMmCustomAPI::TAppSupport compData; - compData.iAppNum = 68; // fill - compData.iSupported = EFalse; //app is not supported - TPckg compPckg(compData); - iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNone, compPckg); - - //Call API - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(68, usimSupport.iAppNum); - ASSERT_TRUE(EFalse == usimSupport.iSupported); - AssertMockLtsyStatusL(); - - //Not Supported - // Expect and Complete Calls - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); - iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNotSupported, compPckg); - - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //KErrGeneral - // Expect and Complete Calls - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); - iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrGeneral, compPckg); - - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - AssertMockLtsyStatusL(); - - //End - CleanupStack::PopAndDestroy(2); //this, customAPI - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-USS-0002 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test cancel of RMmCustomAPI::GetUSIMServiceSupport -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0002L() - { - //Setup - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - //End Setup - - // Start - // Successful call - // Expect and Complete Calls - TInt appNum = 68; // fill expected appNumber - TPckg appNumPckg(appNum); - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); - - //Call API - TRequestStatus requestStatus; - RMmCustomAPI::TAppSupport usimSupport; - usimSupport.iAppNum=appNum; - usimSupport.iSupported=ETrue; - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - - customAPI.CancelAsyncRequest(ECustomGetServiceTableSupportbyApplicationIPC); - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - //End - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2); //this, customAPI - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-USS-0003 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test cancel of RMmCustomAPI::GetUSIMServiceSupport -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0003L() - { - //Setup - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - //End Setup - - // Start - // Pass negative appNum - // Expect and Complete Calls - TInt appNum = -5; - TPckg appNumPckg(appNum); - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); - - RMmCustomAPI::TAppSupport compData; - compData.iAppNum = -5; // fill - compData.iSupported = EFalse; //app is not supported - TPckg compPckg(compData); - iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNotFound, compPckg); - - - //Call API - TRequestStatus requestStatus; - RMmCustomAPI::TAppSupport usimSupport; - usimSupport.iAppNum=-5; - usimSupport.iSupported=ETrue; - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - User::WaitForRequest(requestStatus); - - ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //End - CleanupStack::PopAndDestroy(2); //this, customAPI - } - -/** -@SYMTestCaseID BA-CTSY-CIPC-USS-0004 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test multiple client requests to RMmCustomAPI::GetUSIMServiceSupport -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0004L() - { - //Setup - 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); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - RMmCustomAPI customAPI2; - OpenCustomAPILC(customAPI2, phone2, EFalse); - //End Setup - - // Start - // 1st Client Request - TInt appNum = 68; // fill expected appNumber - TPckg appNumPckg(appNum); - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNone); - - RMmCustomAPI::TAppSupport compData; - compData.iAppNum = 68; // fill - compData.iSupported = ETrue; //app is not supported - TPckg compPckg(compData); - - TRequestStatus requestStatus; - RMmCustomAPI::TAppSupport usimSupport; - usimSupport.iAppNum=appNum; - usimSupport.iSupported=EFalse; - iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNone, compPckg); - - // 2nd Client Request - TInt appNum2 = 67; // fill expected appNumber - TRequestStatus requestStatus2; - RMmCustomAPI::TAppSupport usimSupport2; - usimSupport2.iAppNum=appNum2; - usimSupport2.iSupported=EFalse; - - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - customAPI2.GetUSIMServiceSupport(requestStatus2, usimSupport2); - - User::WaitForRequest(requestStatus); - User::WaitForRequest(requestStatus2); - - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); - - AssertMockLtsyStatusL(); - - //End - CleanupStack::PopAndDestroy(5); //this, telserver2, phone2, customAPI, customAPI2 - } - - -/** -@SYMTestCaseID BA-CTSY-CIPC-USS-0005 -@SYMComponent telephony_ctsy -@SYMTestCaseDesc Test timeout for request RMmCustomAPI::GetUSIMServiceSupport -@SYMTestPriority High -@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport -@SYMTestExpectedResults Pass -@SYMTestType CT -*/ -void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0005L() - { - //Setup - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - //End Setup - - // Start - TInt appNum = 68; // fill expected appNumber - TPckg appNumPckg(appNum); - iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNone); - - TRequestStatus requestStatus; - RMmCustomAPI::TAppSupport usimSupport; - usimSupport.iAppNum=appNum; - usimSupport.iSupported=ETrue; - customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - //End - CleanupStack::PopAndDestroy(2); //this, customAPI - } - -// Helper methods -void CCTsyCustomIPCFU::OpenCustomAPILC(RMmCustomAPI& aCustomAPI, RMobilePhone& aPhone, TBool aExpectNeeded) - { - RBuf8 data; - CleanupClosePushL(data); - - if(aExpectNeeded) - { - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; - currentlyRetrievedCache.iCacheId = 1; - currentlyRetrievedCache.iRecordId = 0; - TMockLtsyData1 ltsyData(currentlyRetrievedCache); - ltsyData.SerialiseL(data); - iMockLTSY.ExpectL(EReadViagHomeZoneCacheIPC, data); - } - - TInt errorCode = aCustomAPI.Open(aPhone); - ASSERT_EQUALS(KErrNone, errorCode); - CleanupStack::PopAndDestroy (&data); - CleanupClosePushL(aCustomAPI); - - } - -void CCTsyCustomIPCFU::OpenCustomAPILC(RMmCustomAPI& aCustomAPI) - { - OpenCustomAPILC(aCustomAPI,iPhone); - } - - -void CCTsyCustomIPCFU::OpenLineLC(RLine& aLine, RPhone& aPhone, const TDesC& aName) - { - - TInt res = aLine.Open(aPhone, aName); - ASSERT_EQUALS(KErrNone, res); - CleanupClosePushL(aLine); - AssertMockLtsyStatusL(); - - } - - -void CCTsyCustomIPCFU::CreateAndOpenIncomingCalLC(RLine &aLine, - RCall &aCall, - TName& aCallName, - const TDesC& aLineName, - const TInt aCallId, - RMobileCall::TMobileCallStatus aMobileCallStatus, - RMobilePhone::TMobileService aMobileService - ) - { - TInt ret = CreateIncomingCallL(aLine, aCallId, aLineName, aCallName, - aMobileService, aMobileCallStatus); - ASSERT_EQUALS(KErrNone, ret); - - ret = aCall.OpenExistingCall(aLine, aCallName); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(aCall); - } - -/** - * The purpose of this function is to invoke RMmCustomAPI::Open - * _before_ EMmTsyBootNotifySimStatusReadyIPC CTSY event is triggered and thus - * let the Viag Home Zome Cache to be initialized. - */ -void CCTsyCustomIPCFU::OpenPhoneAndCustomAPILC(RMmCustomAPI& aCustomAPI, TInt aNtsyError) - { - CleanupClosePushL(aCustomAPI); - TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, err); - - err=iMockLTSY.Connect(); - ASSERT_EQUALS(KErrNone, err); - - RBuf8 data; - data.CleanupClosePushL(); - RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; - currentlyRetrievedCache.iCacheId = 1; - currentlyRetrievedCache.iRecordId = 0; - TMockLtsyData1 ltsyData(currentlyRetrievedCache); - - - // 2-nd & all further EReadViagHomeZoneCacheIPC - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, aNtsyError); - if(aNtsyError != KErrNone) - { - // got error, send only once - c = KViagHomeZoneCacheIdMax + 1; - r = KViagHomeZoneCacheRecordIdMax + 1; - } - } - } - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //************************************************************ - //* Invoke RMmCustomAPI::Open prior to triggering any further - //* CTSY events including EMmTsyBootNotifySimStatusReadyIPC - //************************************************************ - err = aCustomAPI.Open(iPhone); - ASSERT_EQUALS(KErrNone, err); - - // EMmTsyBootNotifyModemStatusReadyIPC - iMockLTSY.CompleteL(EMmTsyBootNotifyModemStatusReadyIPC,KErrNone); - - // EMobilePhoneGetNetworkRegistrationStatus - iMockLTSY.ExpectL(EMobilePhoneGetNetworkRegistrationStatus); - iMockLTSY.CompleteL(EMobilePhoneGetNetworkRegistrationStatus,KErrNone,0); - - // EMmTsyBootNotifySimStatusReadyIPC - iMockLTSY.ExpectL(EMmTsyBootNotifySimStatusReadyIPC); - iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); - - - // EMobilePhoneGetHomeNetwork - RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetwork; - homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; - homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; - homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; - homeNetwork.iCountryCode = _L("234"); - homeNetwork.iCdmaSID = _L(""); - homeNetwork.iAnalogSID = _L(""); - homeNetwork.iNetworkId = _L("23499"); - homeNetwork.iDisplayTag = _L("symbian"); - homeNetwork.iShortName = _L("symbian"); - homeNetwork.iLongName = _L("symbian mobile"); - homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; - homeNetwork.iEgprsAvailableIndicator = ETrue; - homeNetwork.iHsdpaAvailableIndicator = ETrue; - TMockLtsyData1 homeNetworkData(homeNetwork); - homeNetworkData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); - iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0); - - // EMmTsyPhoneGetPin1DisableSupportedIPC - TBool pin1DisableSupport = ETrue; - TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); - data.Close(); - pin1DisableSupportData.SerialiseL(data); - iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); - iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,data,0); - - // EMmTsySimRefreshRegisterIPC - iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); - iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); - - // EMobilePhoneGetServiceTable - RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; - TMockLtsyData1 serviceTableData(serviceTable); - data.Close(); - serviceTableData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, data); - RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; - serviceTableResult.iServices1To8 = 0xFF; - serviceTableResult.iServices9To16 = 0xFF; - serviceTableResult.iServices17To24= 0xFF; - serviceTableResult.iServices25To32= 0xFF; - serviceTableResult.iServices33To40= 0xFF; - serviceTableResult.iServices41To48= 0xFF; - serviceTableResult.iServices49To56= 0xFF; - TMockLtsyData1 serviceTableResultData(serviceTableResult); - data.Close(); - serviceTableResultData.SerialiseL(data); - iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0); - - // EMobilePhoneGetALSLine - RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; - TMockLtsyData1 alsLineData(alsLine); - data.Close(); - alsLineData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetALSLine); - iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,data,0); - - // ECustomGetIccCallForwardingStatusIPC - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - // EMobilePhoneGetIccMessageWaitingIndicators - RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; - TMockLtsyData1 - indicatorsData(expectedMessageIndicators); - data.Close(); - indicatorsData.SerialiseL(data); - iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); - iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, data); - - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); - // 2-nd & all further EReadViagHomeZoneCacheIPC - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, aNtsyError); - if(aNtsyError != KErrNone) - { - // got error, send only once - c = KViagHomeZoneCacheIdMax + 1; - r = KViagHomeZoneCacheRecordIdMax + 1; - } - } - } - - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(1,&data); - } - -void CCTsyCustomIPCFU::MockPrimeEReadViagHomeZoneCacheIPCL(TInt aCacheId,TInt aRecordId,TBool aDoComplete, TBool aDoExpect, TInt aNtsyError) - { - RBuf8 data; - data.CleanupClosePushL(); - - RMmCustomAPI::TViagCacheRecordId id; - id.iCacheId = aCacheId; - id.iRecordId = aRecordId; - if(aDoExpect) - { - TMockLtsyData1 idData(id); - idData.SerialiseL(data); - iMockLTSY.ExpectL(EReadViagHomeZoneCacheIPC,data); - } - - if(aDoComplete) - { - RMmCustomAPI::TViagCacheRecordContent& content = - iViagHomeZoneCache[aCacheId - KViagHomeZoneCacheIdMin][aRecordId - KViagHomeZoneCacheRecordIdMin]; - - content.iCellId = 1000 + aCacheId; - content.iLac =2000 + aRecordId; - - TMockLtsyData1 contentData(content); - data.Close(); - contentData.SerialiseL(data); - iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,aNtsyError,data,0); - } - - CleanupStack::PopAndDestroy(1,&data); - } - -void CCTsyCustomIPCFU::AuxReadViagHomeZoneParamsL() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - - RMmCustomAPI customAPI; - OpenCustomAPILC(customAPI, iPhone); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - TRequestStatus requestStatus; - TRequestStatus mockLtsyStatus; - - RMmCustomAPI::TViagElement element; - _LIT(KScp, "Lenin lives!"); - _LIT(KSmsC, "revolution"); - - // Variables for call ReadViagHomeZoneParams. - RMmCustomAPI::TViagParams param; - RMmCustomAPI::TViagElements* elems = NULL; - - elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(elems); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - elems->AppendL(element); - } - - // Variables for call CompleteL. - RMmCustomAPI::TViagParams completeParam; - completeParam.iScp = KScp; - completeParam.iSmsC = KSmsC; - completeParam.iSubscribedZoneAndVersion = 17; - - RMmCustomAPI::TViagElements* completeElems; - - FillWithRandomDataLC(completeElems); - - TMockLtsyData2 - mockData2(completeParam, completeElems); - - //------------------------------------------------------------------------- - // TEST A: failure to dispatch request to LTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC, KErrNotSupported); - customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST B: failure on completion of pending request from LTSY->CTSY - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); - mockData2.SerialiseL(completeData); - iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrGeneral, completeData); - customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); - - //------------------------------------------------------------------------- - // TEST C: Successful completion request of - // RMmCustomAPI::ReadViagHomeZoneParams when result is not cached. - //------------------------------------------------------------------------- - - iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); - iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); - customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, completeParam.iScp.Compare(param.iScp)); - ASSERT_EQUALS(0, completeParam.iSmsC.Compare(param.iSmsC)); - ASSERT_EQUALS(completeParam.iSubscribedZoneAndVersion, param.iSubscribedZoneAndVersion); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - ASSERT_EQUALS(completeElems->At(i).iActiveFlag , elems->At(i).iActiveFlag ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iR2 , elems->At(i).iCoordinates.iR2 ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iX , elems->At(i).iCoordinates.iX ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iY , elems->At(i).iCoordinates.iY ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iZoneId, elems->At(i).iCoordinates.iZoneId); - ASSERT_EQUALS(0, completeElems->At(i).iName.Compare(elems->At(i).iName)); - } - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ReadViagHomeZoneParams - // from LTSY. - //------------------------------------------------------------------------- - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - CleanupStack::PopAndDestroy(5, this); - - } - -void CCTsyCustomIPCFU::AuxReadViagHomeZoneParamsForIncreasingCoverageL() - { - - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - TInt err = iPhone.Open(iTelServer, KMmTsyPhoneName); - ASSERT_EQUALS(KErrNone, err); - - err=iMockLTSY.Connect(); - ASSERT_EQUALS(KErrNone, err); - - RBuf8 data; - CleanupClosePushL(data); - - RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; - currentlyRetrievedCache.iCacheId = 1; - currentlyRetrievedCache.iRecordId = 0; - TMockLtsyData1 ltsyData(currentlyRetrievedCache); - ltsyData.SerialiseL(data); - iMockLTSY.ExpectL(EReadViagHomeZoneCacheIPC, data); - - RMmCustomAPI customAPI; - TInt errorCode = customAPI.Open(iPhone); - ASSERT_EQUALS(KErrNone, errorCode); - CleanupStack::PopAndDestroy (&data); - CleanupClosePushL(customAPI); - - RBuf8 completeData; - CleanupClosePushL(completeData); - - RBuf8 expectData; - CleanupClosePushL(expectData); - - TRequestStatus requestStatus; - - RMmCustomAPI::TViagElement element; - _LIT(KScp, "Lenin lives!"); - _LIT(KSmsC, "revolution"); - - // Variables for call ReadViagHomeZoneParams. - RMmCustomAPI::TViagParams param; - RMmCustomAPI::TViagElements* elems = NULL; - - elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); - CleanupStack::PushL(elems); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - elems->AppendL(element); - } - - // Variables for call CompleteL. - RMmCustomAPI::TViagParams completeParam; - completeParam.iScp = KScp; - completeParam.iSmsC = KSmsC; - completeParam.iSubscribedZoneAndVersion = 17; - - RMmCustomAPI::TViagElements* completeElems; - - FillWithRandomDataLC(completeElems); - - TMockLtsyData2 - mockData2(completeParam, completeElems); - - //------------------------------------------------------------------------- - - customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); - - //------------------------------------------------------------------------- - // There are preparations for call of function CheckViagHomezoneParamsL(). - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - // EMobilePhoneGetNetworkRegistrationStatus - iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); - - // EMobilePhoneGetHomeNetwork - iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); - RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetwork; - homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; - homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; - homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; - homeNetwork.iCountryCode = _L("234"); - homeNetwork.iCdmaSID = _L(""); - homeNetwork.iAnalogSID = _L(""); - homeNetwork.iNetworkId = _L("23499"); - homeNetwork.iDisplayTag = _L("symbian"); - homeNetwork.iShortName = _L("symbian"); - homeNetwork.iLongName = _L("symbian mobile"); - homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; - homeNetwork.iEgprsAvailableIndicator = ETrue; - homeNetwork.iHsdpaAvailableIndicator = ETrue; - TMockLtsyData1 homeNetworkData(homeNetwork); - completeData.Close(); - homeNetworkData.SerialiseL(completeData); - iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,completeData,0); - - // EMmTsyPhoneGetPin1DisableSupportedIPC - iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); - TBool pin1DisableSupport = ETrue; - TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); - completeData.Close(); - pin1DisableSupportData.SerialiseL(completeData); - iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,completeData,0); - - // EMmTsySimRefreshRegisterIPC - iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); - iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); - - // EMobilePhoneGetServiceTable - RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; - TMockLtsyData1 serviceTableData(serviceTable); - expectData.Close(); - serviceTableData.SerialiseL(expectData); - iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, expectData); - RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; - serviceTableResult.iServices1To8 = 0xFF; - serviceTableResult.iServices9To16 = 0xFF; - serviceTableResult.iServices17To24= 0xFF; - serviceTableResult.iServices25To32= 0xFF; - serviceTableResult.iServices33To40= 0xFF; - serviceTableResult.iServices41To48= 0xFF; - serviceTableResult.iServices49To56= 0xFF; - TMockLtsyData1 serviceTableResultData(serviceTableResult); - completeData.Close(); - serviceTableResultData.SerialiseL(completeData); - iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,completeData,0); - - // EMobilePhoneGetALSLine - iMockLTSY.ExpectL(EMobilePhoneGetALSLine); - RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; - TMockLtsyData1 alsLineData(alsLine); - completeData.Close(); - alsLineData.SerialiseL(completeData); - iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,completeData,0); - - // ECustomGetIccCallForwardingStatusIPC - iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); - - // EMobilePhoneGetIccMessageWaitingIndicators - iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); - RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; - TMockLtsyData1 - indicatorsData(expectedMessageIndicators); - completeData.Close(); - indicatorsData.SerialiseL(completeData); - iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, completeData); - - // EReadViagHomeZoneParamsIPC - completeData.Close(); - mockData2.SerialiseL(completeData); - iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); - - iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); - iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); - iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); - - // N.B. EReadViagHomeZoneParamsIPC is not expected at this point because there is an ongoing caching started by customAPI.Open() above. - - User::WaitForRequest(mockLtsyStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - //------------------------------------------------------------------------- - - User::WaitForRequest(requestStatus); - AssertMockLtsyStatusL(); - ASSERT_EQUALS(KErrNone, requestStatus.Int()); - - ASSERT_EQUALS(0, completeParam.iScp.Compare(param.iScp)); - ASSERT_EQUALS(0, completeParam.iSmsC.Compare(param.iSmsC)); - ASSERT_EQUALS(completeParam.iSubscribedZoneAndVersion, param.iSubscribedZoneAndVersion); - - for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) - { - ASSERT_EQUALS(completeElems->At(i).iActiveFlag , elems->At(i).iActiveFlag ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iR2 , elems->At(i).iCoordinates.iR2 ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iX , elems->At(i).iCoordinates.iX ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iY , elems->At(i).iCoordinates.iY ); - ASSERT_EQUALS(completeElems->At(i).iCoordinates.iZoneId, elems->At(i).iCoordinates.iZoneId); - ASSERT_EQUALS(0, completeElems->At(i).iName.Compare(elems->At(i).iName)); - } - - CleanupStack::PopAndDestroy(6, this); - - } - -void CCTsyCustomIPCFU::OpenPhoneBookStoreWithSIMRefreshL(RMobilePhoneBookStore &aStore, TName &aName, RMobilePhone &aPhone, TInt aSimError) - { - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 data2; - CleanupClosePushL(data2); - - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //EMmTsyPhoneBookStoreInitIPC - TMockLtsyPhoneBookData0 storeInitData(aName); - storeInitData.SerialiseL(data); - - iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); - - _LIT8(KImsi,"01234567890123"); - TUint16 files = 2; - TPckg filesData(files); - iMockLTSY.CompleteL(EMmTsySimRefreshNowIPC, aSimError, filesData); - iMockLTSY.ExpectL(EMobilePhoneGetSubscriberId); - iMockLTSY.CompleteL(EMobilePhoneGetSubscriberId, KErrNone, KImsi); - - CStorageInfoData storageData; - - SetStorageInfoData(storageData); - - TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(aName, storageData); - retStoreInitC.SerialiseL(data2); - - iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data2, 0); - - //EMmTsyPhoneBookStoreCacheIPC - CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); - CleanupStack::PushL(cache); - - TMockLtsyPhoneBookData1*> storeCacheData(aName, cache); - data2.Close(); - storeCacheData.SerialiseL(data2); - data.Close(); - storeInitData.SerialiseL(data); - - - iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, data); - iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, aSimError, data2, 0); - - //Open - TInt ret = aStore.Open(aPhone, aName); - ASSERT_EQUALS(KErrNone, ret); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); //data, data2, cache - - } - - -void CCTsyCustomIPCFU::FillRandom(TDes8 &aBuff) - { - TUint length = aBuff.MaxLength(); - aBuff.SetLength(0); - for (TUint i = 0; i < length; ++i) - { - TUint8 rand = (TUint8) Math::Random(); - aBuff.Append(rand); - } - } - - - - - +/* +* Copyright (c) 2008-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: +* +*/ + + + +/** +@file +The TEFUnit test suite for CustomIPC in the Common TSY. +*/ + +#include "cctsycustomipcfu.h" +#include +#include +#include +#include "tmockltsydata.h" +#include +#include +#include "CMmCustomSecurityTsy.h" + +// constants used by ReadViagHomeZoneCache/WriteViagHomeZoneCache tests +const TInt KViagHomeZoneCacheIdMin = 1; +const TInt KViagHomeZoneCacheIdMax = KPhEngMaxViagHomeZones; +const TInt KViagHomeZoneCacheRecordIdMin = 0; +const TInt KViagHomeZoneCacheRecordIdMax = KPhEngMaxCacheId - 1; +const TInt KOneSecond=1000000; // Used in a time out function, 1 second (in microSeconds) + +CTestSuite* CCTsyCustomIPCFU::CreateSuiteL(const TDesC& aName) + { + SUB_SUITE; + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetDriveMode0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestActivateSimLock0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeActivateSimLock0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyDtmfEvent0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyDtmfEvent0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyDtmfEvent0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetDiagnosticInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlsBlocked0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAlsBlocked0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckAlsPpSupport0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetRemoteAlertingToneStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCallOrigin0001L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestTerminateCall0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyAlsBlockedChanged0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyAlsBlockedChanged0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyAlsBlockedChanged0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCipheringInfo0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCipheringInfoChange0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCipheringInfoChange0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCipheringInfoChange0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNSPSStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNSPSStatus0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNSPSStatus0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNetWakeup0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0005L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001bL); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001cL); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneCache0005L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestClearCallBlackList0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsAdditionalInfoNotification0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsAdditionalInfoNotification0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsAdditionalInfoNotification0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsRequestCompleteNotification0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsRequestCompleteNotification0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSsRequestCompleteNotification0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestIsBlocked0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestIsBlocked0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckSecurityCode0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetActivePin0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetAirTimeDuration0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNetworkProviderName0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckEmergencyNumber0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0001bL); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyPndCacheReady0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetPndCacheStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetPndCacheStatus0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetOperatorName0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetProgrammableOperatorLogo0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyProgrammableOperatorLogoChange0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySsNetworkEvent0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySsNetworkEvent0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySsNetworkEvent0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCancelUssdSession0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSatRefreshCompleteNotification0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSatRefreshCompleteNotification0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSatRefreshCompleteNotification0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestCheckTwoDigitDialSupport0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestResetNetServer0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReleaseFile0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestRestartFile0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestStartSimCbTopicBrowsing0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestStartSimCbTopicBrowsing0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestStartSimCbTopicBrowsing0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetNextSimCbTopic0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDeleteSimCbTopic0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNetworkConnectionFailure0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNetworkConnectionFailure0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyNetworkConnectionFailure0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSendAPDUReq0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestDisablePhoneLock0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyEGprsInfoChange0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetEGprsInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetEGprsInfo0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadSimFile0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetLifeTime0004L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGet3GPBInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkModes0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkMode0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCurrentSystemNetworkModes0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOn0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestPowerSimOff0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSimWarmReset0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetATR0005L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSimCardReaderStatus0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySimCardStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySimCardStatus0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifySimCardStatus0004L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0001L); //!!! + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetWlanSimAuthenticationData0005L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSimMessageStatusRead0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteViagHomeZoneUHZIUESettings0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetAlwaysOn0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyRauEvent0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyRauEvent0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyRauEvent0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadHSxPAStatus0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestWriteHSxPAStatus0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyHSxPAStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyHSxPAStatus0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyHSxPAStatus0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetIccCallForwardingIndicatorStatus0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyIccCallForwardingStatusChange0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetCellInfo0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestNotifyCellInfoChange0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetSystemNetworkBand0005L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestSetSystemNetworkBand0005L); + + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0003L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0004L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestGetUSIMServiceSupport0005L); + + END_SUITE; + } + + +////////////////////////////////////////////////////////////////// +// Actual test cases +///////////////////////////////////////////////////////////////// + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetDriveMode +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetDriveMode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetDriveMode0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + TRequestStatus requestStatus; + RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + // data for ExpectL + TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData, KErrNotSupported); + + customAPI.SetDriveMode(requestStatus, modeStatus); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); + iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrGeneral); + + customAPI.SetDriveMode(requestStatus, modeStatus); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SetDriveMode when result is not cached. + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); + iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone); + + customAPI.SetDriveMode(requestStatus, modeStatus); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SetDriveMode + // from LTSY. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetDriveMode +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SetDriveMode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetDriveMode0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SetDriveMode + //------------------------------------------------------------------------- + + // data for ExpectL + TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); + + customAPI.SetDriveMode(requestStatus, modeStatus); + + iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone, 20); + + customAPI.CancelAsyncRequest(ECustomSetDriveModeIPC); + + User::WaitForRequest(requestStatus); + // TSY has started a request and it is not possible to then + // cancel it. 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 methods + // acknowledgement and when it receives it, the TSY will complete + // the original request. + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetDriveMode +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetDriveMode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetDriveMode0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 expectData2; + CleanupClosePushL(expectData2); + + TRequestStatus requestStatus; + RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); + + TRequestStatus requestStatus2; + RMmCustomAPI::TSetDriveMode modeStatus2(RMmCustomAPI::EDeactivateDriveMode); + + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::SetDriveMode + //------------------------------------------------------------------------- + + // data for the first ExpectL + TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); + ltsyData.SerialiseL(expectData); + + // data for the second ExpectL + TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData2(modeStatus2); + ltsyData2.SerialiseL(expectData2); + + // first SetDriveMode + iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); + iMockLTSY.CompleteL(ECustomSetDriveModeIPC, KErrNone, 20); + + customAPI.SetDriveMode(requestStatus, modeStatus); + + + + customAPI2.SetDriveMode(requestStatus2, modeStatus2); + + + // wait for the first answer + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + // wait for the second answer + User::WaitForRequest(requestStatus2); + // Documentation says that KErrServerBusy should be in case of multiple requests + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(8, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSDM-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetDriveMode with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetDriveMode and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetDriveMode0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + TRequestStatus requestStatus; + RMmCustomAPI::TSetDriveMode modeStatus(RMmCustomAPI::EActivateDriveMode); + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::SetDriveMode + //------------------------------------------------------------------------- + + // data for ExpectL + TMockLtsyData1< RMmCustomAPI::TSetDriveMode > ltsyData(modeStatus); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSetDriveModeIPC, expectData); + + customAPI.SetDriveMode(requestStatus, modeStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCASL-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ActivateSimLock +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ActivateSimLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestActivateSimLock0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator); + + // data for ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > + ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData, KErrNotSupported); + + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + // use othere number for coverage increasing + lockNumber = RMmCustomAPI::EGid1; + + // data for ExpectL + expectData.Close(); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrGeneral); + + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::ActivateSimLock when result is not cached. + //------------------------------------------------------------------------- + // use othere number for coverage increasing + lockNumber = RMmCustomAPI::EGid2; + + // data for ExpectL + expectData.Close(); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); + + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ActivateSimLock + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // just to increase coverage + //------------------------------------------------------------------------- + // use othere number for coverage increasing + lockNumber = RMmCustomAPI::EImsi; + + // data for ExpectL + expectData.Close(); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); + + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCASL-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ActivateSimLock +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::ActivateSimLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestActivateSimLock0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + // to wait CompleteL + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TRequestStatus requestStatus; + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::ActivateSimLock + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EImsi); + + // data for ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > + ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); + + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + // cancel this request + customAPI.CancelAsyncRequest(ECustomSimLockActivateIPC); + // try to complete canceled request + iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); + + // wait for request + User::WaitForRequest(requestStatus); + // this request can't be canceled + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + // wait for CompleteL + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCASL-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ActivateSimLock with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ActivateSimLock with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestActivateSimLock0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // Test A: Test passing wrong parameters to + // RMmCustomAPI::ActivateSimLock + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber((RMmCustomAPI::TLockNumber) 0); + + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCASL-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ActivateSimLock +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ActivateSimLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestActivateSimLock0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + // 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::ActivateSimLock + //------------------------------------------------------------------------- + // data for the first request + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid1); + + // data for the second request + RMmCustomAPI::TSimLockPassword password2(_L("changeme2")); + RMmCustomAPI::TLockNumber lockNumber2(RMmCustomAPI::EOperator_Gid2); + + // data for the first ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + + // send first request + iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockActivateIPC, KErrNone); + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + + // send second request + customAPI2.ActivateSimLock(requestStatus2, password2, lockNumber2); + + // wait for the first answer + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + // wait for the second answer + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + // Done ! + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCASL-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ActivateSimLock with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ActivateSimLock and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestActivateSimLock0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::ActivateSimLock + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid2); + + // data for ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > + ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockActivateIPC, expectData); + + customAPI.ActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + // Done ! + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeActivateSimLock +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DeActivateSimLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeActivateSimLock0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator); + + // data for ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > + ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData, KErrNotSupported); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + // use othere number for coverage increasing + lockNumber = RMmCustomAPI::EGid1; + + // data for ExpectL + expectData.Close(); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrGeneral); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::DeActivateSimLock when result is not cached. + //------------------------------------------------------------------------- + // use othere number for coverage increasing + lockNumber = RMmCustomAPI::EGid2; + + // data for ExpectL + expectData.Close(); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::DeActivateSimLock + // from LTSY. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // just to increase coverage + //------------------------------------------------------------------------- + // use othere number for coverage increasing + lockNumber = RMmCustomAPI::EGlobalUnlock; + + // data for ExpectL + expectData.Close(); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // just to increase coverage + //------------------------------------------------------------------------- + // use othere number for coverage increasing + lockNumber = RMmCustomAPI::EImsi; + + // data for ExpectL + expectData.Close(); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::DeActivateSimLock +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::DeActivateSimLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeActivateSimLock0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + TRequestStatus mockLtsyStatus; + // to wait CompleteL + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TRequestStatus requestStatus; + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::DeActivateSimLock + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EImsi); + + // data for ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > + ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + // cancel this request + customAPI.CancelAsyncRequest(ECustomSimLockDeActivateIPC); + // try to complete canceled request + iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); + + // wait for request + User::WaitForRequest(requestStatus); + // this request can't be canceled + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + // wait for CompleteL + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeActivateSimLock with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DeActivateSimLock with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeActivateSimLock0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // Test A: Test passing wrong version of parameters to + // RMmCustomAPI::DeActivateSimLock + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber((RMmCustomAPI::TLockNumber) 0); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::DeActivateSimLock +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::DeActivateSimLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeActivateSimLock0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + // 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::DeActivateSimLock + //------------------------------------------------------------------------- + // data for the first request + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid1); + + // data for the second request + RMmCustomAPI::TSimLockPassword password2(_L("changeme2")); + RMmCustomAPI::TLockNumber lockNumber2(RMmCustomAPI::EOperator_Gid2); + + // data for the first ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + + // send first request + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); + iMockLTSY.CompleteL(ECustomSimLockDeActivateIPC, KErrNone); + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + // send second request + customAPI2.DeActivateSimLock(requestStatus2, password2, lockNumber2); + + // wait for the first answer + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + // wait for the second answer + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + // Done ! + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDASL-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeActivateSimLock with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DeActivateSimLock and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeActivateSimLock0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::DeActivateSimLock + //------------------------------------------------------------------------- + RMmCustomAPI::TSimLockPassword password(_L("changeme")); + RMmCustomAPI::TLockNumber lockNumber(RMmCustomAPI::EOperator_Gid2); + + // data for ExpectL + TMockLtsyData2< RMmCustomAPI::TSimLockPassword, RMmCustomAPI::TLockNumber > + ltsyData(password, lockNumber); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSimLockDeActivateIPC, expectData); + + customAPI.DeActivateSimLock(requestStatus, password, lockNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + // Done ! + CleanupStack::PopAndDestroy(3, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNDE-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyDtmfEvent +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyDtmfEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyDtmfEvent0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for CompleteL + RMmCustomAPI::TDtmfInfo completeInfo; + completeInfo.iType = RMmCustomAPI::EDtmfSequence; + completeInfo.iEvent = RMmCustomAPI::EDtmfStop; + completeInfo.iTone = 0x10; + TMockLtsyData1 ltsyData(completeInfo); + ltsyData.SerialiseL(completeData); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyDtmfEvent + // from LTSY. + // Test here cause this is a self-reposting request. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // data for NotifyDtmfEvent itself + TRequestStatus requestStatus; + RMmCustomAPI::TDtmfInfo info; + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + customAPI.NotifyDtmfEvent(requestStatus, info); + iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrGeneral, completeData); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyDtmfEvent when result is not cached. + //------------------------------------------------------------------------- + customAPI.NotifyDtmfEvent(requestStatus, info); + iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(completeInfo.iType, info.iType); + ASSERT_EQUALS(completeInfo.iEvent, info.iEvent); + ASSERT_EQUALS(completeInfo.iTone, info.iTone); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNDE-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyDtmfEvent +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyDtmfEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyDtmfEvent0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for CompleteL + RMmCustomAPI::TDtmfInfo completeInfo; + completeInfo.iType = RMmCustomAPI::EDtmfSequence; + completeInfo.iEvent = RMmCustomAPI::EDtmfStop; + completeInfo.iTone = 0x10; + TMockLtsyData1 ltsyData(completeInfo); + ltsyData.SerialiseL(completeData); + + // data for NotifyDtmfEvent itself + TRequestStatus requestStatus; + RMmCustomAPI::TDtmfInfo info; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyDtmfEvent + //------------------------------------------------------------------------- + + customAPI.NotifyDtmfEvent(requestStatus, info); + // cancel request + customAPI.CancelAsyncRequest(ECustomNotifyDtmfEventIPC); + // try to complete request + iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + // Wait for completion of iMockLTSY.NotifyTerminated + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNDE-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyDtmfEvent +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyDtmfEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyDtmfEvent0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + // 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); + + RMmCustomAPI customAPI2; + CleanupClosePushL(customAPI2); + customAPI2.Open(phone2); + + // data for CompleteL + RMmCustomAPI::TDtmfInfo completeInfo; + completeInfo.iType = RMmCustomAPI::EDtmfSequence; + completeInfo.iEvent = RMmCustomAPI::EDtmfStop; + completeInfo.iTone = 0x10; + TMockLtsyData1 ltsyData(completeInfo); + ltsyData.SerialiseL(completeData); + + // data for the first NotifyDtmfEvent + TRequestStatus requestStatus; + RMmCustomAPI::TDtmfInfo info; + + + // data for the second NotifyDtmfEvent + TRequestStatus requestStatus2; + RMmCustomAPI::TDtmfInfo info2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyDtmfEvent + //------------------------------------------------------------------------- + + // send first request + customAPI.NotifyDtmfEvent(requestStatus, info); + + // send second request + customAPI2.NotifyDtmfEvent(requestStatus2, info2); + + // Complete + iMockLTSY.CompleteL(ECustomNotifyDtmfEventIPC, KErrNone, completeData); + + // 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(); + + // check first request's data + ASSERT_EQUALS(completeInfo.iType, info.iType); + ASSERT_EQUALS(completeInfo.iEvent, info.iEvent); + ASSERT_EQUALS(completeInfo.iTone, info.iTone); + + // check second request's data + ASSERT_EQUALS(completeInfo.iType, info2.iType); + ASSERT_EQUALS(completeInfo.iEvent, info2.iEvent); + ASSERT_EQUALS(completeInfo.iTone, info2.iTone); + + // Done ! + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGDO-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetDiagnosticInfo +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetDiagnosticInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetDiagnosticInfo0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + //------------------------------------------------------------------------- + // try to get info for non-existing call + //------------------------------------------------------------------------- + TName callName; + TInt status = customAPI.GetDiagnosticInfo(callName); + + ASSERT_EQUALS(KErrNotFound, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with initial iDiagnosticOctet ( == NULL) + //------------------------------------------------------------------------- + + // -----------Open Line and Call --------------------- + RLine line; + RCall call; + // Open new line + TInt errorCode = line.Open(iPhone, KMmTsyVoice1LineName); + ASSERT_EQUALS(KErrNone, errorCode); + CleanupClosePushL(line); + + TName incomingCallName; + TInt callId = 1; + RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; + RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusRinging; + + // create new incoming call + errorCode = CreateIncomingCallL(line, callId, KMmTsyVoice1LineName, incomingCallName, + mobileService, mobileCallStatus); + ASSERT_EQUALS(KErrNone, errorCode); + CleanupClosePushL(call); + + errorCode = call.OpenExistingCall(line, incomingCallName); + ASSERT_EQUALS(KErrNone, errorCode); + //------------------------------------------------------------------------- + + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrNone, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredWithCUG + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + TDiagnosticInfoValues diagnostic(KDiagnosticInfoBarredWithCUG); + TMockLtsyData2 ltsyData(callId, diagnostic); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredWithCUG, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredNoCUG + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + diagnostic = KDiagnosticInfoBarredNoCUG; + completeData.Close(); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredNoCUG, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredUnknownCUG + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + diagnostic = KDiagnosticInfoBarredUnknownCUG; + completeData.Close(); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredUnknownCUG, status); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredIncompatibleCUG + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + diagnostic = KDiagnosticInfoBarredIncompatibleCUG; + completeData.Close(); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredIncompatibleCUG, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredFailureCUG + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + diagnostic = KDiagnosticInfoBarredFailureCUG; + completeData.Close(); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredFailureCUG, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredClirNotSubscribed + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + diagnostic = KDiagnosticInfoBarredClirNotSubscribed; + completeData.Close(); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredClirNotSubscribed, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredCCBSPossible + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + diagnostic = KDiagnosticInfoBarredCCBSPossible; + completeData.Close(); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredCCBSPossible, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = KDiagnosticInfoBarredCCBSNotPossible + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + diagnostic = KDiagnosticInfoBarredCCBSNotPossible; + completeData.Close(); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrDiagnosticInfoBarredCCBSNotPossible, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // try to get info for existing call, with iDiagnosticOctet = some arbitrary value + //------------------------------------------------------------------------- + + // set iDiagnosticOctet ... + iMockLTSY.NotifyTerminated(mockLtsyStatus); + TInt someDiagnostic = -11; // some arbitrary value + TMockLtsyData2 ltsyData2(callId, someDiagnostic); + completeData.Close(); + ltsyData2.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // ... and get info + status = customAPI.GetDiagnosticInfo(incomingCallName); + ASSERT_EQUALS(KErrNone, status); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetDiagnosticInfo + // from LTSY. + //------------------------------------------------------------------------- + //just set iDiagnosticOctet to non-existing callId + iMockLTSY.NotifyTerminated(mockLtsyStatus); + callId = 100; + completeData.Close(); + ltsyData2.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetDiagnosticOctetsIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlsBlocked +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetAlsBlocked +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlsBlocked0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for SetAlsBlocked itself + TRequestStatus reguestStatus; + RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); + + // data for ExpectL + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData, KErrNotSupported); + + customAPI.SetAlsBlocked(reguestStatus, blockStatus); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNotSupported, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrGeneral); + + customAPI.SetAlsBlocked(reguestStatus, blockStatus); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrGeneral, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SetAlsBlocked when result is not cached. + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); + + customAPI.SetAlsBlocked(reguestStatus, blockStatus); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SetAlsBlocked + // from LTSY. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetAlsBlocked +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SetAlsBlocked +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlsBlocked0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for SetAlsBlocked itself + TRequestStatus reguestStatus; + RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); + + // data for ExpectL + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SetAlsBlocked + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + + customAPI.SetAlsBlocked(reguestStatus, blockStatus); + // try to cancel request + customAPI.CancelAsyncRequest(ECustomSetAlsBlockedIPC); + + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); + + User::WaitForRequest(reguestStatus); + + // TSY has started a request and it is not possible to then + // cancel it. 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 methods + // acknowledgement and when it receives it, the TSY will complete + // the original request. + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetAlsBlocked +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetAlsBlocked +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlsBlocked0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 expectData2; + CleanupClosePushL(expectData2); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // 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); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + // data for the first SetAlsBlocked + TRequestStatus reguestStatus; + RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EDeactivateBlock); + + // data for the first ExpectL + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); + ltsyData.SerialiseL(expectData); + + + // data for the second SetAlsBlocked + TRequestStatus reguestStatus2; + RMmCustomAPI::TSetAlsBlock blockStatus2(RMmCustomAPI::EActivateBlock); + + // data for the second ExpectL + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData2(blockStatus2); + ltsyData2.SerialiseL(expectData2); + + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::SetAlsBlocked + //------------------------------------------------------------------------- + + + // first request + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone, 10); + customAPI.SetAlsBlocked(reguestStatus, blockStatus); + + // there is no way to check KErrServerBusy return value because second + // request is put to a wating queue by ETel and it is resumed only after + // first request is completed + + + customAPI2.SetAlsBlocked(reguestStatus2, blockStatus2); + + // wait for the first request + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + + // wait for the second request + User::WaitForRequest(reguestStatus2); + // Documentation says that KErrServerBusy should be in case of multiple requests + + ASSERT_EQUALS(KErrServerBusy, reguestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(7, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAB-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlsBlocked with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetAlsBlocked and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlsBlocked0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for SetAlsBlocked itself + TRequestStatus reguestStatus; + RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); + + // data for ExpectL + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::SetAlsBlocked + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + customAPI.SetAlsBlocked(reguestStatus, blockStatus); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrTimedOut, reguestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetAlsBlocked +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetAlsBlocked +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetAlsBlocked0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for GetAlsBlocked itself + TRequestStatus reguestStatus; + RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); + + // data for CompleteL + RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus(RMmCustomAPI::EBlockStatusActive); + TMockLtsyData1< RMmCustomAPI::TGetAlsBlockStatus > ltsyData(completeBlockStatus); + ltsyData.SerialiseL(completeData); + + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC, KErrNotSupported); + + customAPI.GetAlsBlocked(reguestStatus, blockStatus); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNotSupported, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); + iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrGeneral, completeData); + + customAPI.GetAlsBlocked(reguestStatus, blockStatus); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrGeneral, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetAlsBlocked when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); + iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone, completeData); + + customAPI.GetAlsBlocked(reguestStatus, blockStatus); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + ASSERT_EQUALS(completeBlockStatus, blockStatus); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetAlsBlocked + // from LTSY. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetAlsBlocked +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetAlsBlocked +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetAlsBlocked0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for GetAlsBlocked itself + TRequestStatus reguestStatus; + RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); + + // data for CompleteL + RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus(RMmCustomAPI::EBlockStatusActive); + TMockLtsyData1< RMmCustomAPI::TGetAlsBlockStatus > ltsyData(completeBlockStatus); + ltsyData.SerialiseL(completeData); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetAlsBlocked + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); + customAPI.GetAlsBlocked(reguestStatus, blockStatus); + + // try to cancel request + customAPI.CancelAsyncRequest(ECustomGetAlsBlockedIPC); + + // try to Complete request + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // wait for request completion + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrCancel, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + + + CleanupStack::PopAndDestroy(3, this); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetAlsBlocked +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetAlsBlocked +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetAlsBlocked0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // 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); + + RMmCustomAPI customAPI2; + CleanupClosePushL(customAPI2); + customAPI2.Open(phone2); + + + // data for the first GetAlsBlocked + TRequestStatus reguestStatus; + RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); + // data for the first CompleteL + RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus(RMmCustomAPI::EBlockStatusInactive); + TMockLtsyData1< RMmCustomAPI::TGetAlsBlockStatus > ltsyData(completeBlockStatus); + ltsyData.SerialiseL(completeData); + + // data for the second GetAlsBlocked + TRequestStatus reguestStatus2; + RMmCustomAPI::TGetAlsBlockStatus blockStatus2(RMmCustomAPI::EBlockStatusUnknown); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetAlsBlocked + //------------------------------------------------------------------------- + // first request + iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); + iMockLTSY.CompleteL(ECustomGetAlsBlockedIPC, KErrNone, completeData, 10); + customAPI.GetAlsBlocked(reguestStatus, blockStatus); + + // second request + customAPI2.GetAlsBlocked(reguestStatus2, blockStatus2); + + // wait for the first answer + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + ASSERT_EQUALS(completeBlockStatus, blockStatus); + + // wait for the second answer + User::WaitForRequest(reguestStatus2); + ASSERT_EQUALS(KErrServerBusy, reguestStatus2.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGAB-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetAlsBlocked with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetAlsBlocked and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetAlsBlocked0005L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for GetAlsBlocked itself + TRequestStatus reguestStatus; + RMmCustomAPI::TGetAlsBlockStatus blockStatus(RMmCustomAPI::EBlockStatusUnknown); + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::GetAlsBlocked + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomGetAlsBlockedIPC); + customAPI.GetAlsBlocked(reguestStatus, blockStatus); + + // wait for request completion + User::WaitForRequest(reguestStatus); + + ASSERT_EQUALS(KErrTimedOut, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckAlsPpSupport +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckAlsPpSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckAlsPpSupport0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for CompleteL + RMmCustomAPI::TAlsSupport completeAlsSupport(RMmCustomAPI::EAlsSupportOff); + TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData(completeAlsSupport); + ltsyData.SerialiseL(completeData); + + // data for CheckAlsPpSupport itself + TRequestStatus reguestStatus; + RMmCustomAPI::TAlsSupport alsSupport; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC, KErrNotSupported); + + customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNotSupported, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrGeneral, completeData); + + customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrGeneral, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::CheckAlsPpSupport when result is not cached. + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData); + + customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + ASSERT_EQUALS(completeAlsSupport, alsSupport); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C1 just to increase coverage + //------------------------------------------------------------------------- + // new data for CompleteL + RMmCustomAPI::TAlsSupport completeAlsSupport2(RMmCustomAPI::EAlsSupportOn); + TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData2(completeAlsSupport2); + completeData.Close(); + ltsyData2.SerialiseL(completeData); + + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData); + + customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + ASSERT_EQUALS(completeAlsSupport2, alsSupport); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::CheckAlsPpSupport + // from LTSY. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckAlsPpSupport +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckAlsPpSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckAlsPpSupport0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for CompleteL + RMmCustomAPI::TAlsSupport completeAlsSupport(RMmCustomAPI::EAlsSupportOff); + TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData(completeAlsSupport); + ltsyData.SerialiseL(completeData); + + // data for CheckAlsPpSupport itself + TRequestStatus reguestStatus; + RMmCustomAPI::TAlsSupport alsSupport; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::CheckAlsPpSupport + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData, 20); + + customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); + + customAPI.CancelAsyncRequest(ECustomCheckAlsPpSupportIPC); + + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrCancel, reguestStatus.Int()); + + // Wait for completion of iMockLTSY.NotifyTerminated + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckAlsPpSupport +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckAlsPpSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckAlsPpSupport0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // 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 completeData2; + CleanupClosePushL(completeData2); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + // data for the first CompleteL + RMmCustomAPI::TAlsSupport completeAlsSupport(RMmCustomAPI::EAlsSupportOff); + TMockLtsyData1< RMmCustomAPI::TAlsSupport > ltsyData(completeAlsSupport); + ltsyData.SerialiseL(completeData); + + // data for the first CheckAlsPpSupport itself + TRequestStatus reguestStatus; + RMmCustomAPI::TAlsSupport alsSupport; + + // data for the second CheckAlsPpSupport itself + TRequestStatus reguestStatus2; + RMmCustomAPI::TAlsSupport alsSupport2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::CheckAlsPpSupport + //------------------------------------------------------------------------- + // send first request + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData, 10); + customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); + + // send second request + customAPI2.CheckAlsPpSupport(reguestStatus2, alsSupport2); + + // wait for the first answer + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrNone, reguestStatus.Int()); + ASSERT_EQUALS(completeAlsSupport, alsSupport); + + // wait for the second answer + User::WaitForRequest(reguestStatus2); + ASSERT_EQUALS(KErrNone, reguestStatus2.Int()); + ASSERT_EQUALS(completeAlsSupport, alsSupport2); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(7, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCAPS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckAlsPpSupport with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckAlsPpSupport and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckAlsPpSupport0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // data for CheckAlsPpSupport itself + TRequestStatus reguestStatus; + RMmCustomAPI::TAlsSupport alsSupport; + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::CheckAlsPpSupport + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + customAPI.CheckAlsPpSupport(reguestStatus, alsSupport); + + // There is no time out for this IPC (ECustomCheckAlsPpSupportIPC) + User::WaitForRequest(reguestStatus); + ASSERT_EQUALS(KErrTimedOut, reguestStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGRATS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetRemoteAlertingToneStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetRemoteAlertingToneStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetRemoteAlertingToneStatus0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // TEST Get initial toneStatus + //------------------------------------------------------------------------- + RMmCustomAPI::TRemoteAlertingToneStatus expectedStatus(RMmCustomAPI::EUiNoTone); + RMmCustomAPI::TRemoteAlertingToneStatus toneStatus; + + customAPI.GetRemoteAlertingToneStatus(toneStatus); + + ASSERT_EQUALS(expectedStatus, toneStatus); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST D: RMmCustomAPI::GetRemoteAlertingToneStatus again, this time CTSY + // will get result from the cache. + //------------------------------------------------------------------------- + + // --- change tone status --- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + // data for changing + TBool playRemoteAlertToneLocally (ETrue); + TMockLtsyData1 ltsyData(playRemoteAlertToneLocally); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetRemoteAlertingToneStatusIPC, KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + // new expected Status + expectedStatus = RMmCustomAPI::EUiRbtTone; + // -------------------------- + + // get changed data + customAPI.GetRemoteAlertingToneStatus(toneStatus); + + ASSERT_EQUALS(expectedStatus, toneStatus); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST D2: just for coverage increasing + //------------------------------------------------------------------------- + + // --- change tone status --- + iMockLTSY.NotifyTerminated(mockLtsyStatus); + // data for changing + playRemoteAlertToneLocally = EFalse; + TMockLtsyData1 ltsyData2(playRemoteAlertToneLocally); + completeData.Close(); + ltsyData2.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetRemoteAlertingToneStatusIPC, KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + // new expected Status + expectedStatus = RMmCustomAPI::EUiStopTone; + // -------------------------- + + // get changed data + customAPI.GetRemoteAlertingToneStatus(toneStatus); + + ASSERT_EQUALS(expectedStatus, toneStatus); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCO-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CallOrigin +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CallOrigin +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCallOrigin0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + // data for CallOrigin itself + TName callName; + RMmCustomAPI::TCallOrigin origin; + + //------------------------------------------------------------------------- + // TEST: Get origin for non-existing call + //------------------------------------------------------------------------- + customAPI.CallOrigin(callName, origin); + ASSERT_EQUALS(RMmCustomAPI::EUnknown, origin); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST: Get origin for call created through ETel + //------------------------------------------------------------------------- + RLine line; + RCall call; + // Open Line and Call + TInt errorCode = line.Open(iPhone, KMmTsyVoice1LineName); + ASSERT_EQUALS(KErrNone, errorCode); + CleanupClosePushL(line); + TInt callId = 1; + RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; + RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusRinging; + + // create new incoming call + errorCode = CreateIncomingCallL(line, callId, KMmTsyVoice1LineName,callName, + mobileService, mobileCallStatus); + ASSERT_EQUALS(KErrNone, errorCode); + CleanupClosePushL(call); + + errorCode = call.OpenExistingCall(line, callName); + ASSERT_EQUALS(KErrNone, errorCode); + + //Get origin for call created through ETel + customAPI.CallOrigin(callName, origin); + ASSERT_EQUALS(RMmCustomAPI::EETelCall, origin); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST: Get origin for Ghost call (NOT created through ETel) + //------------------------------------------------------------------------- + TRequestStatus requestStatus; + // for getting ghost call name + TName ghostCallName; + line.NotifyCallAdded(requestStatus, ghostCallName); + + // ------------ Create ghost call ----------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + RMobileCall::TMobileCallInfoV1 callInfo; + callId = 2; + callInfo.iCallId = callId; + callInfo.iStatus = RMobileCall::EStatusDialling; + callInfo.iService = mobileService; + + TMockLtsyCallData1 callInfoData(callId, mobileService, callInfo); + callInfoData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + //------------------------------------------------------------------------- + + // wait for NotifyCallAdded (for getting ghost call name) + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + //Get origin for call NOT created through ETel + customAPI.CallOrigin(ghostCallName, origin); + + ASSERT_EQUALS(RMmCustomAPI::EOutsider, origin); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCTC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::TerminateCall +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::TerminateCall +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestTerminateCall0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + TName callName; + TBool isError(ETrue); + TInt callId(1); + RLine line; + RCall call; + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + OpenLineLC(line, iPhone, KMmTsyVoice1LineName); + + CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, + callId, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + TMockLtsyData2 mockData2(callId, isError); + mockData2.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNotSupported); + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData); + iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrGeneral); + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::TerminateCall when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); + iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone); + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::TerminateCall + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + //------------------------------------------------------------------------- + // TerminateCall with KTerminateAllCalls + //------------------------------------------------------------------------- + + callName.Copy(KTerminateAllCalls); + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + + //------------------------------------------------------------------------- + // TerminateCall with KTerminateAllCalls when there is a call with EStatusConnecting + //------------------------------------------------------------------------- + + RCall call2; + callId = 2; + + CreateAndOpenIncomingCalLC(line, call2, callName, KMmTsyVoice1LineName, + callId, RMobileCall::EStatusConnecting, RMobilePhone::EVoiceService); + + callName.Copy(KTerminateAllCalls); + callId = (-callId); + isError = EFalse; + TMockLtsyData2 mockData2b(callId, isError); + expectData.Close(); + mockData2b.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); + iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone); + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + + CleanupStack::PopAndDestroy(6, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCTC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::TerminateCall +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::TerminateCall +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestTerminateCall0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + TName callName; + TBool isError(ETrue); + TInt callId(1); + RLine line; + RCall call; + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + OpenLineLC(line, iPhone, KMmTsyVoice1LineName); + + CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, + callId, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::TerminateCall + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TMockLtsyData2 mockData2(callId, isError); + mockData2.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData); + iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone, 10); + + customAPI.TerminateCall(requestStatus, callName); + customAPI.CancelAsyncRequest(ECustomTerminateCallIPC); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCTC-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::TerminateCall with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::TerminateCall with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestTerminateCall0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + TName callName; + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test passing callName with length equals null + //------------------------------------------------------------------------- + + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); + + //------------------------------------------------------------------------- + // Test A: Test passing wrong version of parameters to + // RMmCustomAPI::TerminateCall + //------------------------------------------------------------------------- + + _LIT(KBadParam, "Bad name"); + callName.Copy(KBadParam); + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCTC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::TerminateCall +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::TerminateCall +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestTerminateCall0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + // Open second client + RTelServer telServer2; + TInt ret = telServer2.Connect(); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(telServer2); + + TRequestStatus requestStatus1; + TRequestStatus requestStatus2; + + RMobilePhone phone2; + ret = phone2.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + //------------------------------------------------------------------------- + // Calls of functions for first client. + //------------------------------------------------------------------------- + + TName callName1; + TBool isError(ETrue); + TInt callId1(1); + + RLine line1; + RCall call1; + + RMmCustomAPI customAPI1; + OpenCustomAPILC(customAPI1, iPhone); + + OpenLineLC(line1, iPhone, KMmTsyVoice1LineName); + + CreateAndOpenIncomingCalLC(line1, call1, callName1, KMmTsyVoice1LineName, + callId1, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); + + //------------------------------------------------------------------------- + // Calls of functions for second client. + //------------------------------------------------------------------------- + + TName callName2; + TInt callId2(2); + + RLine line2; + RCall call2; + RMmCustomAPI customAPI2; + + OpenCustomAPILC(customAPI2, phone2, EFalse); + + OpenLineLC(line2, phone2, KMmTsyVoice1LineName); + + CreateAndOpenIncomingCalLC(line2, call2, callName2, KMmTsyVoice1LineName, + callId2, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::TerminateCall + //------------------------------------------------------------------------- + + TMockLtsyData2 mockData21(callId1, isError); + mockData21.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); + iMockLTSY.CompleteL(ECustomTerminateCallIPC, KErrNone, 20); + customAPI1.TerminateCall(requestStatus1, callName1); + + customAPI2.TerminateCall(requestStatus2, callName2); + + User::WaitForRequest(requestStatus1); + ASSERT_EQUALS(KErrNone, requestStatus1.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(10, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCTC-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::TerminateCall with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::TerminateCall and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestTerminateCall0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + + TName callName; + TBool isError(ETrue); + TInt callId(1); + RLine line; + RCall call; + RMmCustomAPI customAPI; + + OpenCustomAPILC(customAPI, iPhone); + + OpenLineLC(line, iPhone, KMmTsyVoice1LineName); + + CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, + callId, RMobileCall::EStatusRinging, RMobilePhone::EVoiceService); + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::TerminateCall + //------------------------------------------------------------------------- + + TMockLtsyData2 mockData2(callId, isError); + mockData2.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomTerminateCallIPC, expectData, KErrNone); + customAPI.TerminateCall(requestStatus, callName); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + CleanupStack::PopAndDestroy(5, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCBABC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyAlsBlockedChanged +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyAlsBlockedChanged +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyAlsBlockedChanged0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + TRequestStatus requestStatus; + RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus; + RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); + RMmCustomAPI customAPI; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyAlsBlockedChanged + // from LTSY. + // Must be first because the request is self-reposting + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyAlsBlockedChangedIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyAlsBlockedChanged when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyAlsBlockedChanged(requestStatus, completeBlockStatus); + + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); + + TRequestStatus requestStatus2; + customAPI.SetAlsBlocked(requestStatus2, blockStatus); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + AssertMockLtsyStatusL(); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(RMmCustomAPI::EBlockStatusActive, completeBlockStatus); + + //------------------------------------------------------------------------- + // for coverage increasing + //------------------------------------------------------------------------- + + customAPI.NotifyAlsBlockedChanged(requestStatus, completeBlockStatus); + + blockStatus = RMmCustomAPI::EDeactivateBlock; + expectData.Close(); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); + customAPI.SetAlsBlocked(requestStatus2, blockStatus); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + AssertMockLtsyStatusL(); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(RMmCustomAPI::EBlockStatusInactive, completeBlockStatus); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCBABC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyAlsBlockedChanged +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyAlsBlockedChanged +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyAlsBlockedChanged0002L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus; + RMmCustomAPI::TSetAlsBlock blockStatus(RMmCustomAPI::EActivateBlock); + RMmCustomAPI customAPI; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyAlsBlockedChanged + //------------------------------------------------------------------------- + + customAPI.NotifyAlsBlockedChanged(requestStatus, completeBlockStatus); + customAPI.CancelAsyncRequest(ECustomNotifyAlsBlockedChangedIPC); + + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(blockStatus); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); + customAPI.SetAlsBlocked(requestStatus2, blockStatus); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCBABC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyAlsBlockedChanged +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyAlsBlockedChanged +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyAlsBlockedChanged0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + TRequestStatus requestStatus1; + TRequestStatus requestStatus2; + TRequestStatus reqStatus; + RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus1; + RMmCustomAPI::TGetAlsBlockStatus completeBlockStatus2; + RMmCustomAPI::TSetAlsBlock activateBlockStatus(RMmCustomAPI::EActivateBlock); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyAlsBlockedChanged + //------------------------------------------------------------------------- + + customAPI1.NotifyAlsBlockedChanged(requestStatus1, completeBlockStatus1); + customAPI2.NotifyAlsBlockedChanged(requestStatus2, completeBlockStatus2); + + TMockLtsyData1< RMmCustomAPI::TSetAlsBlock > ltsyData(activateBlockStatus); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL(ECustomSetAlsBlockedIPC, expectData); + iMockLTSY.CompleteL(ECustomSetAlsBlockedIPC, KErrNone); + customAPI1.SetAlsBlocked(reqStatus, activateBlockStatus); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrNone, reqStatus.Int()); + + User::WaitForRequest(requestStatus1); + ASSERT_EQUALS(KErrNone, requestStatus1.Int()); + + User::WaitForRequest(requestStatus2); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_EQUALS(RMmCustomAPI::EBlockStatusActive, completeBlockStatus1); + ASSERT_EQUALS(RMmCustomAPI::EBlockStatusActive, completeBlockStatus2); + + CleanupStack::PopAndDestroy(6, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCipheringInfo +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetCipheringInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCipheringInfo0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + RMmCustomAPI::TCipheringInfo info; + + TBool indReq(ETrue); + TPckg pckgIndReq(indReq); + + //------------------------------------------------------------------------- + // TEST D: RMmCustomAPI::GetCipheringInfo again, this time CTSY + // will get result from the cache. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); + iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); + customAPI.GetCipheringInfo(requestStatus, info); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(indReq, info.iIndStatus); + ASSERT_TRUE(EFalse == info.iCiphStatus); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC, KErrNotSupported); + customAPI.GetCipheringInfo(requestStatus, info); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); + iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrGeneral, pckgIndReq); + customAPI.GetCipheringInfo(requestStatus, info); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetCipheringInfo when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + RMmCustomAPI::TCipheringInfo strInfo; + strInfo.iCiphStatus = ETrue; + TPckg pckg(strInfo); + iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); + iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); + customAPI.GetCipheringInfo(requestStatus, info); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(indReq, info.iIndStatus); + ASSERT_EQUALS(strInfo.iCiphStatus, info.iCiphStatus); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetCipheringInfo + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(2, this); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetCipheringInfo +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetCipheringInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCipheringInfo0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + RMmCustomAPI::TCipheringInfo info; + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TBool indReq(ETrue); + TPckg pckgIndReq(indReq); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetCipheringInfo + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); + iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq, 10); + customAPI.GetCipheringInfo(requestStatus, info); + customAPI.CancelAsyncRequest(ECustomGetCipheringInfoIPC); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetCipheringInfo +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetCipheringInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCipheringInfo0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus1; + TRequestStatus requestStatus2; + + RMmCustomAPI::TCipheringInfo info1; + RMmCustomAPI::TCipheringInfo info2; + + TBool ciphStatus(EFalse); + TBool indReq(ETrue); + TPckg pckgIndReq(indReq); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetCipheringInfo + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); + iMockLTSY.CompleteL(ECustomGetCipheringInfoIPC, KErrNone, pckgIndReq); + customAPI1.GetCipheringInfo(requestStatus1, info1); + + customAPI2.GetCipheringInfo(requestStatus2, info2); + + User::WaitForRequest(requestStatus1); + ASSERT_EQUALS(KErrNone, requestStatus1.Int()); + + User::WaitForRequest(requestStatus2); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + ASSERT_EQUALS(indReq, info1.iIndStatus); + ASSERT_EQUALS(ciphStatus, info1.iCiphStatus); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCipheringInfo with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetCipheringInfo and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCipheringInfo0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TCipheringInfo info; + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::GetCipheringInfo + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCipheringInfoIPC); + customAPI.GetCipheringInfo(requestStatus, info); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNCIC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyCipheringInfoChange +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyCipheringInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyCipheringInfoChange0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + RMmCustomAPI::TCipheringInfo info; + RMmCustomAPI::TCipheringInfo completeInfo; + completeInfo.iIndStatus = ETrue; + completeInfo.iCiphStatus = ETrue; + TPckg pckg(completeInfo); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyCipheringInfoChange when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyCipheringInfoChange(requestStatus, info); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(completeInfo.iIndStatus, info.iIndStatus); + ASSERT_EQUALS(completeInfo.iCiphStatus, info.iCiphStatus); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyCipheringInfoChange + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNCIC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyCipheringInfoChange +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyCipheringInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyCipheringInfoChange0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + RMmCustomAPI::TCipheringInfo info; + RMmCustomAPI::TCipheringInfo completeInfo; + completeInfo.iIndStatus = ETrue; + completeInfo.iCiphStatus = ETrue; + TPckg pckg(completeInfo); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyCipheringInfoChange + //------------------------------------------------------------------------- + + customAPI.NotifyCipheringInfoChange(requestStatus, info); + customAPI.CancelAsyncRequest(ECustomNotifyCipheringInfoChangeIPC); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNCIC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyCipheringInfoChange +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyCipheringInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyCipheringInfoChange0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus1; + TRequestStatus requestStatus2; + TRequestStatus mockLtsyStatus; + + RMmCustomAPI::TCipheringInfo info1; + RMmCustomAPI::TCipheringInfo info2; + RMmCustomAPI::TCipheringInfo completeInfo; + completeInfo.iIndStatus = ETrue; + completeInfo.iCiphStatus = ETrue; + TPckg pckg(completeInfo); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyCipheringInfoChange + //------------------------------------------------------------------------- + + customAPI1.NotifyCipheringInfoChange(requestStatus1, info1); + customAPI2.NotifyCipheringInfoChange(requestStatus2, info2); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyCipheringInfoChangeIPC, KErrNone, pckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus1); + ASSERT_EQUALS(KErrNone, requestStatus1.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_EQUALS(completeInfo.iIndStatus, info1.iIndStatus); + ASSERT_EQUALS(completeInfo.iCiphStatus, info1.iCiphStatus); + ASSERT_EQUALS(completeInfo.iIndStatus, info2.iIndStatus); + ASSERT_EQUALS(completeInfo.iCiphStatus, info2.iCiphStatus); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNNS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyNSPSStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyNSPSStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyNSPSStatus0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + TBool nspsIsOn(ETrue); + TPckg pckg(nspsIsOn); + RMmCustomAPI::TNspsStatus nspsStatus; + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyNSPSStatus + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyNSPSStatus when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyNSPSStatus(requestStatus, nspsStatus); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(RMmCustomAPI::ENspsOn, nspsStatus); + + //------------------------------------------------------------------------- + // for coverage increasing + //------------------------------------------------------------------------- + + customAPI.NotifyNSPSStatus(requestStatus, nspsStatus); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + nspsIsOn = EFalse; + iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(RMmCustomAPI::ENspsOff, nspsStatus); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNNS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyNSPSStatus +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyNSPSStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyNSPSStatus0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + TBool nspsIsOn(ETrue); + TPckg pckg(nspsIsOn); + RMmCustomAPI::TNspsStatus nspsStatus; + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyNSPSStatus + //------------------------------------------------------------------------- + + customAPI.NotifyNSPSStatus(requestStatus, nspsStatus); + customAPI.CancelAsyncRequest(ECustomNotifyNSPSStatusIPC); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNNS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyNSPSStatus +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyNSPSStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyNSPSStatus0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus1; + TRequestStatus requestStatus2; + TRequestStatus mockLtsyStatus; + + TBool nspsIsOn(ETrue); + TPckg pckg(nspsIsOn); + RMmCustomAPI::TNspsStatus nspsStatus1; + RMmCustomAPI::TNspsStatus nspsStatus2; + RMmCustomAPI::TNspsStatus nspsOn(RMmCustomAPI::ENspsOn); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyNSPSStatus + //------------------------------------------------------------------------- + + customAPI1.NotifyNSPSStatus(requestStatus1, nspsStatus1); + customAPI2.NotifyNSPSStatus(requestStatus2, nspsStatus2); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifyNSPSStatusIPC, KErrNone, pckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus1); + ASSERT_EQUALS(KErrNone, requestStatus1.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_EQUALS(nspsOn, nspsStatus1); + ASSERT_EQUALS(nspsOn, nspsStatus2); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNW-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NetWakeup +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NetWakeup +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNetWakeup0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomNetWakeupIPC, KErrNotSupported); + customAPI.NetWakeup(requestStatus); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomNetWakeupIPC); + iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrGeneral); + customAPI.NetWakeup(requestStatus); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NetWakeup when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomNetWakeupIPC); + iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); + customAPI.NetWakeup(requestStatus); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NetWakeup + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNW-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NetWakeup +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NetWakeup +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNetWakeup0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NetWakeup + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.ExpectL(ECustomNetWakeupIPC); + iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone, 10); + customAPI.NetWakeup(requestStatus); + customAPI.CancelAsyncRequest(ECustomNetWakeupIPC); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNW-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NetWakeup +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NetWakeup +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNetWakeup0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus1; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NetWakeup + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomNetWakeupIPC); + iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); + customAPI1.NetWakeup(requestStatus1); + + iMockLTSY.ExpectL(ECustomNetWakeupIPC); + iMockLTSY.CompleteL(ECustomNetWakeupIPC, KErrNone); + customAPI2.NetWakeup(requestStatus2); + + User::WaitForRequest(requestStatus1); + ASSERT_EQUALS(KErrNone, requestStatus1.Int()); + + User::WaitForRequest(requestStatus2); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + CleanupStack::PopAndDestroy(5, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNW-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NetWakeup with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NetWakeup and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNetWakeup0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::NetWakeup + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomNetWakeupIPC); + customAPI.NetWakeup(requestStatus); + + /* + * Test support in CTSY for RmobilePhone::GetServiceTable with timeout + * IS ABOUT TO ABORT DUE TO TEF TIMEOUT. + */ + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 401601); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + CleanupStack::PopAndDestroy(2, this); + + } + + +void CCTsyCustomIPCFU::FillWithRandomDataLC( RMmCustomAPI::TViagElements*& aElem, TInt aRnd) const + { + + aElem = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(aElem); + + _LIT(KName, "Name"); + + RMmCustomAPI::TViagElement element; + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + element.iActiveFlag = ( i%2 == 0 ) ? RMmCustomAPI::ECityZone : RMmCustomAPI::ENotActive; + element.iCoordinates.iR2 = 2*i + aRnd; + element.iCoordinates.iX = i + aRnd; + element.iCoordinates.iY = RMmCustomAPI::KViagElementCount - i + aRnd; + element.iCoordinates.iZoneId = 2*i + 1 + aRnd; + element.iName = KName; + TBuf<2> number; + number.Format(_L("%d"), i + aRnd); + element.iName.Append(number); + aElem->AppendL(element); + } + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneParams +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0001L() + { + + AuxReadViagHomeZoneParamsL(); + + /* + * Test increases CMmSIMTsy::ReadViagHomeZoneParamsL coverage + * covers "if ( iMmCustomTsy->Phone()->NosBootState()->iSIMReady )" condition + */ + + AuxReadViagHomeZoneParamsForIncreasingCoverageL(); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadViagHomeZoneParams +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadViagHomeZoneParams +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + RMmCustomAPI::TViagElement element; + _LIT(KScp, "Lenin lives!"); + _LIT(KSmsC, "revolution"); + + // Variables for call ReadViagHomeZoneParams. + RMmCustomAPI::TViagParams param; + RMmCustomAPI::TViagElements* elems; + + elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(elems); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + elems->AppendL(element); + } + + // Variables for call CompleteL. + RMmCustomAPI::TViagParams completeParam; + completeParam.iScp = KScp; + completeParam.iSmsC = KSmsC; + completeParam.iSubscribedZoneAndVersion = 17; + + RMmCustomAPI::TViagElements* completeElems; + + FillWithRandomDataLC(completeElems); + + TMockLtsyData2 + mockData2(completeParam, completeElems); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::ReadViagHomeZoneParams + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); + + mockData2.SerialiseL(completeData); + iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData, 10); + + customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); + + customAPI.CancelAsyncRequest(EReadViagHomeZoneParamsIPC); + + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneParams with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + // Variables for call ReadViagHomeZoneParams. + RMmCustomAPI::TViagParams param; + RMmCustomAPI::TViagElements* elems = NULL; + elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(elems); + + //------------------------------------------------------------------------- + // Test C: Test passing out of bounds parameters to + // RMmCustomAPI::ReadViagHomeZoneParams + //------------------------------------------------------------------------- + + customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadViagHomeZoneParams +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadViagHomeZoneParams +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + TRequestStatus requestStatus1; + TRequestStatus requestStatus2; + + RMmCustomAPI::TViagElement element; + _LIT(KScp, "Lenin lives!"); + _LIT(KSmsC, "revolution"); + + // Variables for call ReadViagHomeZoneParams of first client. + RMmCustomAPI::TViagParams param1; + RMmCustomAPI::TViagElements* elems1 = NULL; + + elems1 = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(elems1); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + elems1->AppendL(element); + } + + // Variables for call ReadViagHomeZoneParams of second client. + RMmCustomAPI::TViagParams param2; + RMmCustomAPI::TViagElements* elems2 = NULL; + + elems2 = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(elems2); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + elems2->AppendL(element); + } + + // Variables for call CompleteL. + RMmCustomAPI::TViagParams completeParam; + completeParam.iScp = KScp; + completeParam.iSmsC = KSmsC; + completeParam.iSubscribedZoneAndVersion = 17; + + RMmCustomAPI::TViagElements* completeElems; + + FillWithRandomDataLC(completeElems); + + + TMockLtsyData2 + mockData2(completeParam, completeElems); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::ReadViagHomeZoneParams + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); + mockData2.SerialiseL(completeData); + iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); + customAPI1.ReadViagHomeZoneParams(requestStatus1, param1, *elems1); + + customAPI2.ReadViagHomeZoneParams(requestStatus2, param2, *elems2); + + User::WaitForRequest(requestStatus1); + ASSERT_EQUALS(KErrNone, requestStatus1.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + ASSERT_EQUALS(0, completeParam.iScp.Compare(param1.iScp)); + ASSERT_EQUALS(0, completeParam.iSmsC.Compare(param1.iSmsC)); + ASSERT_EQUALS(completeParam.iSubscribedZoneAndVersion, param1.iSubscribedZoneAndVersion); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + ASSERT_EQUALS(completeElems->At(i).iActiveFlag , elems1->At(i).iActiveFlag ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iR2 , elems1->At(i).iCoordinates.iR2 ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iX , elems1->At(i).iCoordinates.iX ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iY , elems1->At(i).iCoordinates.iY ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iZoneId, elems1->At(i).iCoordinates.iZoneId); + ASSERT_EQUALS(0, completeElems->At(i).iName.Compare(elems1->At(i).iName)); + } + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(9, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneParams and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneParams0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TViagElement element; + + // Variables for call ReadViagHomeZoneParams. + RMmCustomAPI::TViagParams param; + RMmCustomAPI::TViagElements* elems = NULL; + + elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(elems); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + elems->AppendL(element); + } + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::ReadViagHomeZoneParams + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); + customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); + + /* + * Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams with timeout + * IS ABOUT TO ABORT DUE TO TEF TIMEOUT. + */ + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 401702); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + RMmCustomAPI customAPI; + + //---------------------------------------------- + // TEST D: CTSY will get results from the cache. + //---------------------------------------------- + + //******************************************************************************** + //* To initialize the VIAG home zone cache properly RMmCustomAPI::OpenL should be + //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. + //* That's why OpenPhoneAndCustomAPILC was implemented and is used here + //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. + //******************************************************************************** + + OpenPhoneAndCustomAPILC(customAPI); + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + RMmCustomAPI::TViagCacheRecordId recId; + recId.iCacheId = c; + recId.iRecordId = r; + + RMmCustomAPI::TViagCacheRecordContent recContent; + + TRequestStatus reqStatus; + customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrNone,reqStatus.Int()); + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent = + iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; + ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); + ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); + } + } + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ReadViagHomeZoneCache + // from LTSY. + //------------------------------------------------------------------------- + + // unsolicited EReadViagHomeZoneCacheIPC completion crashes CTSY + + RMmCustomAPI::TViagCacheRecordContent unsolicitedData; + TPckgC unsolicitedDataPckg(unsolicitedData); + unsolicitedData.iCellId = 111; + unsolicitedData.iLac = 222; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,KErrNone,unsolicitedDataPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request failed by NTSY +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001bL() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + RMmCustomAPI customAPI; + + //******************************************************************************** + //* To initialize the VIAG home zone cache properly RMmCustomAPI::OpenL should be + //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. + //* That's why OpenPhoneAndCustomAPILC was implemented and is used here + //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. + //******************************************************************************** + + OpenPhoneAndCustomAPILC(customAPI, KErrGeneral); + + // Complete with an error + MockPrimeEReadViagHomeZoneCacheIPCL(KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin, ETrue, ETrue, KErrGeneral); + + RMmCustomAPI::TViagCacheRecordContent recContent; + TRequestStatus reqStatus; + RMmCustomAPI::TViagCacheRecordId recId; + recId.iCacheId = 2; + recId.iRecordId = 2; + customAPI.ReadViagHomeZoneCache(reqStatus, recId, recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrGeneral,reqStatus.Int()); + + //complete without an error + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, KErrNone); + } + } + + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + recId.iCacheId = c; + recId.iRecordId = r; + customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrNone,reqStatus.Int()); + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent = + iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; + ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); + ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); + } + } + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001c +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request complete when customAPI is dead +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001cL() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + RBuf8 data; + data.CleanupClosePushL(); + + RMmCustomAPI customAPI; + CleanupClosePushL(customAPI); + TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, err); + + err=iMockLTSY.Connect(); + ASSERT_EQUALS(KErrNone, err); + + RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; + currentlyRetrievedCache.iCacheId = 1; + currentlyRetrievedCache.iRecordId = 0; + TMockLtsyData1 ltsyData(currentlyRetrievedCache); + + // Only Expect, no complete + MockPrimeEReadViagHomeZoneCacheIPCL(KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin, EFalse, ETrue ); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //************************************************************ + //* Invoke RMmCustomAPI::Open prior to triggering any further + //* CTSY events including EMmTsyBootNotifySimStatusReadyIPC + //************************************************************ + err = customAPI.Open(iPhone); + ASSERT_EQUALS(KErrNone, err); + + // EMmTsyBootNotifyModemStatusReadyIPC + iMockLTSY.CompleteL(EMmTsyBootNotifyModemStatusReadyIPC,KErrNone); + + // EMobilePhoneGetNetworkRegistrationStatus + iMockLTSY.ExpectL(EMobilePhoneGetNetworkRegistrationStatus); + iMockLTSY.CompleteL(EMobilePhoneGetNetworkRegistrationStatus,KErrNone,0); + + // EMmTsyBootNotifySimStatusReadyIPC + iMockLTSY.ExpectL(EMmTsyBootNotifySimStatusReadyIPC); + iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); + + + // EMobilePhoneGetHomeNetwork + RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetwork; + homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; + homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; + homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; + homeNetwork.iCountryCode = _L("234"); + homeNetwork.iCdmaSID = _L(""); + homeNetwork.iAnalogSID = _L(""); + homeNetwork.iNetworkId = _L("23499"); + homeNetwork.iDisplayTag = _L("symbian"); + homeNetwork.iShortName = _L("symbian"); + homeNetwork.iLongName = _L("symbian mobile"); + homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; + homeNetwork.iEgprsAvailableIndicator = ETrue; + homeNetwork.iHsdpaAvailableIndicator = ETrue; + TMockLtsyData1 homeNetworkData(homeNetwork); + homeNetworkData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); + iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0); + + // EMmTsyPhoneGetPin1DisableSupportedIPC + TBool pin1DisableSupport = ETrue; + TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); + data.Close(); + pin1DisableSupportData.SerialiseL(data); + iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); + iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,data,0); + + // EMmTsySimRefreshRegisterIPC + iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); + iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); + + // EMobilePhoneGetServiceTable + RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; + TMockLtsyData1 serviceTableData(serviceTable); + data.Close(); + serviceTableData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, data); + RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; + serviceTableResult.iServices1To8 = 0xFF; + serviceTableResult.iServices9To16 = 0xFF; + serviceTableResult.iServices17To24= 0xFF; + serviceTableResult.iServices25To32= 0xFF; + serviceTableResult.iServices33To40= 0xFF; + serviceTableResult.iServices41To48= 0xFF; + serviceTableResult.iServices49To56= 0xFF; + TMockLtsyData1 serviceTableResultData(serviceTableResult); + data.Close(); + serviceTableResultData.SerialiseL(data); + iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0); + + // EMobilePhoneGetALSLine + RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; + TMockLtsyData1 alsLineData(alsLine); + data.Close(); + alsLineData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetALSLine); + iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,data,0); + + // ECustomGetIccCallForwardingStatusIPC + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + // EMobilePhoneGetIccMessageWaitingIndicators + RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; + TMockLtsyData1 + indicatorsData(expectedMessageIndicators); + data.Close(); + indicatorsData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); + iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, data); + + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); + + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // Close the customAPI. + CleanupStack::PopAndDestroy(&customAPI); + // Wait for server to clear... + User::After(KOneSecond); + + // ECustomGetIccCallForwardingStatusIPC + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, KErrNone); + } + } + + // Open another client + RMmCustomAPI customAPI2; + CleanupClosePushL(customAPI2); + ASSERT_EQUALS(KErrNone,customAPI2.Open(iPhone)); + + + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + TRequestStatus reqStatus; + RMmCustomAPI::TViagCacheRecordId recId; + recId.iCacheId = c; + recId.iRecordId = r; + RMmCustomAPI::TViagCacheRecordContent recContent; + customAPI2.ReadViagHomeZoneCache(reqStatus,recId,recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrNone,reqStatus.Int()); + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent = + iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; + ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); + ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); + } + } + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(3, this); // customAPI2, data, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0002L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus reqStatus; + + RMmCustomAPI::TViagCacheRecordId recId; + recId.iCacheId = KViagHomeZoneCacheIdMax; + recId.iRecordId = KViagHomeZoneCacheRecordIdMax; + RMmCustomAPI::TViagCacheRecordContent recContent; + + customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); + customAPI.CancelAsyncRequest(EReadViagHomeZoneCacheIPC); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrCancel, reqStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0003L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test C: Test passing out of bounds parameters to RMmCustomAPI::ReadViagHomeZoneCache + //------------------------------------------------------------------------- + + RMmCustomAPI::TViagCacheRecordId KBadRecId[] = + { + {KViagHomeZoneCacheIdMin - 1, KViagHomeZoneCacheRecordIdMin }, + {KViagHomeZoneCacheIdMax + 1, KViagHomeZoneCacheRecordIdMin }, + {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin -1 }, + {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMax + 1} + }; + + for(TInt i = 0; i < sizeof(KBadRecId)/sizeof(KBadRecId[0]); i++) + { + TRequestStatus reqStatus; + + RMmCustomAPI::TViagCacheRecordContent recContent; + + customAPI.ReadViagHomeZoneCache(reqStatus,KBadRecId[i],recContent); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrArgument,reqStatus.Int()); + } + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + 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 RMmCustomAPI::ReadViagHomeZoneCache + //------------------------------------------------------------------------- + RMmCustomAPI customAPI2; + RMmCustomAPI customAPI1; + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent2 = + iViagHomeZoneCache[0][0]; + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent1 = + iViagHomeZoneCache[KViagHomeZoneCacheIdMax - KViagHomeZoneCacheIdMin][KViagHomeZoneCacheRecordIdMax - KViagHomeZoneCacheRecordIdMin]; + + RMmCustomAPI::TViagCacheRecordId recId2 = {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin }; + RMmCustomAPI::TViagCacheRecordId recId1 = {KViagHomeZoneCacheIdMax, KViagHomeZoneCacheRecordIdMax }; + + RMmCustomAPI::TViagCacheRecordContent recContent2; + RMmCustomAPI::TViagCacheRecordContent recContent1; + + TRequestStatus reqStatus2; + TRequestStatus reqStatus1; + + //OpenPhoneAndCustomAPILC(customAPI1); + OpenPhoneL(); + OpenCustomAPILC(customAPI1, iPhone, ETrue); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + // start reading from the 2-nd client. + customAPI2.ReadViagHomeZoneCache(reqStatus2,recId2,recContent2); + + // start reading from the 1-st client + customAPI1.ReadViagHomeZoneCache(reqStatus1,recId1,recContent1); + + // Complete the cashing + TBool expect = EFalse; + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, expect); + expect = ETrue; + } + } + + // wait for results + User::WaitForRequest(reqStatus1); + User::WaitForRequest(reqStatus2); + + // check 1-st client results + ASSERT_EQUALS(KErrNone,reqStatus1.Int()); + ASSERT_EQUALS(expectedContent1.iLac, recContent1.iLac); + ASSERT_EQUALS(expectedContent1.iCellId, recContent1.iCellId); + + // check 2-nd client results + ASSERT_EQUALS(KErrNone,reqStatus2.Int()); + ASSERT_EQUALS(expectedContent2.iLac, recContent2.iLac); + ASSERT_EQUALS(expectedContent2.iCellId, recContent2.iCellId); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); // customAPI2,phone2,telServer2,customAPI,this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0005L() + { + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404902); + ASSERT_TRUE(EFalse); + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI); + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::ReadViagHomeZoneCache + //------------------------------------------------------------------------- + TRequestStatus reqStatus; + + RMmCustomAPI::TViagCacheRecordId recId = {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin }; + + RMmCustomAPI::TViagCacheRecordContent recContent; + + // the request is never timed out + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 401805); + ASSERT_TRUE(EFalse); + + customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrTimedOut,reqStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneCache +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + RMmCustomAPI customAPI; + + //******************************************************************************** + //* To initiazlize the VIAG home zone cache properly RMmCustomAPI::OpenL should be + //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. + //* That's why OpenPhoneAndCustomAPILC was implemented and is used here + //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. + //******************************************************************************** + + OpenPhoneAndCustomAPILC(customAPI); + + RBuf8 data; + data.CleanupClosePushL(); + + RMmCustomAPI::TViagCacheRecordId expRecId; + expRecId.iCacheId = KViagHomeZoneCacheIdMin; + expRecId.iRecordId = KViagHomeZoneCacheRecordIdMin; + + RMmCustomAPI::TViagCacheRecordContent expContent; + expContent.iCellId = 3000; + expContent.iLac = 4000; + + TMockLtsyData2 expData(expRecId,expContent); + + TRequestStatus reqStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + expData.SerialiseL(data); + iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data,KErrGeneral); + + customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrGeneral,reqStatus.Int()) + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); + iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrGeneral); + + customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrGeneral,reqStatus.Int()) + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::WriteViagHomeZoneCache when result is not cached. + //------------------------------------------------------------------------- + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + expRecId.iCacheId = c; + expRecId.iRecordId = r; + + expContent.iCellId = 3000 + c; + expContent.iLac = 4000 + r; + + expData.Close(); + expData.SerialiseL(data); + + iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); + iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrNone); + + // write new cache content + customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrNone,reqStatus.Int()) + + // read it to verify that it was written correctly + RMmCustomAPI::TViagCacheRecordContent newContent; + customAPI.ReadViagHomeZoneCache(reqStatus,expRecId,newContent); + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrNone,reqStatus.Int()) + ASSERT_EQUALS(expContent.iCellId,newContent.iCellId); + ASSERT_EQUALS(expContent.iLac,newContent.iLac); + } + } + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::WriteViagHomeZoneCache + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrNone); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); // data, customAPI, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::WriteViagHomeZoneCache +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::WriteViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + data.CleanupClosePushL(); + + RMmCustomAPI::TViagCacheRecordId expRecId; + expRecId.iCacheId = KViagHomeZoneCacheIdMin; + expRecId.iRecordId = KViagHomeZoneCacheRecordIdMin; + + RMmCustomAPI::TViagCacheRecordContent expContent; + expContent.iCellId = 3000; + expContent.iLac = 4000; + + TMockLtsyData2 expData(expRecId,expContent); + + TRequestStatus reqStatus; + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::WriteViagHomeZoneCache + //------------------------------------------------------------------------- + expData.SerialiseL(data); + iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); + + customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); + customAPI.CancelAsyncRequest(EWriteViagHomeZoneCacheIPC); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrCancel,reqStatus.Int()) + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3,this); // data, customAPI, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneCache with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneCache with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test C: Test passing out of bounds parameters to + // RMmCustomAPI::WriteViagHomeZoneCache + //------------------------------------------------------------------------- + const RMmCustomAPI::TViagCacheRecordId KBadRecId[] = + { + {KViagHomeZoneCacheIdMin - 1, KViagHomeZoneCacheRecordIdMin }, + {KViagHomeZoneCacheIdMax + 1, KViagHomeZoneCacheRecordIdMin }, + {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin -1 }, + {KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMax + 1} + }; + + const RMmCustomAPI::TViagCacheRecordContent KRecContent = {0,0}; + + for(TInt i = 0; i < sizeof(KBadRecId)/sizeof(KBadRecId[0]); i++) + { + TRequestStatus reqStatus; + + customAPI.WriteViagHomeZoneCache(reqStatus,KBadRecId[i],KRecContent); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrArgument,reqStatus.Int()); + } + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::WriteViagHomeZoneCache +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::WriteViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + // Open 2-nd phone + 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); + + // now open 1-st phone and two RMmCustomAPI-s + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + + OpenPhoneAndCustomAPILC(customAPI1); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::WriteViagHomeZoneCache + //------------------------------------------------------------------------- + RMmCustomAPI::TViagCacheRecordId expRecId1; + expRecId1.iCacheId = KViagHomeZoneCacheIdMin; + expRecId1.iRecordId = KViagHomeZoneCacheRecordIdMin; + + RMmCustomAPI::TViagCacheRecordId expRecId2; + expRecId2.iCacheId = KViagHomeZoneCacheIdMax; + expRecId2.iRecordId = KViagHomeZoneCacheRecordIdMax; + + RMmCustomAPI::TViagCacheRecordContent expContent1; + expContent1.iCellId = 3001; + expContent1.iLac = 4001; + + RMmCustomAPI::TViagCacheRecordContent expContent2; + expContent2.iCellId = 3002; + expContent2.iLac = 4002; + + TRequestStatus reqStatus1; + TRequestStatus reqStatus2; + + TMockLtsyData2 expData(expRecId1,expContent1); + + RBuf8 data; + data.CleanupClosePushL(); + + // Only one EWriteViagHomeZoneCacheIPC request is passed to the Mock LTSY + expData.SerialiseL(data); + iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); + iMockLTSY.CompleteL(EWriteViagHomeZoneCacheIPC,KErrNone); + + // Try to invoke two simultaneous EWriteViagHomeZoneCacheIPC requests. + // The 2-nd one should fail with KErrServerBusy. + customAPI1.WriteViagHomeZoneCache(reqStatus1,expRecId1,expContent1); + customAPI2.WriteViagHomeZoneCache(reqStatus2,expRecId2,expContent2); + User::WaitForRequest(reqStatus1); + User::WaitForRequest(reqStatus2); + ASSERT_EQUALS(KErrNone,reqStatus1.Int()); + ASSERT_EQUALS(KErrServerBusy,reqStatus2.Int()); + + // verify that the record changed by the 1-st client is changed succesfully + RMmCustomAPI::TViagCacheRecordContent newContent; + customAPI1.ReadViagHomeZoneCache(reqStatus1,expRecId1,newContent); + User::WaitForRequest(reqStatus1); + + ASSERT_EQUALS(KErrNone,reqStatus1.Int()); + ASSERT_EQUALS(expContent1.iLac, newContent.iLac); + ASSERT_EQUALS(expContent1.iCellId, newContent.iCellId); + + AssertMockLtsyStatusL(); + + // data, customAPI2, customAPI1, phone2, telServer2, this + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneCache with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneCache and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneCache0005L() + { + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404902); + ASSERT_TRUE(EFalse); + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI); + + RBuf8 data; + data.CleanupClosePushL(); + + RMmCustomAPI::TViagCacheRecordId expRecId; + expRecId.iCacheId = KViagHomeZoneCacheIdMax; + expRecId.iRecordId = KViagHomeZoneCacheRecordIdMax; + + RMmCustomAPI::TViagCacheRecordContent expContent; + expContent.iCellId = 6000; + expContent.iLac = 7000; + + TMockLtsyData2 expData(expRecId,expContent); + + TRequestStatus reqStatus; + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::WriteViagHomeZoneCache + //------------------------------------------------------------------------- + expData.SerialiseL(data); + iMockLTSY.ExpectL(EWriteViagHomeZoneCacheIPC,data); + + customAPI.WriteViagHomeZoneCache(reqStatus,expRecId,expContent); + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrTimedOut,reqStatus.Int()) + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); // data, customAPI, this + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ClearCallBlackList +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ClearCallBlackList +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestClearCallBlackList0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomClearCallBlackListIPC, KErrNotSupported); + + customAPI.ClearCallBlackList(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); + + iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrGeneral); + + customAPI.ClearCallBlackList(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::ClearCallBlackList when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); + iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone); + + customAPI.ClearCallBlackList(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ClearCallBlackList + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ClearCallBlackList +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::ClearCallBlackList +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestClearCallBlackList0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::ClearCallBlackList + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); + iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone, 20); + + customAPI.ClearCallBlackList(requestStatus); + + customAPI.CancelAsyncRequest(ECustomClearCallBlackListIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ClearCallBlackList +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ClearCallBlackList +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestClearCallBlackList0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::ClearCallBlackList + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomClearCallBlackListIPC, KErrNone); + iMockLTSY.CompleteL( ECustomClearCallBlackListIPC, KErrNone, 20); + customAPI.ClearCallBlackList(requestStatus); + + customAPI2.ClearCallBlackList(requestStatus2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCCBL-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ClearCallBlackList with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ClearCallBlackList and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestClearCallBlackList0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + iMockLTSY.ExpectL( ECustomClearCallBlackListIPC); + + customAPI.ClearCallBlackList(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAIN-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SsAdditionalInfoNotification +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SsAdditionalInfoNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSsAdditionalInfoNotification0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + _LIT8(KInfo, "Info"); + + RMmCustomAPI::TSsAdditionalInfo info; + RMmCustomAPI::TSsAdditionalInfo compInfo; + compInfo.iOperationCode = 0xFF; + compInfo.iAdditionalInfo.Copy(KInfo); + TPckg pckg(compInfo); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SsAdditionalInfoNotification + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SsAdditionalInfoNotification when result is not cached. + //------------------------------------------------------------------------- + + customAPI.SsAdditionalInfoNotification(requestStatus, info); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compInfo.iOperationCode == info.iOperationCode); + ASSERT_TRUE(0 == info.iAdditionalInfo.Compare(compInfo.iAdditionalInfo)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAIN-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SsAdditionalInfoNotification +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SsAdditionalInfoNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSsAdditionalInfoNotification0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + _LIT8(KInfo, "Info"); + + RMmCustomAPI::TSsAdditionalInfo info; + RMmCustomAPI::TSsAdditionalInfo compInfo; + compInfo.iOperationCode = 0xFF; + compInfo.iAdditionalInfo.Copy(KInfo); + TPckg pckg(compInfo); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SsAdditionalInfoNotification + //------------------------------------------------------------------------- + + customAPI.SsAdditionalInfoNotification(requestStatus, info); + customAPI.CancelAsyncRequest(ECustomSsAdditionalInfoNotificationIPC); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAIN-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SsAdditionalInfoNotification +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SsAdditionalInfoNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSsAdditionalInfoNotification0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + TRequestStatus mockLtsyStatus; + + _LIT8(KInfo, "Info"); + + RMmCustomAPI::TSsAdditionalInfo info; + RMmCustomAPI::TSsAdditionalInfo info2; + RMmCustomAPI::TSsAdditionalInfo compInfo; + compInfo.iOperationCode = 0xFF; + compInfo.iAdditionalInfo.Copy(KInfo); + TPckg pckg(compInfo); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::SsAdditionalInfoNotification + //------------------------------------------------------------------------- + + customAPI1.SsAdditionalInfoNotification(requestStatus, info); + customAPI2.SsAdditionalInfoNotification(requestStatus2, info2); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomSsAdditionalInfoNotificationIPC, KErrNone, pckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_TRUE(compInfo.iOperationCode == info.iOperationCode); + ASSERT_TRUE(0 == info.iAdditionalInfo.Compare(compInfo.iAdditionalInfo)); + + ASSERT_TRUE(compInfo.iOperationCode == info2.iOperationCode); + ASSERT_TRUE(0 == info2.iAdditionalInfo.Compare(compInfo.iAdditionalInfo)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSRCN-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SsRequestCompleteNotification +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SsRequestCompleteNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSsRequestCompleteNotification0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + TInt status; + const TInt compStatus = 0xFF; + TPckg pckg(compStatus); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SsRequestCompleteNotification + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SsRequestCompleteNotification when result is not cached. + //------------------------------------------------------------------------- + + customAPI.SsRequestCompleteNotification(requestStatus, status); + + iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(status, compStatus); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSRCN-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SsRequestCompleteNotification +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SsRequestCompleteNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSsRequestCompleteNotification0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + TInt status; + const TInt compStatus = 0xFF; + TPckg pckg(compStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SsRequestCompleteNotification + //------------------------------------------------------------------------- + + customAPI.SsRequestCompleteNotification(requestStatus, status); + customAPI.CancelAsyncRequest(ECustomNotifySsRequestCompleteIPC); + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSRCN-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SsRequestCompleteNotification +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SsRequestCompleteNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSsRequestCompleteNotification0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI1; + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI1, iPhone); + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + TInt status; + TInt status2; + const TInt compStatus = 0xFF; + TPckg pckg(compStatus); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::SsRequestCompleteNotification + //------------------------------------------------------------------------- + + customAPI1.SsRequestCompleteNotification(requestStatus, status); + customAPI2.SsRequestCompleteNotification(requestStatus2, status2); + + iMockLTSY.CompleteL(ECustomNotifySsRequestCompleteIPC, KErrNone, pckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_EQUALS(compStatus, status); + ASSERT_EQUALS(compStatus, status2); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCIB-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::IsBlocked +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::IsBlocked +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestIsBlocked0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); + TBool result; + + TUint8 codeId(KSecCodePin); + + TMockLtsyData1 ltsyData(codeId); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomIsBlockedIPC, data, KErrNotSupported); + + TInt ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrNotSupported, ret); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + const TBool compResult(ETrue); + TPckg resPckg(compResult); + + iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); + iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrGeneral, resPckg); + + ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrGeneral, ret); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::IsBlocked when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); + iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); + + ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrNone, ret); + ASSERT_EQUALS(compResult, result); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::IsBlocked when result is not cached. + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityCodePin2; + codeId = KSecCodePin2; + + data.Close(); + ltsyData.SerialiseL(data); + iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); + iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); + + ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrNone, ret); + ASSERT_EQUALS(compResult, result); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C3: Completion request of + // RMmCustomAPI::IsBlocked + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityCodePuk1; + + ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrArgument, ret); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST C4: Completion request of + // RMmCustomAPI::IsBlocked + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityUniversalPin; + + ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrArgument, ret); + + AssertMockLtsyStatusL(); + + + + //- making ICC3G ---------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TICCType iccType(EICCTypeSim3G); + + TMockLtsyData1 iccData(iccType); + data.Close(); + iccData.SerialiseL(data); + + iMockLTSY.CompleteL(EMmTsySimGetICCType, KErrNone, data); + + iMockLTSY.ExpectL(EMmTsySecurityGetSimActivePinStateIPC); + iMockLTSY.CompleteL(EMmTsySecurityGetSimActivePinStateIPC, KErrNone); + + // Wait for completion of iMockLTSY.NotifyTerminated + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C5: Successful completion request of + // RMmCustomAPI::IsBlocked when result is not cached. + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityUniversalPin; + codeId = KSecCodeUpin; + + data.Close(); + ltsyData.SerialiseL(data); + iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); + iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); + + ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrNone, ret); + ASSERT_EQUALS(compResult, result); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C6: Successful completion request of + // RMmCustomAPI::IsBlocked when result is not cached. + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityCodePassPhrase; + codeId = KSecCodeSecurity; + + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); + iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); + + ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrNone, ret); + ASSERT_EQUALS(compResult, result); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::IsBlocked + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomIsBlockedIPC, KErrNone, resPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCIB-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::IsBlocked with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::IsBlocked and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestIsBlocked0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); + TBool result; + + TUint8 codeId(KSecCodePin); + + TMockLtsyData1 ltsyData(codeId); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomIsBlockedIPC, data); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 402401); + // Request ECustomIsBlockedIPC is not completed by timeout. + + // to void next test blocking + ASSERT_TRUE(EFalse); + + TInt ret = customAPI.IsBlocked(type, result); + + ASSERT_EQUALS(KErrTimedOut, ret); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckSecurityCode +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckSecurityCode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckSecurityCode0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 data2; + CleanupClosePushL(data2); + + TRequestStatus requestStatus; + + RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); + TUint8 codeId(KSecCodePin); + RMobilePhone::TMobilePassword secCode; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + TMockLtsyData2 ltsyData(codeId, secCode); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data, KErrNotSupported); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrGeneral); + + TBool flag(EFalse); + TMockLtsyData2 ltsyData2(codeId, flag); + ltsyData2.SerialiseL(data2); + + // this is because HandleRequest(ECustomCheckSecurityCodeCancelIPC) is called when completing by error + iMockLTSY.ExpectL( ECustomCheckSecurityCodeCancelIPC, data2); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::CheckSecurityCode when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::CheckSecurityCode when result is not cached. + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityCodePin2; + codeId = KSecCodePin2; + + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C3: Successful completion request of + // RMmCustomAPI::CheckSecurityCode when result is not cached. + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityCodePuk1; + codeId = KSecCodePuk; + + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C4: Successful completion request of + // RMmCustomAPI::CheckSecurityCode when result is not cached. + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityCodePuk2; + codeId = KSecCodePuk2; + + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST C5: Successful completion request of + // RMmCustomAPI::CheckSecurityCode when result is not cached. + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityCodePassPhrase; + codeId = KSecCodeSecurity; + + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C6: Completion request of + // RMmCustomAPI::CheckSecurityCode when result type is ESecurityUniversalPin + //------------------------------------------------------------------------- + + type = RMmCustomAPI::ESecurityUniversalPin; + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::CheckSecurityCode + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckSecurityCode +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckSecurityCode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckSecurityCode0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 data2; + CleanupClosePushL(data2); + + TRequestStatus requestStatus; + + RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); + TUint8 codeId(KSecCodePin); + RMobilePhone::TMobilePassword secCode; + + TMockLtsyData2 ltsyData(codeId, secCode); + ltsyData.SerialiseL(data); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test A: Cancelling of RMmCustomAPI::CheckSecurityCode + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + + customAPI.CheckSecurityCode(requestStatus, type); + + TBool flag(ETrue); + TMockLtsyData2 ltsyData2(codeId, flag); + ltsyData2.SerialiseL(data2); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeCancelIPC, data2); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrCancel); + + customAPI.CancelAsyncRequest(ECustomCheckSecurityCodeIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + //------------------------------------------------------------------------- + // Test B: Cancelling of RMmCustomAPI::CheckSecurityCode + // Baseband returns the request successfully before handling cancel function. + //------------------------------------------------------------------------- + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone, 20); + + customAPI.CheckSecurityCode(requestStatus, type); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeCancelIPC, data2); + + customAPI.CancelAsyncRequest(ECustomCheckSecurityCodeIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckSecurityCode +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckSecurityCode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckSecurityCode0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); + RMmCustomAPI::TSecurityCodeType type2(RMmCustomAPI::ESecurityCodePin1); + TUint8 codeId(KSecCodePin); + RMobilePhone::TMobilePassword secCode; + + TMockLtsyData2 ltsyData(codeId, secCode); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::CheckSecurityCode + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + iMockLTSY.CompleteL( ECustomCheckSecurityCodeIPC, KErrNone,20); + + customAPI.CheckSecurityCode(requestStatus, type); + customAPI2.CheckSecurityCode(requestStatus2, type2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCSC-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckSecurityCode with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckSecurityCode and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckSecurityCode0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + + RMmCustomAPI::TSecurityCodeType type(RMmCustomAPI::ESecurityCodePin1); + TUint8 codeId(KSecCodePin); + RMobilePhone::TMobilePassword secCode; + + TMockLtsyData2 ltsyData(codeId, secCode); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 402502); + // Request ECustomCheckSecurityCodeIPC is not completed by timeout. + + // to avoid next test blocking + ASSERT_TRUE(EFalse); + + customAPI.CheckSecurityCode(requestStatus, type); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGAP-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetActivePin +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetActivePin +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetActivePin0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMobilePhone::TMobilePhoneSecurityCode code; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetActivePin when result is not cached. + //------------------------------------------------------------------------- + + customAPI.GetActivePin(code); + + ASSERT_EQUALS(RMobilePhone::ESecurityCodePin1, code); + + AssertMockLtsyStatusL(); + + // now change the pin and get the changed value + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + const RMobilePhone::TMobilePhoneSecurityCode compCode(RMobilePhone::ESecurityCodePin2); + TPckg compPckg(compCode); + + iMockLTSY.CompleteL(EMmTsySecurityGetSimActivePinStateIPC, KErrNone, compPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + customAPI.GetActivePin(code); + + ASSERT_EQUALS(compCode, code); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGATD-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetAirTimeDuration +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetAirTimeDuration +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetAirTimeDuration0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TTimeIntervalSeconds sec; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetAirTimeDuration when result is not cached. + //------------------------------------------------------------------------- + // check when there were no any calls on air + + TInt ret = customAPI.GetAirTimeDuration(sec); + + ASSERT_EQUALS(KErrNone, ret); + ASSERT_EQUALS(0, sec.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::GetAirTimeDuration when result is not cached. + //------------------------------------------------------------------------- + // check when there was a call on air + + // first make the connected call + + TName callName; + TInt callId(1); + RLine line; + RMobileCall call; + RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; + + OpenLineLC(line, iPhone, KMmTsyVoice1LineName); + + CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, + callId, RMobileCall::EStatusAnswering, mobileService); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusConnected; + TMockLtsyCallData1 mockCallData2(callId, mobileService, mobileCallStatus); + mockCallData2.SerialiseL(completeData); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // wait a little + User::After(2000000); //mcsec + + ret = customAPI.GetAirTimeDuration(sec); + + ASSERT_EQUALS(KErrNone, ret); + + ASSERT_TRUE(0 < sec.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNetworkProviderName +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetNetworkProviderName0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TName name; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC, KErrNotSupported); + + customAPI.GetNetworkProviderName(requestStatus, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); + + _LIT(KName, "ProviderName"); + TName compName(KName); + TPckg compPckg(compName); + + iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrGeneral, compPckg); + + customAPI.GetNetworkProviderName(requestStatus, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetNetworkProviderName when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); + iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg); + + customAPI.GetNetworkProviderName(requestStatus, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(0 == name.Compare(compName)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetNetworkProviderName + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); // customAPI, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetNetworkProviderName +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetNetworkProviderName +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetNetworkProviderName0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TName name; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetNetworkProviderName + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); + + + _LIT(KName, "ProviderName"); + TName compName(KName); + TPckg compPckg(compName); + + iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg, 20); + + customAPI.GetNetworkProviderName(requestStatus, name); + + customAPI.CancelAsyncRequest(ECustomGetNetworkProviderNameIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); // customAPI, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNetworkProviderName with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetNetworkProviderName0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TBuf<1> littleBuf; + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); + + _LIT(KName, "ProviderName"); + TName compName(KName); + TPckg compPckg(compName); + + iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg); + + customAPI.GetNetworkProviderName(requestStatus, littleBuf); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); // customAPI, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetNetworkProviderName +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetNetworkProviderName +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetNetworkProviderName0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + TName name; + TName name2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetNetworkProviderName + //------------------------------------------------------------------------- + + _LIT(KName, "ProviderName"); + TName compName(KName); + TPckg compPckg(compName); + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); + iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg, 20); + + customAPI.GetNetworkProviderName(requestStatus, name); + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); + + _LIT(KName2, "ProviderName2"); + TName compName2(KName2); + TPckg compPckg2(compName2); + + iMockLTSY.CompleteL( ECustomGetNetworkProviderNameIPC, KErrNone, compPckg2); + + customAPI2.GetNetworkProviderName(requestStatus2, name2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(0 == name.Compare(compName)); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_TRUE(0 == name2.Compare(compName2)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); // customAPI2, customAPI, phone2, telServer2, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGNPN-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNetworkProviderName with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetNetworkProviderName0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TName name; + + iMockLTSY.ExpectL( ECustomGetNetworkProviderNameIPC); + + customAPI.GetNetworkProviderName(requestStatus, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); // customAPI, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckEmergencyNumber +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckEmergencyNumber +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckEmergencyNumber0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + _LIT(KEmerNum, "IfThisIsEmer?"); + + TRequestStatus requestStatus; + RMmCustomAPI::TEmerNumberCheckMode mode; + + mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; + mode.iNumber.Copy(KEmerNum); + + TBool result; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData, KErrNotSupported); + + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); + + _LIT(KNumber, "Number"); + + RMmCustomAPI::TMobileTelNumber telNumber(KNumber); + RMmCustomAPI::TMobileTelNumber* telNumberPtr(&telNumber); + + TMockLtsyData1< RMmCustomAPI::TMobileTelNumber* > ltsyData2(telNumberPtr); + ltsyData2.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrGeneral, compData); + + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::CheckEmergencyNumber when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); + iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); + + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, mode.iNumber.Compare(telNumber)); + ASSERT_EQUALS(1, result); + + + //------------------------------------------------------------------------- + // TEST C1: mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; + //------------------------------------------------------------------------- + + mode.iNumber.Copy(KEmerNum); + mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); + iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); + + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, mode.iNumber.Compare(telNumber)); + ASSERT_EQUALS(1, result); + + + //------------------------------------------------------------------------- + // TEST C2: now check with telNumberPtr = NULL + //------------------------------------------------------------------------- + + telNumberPtr = NULL; + compData.Close(); + ltsyData2.SerialiseL(compData); + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); + iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); + + mode.iNumber.Copy(KEmerNum); + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, mode.iNumber.Compare(KEmerNum)); + ASSERT_TRUE(EFalse == result); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::CheckEmergencyNumber + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + + // check a branch with iISVDialNumberCheck + + TName callName; + TInt callId(1); + RLine line; + RMobileCall call; + RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService; + + OpenLineLC(line, iPhone, KMmTsyVoice1LineName); + + CreateAndOpenIncomingCalLC(line, call, callName, KMmTsyVoice1LineName, + callId, RMobileCall::EStatusIdle, mobileService); + + _LIT(KPhoneNumber, "135468456456"); + + RMobileCall::TEtel3rdPartyMobileCallParamsV1 callParams; + callParams.iIdRestrict = RMobileCall::ESendMyId; + callParams.iAutoRedial = ETrue; + + mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; + mode.iNumber.Copy(KPhoneNumber); + expectData.Close(); + ltsyData.SerialiseL(expectData); + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData, KErrNotSupported); + + TPckg pckgCallParams(callParams); + + call.DialISV(requestStatus, pckgCallParams, KPhoneNumber); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrServerBusy, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckEmergencyNumber +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckEmergencyNumber +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckEmergencyNumber0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + _LIT(KEmerNum, "IfThisIsEmer?"); + + TRequestStatus requestStatus; + TBool result; + RMmCustomAPI::TEmerNumberCheckMode mode; + + mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; + mode.iNumber.Copy(KEmerNum); + + TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::CheckEmergencyNumber + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); + + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + + customAPI.CancelAsyncRequest(ECustomCheckEmergencyNumberIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + _LIT(KNumber, "Number"); + + RMmCustomAPI::TMobileTelNumber telNumber(KNumber); + RMmCustomAPI::TMobileTelNumber* telNumberPtr(&telNumber); + + TMockLtsyData1< RMmCustomAPI::TMobileTelNumber* > ltsyData2(telNumberPtr); + ltsyData2.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckEmergencyNumber +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckEmergencyNumber +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckEmergencyNumber0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + + _LIT(KEmerNum, "IfThisIsEmer?"); + + TRequestStatus requestStatus; + TBool result; + RMmCustomAPI::TEmerNumberCheckMode mode; + + mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; + mode.iNumber.Copy(KEmerNum); + + TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); + ltsyData.SerialiseL(expectData); + + TRequestStatus requestStatus2; + TBool result2; + RMmCustomAPI::TEmerNumberCheckMode mode2; + + mode2.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; + mode2.iNumber.Copy(KEmerNum); + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); + + _LIT(KNumber, "Number"); + + RMmCustomAPI::TMobileTelNumber telNumber(KNumber); + RMmCustomAPI::TMobileTelNumber* telNumberPtr(&telNumber); + + TMockLtsyData1< RMmCustomAPI::TMobileTelNumber* > ltsyData2(telNumberPtr); + ltsyData2.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomCheckEmergencyNumberIPC, KErrNone, compData, 10); + + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + customAPI2.CheckEmergencyNumber(requestStatus2, mode2, result2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(7, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCEN-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckEmergencyNumber with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckEmergencyNumber and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckEmergencyNumber0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + _LIT(KEmerNum, "IfThisIsEmer?"); + + TRequestStatus requestStatus; + TBool result; + RMmCustomAPI::TEmerNumberCheckMode mode; + + mode.iCheckMode = RMmCustomAPI::EEmerNumberCheckAdvanced; + mode.iNumber.Copy(KEmerNum); + + TMockLtsyData1< RMmCustomAPI::TEmerNumberCheckMode > ltsyData(mode); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomCheckEmergencyNumberIPC, expectData); + + customAPI.CheckEmergencyNumber(requestStatus, mode, result); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyPndCacheReady +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyPndCacheReady +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyPndCacheReady0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TName name; + + RMobilePhoneBookStore bookStore; + TName pbName(KETelIccAdnPhoneBook); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of RMmCustomAPI::NotifyPndCacheReady + //------------------------------------------------------------------------- + + customAPI.NotifyPndCacheReady(requestStatus, name); + + OpenPhoneBookStoreL(bookStore, pbName, iPhone); + CleanupClosePushL(bookStore); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(0, name.Compare(pbName)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0001b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyPndCacheReady when caching has been originated from SIM. +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyPndCacheReady +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyPndCacheReady0001bL() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TName name; + + TName pbName(KETelIccAdnPhoneBook); + + //------------------------------------------------------------------------- + // TEST A: Successful completion request of RMmCustomAPI::NotifyPndCacheReady + // when caching has been originated from SIM. + //------------------------------------------------------------------------- + customAPI.NotifyPndCacheReady(requestStatus, name); + + TInt simError = KErrNone; + + RMobilePhoneBookStore bookStore; + OpenPhoneBookStoreWithSIMRefreshL(bookStore, pbName, iPhone, simError); + CleanupClosePushL(bookStore); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(0, name.Compare(pbName)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + //---------------------------------------------------------- + // Telephony server has to be opened to test this + // scenario otherwise the below condition is not + // easy to test. + //---------------------------------------------------------- + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, iPhone); + + TRequestStatus requestStatus2; + TName name2; + + //------------------------------------------------------------------------- + // TEST B: Unsuccessful completion request of RMmCustomAPI::NotifyPndCacheReady + // when caching has been originated from SIM. + //------------------------------------------------------------------------- + customAPI2.NotifyPndCacheReady(requestStatus2, name2); + + RMobilePhoneBookStore bookStore2; + simError = KErrGeneral; + OpenPhoneBookStoreWithSIMRefreshL(bookStore2, pbName, iPhone, simError); + CleanupClosePushL(bookStore2); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrGeneral, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyPndCacheReady +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyPndCacheReady +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyPndCacheReady0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TName name; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyPndCacheReady + //------------------------------------------------------------------------- + + customAPI.NotifyPndCacheReady(requestStatus, name); + + _LIT(KName, "Name"); + + TName compName(KName); + TPckg compNamePckg(compName); + + iMockLTSY.CompleteL(ECustomNotifyPndCacheReadyIPC, KErrNone, compNamePckg, 20); + + customAPI.CancelAsyncRequest(ECustomNotifyPndCacheReadyIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyPndCacheReady with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyPndCacheReady with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyPndCacheReady0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TName name; + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 data2; + CleanupClosePushL(data2); + + RBuf8 data3; + CleanupClosePushL(data3); + + RMobilePhoneBookStore bookStore; + TName pbName(KETelIccAdnPhoneBook); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TMockLtsyPhoneBookData0 storeInitData(pbName); + storeInitData.SerialiseL(data); + + CStorageInfoData storageData; + + SetStorageInfoData(storageData); + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(pbName, storageData); + retStoreInitC.SerialiseL(data2); + + //EMmTsyPhoneBookStoreCacheIPC + CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); + CleanupStack::PushL(cache); + + TMockLtsyPhoneBookData1*> storeCacheData(pbName, cache); + storeCacheData.SerialiseL(data3); + + //------------------------------------------------------------------------- + // TEST 1: completion by error value from CMmPhoneBookStoreTsy::CompletePBStoreInitializationL() + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrGeneral, data2); + + customAPI.NotifyPndCacheReady(requestStatus, name); + + TInt ret = bookStore.Open(iPhone, pbName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(bookStore); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + ASSERT_EQUALS(0, name.Compare(pbName)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(1); + + //------------------------------------------------------------------------- + // TEST 2: completion by error value from CMmPhoneBookStoreTsy::CompleteCachingL() + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data2); + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, data); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrGeneral, data3); + + customAPI.NotifyPndCacheReady(requestStatus, name); + + ret = bookStore.Open(iPhone, pbName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(bookStore); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + ASSERT_EQUALS(0, name.Compare(pbName)); + + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(7, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNPCR-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyPndCacheReady +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyPndCacheReady +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyPndCacheReady0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + TName name; + TName name2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyPndCacheReady + //------------------------------------------------------------------------- + + customAPI.NotifyPndCacheReady(requestStatus, name); + customAPI2.NotifyPndCacheReady(requestStatus2, name2); + + RMobilePhoneBookStore bookStore; + TName pbName(KETelIccAdnPhoneBook); + + OpenPhoneBookStoreL(bookStore, pbName, iPhone); + CleanupClosePushL(bookStore); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(0, name.Compare(pbName)); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + ASSERT_EQUALS(0, name2.Compare(pbName)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGPCS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetPndCacheStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetPndCacheStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetPndCacheStatus0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TPndCacheStatus status; + + // TEST C: Successful completion request of + // RMmCustomAPI::GetPndCacheStatus when result is not cached. + // Check KETelIccAdnPhoneBook + + TName name; + name.Copy(KETelIccAdnPhoneBook); + + customAPI.GetPndCacheStatus(requestStatus, status, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::ECacheNotReady == status); + + AssertMockLtsyStatusL(); + + + // TEST C2: Successful completion request of + // RMmCustomAPI::GetPndCacheStatus when result is not cached. + // Check KETelIccFdnPhoneBook + + name.Copy(KETelIccFdnPhoneBook); + + customAPI.GetPndCacheStatus(requestStatus, status, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::ECacheNotReady == status); + + AssertMockLtsyStatusL(); + + // TEST C3: Successful completion request of + // RMmCustomAPI::GetPndCacheStatus when result is not cached. + // Check KETelIccBdnPhoneBook + + name.Copy(KETelIccBdnPhoneBook ); + + customAPI.GetPndCacheStatus(requestStatus, status, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::ECacheNotUsed == status); + + AssertMockLtsyStatusL(); + + // TEST C4: Successful completion request of + // RMmCustomAPI::GetPndCacheStatus when result is not cached. + // Check KETelIccSdnPhoneBook + + name.Copy(KETelIccSdnPhoneBook ); + + customAPI.GetPndCacheStatus(requestStatus, status, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::ECacheNotUsed == status); + + AssertMockLtsyStatusL(); + + // TEST C5: Successful completion request of + // RMmCustomAPI::GetPndCacheStatus when result is not cached. + // Check KETelIccVoiceMailBox + + name.Copy(KETelIccVoiceMailBox ); + + customAPI.GetPndCacheStatus(requestStatus, status, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::ECacheNotUsed == status); + + AssertMockLtsyStatusL(); + + // TEST C6: Successful completion request of + // RMmCustomAPI::GetPndCacheStatus. + // Get cache ready. + + name.Copy(KETelIccAdnPhoneBook ); + RMobilePhoneBookStore bookStore; + + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + + customAPI.GetPndCacheStatus(requestStatus, status, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::ECacheReady == status); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGPCS-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetPndCacheStatus with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetPndCacheStatus with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetPndCacheStatus0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TPndCacheStatus status; + + // Check non-existing phoneBookStore + + _LIT(KBadName, "BadName"); + + TName name; + name.Copy(KBadName); + + customAPI.GetPndCacheStatus(requestStatus, status, name); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGON-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetOperatorName +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetOperatorName +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetOperatorName0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TOperatorNameInfo info; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetOperatorNameIPC, KErrNotSupported); + + customAPI.GetOperatorName(requestStatus, info); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); + + _LIT(KName, "OperName"); + + RMmCustomAPI::TOperatorNameInfo compInfo; + compInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; + compInfo.iName.Copy(KName); + TPckg compInfoPckg(compInfo); + + iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrGeneral, compInfoPckg); + + customAPI.GetOperatorName(requestStatus, info); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetOperatorName when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); + iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg); + + customAPI.GetOperatorName(requestStatus, info); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compInfo.iType == info.iType); + ASSERT_TRUE(0 == info.iName.Compare(compInfo.iName)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetOperatorName + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGON-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetOperatorName +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetOperatorName +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetOperatorName0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TOperatorNameInfo info; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetOperatorName + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); + + _LIT(KName, "OperName"); + + RMmCustomAPI::TOperatorNameInfo compInfo; + compInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; + compInfo.iName.Copy(KName); + TPckg compInfoPckg(compInfo); + + iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg, 20); + + customAPI.GetOperatorName(requestStatus, info); + + customAPI.CancelAsyncRequest(ECustomGetOperatorNameIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGON-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetOperatorName +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetOperatorName +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetOperatorName0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TOperatorNameInfo info; + RMmCustomAPI::TOperatorNameInfo info2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetOperatorName + //------------------------------------------------------------------------- + + _LIT(KName, "OperName"); + + RMmCustomAPI::TOperatorNameInfo compInfo; + compInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; + compInfo.iName.Copy(KName); + TPckg compInfoPckg(compInfo); + + iMockLTSY.ExpectL( ECustomGetOperatorNameIPC, KErrNone); + iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg, 20); + + customAPI.GetOperatorName(requestStatus, info); + + _LIT(KName2, "OperName2"); + + RMmCustomAPI::TOperatorNameInfo compInfo2; + compInfo2.iType = RMmCustomAPI::EOperatorNameNitzShort; + compInfo2.iName.Copy(KName2); + TPckg compInfoPckg2(compInfo2); + + iMockLTSY.ExpectL( ECustomGetOperatorNameIPC, KErrNone); + iMockLTSY.CompleteL( ECustomGetOperatorNameIPC, KErrNone, compInfoPckg2); + + customAPI2.GetOperatorName(requestStatus2, info2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compInfo.iType == info.iType); + ASSERT_TRUE(0 == info.iName.Compare(compInfo.iName)); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_TRUE(compInfo2.iType == info2.iType); + ASSERT_TRUE(0 == info2.iName.Compare(compInfo2.iName)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGON-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetOperatorName with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetOperatorName and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetOperatorName0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TOperatorNameInfo info; + + iMockLTSY.ExpectL( ECustomGetOperatorNameIPC); + + customAPI.GetOperatorName(requestStatus, info); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetProgrammableOperatorLogo +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetProgrammableOperatorLogo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI::TOperatorId oper; + RMmCustomAPI::TOperatorLogo logo; + + TBuf8<128> buf; + logo.iOperatorLogo = &buf; + + oper.iMcc = 0; + oper.iMnc = 0; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + TRequestStatus requestStatus; + + TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData, KErrNotSupported); + + customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); + + _LIT8(KBuf, "BufBufBufBufBuf"); + TBuf8 compBuf(KBuf); + + RMmCustomAPI::TOperatorId operComp; + RMmCustomAPI::TOperatorLogo logoComp; + + operComp.iMcc = 1; + operComp.iMnc = 1; + + logoComp.iLogoInfo.iLogoWidth = 2; + logoComp.iLogoInfo.iLogoHeight = 2; + logoComp.iLogoInfo.iCompression = 2; + logoComp.iLogoInfo.iDepth = RMmCustomAPI::EBitPerPixel1; + logoComp.iOperatorLogo = &compBuf; + + TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); + ltsyData2.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrGeneral, compData); + + customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetProgrammableOperatorLogo when result is not cached. + //------------------------------------------------------------------------- + + + iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); + iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); + + customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(operComp.iMcc == oper.iMcc); + ASSERT_TRUE(operComp.iMnc == oper.iMnc); + ASSERT_TRUE(logoComp.iLogoInfo.iLogoWidth == logo.iLogoInfo.iLogoWidth); + ASSERT_TRUE(logoComp.iLogoInfo.iLogoHeight == logo.iLogoInfo.iLogoHeight); + ASSERT_TRUE(logoComp.iLogoInfo.iCompression == logo.iLogoInfo.iCompression); + ASSERT_TRUE(logoComp.iLogoInfo.iDepth == logo.iLogoInfo.iDepth); + ASSERT_TRUE(0 == logoComp.iOperatorLogo->Compare(*logo.iOperatorLogo)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetProgrammableOperatorLogo + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetProgrammableOperatorLogo +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetProgrammableOperatorLogo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + RMmCustomAPI::TOperatorId oper; + RMmCustomAPI::TOperatorLogo logo; + + oper.iMcc = 0; + oper.iMnc = 0; + + TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetProgrammableOperatorLogo + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); + + customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); + + customAPI.CancelAsyncRequest(ECustomGetProgrammableOperatorLogoIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + RMmCustomAPI::TOperatorId operComp; + RMmCustomAPI::TOperatorLogo logoComp; + + _LIT8(KBuf, "BufBufBufBufBuf"); + TBuf8 compBuf(KBuf); + logoComp.iOperatorLogo = &compBuf; + + TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); + ltsyData2.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4); + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetProgrammableOperatorLogo with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetProgrammableOperatorLogo with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0003L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + + TRequestStatus requestStatus; + + RMmCustomAPI::TOperatorId oper; + RMmCustomAPI::TOperatorLogo logo; + + oper.iMcc = 0; + oper.iMnc = 0; + + TBuf8<1> littleBuf; + logo.iOperatorLogo = &littleBuf; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); + ltsyData.SerialiseL(expectData); + + RMmCustomAPI::TOperatorId operComp; + RMmCustomAPI::TOperatorLogo logoComp; + + _LIT8(KBuf, "BufBufBufBufBuf"); + TBuf8 compBuf(KBuf); + + operComp.iMcc = 1; + operComp.iMnc = 1; + + logoComp.iLogoInfo.iLogoWidth = 2; + logoComp.iLogoInfo.iLogoHeight = 2; + logoComp.iLogoInfo.iCompression = 2; + logoComp.iLogoInfo.iDepth = RMmCustomAPI::EBitPerPixel1; + logoComp.iOperatorLogo = &compBuf; + + TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); + ltsyData2.SerialiseL(compData); + + iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); + iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData); + + customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTooBig, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4, this); + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetProgrammableOperatorLogo +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetProgrammableOperatorLogo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TOperatorId oper; + RMmCustomAPI::TOperatorLogo logo; + + oper.iMcc = 0; + oper.iMnc = 0; + + RMmCustomAPI::TOperatorId oper2; + RMmCustomAPI::TOperatorLogo logo2; + + oper2.iMcc = 0; + oper2.iMnc = 0; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); + + RMmCustomAPI::TOperatorId operComp; + RMmCustomAPI::TOperatorLogo logoComp; + + _LIT8(KBuf, "BufBufBufBufBuf"); + TBuf8 compBuf(KBuf); + + operComp.iMcc = 1; + operComp.iMnc = 1; + + logoComp.iLogoInfo.iLogoWidth = 2; + logoComp.iLogoInfo.iLogoHeight = 2; + logoComp.iLogoInfo.iCompression = 2; + logoComp.iLogoInfo.iDepth = RMmCustomAPI::EBitPerPixel1; + logoComp.iOperatorLogo = &compBuf; + + TMockLtsyData2< RMmCustomAPI::TOperatorId, RMmCustomAPI::TOperatorLogo> ltsyData2(operComp, logoComp); + ltsyData2.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomGetProgrammableOperatorLogoIPC, KErrNone, compData, 20); + + + customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); + customAPI2.GetProgrammableOperatorLogo(requestStatus2, oper2, logo2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(7, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGPOL-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetProgrammableOperatorLogo with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetProgrammableOperatorLogo and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetProgrammableOperatorLogo0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TOperatorId oper; + RMmCustomAPI::TOperatorLogo logo; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMmCustomAPI::TOperatorId > ltsyData(oper); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomGetProgrammableOperatorLogoIPC, expectData); + + customAPI.GetProgrammableOperatorLogo(requestStatus, oper, logo); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNPOLC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyProgrammableOperatorLogoChange +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyProgrammableOperatorLogoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyProgrammableOperatorLogoChange0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TOperatorId operatorId; + operatorId.iMcc = 0; + operatorId.iMnc = 0; + + // tests for RMmCustomAPI::NotifyProgrammableOperatorLogoChange should be written when ECustomNotifyProgrammableOperatorLogoChangeIPC + // would be proccessed. + + customAPI.NotifyProgrammableOperatorLogoChange( requestStatus, operatorId); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNSNE-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifySsNetworkEvent +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifySsNetworkEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifySsNetworkEvent0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + + RMmCustomAPI::TSsTypeAndMode ssTypeAndMode; + RMmCustomAPI::TSsInfo ssInfo; + + RMmCustomAPI::TSsTypeAndMode ssTypeAndModeComp; + RMmCustomAPI::TSsInfo ssInfoComp; + + // fill with random data + _LIT(KRemote, "Remote"); + + ssTypeAndModeComp.iSsType = RMmCustomAPI::ESsForwNoReply; + ssTypeAndModeComp.iSsMode = RMmCustomAPI::ESsModeActive; + + ssInfoComp.iForwMode = RMmCustomAPI::ESsOutCallForwToC; + ssInfoComp.iCallWait = ETrue; + ssInfoComp.iCallHold = RMmCustomAPI::ESsHoldResume; + ssInfoComp.iConfInd = ETrue; + ssInfoComp.iCugIndex = 15; + ssInfoComp.iClirSuppReject = EFalse; + ssInfoComp.iEctCallState = RMmCustomAPI::ESsEctAlerting; + ssInfoComp.iChoice = RMmCustomAPI::ESsPresRestrictedAddress; + ssInfoComp.iRemoteAddress.Copy(KRemote); + + TMockLtsyData2< RMmCustomAPI::TSsTypeAndMode, RMmCustomAPI::TSsInfo > + ltsyData(ssTypeAndModeComp, ssInfoComp); + ltsyData.SerialiseL(data); + + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifySsNetworkEvent + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); + + iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrGeneral, data); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifySsNetworkEvent when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); + + iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(ssTypeAndModeComp.iSsType == ssTypeAndMode.iSsType); + ASSERT_TRUE(ssTypeAndModeComp.iSsMode == ssTypeAndMode.iSsMode); + ASSERT_TRUE(ssInfoComp.iForwMode == ssInfo.iForwMode); + ASSERT_TRUE(ssInfoComp.iCallWait == ssInfo.iCallWait); + ASSERT_TRUE(ssInfoComp.iCallHold == ssInfo.iCallHold); + ASSERT_TRUE(ssInfoComp.iConfInd == ssInfo.iConfInd); + ASSERT_TRUE(ssInfoComp.iCugIndex == ssInfo.iCugIndex); + ASSERT_TRUE(ssInfoComp.iClirSuppReject == ssInfo.iClirSuppReject); + ASSERT_TRUE(ssInfoComp.iEctCallState == ssInfo.iEctCallState); + ASSERT_TRUE(ssInfoComp.iChoice == ssInfo.iChoice); + ASSERT_TRUE(0 == ssInfo.iRemoteAddress.Compare(ssInfoComp.iRemoteAddress)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNSNE-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifySsNetworkEvent +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifySsNetworkEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifySsNetworkEvent0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + + RMmCustomAPI::TSsTypeAndMode ssTypeAndMode; + RMmCustomAPI::TSsInfo ssInfo; + + RMmCustomAPI::TSsTypeAndMode ssTypeAndModeComp; + RMmCustomAPI::TSsInfo ssInfoComp; + + TMockLtsyData2< RMmCustomAPI::TSsTypeAndMode, RMmCustomAPI::TSsInfo > + ltsyData(ssTypeAndModeComp, ssInfoComp); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifySsNetworkEvent + //------------------------------------------------------------------------- + customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); + + customAPI.CancelAsyncRequest(ECustomNotifySsNetworkEventIPC); + + iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNSNE-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifySsNetworkEvent +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifySsNetworkEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifySsNetworkEvent0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TSsTypeAndMode ssTypeAndMode; + RMmCustomAPI::TSsInfo ssInfo; + + RMmCustomAPI::TSsTypeAndMode ssTypeAndMode2; + RMmCustomAPI::TSsInfo ssInfo2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifySsNetworkEvent + //------------------------------------------------------------------------- + customAPI.NotifySsNetworkEvent(requestStatus, ssTypeAndMode, ssInfo); + customAPI2.NotifySsNetworkEvent(requestStatus2, ssTypeAndMode2, ssInfo2); + + // fill with random data + _LIT(KRemote, "Remote"); + + RMmCustomAPI::TSsTypeAndMode ssTypeAndModeComp; + RMmCustomAPI::TSsInfo ssInfoComp; + + ssTypeAndModeComp.iSsType = RMmCustomAPI::ESsForwNoReply; + ssTypeAndModeComp.iSsMode = RMmCustomAPI::ESsModeActive; + + ssInfoComp.iForwMode = RMmCustomAPI::ESsOutCallForwToC; + ssInfoComp.iCallWait = ETrue; + ssInfoComp.iCallHold = RMmCustomAPI::ESsHoldResume; + ssInfoComp.iConfInd = ETrue; + ssInfoComp.iCugIndex = 15; + ssInfoComp.iClirSuppReject = EFalse; + ssInfoComp.iEctCallState = RMmCustomAPI::ESsEctAlerting; + ssInfoComp.iChoice = RMmCustomAPI::ESsPresRestrictedAddress; + ssInfoComp.iRemoteAddress.Copy(KRemote); + + TMockLtsyData2< RMmCustomAPI::TSsTypeAndMode, RMmCustomAPI::TSsInfo > + ltsyData(ssTypeAndModeComp, ssInfoComp); + ltsyData.SerialiseL(data); + + iMockLTSY.CompleteL(ECustomNotifySsNetworkEventIPC, KErrNone, data); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(ssTypeAndModeComp.iSsType == ssTypeAndMode.iSsType); + ASSERT_TRUE(ssTypeAndModeComp.iSsMode == ssTypeAndMode.iSsMode); + ASSERT_TRUE(ssInfoComp.iForwMode == ssInfo.iForwMode); + ASSERT_TRUE(ssInfoComp.iCallWait == ssInfo.iCallWait); + ASSERT_TRUE(ssInfoComp.iCallHold == ssInfo.iCallHold); + ASSERT_TRUE(ssInfoComp.iConfInd == ssInfo.iConfInd); + ASSERT_TRUE(ssInfoComp.iCugIndex == ssInfo.iCugIndex); + ASSERT_TRUE(ssInfoComp.iClirSuppReject == ssInfo.iClirSuppReject); + ASSERT_TRUE(ssInfoComp.iEctCallState == ssInfo.iEctCallState); + ASSERT_TRUE(ssInfoComp.iChoice == ssInfo.iChoice); + ASSERT_TRUE(0 == ssInfo.iRemoteAddress.Compare(ssInfoComp.iRemoteAddress)); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_TRUE(ssTypeAndModeComp.iSsType == ssTypeAndMode2.iSsType); + ASSERT_TRUE(ssTypeAndModeComp.iSsMode == ssTypeAndMode2.iSsMode); + ASSERT_TRUE(ssInfoComp.iForwMode == ssInfo2.iForwMode); + ASSERT_TRUE(ssInfoComp.iCallWait == ssInfo2.iCallWait); + ASSERT_TRUE(ssInfoComp.iCallHold == ssInfo2.iCallHold); + ASSERT_TRUE(ssInfoComp.iConfInd == ssInfo2.iConfInd); + ASSERT_TRUE(ssInfoComp.iCugIndex == ssInfo2.iCugIndex); + ASSERT_TRUE(ssInfoComp.iClirSuppReject == ssInfo2.iClirSuppReject); + ASSERT_TRUE(ssInfoComp.iEctCallState == ssInfo2.iEctCallState); + ASSERT_TRUE(ssInfoComp.iChoice == ssInfo2.iChoice); + ASSERT_TRUE(0 == ssInfo2.iRemoteAddress.Compare(ssInfoComp.iRemoteAddress)); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCUS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CancelUssdSession +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CancelUssdSession +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCancelUssdSession0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + // tests for RMmCustomAPI::CancelUssdSession should be written when ECustomCancelUssdSessionIPC + // would be proccessed. + + customAPI.CancelUssdSession( requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSRCN2-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SatRefreshCompleteNotification +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SatRefreshCompleteNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSatRefreshCompleteNotification0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SatRefreshCompleteNotification + // from LTSY. + // The test comes first because the request is self-reposting + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SatRefreshCompleteNotification when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone); + + customAPI.SatRefreshCompleteNotification(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSRCN2-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SatRefreshCompleteNotification +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SatRefreshCompleteNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSatRefreshCompleteNotification0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SatRefreshCompleteNotification + //------------------------------------------------------------------------- + + customAPI.SatRefreshCompleteNotification(requestStatus); + + iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone, 20); + + customAPI.CancelAsyncRequest(ECustomSatRefreshCompleteNotificationIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSRCN2-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SatRefreshCompleteNotification +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SatRefreshCompleteNotification +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSatRefreshCompleteNotification0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyNetworkConnectionFailure + //------------------------------------------------------------------------- + + iMockLTSY.CompleteL(ECustomSatRefreshCompleteNotificationIPC, KErrNone, 20); + + customAPI.SatRefreshCompleteNotification(requestStatus); + customAPI2.SatRefreshCompleteNotification(requestStatus2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckTwoDigitDialSupport +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckTwoDigitDialSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TTwoDigitDialSupport support; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC, KErrNotSupported); + + customAPI.CheckTwoDigitDialSupport(requestStatus, support); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); + + const RMmCustomAPI::TTwoDigitDialSupport compData(RMmCustomAPI::ETwoDigitDialSupportOn); + TPckg compPckg(compData); + + iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrGeneral, compPckg); + + customAPI.CheckTwoDigitDialSupport(requestStatus, support); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::CheckTwoDigitDialSupport when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); + iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg); + + customAPI.CheckTwoDigitDialSupport(requestStatus, support); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(compData, support); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::CheckTwoDigitDialSupport + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::CheckTwoDigitDialSupport +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::CheckTwoDigitDialSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TTwoDigitDialSupport support; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::CheckTwoDigitDialSupport + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); + + const RMmCustomAPI::TTwoDigitDialSupport compData(RMmCustomAPI::ETwoDigitDialSupportOn); + TPckg compPckg(compData); + + iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg, 20); + + customAPI.CheckTwoDigitDialSupport(requestStatus, support); + + customAPI.CancelAsyncRequest(ECustomCheckTwoDigitDialSupportIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::CheckTwoDigitDialSupport +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::CheckTwoDigitDialSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TTwoDigitDialSupport support; + RMmCustomAPI::TTwoDigitDialSupport support2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::CheckTwoDigitDialSupport + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); + + const RMmCustomAPI::TTwoDigitDialSupport compData(RMmCustomAPI::ETwoDigitDialSupportOn); + TPckg compPckg(compData); + + iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg, 20); + + customAPI.CheckTwoDigitDialSupport(requestStatus, support); + + // second client + iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); + + const RMmCustomAPI::TTwoDigitDialSupport compData2(RMmCustomAPI::ETwoDigitDialSupportOff); + TPckg compPckg2(compData2); + + iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg2); + + customAPI2.CheckTwoDigitDialSupport(requestStatus2, support2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(compData, support); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_EQUALS(compData2, support2); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCCTDDS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::CheckTwoDigitDialSupport with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::CheckTwoDigitDialSupport and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestCheckTwoDigitDialSupport0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TLifeTimeData ltData; + TPckg ltPckg(ltData); + + iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC); + + RMmCustomAPI::TTwoDigitDialSupport support; + + customAPI.CheckTwoDigitDialSupport(requestStatus, support); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ResetNetServer +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ResetNetServer +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestResetNetServer0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomResetNetServerIPC, KErrNotSupported); + + customAPI.ResetNetServer(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomResetNetServerIPC); + + iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrGeneral); + + customAPI.ResetNetServer(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::ResetNetServer when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomResetNetServerIPC); + iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone); + + customAPI.ResetNetServer(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ResetNetServer + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ResetNetServer +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::ResetNetServer +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestResetNetServer0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::ResetNetServer + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomResetNetServerIPC); + iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone, 20); + + customAPI.ResetNetServer(requestStatus); + + customAPI.CancelAsyncRequest(ECustomResetNetServerIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ResetNetServer +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ResetNetServer +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestResetNetServer0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::ResetNetServer + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomResetNetServerIPC, KErrNone); + iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone, 20); + customAPI.ResetNetServer(requestStatus); + + iMockLTSY.ExpectL( ECustomResetNetServerIPC, KErrNone); + iMockLTSY.CompleteL( ECustomResetNetServerIPC, KErrNone); + customAPI2.ResetNetServer(requestStatus2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRNS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ResetNetServer with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ResetNetServer and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestResetNetServer0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + iMockLTSY.ExpectL( ECustomResetNetServerIPC); + + customAPI.ResetNetServer(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRF-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReleaseFile +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReleaseFile +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReleaseFile0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + _LIT(KFile, "FileName"); + TRequestStatus requestStatus; + + customAPI.ReleaseFile( requestStatus, KFile); + + // tests for RMmCustomAPI::ReleaseFile should be written when ECustomReleaseFileIPC + // would be proccessed. + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCREF-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::RestartFile +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::RestartFile +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestRestartFile0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + _LIT(KFile, "FileName"); + TRequestStatus requestStatus; + + // tests for RMmCustomAPI::RestartFile should be written when ECustomRestartFileIPC + // would be proccessed. + + customAPI.RestartFile( requestStatus, KFile); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSCTB-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::StartSimCbTopicBrowsing +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::StartSimCbTopicBrowsing +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestStartSimCbTopicBrowsing0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + RBuf8 compData; + CleanupClosePushL(compData); + + CArrayFixFlat* simTopicArray = new ( ELeave ) CArrayFixFlat + (1); + CleanupStack::PushL(simTopicArray); + + _LIT(KTopic, "Topic"); + RMmCustomAPI::TSimCbTopic topic; + topic.iNumber = 0; + topic.iName.Copy(KTopic); + + simTopicArray->AppendL( topic ); + + TMockLtsyData1< CArrayFixFlat* > ltsyData(simTopicArray); + ltsyData.SerialiseL(compData); + + iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); + iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrGeneral, compData); + + TInt ret = customAPI.StartSimCbTopicBrowsing(); + + ASSERT_EQUALS(KErrGeneral, ret); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::StartSimCbTopicBrowsing when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); + iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); + + ret = customAPI.StartSimCbTopicBrowsing(); + + ASSERT_EQUALS(KErrNone, ret); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::StartSimCbTopicBrowsing + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC, KErrNotSupported); + + ret = customAPI.StartSimCbTopicBrowsing(); + + ASSERT_EQUALS(KErrNotSupported, ret); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4, this); + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSCTB-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::StartSimCbTopicBrowsing with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::StartSimCbTopicBrowsing with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestStartSimCbTopicBrowsing0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + // Passing zero pointer + + iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); + + RBuf8 compData; + CleanupClosePushL(compData); + + CArrayFixFlat* simTopicArray = NULL; + + TMockLtsyData1< CArrayFixFlat* > ltsyData(simTopicArray); + ltsyData.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); + + TInt ret = customAPI.StartSimCbTopicBrowsing(); + + ASSERT_EQUALS(KErrNone, ret); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSCTB-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::StartSimCbTopicBrowsing with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::StartSimCbTopicBrowsing and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestStartSimCbTopicBrowsing0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); + + TInt ret = customAPI.StartSimCbTopicBrowsing(); + + ASSERT_EQUALS(KErrTimedOut, ret); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGNSCT-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetNextSimCbTopic +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetNextSimCbTopic +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetNextSimCbTopic0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetNextSimCbTopic when result is not cached. + //------------------------------------------------------------------------- + // testing with not initialized topics + + RMmCustomAPI::TSimCbTopic topic; + + customAPI.GetNextSimCbTopic(requestStatus, topic); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + _LIT(KTopic, "Topic"); + TInt num = 0; + + InitSimCbTopicsL(customAPI, KTopic, num); + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::GetNextSimCbTopic when result is not cached. + //------------------------------------------------------------------------- + + customAPI.GetNextSimCbTopic(requestStatus, topic); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(num == topic.iNumber); + ASSERT_TRUE(0 == topic.iName.Compare(KTopic)); + + CleanupStack::PopAndDestroy(2, this); + + } + + + +void CCTsyCustomIPCFU::InitSimCbTopicsL(RMmCustomAPI &aCustomApi, const TDesC& aTopic, TInt aNum) + { + + RBuf8 compData; + CleanupClosePushL(compData); + + CArrayFixFlat* simTopicArray = new ( ELeave ) CArrayFixFlat + (1); + CleanupStack::PushL(simTopicArray); + + RMmCustomAPI::TSimCbTopic topic; + topic.iNumber = aNum; + topic.iName.Copy(aTopic); + + simTopicArray->AppendL( topic ); + + TMockLtsyData1< CArrayFixFlat* > ltsyData(simTopicArray); + ltsyData.SerialiseL(compData); + + iMockLTSY.ExpectL( ECustomStartSimCbTopicBrowsingIPC); + iMockLTSY.CompleteL( ECustomStartSimCbTopicBrowsingIPC, KErrNone, compData); + TInt ret = aCustomApi.StartSimCbTopicBrowsing(); + ASSERT_EQUALS(KErrNone, ret); + + CleanupStack::PopAndDestroy(2); //simTopicArray, compData + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeleteSimCbTopic +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DeleteSimCbTopic +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeleteSimCbTopic0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + InitSimCbTopicsL(customAPI, _L("Topic"), 0); + + TUint index(0); + TUint expIndex(index); + TBool deleteFlag(ETrue); + + TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); + ltsyData2.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData, KErrNotSupported); + + customAPI.DeleteSimCbTopic(requestStatus, index); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); + iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrGeneral); + + customAPI.DeleteSimCbTopic(requestStatus, index); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::DeleteSimCbTopic + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST C: deletion of not existing entry. + //------------------------------------------------------------------------- + + index = 100; + expIndex = index; + deleteFlag = EFalse; + expectData.Close(); + ltsyData2.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); + iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrArgument); + + customAPI.DeleteSimCbTopic(requestStatus, index); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::DeleteSimCbTopic when result is not cached. + //------------------------------------------------------------------------- + + index = 0; + expIndex = index; + deleteFlag = ETrue; + expectData.Close(); + ltsyData2.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); + iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone); + + customAPI.DeleteSimCbTopic(requestStatus, index); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::DeleteSimCbTopic +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::DeleteSimCbTopic +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeleteSimCbTopic0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + InitSimCbTopicsL(customAPI, _L("Topic"), 0); + + TRequestStatus requestStatus; + + TUint index(0); + TUint expIndex(index); + TBool deleteFlag(ETrue); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); + ltsyData2.SerialiseL(expectData); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::DeleteSimCbTopic + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); + iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone, 20); + + customAPI.DeleteSimCbTopic(requestStatus, index); + + customAPI.CancelAsyncRequest(ECustomDeleteSimCbTopicIPC); + + // operation (ECustomDeleteSimCbTopicIPC) cannot be cancelled on DOS side as per CTSY. + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeleteSimCbTopic with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DeleteSimCbTopic with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeleteSimCbTopic0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TUint index(0); + TUint expIndex(index); + TBool deleteFlag(EFalse); + + TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); + ltsyData2.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); + iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone); + + // Successful completion of ECustomDeleteSimCbTopicIPC request in case of not initialized iSimCbTopics + customAPI.DeleteSimCbTopic(requestStatus, index); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::DeleteSimCbTopic +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::DeleteSimCbTopic +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeleteSimCbTopic0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + InitSimCbTopicsL(customAPI, _L("Topic"), 0); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + TUint index(0); + TUint index2(0); + TUint expIndex(index); + TBool deleteFlag(ETrue); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); + ltsyData2.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::DeleteSimCbTopic + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); + iMockLTSY.CompleteL( ECustomDeleteSimCbTopicIPC, KErrNone, 20); + + customAPI.DeleteSimCbTopic(requestStatus, index); + customAPI2.DeleteSimCbTopic(requestStatus2, index2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); // telServer2, phone2, customAPI, customAPI2, expectData, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDSCT-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DeleteSimCbTopic with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DeleteSimCbTopic and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDeleteSimCbTopic0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + InitSimCbTopicsL(customAPI, _L("Topic"), 0); + + TRequestStatus requestStatus; + + TUint index(0); + TUint expIndex(index); + TBool deleteFlag(ETrue); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData2< TUint, TBool > ltsyData2(expIndex, deleteFlag); + ltsyData2.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomDeleteSimCbTopicIPC, expectData); + + customAPI.DeleteSimCbTopic(requestStatus, index); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNNCF-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyNetworkConnectionFailure +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyNetworkConnectionFailure +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyNetworkConnectionFailure0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyNetworkConnectionFailure + // from LTSY. + // The test comes first because the request is self-reposting + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyNetworkConnectionFailure when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone); + + customAPI.NotifyNetworkConnectionFailure(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNNCF-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyNetworkConnectionFailure +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyNetworkConnectionFailure +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyNetworkConnectionFailure0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyNetworkConnectionFailure + //------------------------------------------------------------------------- + + customAPI.NotifyNetworkConnectionFailure(requestStatus); + + iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone, 20); + + customAPI.CancelAsyncRequest(ECustomNotifyNetworkConnectionFailureIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNNCF-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyNetworkConnectionFailure +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyNetworkConnectionFailure +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyNetworkConnectionFailure0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyNetworkConnectionFailure + //------------------------------------------------------------------------- + + iMockLTSY.CompleteL(ECustomNotifyNetworkConnectionFailureIPC, KErrNone, 20); + + customAPI.NotifyNetworkConnectionFailure(requestStatus); + customAPI2.NotifyNetworkConnectionFailure(requestStatus2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SendAPDUReq +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SendAPDUReq +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSendAPDUReq0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TInt cardReaderId = 1; + _LIT8(KCmdData, "1234"); + CmdDataBuf cmdData(KCmdData); + + TRequestStatus requestStatus; + RMmCustomAPI::TApduParameters apdu; + + apdu.iCardReaderId = cardReaderId; + apdu.iCmdData.Copy(cmdData); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData, KErrNotSupported); + customAPI.SendAPDUReq(requestStatus, apdu); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); + + _LIT8(KRspData,"ApduResponse"); + RspDataBuf rspData(KRspData); + + TMockLtsyData1< RspDataBuf > ltsyRetData(rspData); + ltsyRetData.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrGeneral, compData); + + customAPI.SendAPDUReq (requestStatus, apdu); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SendAPDUReq when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); + iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); + + customAPI.SendAPDUReq(requestStatus, apdu); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, (apdu.iCardReaderId != cardReaderId)?1:0); + ASSERT_EQUALS(0, apdu.iCmdData.Compare(cmdData)); + ASSERT_EQUALS(0, apdu.iRspData.Compare(rspData)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SendAPDUReq + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SendAPDUReq +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SendAPDUReq +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSendAPDUReq0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TInt cardReaderId = 1; + _LIT8(KCmdData, "1234"); + CmdDataBuf cmdData(KCmdData); + + TRequestStatus requestStatus; + RMmCustomAPI::TApduParameters apdu; + + apdu.iCardReaderId = cardReaderId; + apdu.iCmdData.Copy(cmdData); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); + ltsyData.SerialiseL(expectData); + + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SendAPDUReq + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); + + customAPI.SendAPDUReq(requestStatus, apdu); + + customAPI.CancelAsyncRequest(ECustomSendAPDUReqV2IPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + + _LIT8(KRspData,"ApduResponse"); + RspDataBuf rspData(KRspData); + + TMockLtsyData1< RspDataBuf > ltsyRetData(rspData); + ltsyRetData.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SendAPDUReq with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SendAPDUReq with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSendAPDUReq0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TInt cardReaderId = 1; + _LIT8(KCmdData, "1234"); + CmdDataBuf cmdData(KCmdData); + + TRequestStatus requestStatus; + RMmCustomAPI::TApduParameters apdu; + + apdu.iCardReaderId = cardReaderId; + apdu.iCmdData.Copy(cmdData); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); + customAPI.SendAPDUReq(requestStatus, apdu); + + _LIT8(KRspBig,"bigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbi"); + RspBigBuf bigBuf(KRspBig); + + TMockLtsyData1< TBuf8<300> > ltsyDataComp(bigBuf); + ltsyDataComp.SerialiseL(compData); + + iMockLTSY.CompleteL( ECustomSendAPDUReqV2IPC, KErrNone, compData); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrOverflow, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SendAPDUReq +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SendAPDUReq +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSendAPDUReq0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + + TInt cardReaderId = 1; + _LIT8(KCmdData, "1234"); + CmdDataBuf cmdData(KCmdData); + + TRequestStatus requestStatus; + RMmCustomAPI::TApduParameters apdu; + + apdu.iCardReaderId = cardReaderId; + apdu.iCmdData.Copy(cmdData); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + RBuf8 compData; + CleanupClosePushL(compData); + + TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); + ltsyData.SerialiseL(expectData); + + + iMockLTSY.ExpectL( ECustomSendAPDUReqV2IPC, expectData); + + + _LIT8(KRspData,"ApduResponse"); + RspDataBuf rspData(KRspData); + + TMockLtsyData1< TBuf8<20> > ltsyRetData(rspData); + ltsyRetData.SerialiseL(compData); + + iMockLTSY.CompleteL(ECustomSendAPDUReqV2IPC, KErrNone, compData, 20); + + //sending request to the first client + customAPI.SendAPDUReq(requestStatus, apdu); + + TRequestStatus requestStatus2; + RMmCustomAPI::TApduParameters apdu2; // empty request as api cannot be called twice + + + //sending request to the second client + customAPI2.SendAPDUReq(requestStatus2, apdu2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(7, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAR-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SendAPDUReq with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SendAPDUReq and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSendAPDUReq0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + _LIT8(KCmdData, "1234"); + CmdDataBuf cmdData(KCmdData); + + TRequestStatus requestStatus; + RMmCustomAPI::TApduParameters apdu; + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMmCustomAPI::TApduParameters > ltsyData(apdu); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL(ECustomSendAPDUReqV2IPC, expectData); + + customAPI.SendAPDUReq(requestStatus, apdu); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DisablePhoneLock +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DisablePhoneLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDisablePhoneLock0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + _LIT(KPassword, "password"); + + TRequestStatus requestStatus; + RMobilePhone::TMobilePassword pswd(KPassword); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData, KErrNotSupported); + + customAPI.DisablePhoneLock(requestStatus, pswd); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); + iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrGeneral); + + customAPI.DisablePhoneLock(requestStatus, pswd); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::DisablePhoneLock when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); + iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone); + + customAPI.DisablePhoneLock(requestStatus, pswd); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::DisablePhoneLock + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::DisablePhoneLock +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::DisablePhoneLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDisablePhoneLock0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + _LIT(KPassword, "password"); + + TRequestStatus requestStatus; + RMobilePhone::TMobilePassword pswd(KPassword); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); + ltsyData.SerialiseL(expectData); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::DisablePhoneLock + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); + iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone, 20); + + customAPI.DisablePhoneLock(requestStatus, pswd); + + customAPI.CancelAsyncRequest(ECustomDisablePhoneLockIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::DisablePhoneLock +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::DisablePhoneLock +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDisablePhoneLock0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + _LIT(KPassword, "password"); + + RMobilePhone::TMobilePassword pswd(KPassword); + RMobilePhone::TMobilePassword pswd2(KPassword); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::DisablePhoneLock + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); + iMockLTSY.CompleteL( ECustomDisablePhoneLockIPC, KErrNone, 20); + + customAPI.DisablePhoneLock(requestStatus, pswd); + customAPI2.DisablePhoneLock(requestStatus2, pswd2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCDPL-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::DisablePhoneLock with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::DisablePhoneLock and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestDisablePhoneLock0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + _LIT(KPassword, "password"); + + TRequestStatus requestStatus; + RMobilePhone::TMobilePassword pswd(KPassword); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMobilePhone::TMobilePassword > ltsyData(pswd); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomDisablePhoneLockIPC, expectData); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404602); + //Request ECustomDisablePhoneLockIPC is not completed by timeout. + + //The test is stopped to avoid blocking of next tests. + ASSERT_TRUE(EFalse); + + customAPI.DisablePhoneLock(requestStatus, pswd); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyEGprsInfoChange +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyEGprsInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + RMmCustomAPI::TGprsInformation info; + TPckg infoPckg(info); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyEGprsInfoChange + // from LTSY. + //------------------------------------------------------------------------- + + TBool lastEdgeGprsSupport = ETrue; + TMockLtsyData1 ltsyData(lastEdgeGprsSupport); + ltsyData.SerialiseL(data); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyEGprsInfoChange when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); + + iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info.iGprsInfo); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::NotifyEGprsInfoChange + //------------------------------------------------------------------------- + + lastEdgeGprsSupport = EFalse; + + data.Close(); + ltsyData.SerialiseL(data); + + customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); + + iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::EGprs == info.iGprsInfo); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyEGprsInfoChange +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyEGprsInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + RMmCustomAPI::TGprsInformation info; + TPckg infoPckg(info); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyEGprsInfoChange + //------------------------------------------------------------------------- + + customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); + + customAPI.CancelAsyncRequest(ECustomNotifyEGprsInfoChange); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + TBool lastEdgeGprsSupport = ETrue; + TMockLtsyData1 ltsyData(lastEdgeGprsSupport); + ltsyData.SerialiseL(data); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyEGprsInfoChange with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyEGprsInfoChange with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + TBuf8<1> littleBuf; + + //------------------------------------------------------------------------- + // Test on passing too little buffer to NotifyEGprsInfoChange + //------------------------------------------------------------------------- + + customAPI.NotifyEGprsInfoChange(requestStatus, littleBuf); + + TBool lastEdgeGprsSupport = ETrue; + TMockLtsyData1 ltsyData(lastEdgeGprsSupport); + ltsyData.SerialiseL(data); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNEIC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyEGprsInfoChange +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyEGprsInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyEGprsInfoChange0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + RPacketService packetService2; + ret = packetService2.Open(phone2); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(packetService2); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TGprsInformation info; + TPckg infoPckg(info); + + RMmCustomAPI::TGprsInformation info2; + TPckg infoPckg2(info2); + + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyEGprsInfoChange + //------------------------------------------------------------------------- + customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg); + customAPI2.NotifyEGprsInfoChange(requestStatus2, infoPckg2); + + TBool lastEdgeGprsSupport = ETrue; + TMockLtsyData1 ltsyData(lastEdgeGprsSupport); + ltsyData.SerialiseL(data); + + iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data, 20); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info.iGprsInfo); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info2.iGprsInfo); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(8, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGEI-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetEGprsInfo +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetEGprsInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetEGprsInfo0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + TRequestStatus requestStatus; + RMmCustomAPI::TGprsInformation info; + TPckg infoPckg(info); + + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetEGprsInfo when result is not cached. + //------------------------------------------------------------------------- + + customAPI.GetEGprsInfo(requestStatus, infoPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::EGprs == info.iGprsInfo); + + AssertMockLtsyStatusL(); + + // now set EdgeGprs + + RBuf8 data; + CleanupClosePushL(data); + + TBool lastEdgeGprsSupport = ETrue; + TMockLtsyData1 ltsyData(lastEdgeGprsSupport); + ltsyData.SerialiseL(data); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EMmTsyNotifyEGprsInfoChangeIPC, KErrNone, data); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::GetEGprsInfo when EdgeGprs + //------------------------------------------------------------------------- + + customAPI.GetEGprsInfo(requestStatus, infoPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( RMmCustomAPI::EEdgeGprs == info.iGprsInfo); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGEI-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetEGprsInfo with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetEGprsInfo with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetEGprsInfo0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TGprsInformation info; + TPckg infoPckg(info); + + // Calling GetEGprsInfo without opening RPacketService + + customAPI.GetEGprsInfo(requestStatus, infoPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + + // test on passing too little buffer + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + TBuf8<1> littleBuf; + + customAPI.GetEGprsInfo(requestStatus, littleBuf); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadSimFile +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadSimFile +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadSimFile0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> responce; + RMmCustomAPI::TSimFileInfo fileInfo; + fileInfo.iPath.Fill(0x00); + fileInfo.iOffSet = 0; + fileInfo.iSize = responce.Size(); + RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); + TPckg fileInfoPckg(fileInfo); + + TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); + ltsyData.SerialiseL(expData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData, KErrNotSupported); + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); + + _LIT8(KResponce, "Responce"); + + iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrGeneral, KResponce); + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::ReadSimFile when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); + iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, responce.Compare(KResponce)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ReadSimFile + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadSimFile +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadSimFile +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadSimFile0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> responce; + RMmCustomAPI::TSimFileInfo fileInfo; + fileInfo.iPath.Fill(0x00); + fileInfo.iOffSet = 0; + fileInfo.iSize = responce.Size(); + RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); + TPckg fileInfoPckg(fileInfo); + + TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); + ltsyData.SerialiseL(expData); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::ReadSimFile + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); + + _LIT8(KResponce, "Responce"); + + iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce, 20); + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); + + customAPI.CancelAsyncRequest(ECustomReadSimFileIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadSimFile with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadSimFile with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadSimFile0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + RMmCustomAPI::TSimFileInfo fileInfo; + fileInfo.iPath.Fill(0x00); + fileInfo.iOffSet = 0; + fileInfo.iSize = 32; + RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); + TPckg fileInfoPckg(fileInfo); + TBuf8<1> littleBuf; + + TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); + ltsyData.SerialiseL(expData); + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); + + _LIT8(KResponce, "Responce"); + + iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, littleBuf); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrOverflow, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadSimFile +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadSimFile +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadSimFile0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> responce; + RMmCustomAPI::TSimFileInfo fileInfo; + fileInfo.iPath.Fill(0x00); + fileInfo.iOffSet = 0; + fileInfo.iSize = responce.Size(); + RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); + TPckg fileInfoPckg(fileInfo); + + TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); + ltsyData.SerialiseL(expData); + + RBuf8 expData2; + CleanupClosePushL(expData2); +// TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData2(fileInfo3); +// ltsyData2.SerialiseL(expData3); + + TBuf8<32> responce2; + RMmCustomAPI::TSimFileInfo fileInfo2; + fileInfo2.iPath.Fill(0x00); + fileInfo2.iOffSet = 0; + fileInfo2.iSize = responce2.Size(); + RMmCustomAPI::TSimFileInfo expFileInfo2(fileInfo2); + TPckg fileInfoPckg2(fileInfo2); + + + RMmCustomAPI::TSimFileInfo fileInfo3; + fileInfo3.iPath.Fill(0x00); + fileInfo3.iOffSet = 0x10; + fileInfo3.iSize = responce2.Size(); + RMmCustomAPI::TSimFileInfo expFileInfo3(fileInfo3); + TPckg fileInfoPckg3(fileInfo3); + + //------------------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::ReadSimFile - different data + //------------------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); + _LIT8(KResponce, "Responce"); + iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce, 20); + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); + + //iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData2); + //iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce); + customAPI2.ReadSimFile(requestStatus2, fileInfoPckg2, responce2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, responce.Compare(KResponce)); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_EQUALS(0, responce2.Compare(KResponce)); + + AssertMockLtsyStatusL(); + + //----------------------------------------------------------------------------------- + // Test B: Test multiple clients requesting RMmCustomAPI::ReadSimFile with same data + //----------------------------------------------------------------------------------- + + + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); + iMockLTSY.CompleteL( ECustomReadSimFileIPC, KErrNone, KResponce, 20); + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); + customAPI2.ReadSimFile(requestStatus2, fileInfoPckg3, responce); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(0, responce.Compare(KResponce)); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(7, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRSF-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadSimFile with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadSimFile and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadSimFile0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> responce; + RMmCustomAPI::TSimFileInfo fileInfo; + fileInfo.iPath.Fill(0x00); + fileInfo.iOffSet = 0; + fileInfo.iSize = responce.Size(); + RMmCustomAPI::TSimFileInfo expFileInfo(fileInfo); + TPckg fileInfoPckg(fileInfo); + + TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo); + ltsyData.SerialiseL(expData); + + iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 404902); + // Location capability missing + + customAPI.ReadSimFile(requestStatus, fileInfoPckg, responce); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetLifeTime +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetLifeTime +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetLifeTime0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TLifeTimeData ltData; + TPckg ltPckg(ltData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetLifeTimeIPC, KErrNotSupported); + + customAPI.GetLifeTime(requestStatus, ltPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); + + RMmCustomAPI::TLifeTimeData compData; + compData.iCaps = 0x34; // fill with random data + compData.iHours = 123; + compData.iMinutes = 21; + compData.iManufacturingDate = TDateTime(1,(TMonth)2,3,4,5,6,7); + TPckg compPckg(compData); + + iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrGeneral, compPckg); + + customAPI.GetLifeTime(requestStatus, ltPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetLifeTime when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); + iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg); + + customAPI.GetLifeTime(requestStatus, ltPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compData.iCaps == ltData.iCaps); + ASSERT_TRUE(compData.iHours == ltData.iHours); + ASSERT_TRUE(compData.iMinutes == ltData.iMinutes); + ASSERT_TRUE(compData.iManufacturingDate.Year() == ltData.iManufacturingDate.Year()); + ASSERT_TRUE(compData.iManufacturingDate.Month() == ltData.iManufacturingDate.Month()); + ASSERT_TRUE(compData.iManufacturingDate.Day() == ltData.iManufacturingDate.Day()); + ASSERT_TRUE(compData.iManufacturingDate.Hour() == ltData.iManufacturingDate.Hour()); + ASSERT_TRUE(compData.iManufacturingDate.Minute() == ltData.iManufacturingDate.Minute()); + ASSERT_TRUE(compData.iManufacturingDate.Second() == ltData.iManufacturingDate.Second()); + ASSERT_TRUE(compData.iManufacturingDate.MicroSecond() == ltData.iManufacturingDate.MicroSecond()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetLifeTime + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetLifeTime +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetLifeTime +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetLifeTime0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TLifeTimeData ltData; + TPckg ltPckg(ltData); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetLifeTime + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); + + RMmCustomAPI::TLifeTimeData compData; + compData.iCaps = 0xFF; + TPckg compPckg(compData); + + iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg, 20); + + customAPI.GetLifeTime(requestStatus, ltPckg); + + customAPI.CancelAsyncRequest(ECustomGetLifeTimeIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetLifeTime with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetLifeTime with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetLifeTime0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TBuf8<1> badPckg; + + customAPI.GetLifeTime(requestStatus, badPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGLT-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetLifeTime +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetLifeTime +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetLifeTime0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TLifeTimeData ltData; + TPckg ltPckg(ltData); + + RMmCustomAPI::TLifeTimeData ltData2; + TPckg ltPckg2(ltData2); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetLifeTime + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetLifeTimeIPC); + + RMmCustomAPI::TLifeTimeData compData; + compData.iCaps = 0x11; + compData.iHours = 111; + compData.iMinutes = 111; + compData.iManufacturingDate = TDateTime(1,(TMonth)1,1,1,1,1,1); + TPckg compPckg(compData); + + iMockLTSY.CompleteL( ECustomGetLifeTimeIPC, KErrNone, compPckg, 20); + + customAPI.GetLifeTime(requestStatus, ltPckg); + + + customAPI2.GetLifeTime(requestStatus2, ltPckg2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compData.iCaps == ltData.iCaps); + ASSERT_TRUE(compData.iHours == ltData.iHours); + ASSERT_TRUE(compData.iMinutes == ltData.iMinutes); + ASSERT_TRUE(compData.iManufacturingDate.Year() == ltData.iManufacturingDate.Year()); + ASSERT_TRUE(compData.iManufacturingDate.Month() == ltData.iManufacturingDate.Month()); + ASSERT_TRUE(compData.iManufacturingDate.Day() == ltData.iManufacturingDate.Day()); + ASSERT_TRUE(compData.iManufacturingDate.Hour() == ltData.iManufacturingDate.Hour()); + ASSERT_TRUE(compData.iManufacturingDate.Minute() == ltData.iManufacturingDate.Minute()); + ASSERT_TRUE(compData.iManufacturingDate.Second() == ltData.iManufacturingDate.Second()); + ASSERT_TRUE(compData.iManufacturingDate.MicroSecond() == ltData.iManufacturingDate.MicroSecond()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGB-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::Get3GPBInfo +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::Get3GPBInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGet3GPBInfo0001L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::T3GPBInfo info; + + Mem::FillZ((TAny*)&info, sizeof(info)); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::Get3GPBInfo when result is not cached. + // Getting data for uninitialized PB + //------------------------------------------------------------------------- + + customAPI.Get3GPBInfo(requestStatus, info); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + + // for a not initializes PB all values are -1. + ASSERT_TRUE( -1 == info.iMaxLenEmail); + ASSERT_TRUE( -1 == info.iMaxLenSne); + ASSERT_TRUE( -1 == info.iMaxLenAnr); + ASSERT_TRUE( -1 == info.iMaxLenGroupName); + ASSERT_TRUE( -1 == info.iMaxNumEmail); + ASSERT_TRUE( -1 == info.iMaxNumSne); + ASSERT_TRUE( -1 == info.iMaxNumAnr); + ASSERT_TRUE( -1 == info.iMaxNumGroupName); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C2: Successful completion request of + // RMmCustomAPI::Get3GPBInfo when phoneBookStore is initialized + //------------------------------------------------------------------------- + + TName name(KETelIccAdnPhoneBook); + RMobilePhoneBookStore bookStore; + + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + + RBuf8 data; + CleanupClosePushL(data); + + CStorageInfoData storageData; + + storageData.iADNNumOfEntries = 1; + storageData.iADNTextLengthMax = 2; + storageData.iADNNumberLengthMax = 3; + storageData.iSNENumOfEntries = 4; + storageData.iSNENumOfEntriesPerEntry = 5; + storageData.iSNETextLengthMax = 6; + storageData.iEmailNumOfEntries = 7; + storageData.iEmailNumOfEntriesPerEntry = 8; + storageData.iEmailTextLengthMax = 9; + storageData.iFDNNumOfEntries = 10; + storageData.iFDNTextLengthMax = 11; + storageData.iFDNNumberLengthMax = 12; + storageData.iSDNNumOfEntries = 13; + storageData.iSDNTextLengthMax = 14; + storageData.iSDNNumberLengthMax = 15; + storageData.iVMBXNumOfEntries = 16; + storageData.iVMBXTextLengthMax = 17; + storageData.iVMBXNumberLengthMax = 18; + storageData.iMSISDNNumOfEntries = 19; + storageData.iMSISDNTextLengthMax = 20; + storageData.iMSISDNNumberLengthMax = 21; + storageData.iGRPNumOfEntriesPerEntry = 22; + storageData.iANRNumOfEntries = 23; + storageData.iANRNumOfEntriesPerEntry = 24; + storageData.iANRNumLengthMax = 25; + storageData.iMBDNNumOfEntries = 26; + storageData.iMBDNTextLengthMax = 27; + storageData.iMBDNNumberLengthMax = 28; + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreAndName(name, storageData); + retStoreAndName.SerialiseL(data); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data, 0); + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + customAPI.Get3GPBInfo(requestStatus, info); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE( storageData.iEmailTextLengthMax == info.iMaxLenEmail); + ASSERT_TRUE( storageData.iSNETextLengthMax == info.iMaxLenSne); + ASSERT_TRUE( storageData.iANRNumLengthMax == info.iMaxLenAnr); + ASSERT_TRUE( -1 == info.iMaxLenGroupName); + ASSERT_TRUE( storageData.iEmailNumOfEntriesPerEntry == info.iMaxNumEmail); + ASSERT_TRUE( storageData.iSNENumOfEntriesPerEntry == info.iMaxNumSne); + ASSERT_TRUE( storageData.iANRNumOfEntriesPerEntry == info.iMaxNumAnr); + ASSERT_TRUE( storageData.iGRPNumOfEntriesPerEntry == info.iMaxNumGroupName); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkModes +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkModes +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSystemNetworkModes0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TUint32 modes; + TBool useRats(EFalse); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< TBool > ltsyData(useRats); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData, KErrNotSupported); + + customAPI.GetSystemNetworkModes(requestStatus, modes); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); + + const TUint32 compModes = 0xFFFF; + TPckg modesPckg(compModes); + + iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrGeneral, modesPckg); + + customAPI.GetSystemNetworkModes(requestStatus, modes); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetSystemNetworkModes when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); + iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg); + + customAPI.GetSystemNetworkModes(requestStatus, modes); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(compModes, modes); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetSystemNetworkModes + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetSystemNetworkModes +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetSystemNetworkModes +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSystemNetworkModes0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TUint32 modes; + TBool useRats(EFalse); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< TBool > ltsyData(useRats); + ltsyData.SerialiseL(expectData); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetSystemNetworkModes + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); + + const TUint32 compModes = 0xFFFF; + TPckg modesPckg(compModes); + + iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg, 20); + + customAPI.GetSystemNetworkModes(requestStatus, modes); + + customAPI.CancelAsyncRequest(ECustomGetSystemNetworkModesIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetSystemNetworkModes +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetSystemNetworkModes +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSystemNetworkModes0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + TUint32 modes; + TUint32 modes2; + + TBool useRats(EFalse); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< TBool > ltsyData(useRats); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetSystemNetworkModes + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); + + customAPI.GetSystemNetworkModes(requestStatus, modes); + customAPI2.GetSystemNetworkModes(requestStatus2, modes2); + + const TUint32 compModes = 0xFFFF; + TPckg modesPckg(compModes); + + iMockLTSY.CompleteL( ECustomGetSystemNetworkModesIPC, KErrNone, modesPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(compModes, modes); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNM-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkModes with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkModes and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSystemNetworkModes0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TUint32 modes; + TBool useRats(EFalse); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< TBool > ltsyData(useRats); + ltsyData.SerialiseL(expectData); + + iMockLTSY.ExpectL( ECustomGetSystemNetworkModesIPC, expectData); + + customAPI.GetSystemNetworkModes(requestStatus, modes); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 405201); + //Request ECustomGetSystemNetworkModesIPC is not completed by timeout. + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkMode +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkMode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSystemNetworkMode0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); + RMmCustomAPI::TNetworkModeCaps expCaps(caps); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData, KErrNotSupported); + + customAPI.SetSystemNetworkMode(requestStatus, caps); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); + iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrGeneral); + + customAPI.SetSystemNetworkMode(requestStatus, caps); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SetSystemNetworkMode when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); + iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone); + + customAPI.SetSystemNetworkMode(requestStatus, caps); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SetSystemNetworkMode + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetSystemNetworkMode +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SetSystemNetworkMode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSystemNetworkMode0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); + RMmCustomAPI::TNetworkModeCaps expCaps(caps); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::ECustomSetSystemNetworkModeIPC + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); + iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone, 20); + + customAPI.SetSystemNetworkMode(requestStatus, caps); + + customAPI.CancelAsyncRequest(ECustomSetSystemNetworkModeIPC); + + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetSystemNetworkMode +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetSystemNetworkMode +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSystemNetworkMode0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); + RMmCustomAPI::TNetworkModeCaps caps2(RMmCustomAPI::KCapsNetworkModeUmts); + RMmCustomAPI::TNetworkModeCaps expCaps(caps); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); + ltsyData.SerialiseL(expectData); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::SetSystemNetworkMode + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData, KErrNone); + + customAPI.SetSystemNetworkMode(requestStatus, caps); + customAPI2.SetSystemNetworkMode(requestStatus2, caps2); + + iMockLTSY.CompleteL( ECustomSetSystemNetworkModeIPC, KErrNone); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNM-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkMode with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkMode and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSystemNetworkMode0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TNetworkModeCaps caps(RMmCustomAPI::KCapsNetworkModeGsm); + RMmCustomAPI::TNetworkModeCaps expCaps(caps); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TMockLtsyData1< RMmCustomAPI::TNetworkModeCaps > ltsyData(expCaps); + ltsyData.SerialiseL(expectData); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 405302); + //When testing RMmCustomAPI::SetSystemNetworkMode on timeout request ECustomSetSystemNetworkModeIPC + // is not completed. Test is aborted by testexecute. + + // test is stopped because otherwise it blockes the next test + ASSERT_TRUE(EFalse); + + iMockLTSY.ExpectL( ECustomSetSystemNetworkModeIPC, expectData); + + customAPI.SetSystemNetworkMode(requestStatus, caps); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCurrentSystemNetworkModes +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetCurrentSystemNetworkModes +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TUint32 modes; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC, KErrNotSupported); + + customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); + + const TUint32 compModes = 0xFFFF; + TPckg modesPckg(compModes); + + iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrGeneral, modesPckg); + + customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetCurrentSystemNetworkModes when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); + iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg); + + customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(compModes, modes); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetCurrentSystemNetworkModes + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetCurrentSystemNetworkModes +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetCurrentSystemNetworkModes +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TUint32 modes; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetCurrentSystemNetworkModes + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); + + const TUint32 compModes = 0xFFFF; + TPckg modesPckg(compModes); + + iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg, 20); + + customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); + + customAPI.CancelAsyncRequest(ECustomGetCurrentSystemNetworkModesIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetCurrentSystemNetworkModes +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetCurrentSystemNetworkModes +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + TUint32 modes; + TUint32 modes2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetCurrentSystemNetworkModes + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone); + + customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); + customAPI2.GetCurrentSystemNetworkModes(requestStatus2, modes2); + + const TUint32 compModes = 0xFFFF; + TPckg modesPckg(compModes); + + iMockLTSY.CompleteL( ECustomGetCurrentSystemNetworkModesIPC, KErrNone, modesPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCSNM-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCurrentSystemNetworkModes with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetCurrentSystemNetworkModes and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCurrentSystemNetworkModes0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + TUint32 modes; + + iMockLTSY.ExpectL( ECustomGetCurrentSystemNetworkModesIPC); + + customAPI.GetCurrentSystemNetworkModes(requestStatus, modes); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 405401); + //Request ECustomGetCurrentSystemNetworkModesIPC is not completed by timeout. + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOn +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::PowerSimOn +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOn0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOnIPC, KErrNotSupported); + + customAPI.PowerSimOn(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOnIPC); + + iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrGeneral); + + customAPI.PowerSimOn(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::PowerSimOn when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOnIPC); + iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone); + + customAPI.PowerSimOn(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::PowerSimOn + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::PowerSimOn +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::PowerSimOn +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOn0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::PowerSimOn + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOnIPC); + iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone, 20); + + customAPI.PowerSimOn(requestStatus); + + customAPI.CancelAsyncRequest(ECustomPowerSimOnIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::PowerSimOn +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::PowerSimOn +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOn0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::PowerSimOn + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOnIPC, KErrNone); + + customAPI.PowerSimOn(requestStatus); + customAPI2.PowerSimOn(requestStatus2); + + iMockLTSY.CompleteL( ECustomPowerSimOnIPC, KErrNone); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSON-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOn with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::PowerSimOn and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOn0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + iMockLTSY.ExpectL( ECustomPowerSimOnIPC); + + customAPI.PowerSimOn(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOff +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::PowerSimOff +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOff0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOffIPC, KErrNotSupported); + + customAPI.PowerSimOff(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOffIPC); + + iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrGeneral); + + customAPI.PowerSimOff(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::PowerSimOff when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOffIPC); + iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone); + + customAPI.PowerSimOff(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::PowerSimOff + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::PowerSimOff +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::PowerSimOff +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOff0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::PowerSimOff + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOffIPC); + iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone, 20); + + customAPI.PowerSimOff(requestStatus); + + customAPI.CancelAsyncRequest(ECustomPowerSimOffIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::PowerSimOff +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::PowerSimOff +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOff0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::PowerSimOff + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomPowerSimOffIPC, KErrNone); + + customAPI.PowerSimOff(requestStatus); + customAPI2.PowerSimOff(requestStatus2); + + iMockLTSY.CompleteL( ECustomPowerSimOffIPC, KErrNone); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCPSOF-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::PowerSimOff with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::PowerSimOff and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestPowerSimOff0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + iMockLTSY.ExpectL( ECustomPowerSimOffIPC); + + customAPI.PowerSimOff(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SimWarmReset +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SimWarmReset +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSimWarmReset0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSimWarmResetIPC, KErrNotSupported); + + customAPI.SimWarmReset(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSimWarmResetIPC); + + iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrGeneral); + + customAPI.SimWarmReset(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SimWarmReset when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSimWarmResetIPC); + iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone); + + customAPI.SimWarmReset(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SimWarmReset + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SimWarmReset +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SimWarmReset +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSimWarmReset0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SimWarmReset + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSimWarmResetIPC); + iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone, 20); + + customAPI.SimWarmReset(requestStatus); + + customAPI.CancelAsyncRequest(ECustomSimWarmResetIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SimWarmReset +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SimWarmReset +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSimWarmReset0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::SimWarmResetTR + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSimWarmResetIPC, KErrNone); + + customAPI.SimWarmReset(requestStatus); + customAPI2.SimWarmReset(requestStatus2); + + iMockLTSY.CompleteL( ECustomSimWarmResetIPC, KErrNone); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSWR-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SimWarmReset with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SimWarmReset and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSimWarmReset0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + iMockLTSY.ExpectL( ECustomSimWarmResetIPC); + + customAPI.SimWarmReset(requestStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetATR +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetATR +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetATR0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> atr; + TBuf8<32> expAtr(atr); + TDesC8* ptr = &expAtr; + + TMockLtsyData1< TDesC8* > ltsyData(ptr); + ltsyData.SerialiseL(expData); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNotSupported); + + customAPI.GetATR(requestStatus, atr); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetATRIPC, expData); + + _LIT8(KAtr, "ATRATRATR"); + + iMockLTSY.CompleteL( ECustomGetATRIPC, KErrGeneral, KAtr); + + customAPI.GetATR(requestStatus, atr); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetATR when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetATRIPC, expData); + iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); + + customAPI.GetATR(requestStatus, atr); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, atr.Compare(KAtr)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetATR + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetATR +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetATR +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetATR0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> atr; + TBuf8<32> expAtr(atr); + TDesC8* ptr = &expAtr; + + TMockLtsyData1< TDesC8* > ltsyData(ptr); + ltsyData.SerialiseL(expData); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetATR + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); + + _LIT8(KAtr, "ATRATRATR"); + + iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr, 20); + + customAPI.GetATR(requestStatus, atr); + + customAPI.CancelAsyncRequest(ECustomGetATRIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetATR with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetATR with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetATR0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<1> atr; + TBuf8<1> expAtr(atr); + TDesC8* ptr = &expAtr; + + TMockLtsyData1< TDesC8* > ltsyData(ptr); + ltsyData.SerialiseL(expData); + + iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); + + _LIT8(KAtr, "ATRATRATR"); + + iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); + + customAPI.GetATR(requestStatus, atr); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrOverflow, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetATR +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetATR +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetATR0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> atr; + TBuf8<32> atr2; + TBuf8<32> expAtr(atr); + TDesC8* ptr = &expAtr; + + TMockLtsyData1< TDesC8* > ltsyData(ptr); + ltsyData.SerialiseL(expData); + + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetATR + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); + + customAPI.GetATR(requestStatus, atr); + customAPI2.GetATR(requestStatus2, atr2); + + _LIT8(KAtr, "ATRATRATR"); + + iMockLTSY.CompleteL( ECustomGetATRIPC, KErrNone, KAtr); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGATR-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetATR with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetATR and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetATR0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RBuf8 expData; + CleanupClosePushL(expData); + + TBuf8<32> atr; + TBuf8<32> expAtr(atr); + TDesC8* ptr = &expAtr; + + TMockLtsyData1< TDesC8* > ltsyData(ptr); + ltsyData.SerialiseL(expData); + + iMockLTSY.ExpectL( ECustomGetATRIPC, expData, KErrNone); + + customAPI.GetATR(requestStatus, atr); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSimCardReaderStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetSimCardReaderStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TSimCardReaderStatus status; + status.SetStatus(0x33); //random + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TSimCardReaderStatus expStatus(status); + RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); + + TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); + ltsyData.SerialiseL(data); + + RMmCustomAPI::TSimCardReaderStatus compStatus; + compStatus.SetStatus(0xFF); // random + TPckg compStatusPckg(compStatus); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetSimCardReaderStatus when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); + iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compStatus.GetStatus() == status.GetStatus()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C2: RMmCustomAPI::GetSimCardReaderStatus completion with zero data + //------------------------------------------------------------------------- + + status.SetStatus(0x33); + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); + iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, KNullDesC8); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(0 == status.GetStatus()); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + expStatus = status; + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data, KErrNotSupported); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + expStatus = status; + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); + + iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrGeneral, compStatusPckg); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetSimCardReaderStatus + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + status.SetStatus(0x33); //random + expStatus = status; + data.Close(); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); + + iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrGeneral, compStatusPckg); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + ASSERT_TRUE(expStatus.GetStatus() == status.GetStatus()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetSimCardReaderStatus +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetSimCardReaderStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TSimCardReaderStatus status; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + RBuf8 data; + CleanupClosePushL(data); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetSimCardReaderStatus + //------------------------------------------------------------------------- + + RMmCustomAPI::TSimCardReaderStatus expStatus(status); + RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); + + TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); + + RMmCustomAPI::TSimCardReaderStatus compStatus; + compStatus.SetStatus(0xFF); + TPckg compStatusPckg(compStatus); + + iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg, 20); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + + customAPI.CancelAsyncRequest(ECustomGetSimCardReaderStatusIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetSimCardReaderStatus +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetSimCardReaderStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetSimCardReaderStatus + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::TSimCardReaderStatus status; + + TRequestStatus requestStatus2; + RMmCustomAPI::TSimCardReaderStatus status2; + + RMmCustomAPI::TSimCardReaderStatus expStatus(status); + RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); + + TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + customAPI2.GetSimCardReaderStatus(requestStatus2, status2); + + RMmCustomAPI::TSimCardReaderStatus compStatus; + compStatus.SetStatus(0xFF); + TPckg compStatusPckg(compStatus); + + iMockLTSY.CompleteL(ECustomGetSimCardReaderStatusIPC, KErrNone, compStatusPckg, 20); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSCRS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSimCardReaderStatus with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetSimCardReaderStatus and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSimCardReaderStatus0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TSimCardReaderStatus status; + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TSimCardReaderStatus expStatus(status); + RMmCustomAPI::TSimCardReaderStatus* expStatusPtr(&expStatus); + + TMockLtsyData1< RMmCustomAPI::TSimCardReaderStatus* > ltsyData(expStatusPtr); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomGetSimCardReaderStatusIPC, data); + + customAPI.GetSimCardReaderStatus(requestStatus, status); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNSCS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifySimCardStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifySimCardStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifySimCardStatus0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TSIMCardStatus cardStatus; + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifySimCardStatus when result is not cached. + //------------------------------------------------------------------------- + RMmCustomAPI::TSIMCardStatus compStatus(RMmCustomAPI::SimCardRemoved); + TPckg compStatusPckg(compStatus); + + iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg); + + customAPI.NotifySimCardStatus(requestStatus, cardStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compStatus, cardStatus); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifySimCardStatus + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNSCS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifySimCardStatus +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifySimCardStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifySimCardStatus0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TSIMCardStatus cardStatus; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifySimCardStatus + //------------------------------------------------------------------------- + + customAPI.NotifySimCardStatus(requestStatus, cardStatus); + + RMmCustomAPI::TSIMCardStatus compStatus(RMmCustomAPI::SimCardRemoved); + TPckg compStatusPckg(compStatus); + iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg, 20); + + customAPI.CancelAsyncRequest(ECustomNotifySimCardStatusIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(2); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNSCS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifySimCardStatus +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifySimCardStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifySimCardStatus0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TSIMCardStatus cardStatus; + RMmCustomAPI::TSIMCardStatus cardStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifySimCardStatus + //------------------------------------------------------------------------- + + RMmCustomAPI::TSIMCardStatus compStatus(RMmCustomAPI::SimCardRemoved); + TPckg compStatusPckg(compStatus); + iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckg, 20); + + customAPI.NotifySimCardStatus(requestStatus, cardStatus); + customAPI2.NotifySimCardStatus(requestStatus2, cardStatus2); + + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compStatus, cardStatus); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + ASSERT_EQUALS(compStatus, cardStatus2); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // Test B: Test multiple clients requesting RMmCustomAPI::NotifySimCardStatus returning SimCardInserted + //------------------------------------------------------------------------- + + RMmCustomAPI::TSIMCardStatus compStatusB(RMmCustomAPI::SimCardInserted); + TPckg compStatusPckgB(compStatusB); + iMockLTSY.CompleteL(ECustomNotifySimCardStatusIPC, KErrNone, compStatusPckgB, 20); + + cardStatus = RMmCustomAPI::SimCardUnknowError; + cardStatus2 = RMmCustomAPI::SimCardUnknowError; + customAPI.NotifySimCardStatus(requestStatus, cardStatus); + customAPI2.NotifySimCardStatus(requestStatus2, cardStatus2); + + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compStatusB, cardStatus); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + ASSERT_EQUALS(compStatusB, cardStatus2); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetWlanSimAuthenticationData +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetWlanSimAuthenticationData +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationEapSim compSim; + // get random value + FillRandom(compSim.iSRES); + FillRandom(compSim.iKC); + TPckg compSimPckg(compSim); + + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + RMmCustomAPI::TSimAuthenticationEapSim sim; + TPckg simPckg(sim); + + // get random value + FillRandom(sim.iRandomParameters); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg, KErrNotSupported); + + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + FillRandom(sim.iRandomParameters); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compSimPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetWlanSimAuthenticationData when result is not cached. + //------------------------------------------------------------------------- + FillRandom(sim.iRandomParameters); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compSim.iSRES,sim.iSRES); + ASSERT_EQUALS(compSim.iKC, sim.iKC); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetWlanSimAuthenticationData + // from LTSY. + //------------------------------------------------------------------------- + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimPckg); + + User::WaitForRequest(mockLtsyStatus); + + AssertMockLtsyStatusL(); + //------------------------------------------------------------------------- + // Test 1 for coverage increasing + //------------------------------------------------------------------------- + RMmCustomAPI::TSimAuthenticationEapAka simAka; + TPckg simAkaPckg(simAka); + + // get random value + FillRandom(simAka.iRandomParameters); + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationEapAka compSimAka; + // get random value + FillRandom(compSimAka.iCK); + FillRandom(compSimAka.iIK); + FillRandom(compSimAka.iAUTS); + TPckg compSimAkaPckg(compSimAka); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simAkaPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimAkaPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, simAkaPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compSimAka.iCK,simAka.iCK); + ASSERT_EQUALS(compSimAka.iIK, simAka.iIK); + ASSERT_EQUALS(compSimAka.iRES, simAka.iRES); + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // Test 2 for coverage increasing + // completion of RMmCustomAPI::GetWlanSimAuthenticationData + // from LTSY with error and RMmCustomAPI::TSimAuthenticationEapAka as data + //------------------------------------------------------------------------- + FillRandom(simAka.iRandomParameters); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simAkaPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compSimAkaPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, simAkaPckg); + User::WaitForRequest(requestStatus); + + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + ASSERT_EQUALS(compSimAka.iAUTS, simAka.iAUTS); + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // Test 3 for coverage increasing + // Unsolicited completion of RMmCustomAPI::GetWlanSimAuthenticationData + // from LTSY with error + //------------------------------------------------------------------------- + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compSimPckg); + User::WaitForRequest(mockLtsyStatus); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // Test using RMmCustomAPI::TSimAuthenticationGbaBootstrap + //------------------------------------------------------------------------- + + // Data for argument + RMmCustomAPI::TSimAuthenticationGbaBootstrap bootstrap; + TPckg bootstrapPckg(bootstrap); + + // get random values and populate the packages + FillRandom(bootstrap.iRandomParameters); + FillRandom(bootstrap.iAUTN); + + // Return parameters + bootstrap.iRES.Fill(0, RMmCustomAPI::KMaxParametersLength); + bootstrap.iAUTS.Fill(0, RMmCustomAPI::KMaxParametersLength); + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationGbaBootstrap compBootstrap; + + compBootstrap.iRandomParameters = bootstrap.iRandomParameters; + compBootstrap.iAUTN = bootstrap.iAUTN; + + FillRandom(compBootstrap.iRES); + FillRandom(compBootstrap.iAUTS); + + TPckg compBootstrapPckg(compBootstrap); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, bootstrapPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compBootstrapPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, bootstrapPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compBootstrap.iRandomParameters, bootstrap.iRandomParameters); + ASSERT_EQUALS(compBootstrap.iAUTN, bootstrap.iAUTN); + ASSERT_EQUALS(compBootstrap.iAUTS, bootstrap.iAUTS); + ASSERT_EQUALS(compBootstrap.iRES, bootstrap.iRES); + + AssertMockLtsyStatusL(); + + // completion by error value + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, bootstrapPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrGeneral, compBootstrapPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, bootstrapPckg); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + + //------------------------------------------------------------------------- + // Test using RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate + //------------------------------------------------------------------------- + + RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate bsUpdate; + TPckg bsUpdatePckg(bsUpdate); + + // --- data for ExpectL --- + FillRandom(bsUpdate.iBTid); + FillRandom(bsUpdate.iKeyLifeTime); + bsUpdate.iRandomParameters.Fill(0, RMmCustomAPI::KMaxParametersLength); + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate compBsUpdate; + compBsUpdate.iBTid = bsUpdate.iBTid; + compBsUpdate.iKeyLifeTime = bsUpdate.iKeyLifeTime; + FillRandom(compBsUpdate.iRandomParameters); + TPckg compBsUpdatePckg(compBsUpdate); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, bsUpdatePckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compBsUpdatePckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, bsUpdatePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compBsUpdate.iBTid, bsUpdate.iBTid); + ASSERT_EQUALS(compBsUpdate.iKeyLifeTime, bsUpdate.iKeyLifeTime); + ASSERT_EQUALS(compBsUpdate.iRandomParameters, bsUpdate.iRandomParameters); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // Test using RMmCustomAPI::TSimAuthenticationGbaNafDerivation + //------------------------------------------------------------------------- + + RMmCustomAPI::TSimAuthenticationGbaNafDerivation naf; + FillRandom(naf.iNafId); + FillRandom(naf.iImpi); + naf.iKsExtNaf.Fill(0, RMmCustomAPI::KMaxParametersLength); + TPckg nafPckg(naf); + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationGbaNafDerivation compNaf; + // get random value + compNaf.iNafId = naf.iNafId; + compNaf.iImpi = naf.iImpi; + FillRandom(compNaf.iKsExtNaf); + TPckg compNafPckg(compNaf); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, nafPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compNafPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, nafPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compNaf.iNafId, naf.iNafId); + ASSERT_EQUALS(compNaf.iImpi, naf.iImpi); + ASSERT_EQUALS(compNaf.iKsExtNaf, naf.iKsExtNaf); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // Test using RMmCustomAPI::TSimAuthenticationMgvMskUpdate + //------------------------------------------------------------------------- + + //Initialize the data to zero + RMmCustomAPI::TSimAuthenticationMgvMskUpdate mskUpd; + mskUpd.iMikey.Fill(0, RMmCustomAPI::KMaxMikeyLength); + mskUpd.iBCASTManagement.Fill(0,RMmCustomAPI::KMaxParametersLength); + mskUpd.iParentalRating.Fill(0,RMmCustomAPI::KMaxKeyGroupIdLength); + mskUpd.iSecurityPolicyExt.Fill(0,RMmCustomAPI::KMaxParametersLength); + TPckg mskUpdPckg(mskUpd); + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationMgvMskUpdate compMskUpd; + // get random value + FillRandom(compMskUpd.iMikey); + FillRandom(compMskUpd.iBCASTManagement); + FillRandom(compMskUpd.iParentalRating); + FillRandom(compMskUpd.iSecurityPolicyExt); + TPckg compMskUpdPckg(compMskUpd); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, mskUpdPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compMskUpdPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, mskUpdPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compMskUpd.iMikey, mskUpd.iMikey); + //Added for MobileTV. + ASSERT_EQUALS(compMskUpd.iBCASTManagement, mskUpd.iBCASTManagement); + ASSERT_EQUALS(compMskUpd.iParentalRating, mskUpd.iParentalRating); + ASSERT_EQUALS(compMskUpd.iSecurityPolicyExt, mskUpd.iSecurityPolicyExt); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // Test using RMmCustomAPI::TSimAuthenticationMgvMtkGeneration + //------------------------------------------------------------------------- + + RMmCustomAPI::TSimAuthenticationMgvMtkGeneration mtkGen; + FillRandom(mtkGen.iMikey); + mtkGen.iMtkSalt.Fill(0, RMmCustomAPI::KMaxMikeyLength); + mtkGen.iBCASTManagement.Fill(0,RMmCustomAPI::KMaxParametersLength); + mtkGen.iParentalControl.Fill(0,RMmCustomAPI::KMaxKeyGroupIdLength); + mtkGen.iTrafficEncryptionKey.Fill(0,RMmCustomAPI::KMaxParametersLength); + TPckg mtkGenPckg(mtkGen); + + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationMgvMtkGeneration compMtkGen; + // get random value + compMtkGen.iMikey = mtkGen.iMikey; + FillRandom(compMtkGen.iMtkSalt); + FillRandom(compMtkGen.iBCASTManagement); + FillRandom(compMtkGen.iParentalControl); + FillRandom(compMtkGen.iTrafficEncryptionKey); + TPckg compMtkGenPckg(compMtkGen); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, mtkGenPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compMtkGenPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, mtkGenPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compMtkGen.iMikey, mtkGen.iMikey); + ASSERT_EQUALS(compMtkGen.iMtkSalt, mtkGen.iMtkSalt); + //Added for Mobile TV + ASSERT_EQUALS(compMtkGen.iBCASTManagement, mtkGen.iBCASTManagement); + ASSERT_EQUALS(compMtkGen.iParentalControl, mtkGen.iParentalControl); + ASSERT_EQUALS(compMtkGen.iTrafficEncryptionKey, mtkGen.iTrafficEncryptionKey); + + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // Test using RMmCustomAPI::TSimAuthenticationMgvMskDeletion + //------------------------------------------------------------------------- + + RMmCustomAPI::TSimAuthenticationMgvMskDeletion mskDel; + FillRandom(mskDel.iKeyDomainId); + FillRandom(mskDel.iKeyGroupIdPart); + TPckg mskDelPckg(mskDel); + + // --- data for CompleteL --- + RMmCustomAPI::TSimAuthenticationMgvMskDeletion compMskDel; + compMskDel.iKeyDomainId = mskDel.iKeyDomainId; + compMskDel.iKeyGroupIdPart = mskDel.iKeyGroupIdPart; + TPckg compMskDelPckg(compMskDel); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, mskDelPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compMskDelPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, mskDelPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(compMskDel.iKeyDomainId, mskDel.iKeyDomainId); + ASSERT_EQUALS(compMskDel.iKeyGroupIdPart, mskDel.iKeyGroupIdPart); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetWlanSimAuthenticationData +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetWlanSimAuthenticationData +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0002L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetWlanSimAuthenticationData + //------------------------------------------------------------------------- + // data for APi + RMmCustomAPI::TSimAuthenticationEapSim sim; + TPckg simPckg(sim); + // get random value + FillRandom(sim.iRandomParameters); + + // data for ExpectL + RMmCustomAPI::TSimAuthenticationEapSim expSim(sim); + TPckg expSimPckg(expSim); + + // data for Complete + RMmCustomAPI::TSimAuthenticationEapSim compSim; + FillRandom(compSim.iSRES); + FillRandom(compSim.iKC); + TPckg compSimPckg(compSim); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, expSimPckg); + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + + customAPI.CancelAsyncRequest(ECustomGetSimAuthenticationDataIPC); + + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); // customAPI + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetWlanSimAuthenticationData with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetWlanSimAuthenticationData with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + TInt wrongData (-1); // any value, but not 1 or 2 + TPckg wrongDataPckg(wrongData); + + //------------------------------------------------------------------------- + // Test wrong params, passed from LTSY to CTSY + //------------------------------------------------------------------------- + RMmCustomAPI::TSimAuthenticationEapAka simAka; + TPckg simAkaPckg(simAka); + // get random value + FillRandom(simAka.iRandomParameters); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simAkaPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrArgument, wrongDataPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, simAkaPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // Test Try to use the same Rand twice + //------------------------------------------------------------------------- + RMmCustomAPI::TSimAuthenticationEapSim sim; + TPckg simPckg(sim); + sim.iRandomParameters.Fill(0x00, RMmCustomAPI::KMaxParametersLength); + + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, simPckg); + // use this Rand first time + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + User::WaitForRequest(requestStatus); + // don't check requestStatus cause it depends on if rand_db.cur exists or not + + // use this Rand second time + // CTSY should complete request with KErrArgument + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + AssertMockLtsyStatusL(); + //------------------------------------------------------------------------- + // Test wrong params, passed to API + //------------------------------------------------------------------------- + // CTSY (CustomAPI) checks whether passed parameters are wrong. + // if they are wrong than it completes request + // and sends request with wrong parameter to LSTY !!! + + + customAPI.GetWlanSimAuthenticationData(requestStatus, wrongDataPckg); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + // Done ! + CleanupStack::PopAndDestroy (2, this); //customAPI + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetWlanSimAuthenticationData +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetWlanSimAuthenticationData +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0004L() + { + + 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(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + // data for the first APi + RMmCustomAPI::TSimAuthenticationEapAka simAka; + TPckg simPckg(simAka); + FillRandom(simAka.iRandomParameters); + + // data for the first ExpectL + RMmCustomAPI::TSimAuthenticationEapAka expSimAka(simAka); + TPckg expSimPckg(expSimAka); + + // data for the first Complete + RMmCustomAPI::TSimAuthenticationEapAka compSimAka; + TPckg compSimPckg(compSimAka); + + + // data for second APi + RMmCustomAPI::TSimAuthenticationEapSim sim2; + TPckg simPckg2(sim2); + FillRandom(sim2.iRandomParameters); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetWlanSimAuthenticationData + //------------------------------------------------------------------------- + // first request + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, expSimPckg); + iMockLTSY.CompleteL(ECustomGetSimAuthenticationDataIPC, KErrNone, compSimPckg); + + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + + // second request + customAPI2.GetWlanSimAuthenticationData(requestStatus2, simPckg2); + + // wait for the first answer + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + // wait for the second answer + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGWSAD-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetWlanSimAuthenticationData with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetWlanSimAuthenticationData and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetWlanSimAuthenticationData0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + // data for APi + RMmCustomAPI::TSimAuthenticationEapSim sim; + TPckg simPckg(sim); + FillRandom(sim.iRandomParameters); + + // data for t ExpectL + RMmCustomAPI::TSimAuthenticationEapSim expSim(sim); + TPckg expSimPckg(expSim); + + //------------------------------------------------------------------------- + // Test A: Test timeout of RMmCustomAPI::GetWlanSimAuthenticationData + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomGetSimAuthenticationDataIPC, expSimPckg); + customAPI.GetWlanSimAuthenticationData(requestStatus, simPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + // Done ! + CleanupStack::PopAndDestroy(2, this); // customAPI + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSMSR-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSimMessageStatusRead +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetSimMessageStatusRead +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSimMessageStatusRead0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + TTime time; + time.UniversalTime(); + TInt timeZone(1); + + TTime expTime(time); + TInt expTimeZone(timeZone); + + TMockLtsyData2< TTime, TInt > ltsyData(expTime, expTimeZone); + ltsyData.SerialiseL(data); + + + // Actually the function does not have any opportunity to return error value. + // Perhaps this is a design error... + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomSetSimMessageStatusReadIPC, data, KErrNotSupported); + + customAPI.SetSimMessageStatusRead(time, timeZone); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SetSimMessageStatusRead when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomSetSimMessageStatusReadIPC, data, KErrNone); + + customAPI.SetSimMessageStatusRead(time, timeZone); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneUHZIUESettings +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneUHZIUESettings +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TViagUHZIUESettings settings; + + settings.iSettings = 0xFF; + settings.iVersion = 1; + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TViagUHZIUESettings expSettings = settings; + + + TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data, KErrNotSupported); + + customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); + iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrGeneral); + + customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyRauEvent when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); + iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone); + + customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyRauEvent + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::WriteViagHomeZoneUHZIUESettings +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::WriteViagHomeZoneUHZIUESettings +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + + TRequestStatus requestStatus; + RMmCustomAPI::TViagUHZIUESettings settings; + + settings.iSettings = 0xFF; + settings.iVersion = 1; + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TViagUHZIUESettings expSettings = settings; + + + TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::WriteViagHomeZoneUHZIUESettings + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); + iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone, 20); + + customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); + + customAPI.CancelAsyncRequest(EWriteViagHomeZoneUHZIUESettingsIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::WriteViagHomeZoneUHZIUESettings +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::WriteViagHomeZoneUHZIUESettings +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0004L() + { + + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + RMmCustomAPI::TViagUHZIUESettings settings; + RMmCustomAPI::TViagUHZIUESettings settings2; + + settings.iSettings = 0xFF; + settings.iVersion = 1; + + RMmCustomAPI::TViagUHZIUESettings expSettings = settings; + + + TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::WriteViagHomeZoneUHZIUESettings + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); + iMockLTSY.CompleteL(EWriteViagHomeZoneUHZIUESettingsIPC, KErrNone, 20); + + customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); + + customAPI2.WriteViagHomeZoneUHZIUESettings(requestStatus2, settings2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWVHZUS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneUHZIUESettings with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneUHZIUESettings and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteViagHomeZoneUHZIUESettings0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TViagUHZIUESettings settings = {0, 0}; + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TViagUHZIUESettings expSettings = settings; + + + TMockLtsyData1< RMmCustomAPI::TViagUHZIUESettings > ltsyData(expSettings); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(EWriteViagHomeZoneUHZIUESettingsIPC, data); + + customAPI.WriteViagHomeZoneUHZIUESettings(requestStatus, settings); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlwaysOn +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetAlwaysOn +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlwaysOn0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + RMmCustomAPI::TSetAlwaysOnMode expMode = RMmCustomAPI::EAlwaysModeBoth; + + TMockLtsyData1 expData(expMode); + expData.SerialiseL(expectData); + + RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); + + TInt result = 0; + + TMockLtsyData1 ltsyData(result); + ltsyData.SerialiseL(data); + + iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrGeneral, data); + + customAPI.SetAlwaysOn(requestStatus, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SetAlwaysOn + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData, KErrNotSupported); + + customAPI.SetAlwaysOn(requestStatus, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SetAlwaysOn when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); + iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data); + + customAPI.SetAlwaysOn(requestStatus, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetAlwaysOn +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SetAlwaysOn +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlwaysOn0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + RMmCustomAPI::TSetAlwaysOnMode expMode = RMmCustomAPI::EAlwaysModeBoth; + + TMockLtsyData1 expData(expMode); + expData.SerialiseL(expectData); + + RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; + + TInt result = 0; + + TMockLtsyData1 ltsyData(result); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SetAlwaysOn + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); + //iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data, 20); + + customAPI.SetAlwaysOn(requestStatus, mode); + + customAPI.CancelAsyncRequest(ECustomSetAlwaysOnMode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetAlwaysOn with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetAlwaysOn with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlwaysOn0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; + + customAPI.SetAlwaysOn(requestStatus, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSAO-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetAlwaysOn +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetAlwaysOn +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetAlwaysOn0004L() + { + + 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); + + RPacketService packetService; + + OpenPacketServiceL(packetService); + CleanupClosePushL(packetService); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + RMmCustomAPI::TSetAlwaysOnMode expMode = RMmCustomAPI::EAlwaysModeBoth; + + TRequestStatus requestStatus2; + + TMockLtsyData1 expData(expMode); + expData.SerialiseL(expectData); + + RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; + RMmCustomAPI::TSetAlwaysOnMode mode2 = RMmCustomAPI::EAlwaysModeBoth; + + TInt result = 0; + + TMockLtsyData1 ltsyData(result); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomSetAlwaysOnMode, expectData); + iMockLTSY.CompleteL(ECustomSetAlwaysOnMode, KErrNone, data, 20); + + customAPI.SetAlwaysOn(requestStatus, mode); + + customAPI2.SetAlwaysOn(requestStatus2, mode2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(8, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNRE-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyRauEvent +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyRauEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyRauEvent0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyRauEvent + // from LTSY. + //------------------------------------------------------------------------- + + RMmCustomAPI::TRauEventStatus completeStatus(RMmCustomAPI::ERauEventResumed); + TPckg completePckg(completeStatus); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::TRauEventStatus status(RMmCustomAPI::ERauEventActive); + + customAPI.NotifyRauEvent(requestStatus, status); + + iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrGeneral, completePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyRauEvent when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyRauEvent(requestStatus, status); + + completeStatus = RMmCustomAPI::ERauEventResumed; + + iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(completeStatus, status); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNRE-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyRauEvent +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyRauEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyRauEvent0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyRauEvent + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::TRauEventStatus status; + + customAPI.NotifyRauEvent(requestStatus, status); + + customAPI.CancelAsyncRequest(ECustomNotifyRauEventIPC); + + RMmCustomAPI::TRauEventStatus completeStatus(RMmCustomAPI::ERauEventActive); + TPckg completePckg(completeStatus); + + iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNRE-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyRauEvent +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyRauEvent +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyRauEvent0004L() + { + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TRauEventStatus status(RMmCustomAPI::ERauEventActive); + RMmCustomAPI::TRauEventStatus status2(RMmCustomAPI::ERauEventActive); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyRauEvent + //------------------------------------------------------------------------- + + customAPI.NotifyRauEvent(requestStatus, status); + customAPI2.NotifyRauEvent(requestStatus2, status2); + + RMmCustomAPI::TRauEventStatus completeStatus(RMmCustomAPI::ERauEventResumed); + TPckg completePckg(completeStatus); + + iMockLTSY.CompleteL(ECustomNotifyRauEventIPC, KErrNone, completePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(completeStatus, status); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + ASSERT_EQUALS(completeStatus, status2); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadHSxPAStatus0001L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC, KErrNotSupported); + + customAPI.ReadHSxPAStatus(requestStatus, paStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); + + customAPI.ReadHSxPAStatus(requestStatus, paStatus); + + RMmCustomAPI::THSxPAStatus paStatusComplete(RMmCustomAPI::EHSxPAEnabled); + TPckg paStatusCompletePckg(paStatusComplete); + + iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrGeneral, paStatusCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::ReadHSxPAStatus when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); + + customAPI.ReadHSxPAStatus(requestStatus, paStatus); + + iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(paStatusComplete, paStatus); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C2: read another value + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); + + customAPI.ReadHSxPAStatus(requestStatus, paStatus); + + paStatusComplete = RMmCustomAPI::EHSxPADisabled; + + iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(paStatusComplete, paStatus); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ReadHSxPAStatus + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadHSxPAStatus0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::ReadHSxPAStatus + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); + + customAPI.ReadHSxPAStatus(requestStatus, paStatus); + + customAPI.CancelAsyncRequest(ECustomReadHSxPAStatusIPC); + + RMmCustomAPI::THSxPAStatus paStatusComplete(RMmCustomAPI::EHSxPAEnabled); + TPckg paStatusCompletePckg(paStatusComplete); + + iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + CleanupStack::PopAndDestroy(2); + + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadHSxPAStatus0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::THSxPAStatus paStatus; + RMmCustomAPI::THSxPAStatus paStatus2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::ReadHSxPAStatus + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); + + customAPI.ReadHSxPAStatus(requestStatus, paStatus); + customAPI2.ReadHSxPAStatus(requestStatus2, paStatus2); + + RMmCustomAPI::THSxPAStatus paStatusComplete(RMmCustomAPI::EHSxPAEnabled); + TPckg paStatusCompletePckg(paStatusComplete); + + iMockLTSY.CompleteL(ECustomReadHSxPAStatusIPC, KErrNone, paStatusCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(paStatusComplete, paStatus); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRHS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadHSxPAStatus with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadHSxPAStatus and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadHSxPAStatus0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus; + + iMockLTSY.ExpectL(ECustomReadHSxPAStatusIPC); + + customAPI.ReadHSxPAStatus(requestStatus, paStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::WriteHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteHSxPAStatus0001L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); + + TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); + tsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data, KErrNotSupported); + + customAPI.WriteHSxPAStatus(requestStatus, paStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); + + customAPI.WriteHSxPAStatus(requestStatus, paStatus); + + iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrGeneral); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::WriteHSxPAStatus when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); + + customAPI.WriteHSxPAStatus(requestStatus, paStatus); + + iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::WriteHSxPAStatus + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(3, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::WriteHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::WriteHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteHSxPAStatus0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); + + TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); + tsyData.SerialiseL(data); + + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::WriteHSxPAStatus + //------------------------------------------------------------------------- + iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); + + customAPI.WriteHSxPAStatus(requestStatus, paStatus); + + customAPI.CancelAsyncRequest(ECustomWriteHSxPAStatusIPC); + + iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(3); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::WriteHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::WriteHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteHSxPAStatus0004L() + { + + 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); + + RBuf8 data; + CleanupClosePushL(data); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + CleanupClosePushL(customAPI2); + customAPI2.Open(phone2); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); + + TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); + tsyData.SerialiseL(data); + + RMmCustomAPI::THSxPAStatus paStatus2(RMmCustomAPI::EHSxPAEnabled); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::WriteHSxPAStatus + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); + + customAPI.WriteHSxPAStatus(requestStatus, paStatus); + customAPI2.WriteHSxPAStatus(requestStatus2, paStatus2); + + iMockLTSY.CompleteL(ECustomWriteHSxPAStatusIPC, KErrNone); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCWHS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteHSxPAStatus with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::WriteHSxPAStatus and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestWriteHSxPAStatus0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); + + TMockLtsyData1< RMmCustomAPI::THSxPAStatus > tsyData(paStatus); + tsyData.SerialiseL(data); + + iMockLTSY.ExpectL(ECustomWriteHSxPAStatusIPC, data); + + customAPI.WriteHSxPAStatus(requestStatus, paStatus); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNHS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyHSxPAStatus0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyHSxPAStatus + // from LTSY. + //------------------------------------------------------------------------- + + RMmCustomAPI::THSxPAStatus paCompleteStatus(RMmCustomAPI::EHSxPAEnabled); + TPckg completePckg(paCompleteStatus); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); + + customAPI.NotifyHSxPAStatus(requestStatus, paStatus); + + iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrGeneral, completePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyHSxPAStatus when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyHSxPAStatus(requestStatus, paStatus); + + paCompleteStatus = RMmCustomAPI::EHSxPAEnabled; + + iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(paCompleteStatus, paStatus); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNHS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyHSxPAStatus0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyHSxPAStatus + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::THSxPAStatus paStatus; + + customAPI.NotifyHSxPAStatus(requestStatus, paStatus); + + customAPI.CancelAsyncRequest(ECustomNotifyHSxPAStatusIPC); + + RMmCustomAPI::THSxPAStatus paCompleteStatus(RMmCustomAPI::EHSxPADisabled); + TPckg completePckg(paCompleteStatus); + + iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNHS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyHSxPAStatus +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyHSxPAStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyHSxPAStatus0004L() + { + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + CleanupClosePushL(customAPI2); + customAPI2.Open(phone2); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::THSxPAStatus paStatus(RMmCustomAPI::EHSxPADisabled); + RMmCustomAPI::THSxPAStatus paStatus2(RMmCustomAPI::EHSxPADisabled); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyHSxPAStatus + //------------------------------------------------------------------------- + + customAPI.NotifyHSxPAStatus(requestStatus, paStatus); + customAPI2.NotifyHSxPAStatus(requestStatus2, paStatus2); + + RMmCustomAPI::THSxPAStatus paCompleteStatus(RMmCustomAPI::EHSxPAEnabled); + TPckg completePckg(paCompleteStatus); + + iMockLTSY.CompleteL(ECustomNotifyHSxPAStatusIPC, KErrNone, completePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(paCompleteStatus, paStatus); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + ASSERT_EQUALS(paCompleteStatus, paStatus2); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetIccCallForwardingIndicatorStatus +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetIccCallForwardingIndicatorStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TCFIndicators indi; + RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); + + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + + _LIT(KNumber, "123456789"); + indiComplete.iIndicator = 0xFF; + indiComplete.iCFNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber; + indiComplete.iCFNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; + indiComplete.iCFNumber.iTelNumber = KNumber; + + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrGeneral, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetIccCallForwardingIndicatorStatus when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); + + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(indiComplete.iIndicator, indi.iIndicator); + ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi.iCFNumber.iTypeOfNumber); + ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi.iCFNumber.iNumberPlan); + ASSERT_EQUALS(0, indi.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetIccCallForwardingIndicatorStatus + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + // here iGetIccCfStatusBootUp is true and error is set + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrGeneral, indiCompletePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + + // TEST E2: Unsolicited completion of RMmCustomAPI::GetIccCallForwardingIndicatorStatus + // from LTSY. + + // here iGetIccCfStatusBootUp is true and no error + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // TEST E3: Unsolicited completion of RMmCustomAPI::GetIccCallForwardingIndicatorStatus + // from LTSY. + + // here iGetIccCfStatusBootUp is false + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC, KErrNotSupported); + + customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetIccCallForwardingIndicatorStatus +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetIccCallForwardingIndicatorStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + // This completes request made when customAPI is opened + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); + + TRequestStatus requestStatus; + + RMmCustomAPI::TCFIndicators indi; + RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetIccCallForwardingIndicatorStatus + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); + + customAPI.CancelAsyncRequest(ECustomGetIccCallForwardingStatusIPC); + + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetIccCallForwardingIndicatorStatus with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetIccCallForwardingIndicatorStatus with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + + //------------------------------------------------------------------------- + // Test B: Test passing wrong descriptor size to parameter in + // RMmCustomAPI::GetIccCallForwardingIndicatorStatus + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + + TBuf8<1> littleBuf; + + customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, littleBuf); + + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetIccCallForwardingIndicatorStatus +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetIccCallForwardingIndicatorStatus +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0004L() + { + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + CleanupClosePushL(customAPI2); + customAPI2.Open(phone2); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TCFIndicators indi; + RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); + + RMmCustomAPI::TCFIndicators indi2; + RMmCustomAPI::TCFIndicatorsPckg indiPckg2(indi2); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetIccCallForwardingIndicatorStatus + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); + customAPI2.GetIccCallForwardingIndicatorStatus(requestStatus2, indiPckg2); + + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + + iMockLTSY.CompleteL(ECustomGetIccCallForwardingStatusIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGICFIS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetIccCallForwardingIndicatorStatus with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetIccCallForwardingIndicatorStatus and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetIccCallForwardingIndicatorStatus0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TCFIndicators indi; + RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); + + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + customAPI.GetIccCallForwardingIndicatorStatus(requestStatus, indiPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyIccCallForwardingStatusChange +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyIccCallForwardingStatusChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TCFIndicators indi; + RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); + + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + + + indiComplete.iIndicator = 0xFF; + + iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrGeneral, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyIccCallForwardingStatusChange when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); + + _LIT(KNumber, "123456789"); + indiComplete.iIndicator = 0x00; + indiComplete.iCFNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber; + indiComplete.iCFNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; + indiComplete.iCFNumber.iTelNumber = KNumber; + + iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(indiComplete.iIndicator, indi.iIndicator); + ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi.iCFNumber.iTypeOfNumber); + ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi.iCFNumber.iNumberPlan); + ASSERT_EQUALS(0, indi.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::NotifyIccCallForwardingStatusChange + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + indiComplete.iIndicator = 0xFF; + + iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyIccCallForwardingStatusChange +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyIccCallForwardingStatusChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + TRequestStatus requestStatus; + + RMmCustomAPI::TCFIndicators indi; + RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyIccCallForwardingStatusChange + //------------------------------------------------------------------------- + customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); + + customAPI.CancelAsyncRequest(ECustomNotifyIccCallForwardingStatusChangeIPC); + + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + + indiComplete.iIndicator = 0xFF; + + iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyIccCallForwardingStatusChange with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyIccCallForwardingStatusChange with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test B: Test passing wrong descriptor size to parameter in + // RMmCustomAPI::NotifyIccCallForwardingStatusChange + //------------------------------------------------------------------------- + TRequestStatus requestStatus; + + TBuf8<1> littleBuf; + + customAPI.NotifyIccCallForwardingStatusChange(requestStatus, littleBuf); + + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + + indiComplete.iIndicator = 0xFF; + + iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNICFSC-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyIccCallForwardingStatusChange +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyIccCallForwardingStatusChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyIccCallForwardingStatusChange0004L() + { + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TCFIndicators indi; + RMmCustomAPI::TCFIndicatorsPckg indiPckg(indi); + + RMmCustomAPI::TCFIndicators indi2; + RMmCustomAPI::TCFIndicatorsPckg indiPckg2(indi2); + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::NotifyIccCallForwardingStatusChange + //------------------------------------------------------------------------- + customAPI.NotifyIccCallForwardingStatusChange(requestStatus, indiPckg); + customAPI2.NotifyIccCallForwardingStatusChange(requestStatus2, indiPckg2); + + RMmCustomAPI::TCFIndicators indiComplete; + RMmCustomAPI::TCFIndicatorsPckg indiCompletePckg(indiComplete); + + _LIT(KNumber, "123456789"); + + indiComplete.iIndicator = 0xFF; + indiComplete.iCFNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber; + indiComplete.iCFNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; + indiComplete.iCFNumber.iTelNumber = KNumber; + + iMockLTSY.CompleteL(ECustomNotifyIccCallForwardingStatusChangeIPC, KErrNone, indiCompletePckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(indiComplete.iIndicator, indi.iIndicator); + ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi.iCFNumber.iTypeOfNumber); + ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi.iCFNumber.iNumberPlan); + ASSERT_EQUALS(0, indi.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + ASSERT_EQUALS(indiComplete.iIndicator, indi2.iIndicator); + ASSERT_EQUALS(indiComplete.iCFNumber.iTypeOfNumber, indi2.iCFNumber.iTypeOfNumber); + ASSERT_EQUALS(indiComplete.iCFNumber.iNumberPlan, indi2.iCFNumber.iNumberPlan); + ASSERT_EQUALS(0, indi2.iCFNumber.iTelNumber.Compare(indiComplete.iCFNumber.iTelNumber)); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(5, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCellInfo +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetCellInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ + +void CCTsyCustomIPCFU::TestGetCellInfo0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo); + + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); + + RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cell); + RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); + + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCellInfoIPC, KErrNotSupported); + + customAPI.GetCellInfo(requestStatus, cellInfoPckg); + + User::WaitForRequest(requestStatus); + + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCellInfoIPC); + + customAPI.GetCellInfo(requestStatus, cellInfoPckg); + + iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrGeneral, cellPckg); + + User::WaitForRequest(requestStatus); + + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetCellInfo when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(ECustomGetCellInfoIPC); + + customAPI.GetCellInfo(requestStatus, cellInfoPckg); + + FillWithRandomData(*cell); + + iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); + + User::WaitForRequest(requestStatus); + + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo) ); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetCellInfo + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4, this); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetCellInfo +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetCellInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCellInfo0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetCellInfo + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); + + RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cell); + RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); + + iMockLTSY.ExpectL(ECustomGetCellInfoIPC); + + customAPI.GetCellInfo(requestStatus, cellInfoPckg); + + customAPI.CancelAsyncRequest(ECustomGetCellInfoIPC); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCellInfo with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetCellInfo with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCellInfo0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test B: Test passing wrong descriptor size to parameter in + // RMmCustomAPI::GetCellInfo + //------------------------------------------------------------------------- + TRequestStatus requestStatus; + TBuf8<1> littleBuf; + + customAPI.GetCellInfo(requestStatus, littleBuf); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetCellInfo +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetCellInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCellInfo0004L() + { + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); + RMmCustomAPI::TMmCellInfo* cellInfo2 = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo2); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg2(*cellInfo2); + + iMockLTSY.ExpectL(ECustomGetCellInfoIPC); + + customAPI.GetCellInfo(requestStatus, cellInfoPckg); + customAPI2.GetCellInfo(requestStatus2, cellInfoPckg2); + + RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cell); + RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); + + iMockLTSY.CompleteL(ECustomGetCellInfoIPC, KErrNone, cellPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(8, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGCI2-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetCellInfo with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetCellInfo and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetCellInfo0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); + + iMockLTSY.ExpectL(ECustomGetCellInfoIPC); + + customAPI.GetCellInfo(requestStatus, cellInfoPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + } + + + +void CCTsyCustomIPCFU::FillWithRandomData( RMmCustomAPI::TMmCellInfo &aCell, TInt aRnd) const + { + + aCell.iMode = RMmCustomAPI::TMmCellInfo::EGSM; + aCell.iGsmCellInfo.iTA = 100; + for( TInt i = 0; i CTSY + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); + + customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); + + iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrGeneral, cellPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::NotifyCellInfoChange when result is not cached. + //------------------------------------------------------------------------- + + customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); + + iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo) ); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(4, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::NotifyCellInfoChange +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::NotifyCellInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyCellInfoChange0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::NotifyCellInfoChange + //------------------------------------------------------------------------- + + TRequestStatus requestStatus; + RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); + + customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); + + customAPI.CancelAsyncRequest(ECustomNotifyCellInfoChangeIPC); + + RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cell); + RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); + + iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg, 10); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyCellInfoChange with bad parameter data +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::NotifyCellInfoChange with bad parameter data +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyCellInfoChange0003L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + //------------------------------------------------------------------------- + // Test B: Test passing wrong descriptor size to parameter in + // RMmCustomAPI::NotifyCellInfoChange + //------------------------------------------------------------------------- + TRequestStatus requestStatus; + TBuf8<1> littleBuf; + + customAPI.NotifyCellInfoChange(requestStatus, littleBuf); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::NotifyCellInfoChange +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::NotifyCellInfoChange +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestNotifyCellInfoChange0004L() + { + + 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); + + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + RMmCustomAPI::TMmCellInfo* cellInfo = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg(*cellInfo); + RMmCustomAPI::TMmCellInfo* cellInfo2 = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cellInfo2); + RMmCustomAPI::TMmCellInfoPckg cellInfoPckg2(*cellInfo2); + + customAPI.NotifyCellInfoChange(requestStatus, cellInfoPckg); + customAPI2.NotifyCellInfoChange(requestStatus2, cellInfoPckg2); + + RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo; + CleanupStack::PushL(cell); + RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell); + + FillWithRandomData(*cell); + + iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo) ); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + ASSERT_TRUE( TComparator::IsEqual(*cell, *cellInfo2) ); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(8, this); + + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkBand +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkBand +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ + +void CCTsyCustomIPCFU::TestGetSystemNetworkBand0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TBandSelection band; + RMmCustomAPI::TNetworkModeCaps mode; + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetBandSelectionIPC, KErrNotSupported); + + customAPI.GetSystemNetworkBand(requestStatus, band, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); + + RMmCustomAPI::TBandSelection compBand = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps compMode = RMmCustomAPI::KCapsNetworkModeGsm; + + TMockLtsyData2 + ltsyData(compBand, compMode); + ltsyData.SerialiseL(completeData); + + iMockLTSY.CompleteL(ECustomGetBandSelectionIPC, KErrGeneral, completeData); + + customAPI.GetSystemNetworkBand(requestStatus, band, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::GetSystemNetworkBand when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); + iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData); + + customAPI.GetSystemNetworkBand(requestStatus, band, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compBand == band); + ASSERT_TRUE(compMode == mode); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::GetSystemNetworkBand + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); // customAPI, completeData, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::GetSystemNetworkBand +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::GetSystemNetworkBand +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSystemNetworkBand0002L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TBandSelection band; + RMmCustomAPI::TNetworkModeCaps mode; + + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::GetSystemNetworkBand + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); + + + RMmCustomAPI::TBandSelection compBand = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps compMode = RMmCustomAPI::KCapsNetworkModeGsm; + + TMockLtsyData2 + ltsyData(compBand, compMode); + ltsyData.SerialiseL(completeData); + + customAPI.GetSystemNetworkBand(requestStatus, band, mode); + + customAPI.CancelAsyncRequest(ECustomGetBandSelectionIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); // customAPI, completeData, this + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::GetSystemNetworkBand +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::GetSystemNetworkBand +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSystemNetworkBand0004L() + { + + 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); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TBandSelection band; + RMmCustomAPI::TNetworkModeCaps mode; + + RMmCustomAPI::TBandSelection band2; + RMmCustomAPI::TNetworkModeCaps mode2; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetSystemNetworkBand + //------------------------------------------------------------------------- + + RMmCustomAPI::TBandSelection compBand = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps compMode = RMmCustomAPI::KCapsNetworkModeGsm; + + TMockLtsyData2 + ltsyData(compBand, compMode); + ltsyData.SerialiseL(completeData); + + iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); + iMockLTSY.CompleteL( ECustomGetBandSelectionIPC, KErrNone, completeData, 20); + + customAPI.GetSystemNetworkBand(requestStatus, band, mode); + + customAPI2.GetSystemNetworkBand(requestStatus2, band2, mode2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_TRUE(compBand == band); + ASSERT_TRUE(compMode == mode); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCGSNB-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetSystemNetworkBand with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetSystemNetworkBand and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetSystemNetworkBand0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TBandSelection band; + RMmCustomAPI::TNetworkModeCaps mode; + + iMockLTSY.ExpectL( ECustomGetBandSelectionIPC); + + customAPI.GetSystemNetworkBand(requestStatus, band, mode); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2); // customAPI, this + + } + + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkBand +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkBand +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ + +void CCTsyCustomIPCFU::TestSetSystemNetworkBand0001L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + + RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; + + TMockLtsyData2 + ltsyData(band, mode); + ltsyData.SerialiseL(data); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data, KErrNotSupported); + + customAPI.SetSystemNetworkBand(requestStatus, band, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); + + iMockLTSY.CompleteL(ECustomSetBandSelectionIPC, KErrGeneral); + + customAPI.SetSystemNetworkBand(requestStatus, band, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::SetSystemNetworkBand when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); + iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); + + customAPI.SetSystemNetworkBand(requestStatus, band, mode); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::SetSystemNetworkBand + // from LTSY. + //------------------------------------------------------------------------- + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(3, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::SetSystemNetworkBand +@SYMTestPriority High +@SYMTestActions Invokes cancelling of RMmCustomAPI::SetSystemNetworkBand +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSystemNetworkBand0002L() + { + //Test works on 9.6 but causes this step and rest of the suite to fail + //ASSERT_TRUE(EFalse); + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; + + TMockLtsyData2 + ltsyData(band, mode); + ltsyData.SerialiseL(data); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //------------------------------------------------------------------------- + // Test cancelling of RMmCustomAPI::SetSystemNetworkBand + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); + iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); + + customAPI.SetSystemNetworkBand(requestStatus, band, mode); + + customAPI.CancelAsyncRequest(ECustomSetBandSelectionIPC); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::SetSystemNetworkBand +@SYMTestPriority High +@SYMTestActions Invokes multiple client requests to RMmCustomAPI::SetSystemNetworkBand +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSystemNetworkBand0004L() + { + 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); + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; + + TMockLtsyData2 + ltsyData(band, mode); + ltsyData.SerialiseL(data); + + RMmCustomAPI::TBandSelection band2 = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps mode2 = RMmCustomAPI::KCapsNetworkModeGsm; + + //------------------------------------------------------------------------- + // Test A: Test multiple clients requesting RMmCustomAPI::GetSystemNetworkBand + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); + iMockLTSY.CompleteL( ECustomSetBandSelectionIPC, KErrNone); + + customAPI.SetSystemNetworkBand(requestStatus, band, mode); + + customAPI2.SetSystemNetworkBand(requestStatus2, band2, mode2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + User::WaitForRequest(requestStatus2); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(6, this); + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCSSNB-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::SetSystemNetworkBand with timeout +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkBand and tests for timeout +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestSetSystemNetworkBand0005L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + TRequestStatus requestStatus; + RMmCustomAPI::TBandSelection band = RMmCustomAPI::ENetworkBandUmts850; + RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeGsm; + + TMockLtsyData2 + ltsyData(band, mode); + ltsyData.SerialiseL(data); + + iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data); + + customAPI.SetSystemNetworkBand(requestStatus, band, mode); + + ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 407702); + // RMmCustomAPI::SetSystemNetworkBand is not completed by timeout. + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); + + } + + + +/** +@SYMTestCaseID BA-CTSY-CIPC-USS-0001 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::GetUSIMServiceSupport +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0001L() + { + //Setup + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + //End Setup + + // Start + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + TInt appNum = 68; // fill expected appNumber + TPckg appNumPckg(appNum); + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNotSupported); + + TRequestStatus requestStatus; + RMmCustomAPI::TAppSupport usimSupport; + usimSupport.iAppNum=appNum; + usimSupport.iSupported=ETrue; + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + // Successful call + // Expect and Complete Calls + + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); + + RMmCustomAPI::TAppSupport compData; + compData.iAppNum = 68; // fill + compData.iSupported = EFalse; //app is not supported + TPckg compPckg(compData); + iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNone, compPckg); + + //Call API + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(68, usimSupport.iAppNum); + ASSERT_TRUE(EFalse == usimSupport.iSupported); + AssertMockLtsyStatusL(); + + //Not Supported + // Expect and Complete Calls + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); + iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNotSupported, compPckg); + + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //KErrGeneral + // Expect and Complete Calls + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); + iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrGeneral, compPckg); + + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + AssertMockLtsyStatusL(); + + //End + CleanupStack::PopAndDestroy(2); //this, customAPI + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-USS-0002 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test cancel of RMmCustomAPI::GetUSIMServiceSupport +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0002L() + { + //Setup + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + //End Setup + + // Start + // Successful call + // Expect and Complete Calls + TInt appNum = 68; // fill expected appNumber + TPckg appNumPckg(appNum); + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); + + //Call API + TRequestStatus requestStatus; + RMmCustomAPI::TAppSupport usimSupport; + usimSupport.iAppNum=appNum; + usimSupport.iSupported=ETrue; + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + + customAPI.CancelAsyncRequest(ECustomGetServiceTableSupportbyApplicationIPC); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + + //End + AssertMockLtsyStatusL(); + CleanupStack::PopAndDestroy(2); //this, customAPI + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-USS-0003 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test cancel of RMmCustomAPI::GetUSIMServiceSupport +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0003L() + { + //Setup + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + //End Setup + + // Start + // Pass negative appNum + // Expect and Complete Calls + TInt appNum = -5; + TPckg appNumPckg(appNum); + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg); + + RMmCustomAPI::TAppSupport compData; + compData.iAppNum = -5; // fill + compData.iSupported = EFalse; //app is not supported + TPckg compPckg(compData); + iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNotFound, compPckg); + + + //Call API + TRequestStatus requestStatus; + RMmCustomAPI::TAppSupport usimSupport; + usimSupport.iAppNum=-5; + usimSupport.iSupported=ETrue; + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + User::WaitForRequest(requestStatus); + + ASSERT_EQUALS(KErrNotFound, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //End + CleanupStack::PopAndDestroy(2); //this, customAPI + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-USS-0004 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test multiple client requests to RMmCustomAPI::GetUSIMServiceSupport +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0004L() + { + //Setup + 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); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + RMmCustomAPI customAPI2; + OpenCustomAPILC(customAPI2, phone2, EFalse); + //End Setup + + // Start + // 1st Client Request + TInt appNum = 68; // fill expected appNumber + TPckg appNumPckg(appNum); + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNone); + + RMmCustomAPI::TAppSupport compData; + compData.iAppNum = 68; // fill + compData.iSupported = ETrue; //app is not supported + TPckg compPckg(compData); + + TRequestStatus requestStatus; + RMmCustomAPI::TAppSupport usimSupport; + usimSupport.iAppNum=appNum; + usimSupport.iSupported=EFalse; + iMockLTSY.CompleteL( ECustomGetServiceTableSupportbyApplicationIPC, KErrNone, compPckg); + + // 2nd Client Request + TInt appNum2 = 67; // fill expected appNumber + TRequestStatus requestStatus2; + RMmCustomAPI::TAppSupport usimSupport2; + usimSupport2.iAppNum=appNum2; + usimSupport2.iSupported=EFalse; + + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + customAPI2.GetUSIMServiceSupport(requestStatus2, usimSupport2); + + User::WaitForRequest(requestStatus); + User::WaitForRequest(requestStatus2); + + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + AssertMockLtsyStatusL(); + + //End + CleanupStack::PopAndDestroy(5); //this, telserver2, phone2, customAPI, customAPI2 + } + + +/** +@SYMTestCaseID BA-CTSY-CIPC-USS-0005 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test timeout for request RMmCustomAPI::GetUSIMServiceSupport +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::GetUSIMServiceSupport +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestGetUSIMServiceSupport0005L() + { + //Setup + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + //End Setup + + // Start + TInt appNum = 68; // fill expected appNumber + TPckg appNumPckg(appNum); + iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNone); + + TRequestStatus requestStatus; + RMmCustomAPI::TAppSupport usimSupport; + usimSupport.iAppNum=appNum; + usimSupport.iSupported=ETrue; + customAPI.GetUSIMServiceSupport(requestStatus, usimSupport); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrTimedOut, requestStatus.Int()); + + AssertMockLtsyStatusL(); + + //End + CleanupStack::PopAndDestroy(2); //this, customAPI + } + +// Helper methods +void CCTsyCustomIPCFU::OpenCustomAPILC(RMmCustomAPI& aCustomAPI, RMobilePhone& aPhone, TBool aExpectNeeded) + { + RBuf8 data; + CleanupClosePushL(data); + + if(aExpectNeeded) + { + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; + currentlyRetrievedCache.iCacheId = 1; + currentlyRetrievedCache.iRecordId = 0; + TMockLtsyData1 ltsyData(currentlyRetrievedCache); + ltsyData.SerialiseL(data); + iMockLTSY.ExpectL(EReadViagHomeZoneCacheIPC, data); + } + + TInt errorCode = aCustomAPI.Open(aPhone); + ASSERT_EQUALS(KErrNone, errorCode); + CleanupStack::PopAndDestroy (&data); + CleanupClosePushL(aCustomAPI); + + } + +void CCTsyCustomIPCFU::OpenCustomAPILC(RMmCustomAPI& aCustomAPI) + { + OpenCustomAPILC(aCustomAPI,iPhone); + } + + +void CCTsyCustomIPCFU::OpenLineLC(RLine& aLine, RPhone& aPhone, const TDesC& aName) + { + + TInt res = aLine.Open(aPhone, aName); + ASSERT_EQUALS(KErrNone, res); + CleanupClosePushL(aLine); + AssertMockLtsyStatusL(); + + } + + +void CCTsyCustomIPCFU::CreateAndOpenIncomingCalLC(RLine &aLine, + RCall &aCall, + TName& aCallName, + const TDesC& aLineName, + const TInt aCallId, + RMobileCall::TMobileCallStatus aMobileCallStatus, + RMobilePhone::TMobileService aMobileService + ) + { + TInt ret = CreateIncomingCallL(aLine, aCallId, aLineName, aCallName, + aMobileService, aMobileCallStatus); + ASSERT_EQUALS(KErrNone, ret); + + ret = aCall.OpenExistingCall(aLine, aCallName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(aCall); + } + +/** + * The purpose of this function is to invoke RMmCustomAPI::Open + * _before_ EMmTsyBootNotifySimStatusReadyIPC CTSY event is triggered and thus + * let the Viag Home Zome Cache to be initialized. + */ +void CCTsyCustomIPCFU::OpenPhoneAndCustomAPILC(RMmCustomAPI& aCustomAPI, TInt aNtsyError) + { + CleanupClosePushL(aCustomAPI); + TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, err); + + err=iMockLTSY.Connect(); + ASSERT_EQUALS(KErrNone, err); + + RBuf8 data; + data.CleanupClosePushL(); + RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; + currentlyRetrievedCache.iCacheId = 1; + currentlyRetrievedCache.iRecordId = 0; + TMockLtsyData1 ltsyData(currentlyRetrievedCache); + + + // 2-nd & all further EReadViagHomeZoneCacheIPC + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, aNtsyError); + if(aNtsyError != KErrNone) + { + // got error, send only once + c = KViagHomeZoneCacheIdMax + 1; + r = KViagHomeZoneCacheRecordIdMax + 1; + } + } + } + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //************************************************************ + //* Invoke RMmCustomAPI::Open prior to triggering any further + //* CTSY events including EMmTsyBootNotifySimStatusReadyIPC + //************************************************************ + err = aCustomAPI.Open(iPhone); + ASSERT_EQUALS(KErrNone, err); + + // EMmTsyBootNotifyModemStatusReadyIPC + iMockLTSY.CompleteL(EMmTsyBootNotifyModemStatusReadyIPC,KErrNone); + + // EMobilePhoneGetNetworkRegistrationStatus + iMockLTSY.ExpectL(EMobilePhoneGetNetworkRegistrationStatus); + iMockLTSY.CompleteL(EMobilePhoneGetNetworkRegistrationStatus,KErrNone,0); + + // EMmTsyBootNotifySimStatusReadyIPC + iMockLTSY.ExpectL(EMmTsyBootNotifySimStatusReadyIPC); + iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); + + + // EMobilePhoneGetHomeNetwork + RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetwork; + homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; + homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; + homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; + homeNetwork.iCountryCode = _L("234"); + homeNetwork.iCdmaSID = _L(""); + homeNetwork.iAnalogSID = _L(""); + homeNetwork.iNetworkId = _L("23499"); + homeNetwork.iDisplayTag = _L("symbian"); + homeNetwork.iShortName = _L("symbian"); + homeNetwork.iLongName = _L("symbian mobile"); + homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; + homeNetwork.iEgprsAvailableIndicator = ETrue; + homeNetwork.iHsdpaAvailableIndicator = ETrue; + TMockLtsyData1 homeNetworkData(homeNetwork); + homeNetworkData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); + iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0); + + // EMmTsyPhoneGetPin1DisableSupportedIPC + TBool pin1DisableSupport = ETrue; + TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); + data.Close(); + pin1DisableSupportData.SerialiseL(data); + iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); + iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,data,0); + + // EMmTsySimRefreshRegisterIPC + iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); + iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); + + // EMobilePhoneGetServiceTable + RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; + TMockLtsyData1 serviceTableData(serviceTable); + data.Close(); + serviceTableData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, data); + RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; + serviceTableResult.iServices1To8 = 0xFF; + serviceTableResult.iServices9To16 = 0xFF; + serviceTableResult.iServices17To24= 0xFF; + serviceTableResult.iServices25To32= 0xFF; + serviceTableResult.iServices33To40= 0xFF; + serviceTableResult.iServices41To48= 0xFF; + serviceTableResult.iServices49To56= 0xFF; + TMockLtsyData1 serviceTableResultData(serviceTableResult); + data.Close(); + serviceTableResultData.SerialiseL(data); + iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0); + + // EMobilePhoneGetALSLine + RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; + TMockLtsyData1 alsLineData(alsLine); + data.Close(); + alsLineData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetALSLine); + iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,data,0); + + // ECustomGetIccCallForwardingStatusIPC + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + // EMobilePhoneGetIccMessageWaitingIndicators + RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; + TMockLtsyData1 + indicatorsData(expectedMessageIndicators); + data.Close(); + indicatorsData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); + iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, data); + + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); + // 2-nd & all further EReadViagHomeZoneCacheIPC + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, aNtsyError); + if(aNtsyError != KErrNone) + { + // got error, send only once + c = KViagHomeZoneCacheIdMax + 1; + r = KViagHomeZoneCacheRecordIdMax + 1; + } + } + } + + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(1,&data); + } + +void CCTsyCustomIPCFU::MockPrimeEReadViagHomeZoneCacheIPCL(TInt aCacheId,TInt aRecordId,TBool aDoComplete, TBool aDoExpect, TInt aNtsyError) + { + RBuf8 data; + data.CleanupClosePushL(); + + RMmCustomAPI::TViagCacheRecordId id; + id.iCacheId = aCacheId; + id.iRecordId = aRecordId; + if(aDoExpect) + { + TMockLtsyData1 idData(id); + idData.SerialiseL(data); + iMockLTSY.ExpectL(EReadViagHomeZoneCacheIPC,data); + } + + if(aDoComplete) + { + RMmCustomAPI::TViagCacheRecordContent& content = + iViagHomeZoneCache[aCacheId - KViagHomeZoneCacheIdMin][aRecordId - KViagHomeZoneCacheRecordIdMin]; + + content.iCellId = 1000 + aCacheId; + content.iLac =2000 + aRecordId; + + TMockLtsyData1 contentData(content); + data.Close(); + contentData.SerialiseL(data); + iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,aNtsyError,data,0); + } + + CleanupStack::PopAndDestroy(1,&data); + } + +void CCTsyCustomIPCFU::AuxReadViagHomeZoneParamsL() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RMmCustomAPI customAPI; + OpenCustomAPILC(customAPI, iPhone); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + + RMmCustomAPI::TViagElement element; + _LIT(KScp, "Lenin lives!"); + _LIT(KSmsC, "revolution"); + + // Variables for call ReadViagHomeZoneParams. + RMmCustomAPI::TViagParams param; + RMmCustomAPI::TViagElements* elems = NULL; + + elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(elems); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + elems->AppendL(element); + } + + // Variables for call CompleteL. + RMmCustomAPI::TViagParams completeParam; + completeParam.iScp = KScp; + completeParam.iSmsC = KSmsC; + completeParam.iSubscribedZoneAndVersion = 17; + + RMmCustomAPI::TViagElements* completeElems; + + FillWithRandomDataLC(completeElems); + + TMockLtsyData2 + mockData2(completeParam, completeElems); + + //------------------------------------------------------------------------- + // TEST A: failure to dispatch request to LTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC, KErrNotSupported); + customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST B: failure on completion of pending request from LTSY->CTSY + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); + mockData2.SerialiseL(completeData); + iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrGeneral, completeData); + customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrGeneral, requestStatus.Int()); + + //------------------------------------------------------------------------- + // TEST C: Successful completion request of + // RMmCustomAPI::ReadViagHomeZoneParams when result is not cached. + //------------------------------------------------------------------------- + + iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); + iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); + customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, completeParam.iScp.Compare(param.iScp)); + ASSERT_EQUALS(0, completeParam.iSmsC.Compare(param.iSmsC)); + ASSERT_EQUALS(completeParam.iSubscribedZoneAndVersion, param.iSubscribedZoneAndVersion); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + ASSERT_EQUALS(completeElems->At(i).iActiveFlag , elems->At(i).iActiveFlag ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iR2 , elems->At(i).iCoordinates.iR2 ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iX , elems->At(i).iCoordinates.iX ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iY , elems->At(i).iCoordinates.iY ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iZoneId, elems->At(i).iCoordinates.iZoneId); + ASSERT_EQUALS(0, completeElems->At(i).iName.Compare(elems->At(i).iName)); + } + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ReadViagHomeZoneParams + // from LTSY. + //------------------------------------------------------------------------- + + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + CleanupStack::PopAndDestroy(5, this); + + } + +void CCTsyCustomIPCFU::AuxReadViagHomeZoneParamsForIncreasingCoverageL() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + TInt err = iPhone.Open(iTelServer, KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, err); + + err=iMockLTSY.Connect(); + ASSERT_EQUALS(KErrNone, err); + + RBuf8 data; + CleanupClosePushL(data); + + RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; + currentlyRetrievedCache.iCacheId = 1; + currentlyRetrievedCache.iRecordId = 0; + TMockLtsyData1 ltsyData(currentlyRetrievedCache); + ltsyData.SerialiseL(data); + iMockLTSY.ExpectL(EReadViagHomeZoneCacheIPC, data); + + RMmCustomAPI customAPI; + TInt errorCode = customAPI.Open(iPhone); + ASSERT_EQUALS(KErrNone, errorCode); + CleanupStack::PopAndDestroy (&data); + CleanupClosePushL(customAPI); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RBuf8 expectData; + CleanupClosePushL(expectData); + + TRequestStatus requestStatus; + + RMmCustomAPI::TViagElement element; + _LIT(KScp, "Lenin lives!"); + _LIT(KSmsC, "revolution"); + + // Variables for call ReadViagHomeZoneParams. + RMmCustomAPI::TViagParams param; + RMmCustomAPI::TViagElements* elems = NULL; + + elems = new (ELeave) RMmCustomAPI::TViagElements( RMmCustomAPI::KViagElementCount ); + CleanupStack::PushL(elems); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + elems->AppendL(element); + } + + // Variables for call CompleteL. + RMmCustomAPI::TViagParams completeParam; + completeParam.iScp = KScp; + completeParam.iSmsC = KSmsC; + completeParam.iSubscribedZoneAndVersion = 17; + + RMmCustomAPI::TViagElements* completeElems; + + FillWithRandomDataLC(completeElems); + + TMockLtsyData2 + mockData2(completeParam, completeElems); + + //------------------------------------------------------------------------- + + customAPI.ReadViagHomeZoneParams(requestStatus, param, *elems); + + //------------------------------------------------------------------------- + // There are preparations for call of function CheckViagHomezoneParamsL(). + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + // EMobilePhoneGetNetworkRegistrationStatus + iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); + + // EMobilePhoneGetHomeNetwork + iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); + RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetwork; + homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; + homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; + homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; + homeNetwork.iCountryCode = _L("234"); + homeNetwork.iCdmaSID = _L(""); + homeNetwork.iAnalogSID = _L(""); + homeNetwork.iNetworkId = _L("23499"); + homeNetwork.iDisplayTag = _L("symbian"); + homeNetwork.iShortName = _L("symbian"); + homeNetwork.iLongName = _L("symbian mobile"); + homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; + homeNetwork.iEgprsAvailableIndicator = ETrue; + homeNetwork.iHsdpaAvailableIndicator = ETrue; + TMockLtsyData1 homeNetworkData(homeNetwork); + completeData.Close(); + homeNetworkData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,completeData,0); + + // EMmTsyPhoneGetPin1DisableSupportedIPC + iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); + TBool pin1DisableSupport = ETrue; + TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); + completeData.Close(); + pin1DisableSupportData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,completeData,0); + + // EMmTsySimRefreshRegisterIPC + iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); + iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); + + // EMobilePhoneGetServiceTable + RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; + TMockLtsyData1 serviceTableData(serviceTable); + expectData.Close(); + serviceTableData.SerialiseL(expectData); + iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, expectData); + RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; + serviceTableResult.iServices1To8 = 0xFF; + serviceTableResult.iServices9To16 = 0xFF; + serviceTableResult.iServices17To24= 0xFF; + serviceTableResult.iServices25To32= 0xFF; + serviceTableResult.iServices33To40= 0xFF; + serviceTableResult.iServices41To48= 0xFF; + serviceTableResult.iServices49To56= 0xFF; + TMockLtsyData1 serviceTableResultData(serviceTableResult); + completeData.Close(); + serviceTableResultData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,completeData,0); + + // EMobilePhoneGetALSLine + iMockLTSY.ExpectL(EMobilePhoneGetALSLine); + RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; + TMockLtsyData1 alsLineData(alsLine); + completeData.Close(); + alsLineData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,completeData,0); + + // ECustomGetIccCallForwardingStatusIPC + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + // EMobilePhoneGetIccMessageWaitingIndicators + iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); + RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; + TMockLtsyData1 + indicatorsData(expectedMessageIndicators); + completeData.Close(); + indicatorsData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, completeData); + + // EReadViagHomeZoneParamsIPC + completeData.Close(); + mockData2.SerialiseL(completeData); + iMockLTSY.CompleteL(EReadViagHomeZoneParamsIPC, KErrNone, completeData); + + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); + iMockLTSY.ExpectL(EReadViagHomeZoneParamsIPC); + + // N.B. EReadViagHomeZoneParamsIPC is not expected at this point because there is an ongoing caching started by customAPI.Open() above. + + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + //------------------------------------------------------------------------- + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(0, completeParam.iScp.Compare(param.iScp)); + ASSERT_EQUALS(0, completeParam.iSmsC.Compare(param.iSmsC)); + ASSERT_EQUALS(completeParam.iSubscribedZoneAndVersion, param.iSubscribedZoneAndVersion); + + for (TInt i = 0; i < RMmCustomAPI::KViagElementCount; i++) + { + ASSERT_EQUALS(completeElems->At(i).iActiveFlag , elems->At(i).iActiveFlag ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iR2 , elems->At(i).iCoordinates.iR2 ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iX , elems->At(i).iCoordinates.iX ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iY , elems->At(i).iCoordinates.iY ); + ASSERT_EQUALS(completeElems->At(i).iCoordinates.iZoneId, elems->At(i).iCoordinates.iZoneId); + ASSERT_EQUALS(0, completeElems->At(i).iName.Compare(elems->At(i).iName)); + } + + CleanupStack::PopAndDestroy(6, this); + + } + +void CCTsyCustomIPCFU::OpenPhoneBookStoreWithSIMRefreshL(RMobilePhoneBookStore &aStore, TName &aName, RMobilePhone &aPhone, TInt aSimError) + { + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 data2; + CleanupClosePushL(data2); + + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //EMmTsyPhoneBookStoreInitIPC + TMockLtsyPhoneBookData0 storeInitData(aName); + storeInitData.SerialiseL(data); + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); + + _LIT8(KImsi,"01234567890123"); + TUint16 files = 2; + TPckg filesData(files); + iMockLTSY.CompleteL(EMmTsySimRefreshNowIPC, aSimError, filesData); + iMockLTSY.ExpectL(EMobilePhoneGetSubscriberId); + iMockLTSY.CompleteL(EMobilePhoneGetSubscriberId, KErrNone, KImsi); + + CStorageInfoData storageData; + + SetStorageInfoData(storageData); + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(aName, storageData); + retStoreInitC.SerialiseL(data2); + + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data2, 0); + + //EMmTsyPhoneBookStoreCacheIPC + CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); + CleanupStack::PushL(cache); + + TMockLtsyPhoneBookData1*> storeCacheData(aName, cache); + data2.Close(); + storeCacheData.SerialiseL(data2); + data.Close(); + storeInitData.SerialiseL(data); + + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, data); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, aSimError, data2, 0); + + //Open + TInt ret = aStore.Open(aPhone, aName); + ASSERT_EQUALS(KErrNone, ret); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(3); //data, data2, cache + + } + + +void CCTsyCustomIPCFU::FillRandom(TDes8 &aBuff) + { + TUint length = aBuff.MaxLength(); + aBuff.SetLength(0); + for (TUint i = 0; i < length; ++i) + { + TUint8 rand = (TUint8) Math::Random(); + aBuff.Append(rand); + } + } + + + + +