telephonyserverplugins/common_tsy/test/component/src/cctsycustomipcfu.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 19 1f776524b15c
child 32 58332560b319
--- 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 <ctsy/mmtsy_names.h>
-#include <etel.h>
-#include <etelmm.h>
-#include "tmockltsydata.h"
-#include <ctsy/serviceapi/gsmerror.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#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 <RMmCustomAPI::TDtmfInfo> 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 <RMmCustomAPI::TDtmfInfo> 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 <RMmCustomAPI::TDtmfInfo> 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 <TInt, TDiagnosticInfoValues> 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 <TInt, TInt> 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<TBool> 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<TBool> 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<RMobileCall::TMobileCallInfoV1> 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<TInt, TBool> 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<TInt, TBool> 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<TInt, TBool> 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<TInt, TBool> 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<TInt, TBool> 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<TBool> 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<RMmCustomAPI::TCipheringInfo> 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<TBool> 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<TBool> 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<RMmCustomAPI::TCipheringInfo> 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<RMmCustomAPI::TCipheringInfo> 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<RMmCustomAPI::TCipheringInfo> 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<TBool> 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<TBool> 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<TBool> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
-		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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
-		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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagCacheRecordContent> 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 <RMmCustomAPI::TViagCacheRecordId> 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<RMobilePhone::TMobilePhoneNetworkInfoV5> homeNetworkData(homeNetwork);
-    homeNetworkData.SerialiseL(data);
-    iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork);
-    iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0);
-
-    // EMmTsyPhoneGetPin1DisableSupportedIPC
-    TBool pin1DisableSupport = ETrue;
-    TMockLtsyData1<TBool> 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<RMobilePhone::TMobilePhoneServiceTable> 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<RMobilePhone::TMobilePhoneServiceTableV1> serviceTableResultData(serviceTableResult);
-    data.Close();
-    serviceTableResultData.SerialiseL(data);
-    iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0);
-    
-    // EMobilePhoneGetALSLine
-    RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary;
-    TMockLtsyData1<RMobilePhone::TMobilePhoneALSLine> 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<RMobilePhone::TMobilePhoneMessageWaitingV1>
-                                    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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagCacheRecordId,
-					RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TViagCacheRecordId,
-					RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TViagCacheRecordId,
-					RMmCustomAPI::TViagCacheRecordContent> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagCacheRecordId,
-					RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TSsAdditionalInfo> 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<RMmCustomAPI::TSsAdditionalInfo> 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<RMmCustomAPI::TSsAdditionalInfo> 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<TInt> 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<TInt> 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<TInt> 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 <TUint8> 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<TBool> 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<TICCType> 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 <TUint8> ltsyData(codeId);
-	ltsyData.SerialiseL(data);	
-    	
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-
-    iMockLTSY.ExpectL( ECustomIsBlockedIPC, data);
-
-	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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 <TUint8, RMobilePhone::TMobilePassword> 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 <TUint8, TBool> 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 <TUint8, RMobilePhone::TMobilePassword> 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 <TUint8, TBool> 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 <TUint8, RMobilePhone::TMobilePassword> 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 <TUint8, RMobilePhone::TMobilePassword> ltsyData(codeId, secCode);
-	ltsyData.SerialiseL(data);	
-
-    iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data);    
-
-	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMobilePhone::TMobilePhoneSecurityCode> 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<RMobileCall::TMobileCallStatus> 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<TName> 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<TName> 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<TName> 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<TName> 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<TName> 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<RMobileCall::TEtel3rdPartyMobileCallParamsV1> 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<TName> 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<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
-    CleanupStack::PushL(cache);
-    
-    TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> 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<RMmCustomAPI::TOperatorNameInfo> 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<RMmCustomAPI::TOperatorNameInfo> 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<RMmCustomAPI::TOperatorNameInfo> 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<RMmCustomAPI::TOperatorNameInfo> 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<KSerialNumberLength> 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<KSerialNumberLength> 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<KSerialNumberLength> 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<KSerialNumberLength> 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<RMmCustomAPI::TTwoDigitDialSupport> 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<RMmCustomAPI::TTwoDigitDialSupport> 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<RMmCustomAPI::TTwoDigitDialSupport> compPckg(compData);
-
-    iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg, 20);
-
-    customAPI.CheckTwoDigitDialSupport(requestStatus, support);
-
-	// second client
-    iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC);
-
-    const RMmCustomAPI::TTwoDigitDialSupport compData2(RMmCustomAPI::ETwoDigitDialSupportOff);
-    TPckg<RMmCustomAPI::TTwoDigitDialSupport> 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<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TSimCbTopic>* simTopicArray =  new ( ELeave ) CArrayFixFlat
-                            <RMmCustomAPI::TSimCbTopic>(1);	
-	CleanupStack::PushL(simTopicArray);
-	
-	_LIT(KTopic, "Topic");
-	RMmCustomAPI::TSimCbTopic topic;
-	topic.iNumber = 0;
-	topic.iName.Copy(KTopic);
-
-	simTopicArray->AppendL( topic );
-	
-	TMockLtsyData1< CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* > 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<RMmCustomAPI::TSimCbTopic>* simTopicArray = NULL;	
-	
-	TMockLtsyData1< CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* > 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<RMmCustomAPI::TSimCbTopic>* simTopicArray =  new ( ELeave ) CArrayFixFlat
-                            <RMmCustomAPI::TSimCbTopic>(1);	
-	CleanupStack::PushL(simTopicArray);
-	
-	RMmCustomAPI::TSimCbTopic topic;
-	topic.iNumber = aNum;
-	topic.iName.Copy(aTopic);
-
-	simTopicArray->AppendL( topic );
-	
-	TMockLtsyData1< CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* > 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TGprsInformation> infoPckg(info);    
-
- 	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of RMmCustomAPI::NotifyEGprsInfoChange
-	// from LTSY.
- 	//-------------------------------------------------------------------------
-
-	TBool lastEdgeGprsSupport = ETrue;	
-	TMockLtsyData1 <TBool> 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<RMmCustomAPI::TGprsInformation> 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 <TBool> 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 <TBool> 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<RMmCustomAPI::TGprsInformation> infoPckg(info);    
-
-    RMmCustomAPI::TGprsInformation info2;
-    TPckg<RMmCustomAPI::TGprsInformation> infoPckg2(info2);    
-
- 	
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RMmCustomAPI::NotifyEGprsInfoChange
- 	//-------------------------------------------------------------------------
-    customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg);	
-    customAPI2.NotifyEGprsInfoChange(requestStatus2, infoPckg2);	
-
-	TBool lastEdgeGprsSupport = ETrue;	
-	TMockLtsyData1 <TBool> 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<RMmCustomAPI::TGprsInformation> 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 <TBool> 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<RMmCustomAPI::TGprsInformation> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> fileInfoPckg2(fileInfo2);	
-
-
-    RMmCustomAPI::TSimFileInfo fileInfo3;
-    fileInfo3.iPath.Fill(0x00);
-    fileInfo3.iOffSet = 0x10;
-    fileInfo3.iSize = responce2.Size();
-    RMmCustomAPI::TSimFileInfo expFileInfo3(fileInfo3);
-    TPckg<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> fileInfoPckg(fileInfo);	
-
-	TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo);	    
-    ltsyData.SerialiseL(expData);       
-
-    iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData);
-
-	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> ltPckg(ltData);
-
-	TRequestStatus mockLtsyStatus;
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
-
- 	//-------------------------------------------------------------------------
-	// Test cancelling of RMmCustomAPI::GetLifeTime
- 	//-------------------------------------------------------------------------
-
-    iMockLTSY.ExpectL( ECustomGetLifeTimeIPC);
-    
-    RMmCustomAPI::TLifeTimeData compData;
-	compData.iCaps = 0xFF;
-    TPckg<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> ltPckg(ltData);
-
-    RMmCustomAPI::TLifeTimeData ltData2;
-    TPckg<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> 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<TUint32> 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<TUint32> 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<TUint32> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<TUint32> 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<TUint32> 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<TUint32> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TSimCardReaderStatus> 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<RMmCustomAPI::TSimCardReaderStatus> 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<RMmCustomAPI::TSimCardReaderStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSimAuthenticationEapSim> compSimPckg(compSim);	
- 
-	
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-	RMmCustomAPI::TSimAuthenticationEapSim sim;
-	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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<RMmCustomAPI::TSimAuthenticationEapAka> 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<RMmCustomAPI::TSimAuthenticationEapAka> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrap> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrap> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate> 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<RMmCustomAPI::TSimAuthenticationGbaNafDerivation> nafPckg(naf);
-	
-	// --- data for CompleteL ---
-	RMmCustomAPI::TSimAuthenticationGbaNafDerivation compNaf;
-	// get random value
-	compNaf.iNafId = naf.iNafId;
-	compNaf.iImpi = naf.iImpi;
-    FillRandom(compNaf.iKsExtNaf);
-	TPckg<RMmCustomAPI::TSimAuthenticationGbaNafDerivation> 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<RMmCustomAPI::TSimAuthenticationMgvMskUpdate> mskUpdPckg(mskUpd);
-	
-	// --- data for CompleteL ---
-	RMmCustomAPI::TSimAuthenticationMgvMskUpdate compMskUpd;
-	// get random value
-    FillRandom(compMskUpd.iMikey);
-    FillRandom(compMskUpd.iBCASTManagement);
-    FillRandom(compMskUpd.iParentalRating);
-    FillRandom(compMskUpd.iSecurityPolicyExt);
-	TPckg<RMmCustomAPI::TSimAuthenticationMgvMskUpdate> 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<RMmCustomAPI::TSimAuthenticationMgvMtkGeneration> 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<RMmCustomAPI::TSimAuthenticationMgvMtkGeneration> 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<RMmCustomAPI::TSimAuthenticationMgvMskDeletion> mskDelPckg(mskDel);
-	
-	// --- data for CompleteL ---
-	RMmCustomAPI::TSimAuthenticationMgvMskDeletion compMskDel;
-	compMskDel.iKeyDomainId = mskDel.iKeyDomainId;
-	compMskDel.iKeyGroupIdPart = mskDel.iKeyGroupIdPart;
-	TPckg<RMmCustomAPI::TSimAuthenticationMgvMskDeletion> 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<RMmCustomAPI::TSimAuthenticationEapSim> simPckg(sim);	
-	// get random value
-    FillRandom(sim.iRandomParameters);
-	
-	// data for ExpectL
-	RMmCustomAPI::TSimAuthenticationEapSim expSim(sim);
-	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> expSimPckg(expSim);
-	
-	// data for Complete
-	RMmCustomAPI::TSimAuthenticationEapSim compSim;
-    FillRandom(compSim.iSRES);
-    FillRandom(compSim.iKC);
-	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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<TInt> wrongDataPckg(wrongData);	
-
-	//-------------------------------------------------------------------------
-	// Test wrong params, passed from LTSY to CTSY
- 	//------------------------------------------------------------------------- 	
-	RMmCustomAPI::TSimAuthenticationEapAka simAka;
-	TPckg<RMmCustomAPI::TSimAuthenticationEapAka> 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<RMmCustomAPI::TSimAuthenticationEapSim> 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<RMmCustomAPI::TSimAuthenticationEapAka> simPckg(simAka);	
-    FillRandom(simAka.iRandomParameters);
-	
-	// data for the first ExpectL
-	RMmCustomAPI::TSimAuthenticationEapAka expSimAka(simAka);
-	TPckg<RMmCustomAPI::TSimAuthenticationEapAka> expSimPckg(expSimAka);
-	
-	// data for the first Complete
-	RMmCustomAPI::TSimAuthenticationEapAka compSimAka;
-	TPckg<RMmCustomAPI::TSimAuthenticationEapAka> compSimPckg(compSimAka);	
-	
-	
-	// data for second APi
- 	RMmCustomAPI::TSimAuthenticationEapSim sim2;
-	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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<RMmCustomAPI::TSimAuthenticationEapSim> simPckg(sim);	
-    FillRandom(sim.iRandomParameters);
-	
-	// data for t ExpectL
-	RMmCustomAPI::TSimAuthenticationEapSim expSim(sim);
-	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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 <RMmCustomAPI::TSetAlwaysOnMode> 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 <TInt> 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 <RMmCustomAPI::TSetAlwaysOnMode> expData(expMode);
-	expData.SerialiseL(expectData);
-		
-	RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; 	
-	
-	TInt result = 0;
-
-	TMockLtsyData1 <TInt> 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 <RMmCustomAPI::TSetAlwaysOnMode> expData(expMode);
-	expData.SerialiseL(expectData);
-		
-	RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; 	
-	RMmCustomAPI::TSetAlwaysOnMode mode2 = RMmCustomAPI::EAlwaysModeBoth; 	
-	
-	TInt result = 0;
-
-	TMockLtsyData1 <TInt> 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<RMmCustomAPI::TRauEventStatus> 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<RMmCustomAPI::TRauEventStatus> 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<RMmCustomAPI::TRauEventStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::TMmCellInfo>::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 <KMaxNmrAmount; i++ )
-        {
-        aCell.iGsmCellInfo.iNmr[i].iARFCN = 3 * i + aRnd;
-        aCell.iGsmCellInfo.iNmr[i].iBSIC = 3 * i + 1 + aRnd;
-        aCell.iGsmCellInfo.iNmr[i].iRxLEV = 3 * i + 2 + aRnd;
-        }
-
-    aCell.iWcdmaCellInfo.iFrequencyInfo.iFddUL = 1 + aRnd;
-    aCell.iWcdmaCellInfo.iFrequencyInfo.iFddDL = 2 + aRnd;
-    aCell.iWcdmaCellInfo.iFrequencyInfo.iTddNt = 3 + aRnd;
-    aCell.iWcdmaCellInfo.iPrimaryScrambilingCode = 4 + aRnd;
-
-    for( TInt j = 0; j <KMaxNetworkMeasureReports; j++ )
-        {
-        aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCarrierRSSI = 5 + aRnd;
-
-        for( TInt k = 0; k <KMaxCellMeasuredResults; k++ )
-            {
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iCID = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iPrimaryCPICH = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iCpichEcN0 = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iCpichRscp = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iPathloss = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iCellParamID = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iProposedTGSN = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iPrimaryCcpchRscp = k + aRnd;
-            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iPathloss = k + aRnd;
-            for( TInt l = 0; l <KMaxTimeSlotIscpAmount; l++ )
-                {
-                aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iTimeslotISCP[l] = l + aRnd;
-                }
-            }
-        }	
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyCellInfoChange
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::NotifyCellInfoChange
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsyCustomIPCFU::TestNotifyCellInfoChange0001L()
-	{
- 
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RMmCustomAPI customAPI;
-	OpenCustomAPILC(customAPI, iPhone);
-
-
-	RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo;
-    CleanupStack::PushL(cell);
-	RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell);
-
-	// RMmCustomAPI::TMmCellInfo initialization with random data
-    FillWithRandomData(*cell);
-
- 	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of RMmCustomAPI::NotifyCellInfoChange
-	// from LTSY.
- 	//-------------------------------------------------------------------------
-
-	TRequestStatus mockLtsyStatus;
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
-	iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg);
-
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
-
-	AssertMockLtsyStatusL();
-	
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->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<RMmCustomAPI::TMmCellInfo>::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<RMmCustomAPI::TMmCellInfo>::IsEqual(*cell, *cellInfo) );
-
-	User::WaitForRequest(requestStatus2);
-	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
-	ASSERT_TRUE( TComparator<RMmCustomAPI::TMmCellInfo>::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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
-															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
-															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
-															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
-															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
-															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
-															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
-															ltsyData(band, mode);
-	ltsyData.SerialiseL(data);	
-
-    iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data);
-    
-    customAPI.SetSystemNetworkBand(requestStatus, band, mode);
-
-	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<TInt> 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<RMmCustomAPI::TAppSupport> 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<TInt> 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<TInt> appNumPckg(appNum);
-	iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg);
-	
-    RMmCustomAPI::TAppSupport compData;
-	compData.iAppNum = -5;		// fill 
-	compData.iSupported = EFalse; //app is not supported
-    TPckg<RMmCustomAPI::TAppSupport> 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<TInt> appNumPckg(appNum);
-	iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNone);
-
-    RMmCustomAPI::TAppSupport compData;
-	compData.iAppNum = 68;		// fill 
-	compData.iSupported = ETrue; //app is not supported
-    TPckg<RMmCustomAPI::TAppSupport> 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<TInt> 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 <RMmCustomAPI::TViagCacheRecordId> 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 <RMmCustomAPI::TViagCacheRecordId> 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<RMobilePhone::TMobilePhoneNetworkInfoV5> homeNetworkData(homeNetwork);
-	homeNetworkData.SerialiseL(data);
-	iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork);
-	iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0);
-
-	// EMmTsyPhoneGetPin1DisableSupportedIPC
-	TBool pin1DisableSupport = ETrue;
-	TMockLtsyData1<TBool> 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<RMobilePhone::TMobilePhoneServiceTable> 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<RMobilePhone::TMobilePhoneServiceTableV1> serviceTableResultData(serviceTableResult);
-	data.Close();
-	serviceTableResultData.SerialiseL(data);
-	iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0);
-	
-	// EMobilePhoneGetALSLine
-	RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary;
-	TMockLtsyData1<RMobilePhone::TMobilePhoneALSLine> 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<RMobilePhone::TMobilePhoneMessageWaitingV1>
-	                                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<RMmCustomAPI::TViagCacheRecordId> 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<RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
-		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 <RMmCustomAPI::TViagCacheRecordId> 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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
-		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<RMobilePhone::TMobilePhoneNetworkInfoV5> homeNetworkData(homeNetwork);
-	completeData.Close();
-	homeNetworkData.SerialiseL(completeData);
-	iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,completeData,0);
-
-	// EMmTsyPhoneGetPin1DisableSupportedIPC
- 	iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC);
-	TBool pin1DisableSupport = ETrue;
-	TMockLtsyData1<TBool> 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<RMobilePhone::TMobilePhoneServiceTable> 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<RMobilePhone::TMobilePhoneServiceTableV1> serviceTableResultData(serviceTableResult);
-	completeData.Close();
-	serviceTableResultData.SerialiseL(completeData);
-	iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,completeData,0);
-	
-	// EMobilePhoneGetALSLine
-	iMockLTSY.ExpectL(EMobilePhoneGetALSLine);
-	RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary;
-	TMockLtsyData1<RMobilePhone::TMobilePhoneALSLine> 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<RMobilePhone::TMobilePhoneMessageWaitingV1>
-	                                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<TUint16> 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<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
-    CleanupStack::PushL(cache);
-    
-    TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> 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 <ctsy/mmtsy_names.h>
+#include <etel.h>
+#include <etelmm.h>
+#include "tmockltsydata.h"
+#include <ctsy/serviceapi/gsmerror.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#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 <RMmCustomAPI::TDtmfInfo> 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 <RMmCustomAPI::TDtmfInfo> 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 <RMmCustomAPI::TDtmfInfo> 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 <TInt, TDiagnosticInfoValues> 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 <TInt, TInt> 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<TBool> 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<TBool> 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<RMobileCall::TMobileCallInfoV1> 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<TInt, TBool> 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<TInt, TBool> 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<TInt, TBool> 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<TInt, TBool> 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<TInt, TBool> 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<TBool> 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<RMmCustomAPI::TCipheringInfo> 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<TBool> 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<TBool> 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<RMmCustomAPI::TCipheringInfo> 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<RMmCustomAPI::TCipheringInfo> 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<RMmCustomAPI::TCipheringInfo> 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<TBool> 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<TBool> 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<TBool> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
+		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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
+		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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagCacheRecordContent> 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 <RMmCustomAPI::TViagCacheRecordId> 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<RMobilePhone::TMobilePhoneNetworkInfoV5> homeNetworkData(homeNetwork);
+    homeNetworkData.SerialiseL(data);
+    iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork);
+    iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0);
+
+    // EMmTsyPhoneGetPin1DisableSupportedIPC
+    TBool pin1DisableSupport = ETrue;
+    TMockLtsyData1<TBool> 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<RMobilePhone::TMobilePhoneServiceTable> 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<RMobilePhone::TMobilePhoneServiceTableV1> serviceTableResultData(serviceTableResult);
+    data.Close();
+    serviceTableResultData.SerialiseL(data);
+    iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0);
+    
+    // EMobilePhoneGetALSLine
+    RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary;
+    TMockLtsyData1<RMobilePhone::TMobilePhoneALSLine> 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<RMobilePhone::TMobilePhoneMessageWaitingV1>
+                                    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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagCacheRecordId,
+					RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TViagCacheRecordId,
+					RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TViagCacheRecordId,
+					RMmCustomAPI::TViagCacheRecordContent> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TViagCacheRecordId,
+					RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TSsAdditionalInfo> 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<RMmCustomAPI::TSsAdditionalInfo> 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<RMmCustomAPI::TSsAdditionalInfo> 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<TInt> 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<TInt> 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<TInt> 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 <TUint8> 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<TBool> 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<TICCType> 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 <TUint8> ltsyData(codeId);
+	ltsyData.SerialiseL(data);	
+    	
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+
+    iMockLTSY.ExpectL( ECustomIsBlockedIPC, data);
+
+	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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 <TUint8, RMobilePhone::TMobilePassword> 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 <TUint8, TBool> 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 <TUint8, RMobilePhone::TMobilePassword> 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 <TUint8, TBool> 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 <TUint8, RMobilePhone::TMobilePassword> 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 <TUint8, RMobilePhone::TMobilePassword> ltsyData(codeId, secCode);
+	ltsyData.SerialiseL(data);	
+
+    iMockLTSY.ExpectL( ECustomCheckSecurityCodeIPC, data);    
+
+	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMobilePhone::TMobilePhoneSecurityCode> 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<RMobileCall::TMobileCallStatus> 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<TName> 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<TName> 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<TName> 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<TName> 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<TName> 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<RMobileCall::TEtel3rdPartyMobileCallParamsV1> 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<TName> 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<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
+    CleanupStack::PushL(cache);
+    
+    TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> 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<RMmCustomAPI::TOperatorNameInfo> 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<RMmCustomAPI::TOperatorNameInfo> 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<RMmCustomAPI::TOperatorNameInfo> 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<RMmCustomAPI::TOperatorNameInfo> 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<KSerialNumberLength> 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<KSerialNumberLength> 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<KSerialNumberLength> 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<KSerialNumberLength> 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<RMmCustomAPI::TTwoDigitDialSupport> 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<RMmCustomAPI::TTwoDigitDialSupport> 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<RMmCustomAPI::TTwoDigitDialSupport> compPckg(compData);
+
+    iMockLTSY.CompleteL( ECustomCheckTwoDigitDialSupportIPC, KErrNone, compPckg, 20);
+
+    customAPI.CheckTwoDigitDialSupport(requestStatus, support);
+
+	// second client
+    iMockLTSY.ExpectL( ECustomCheckTwoDigitDialSupportIPC);
+
+    const RMmCustomAPI::TTwoDigitDialSupport compData2(RMmCustomAPI::ETwoDigitDialSupportOff);
+    TPckg<RMmCustomAPI::TTwoDigitDialSupport> 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<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TSimCbTopic>* simTopicArray =  new ( ELeave ) CArrayFixFlat
+                            <RMmCustomAPI::TSimCbTopic>(1);	
+	CleanupStack::PushL(simTopicArray);
+	
+	_LIT(KTopic, "Topic");
+	RMmCustomAPI::TSimCbTopic topic;
+	topic.iNumber = 0;
+	topic.iName.Copy(KTopic);
+
+	simTopicArray->AppendL( topic );
+	
+	TMockLtsyData1< CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* > 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<RMmCustomAPI::TSimCbTopic>* simTopicArray = NULL;	
+	
+	TMockLtsyData1< CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* > 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<RMmCustomAPI::TSimCbTopic>* simTopicArray =  new ( ELeave ) CArrayFixFlat
+                            <RMmCustomAPI::TSimCbTopic>(1);	
+	CleanupStack::PushL(simTopicArray);
+	
+	RMmCustomAPI::TSimCbTopic topic;
+	topic.iNumber = aNum;
+	topic.iName.Copy(aTopic);
+
+	simTopicArray->AppendL( topic );
+	
+	TMockLtsyData1< CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* > 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TGprsInformation> infoPckg(info);    
+
+ 	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of RMmCustomAPI::NotifyEGprsInfoChange
+	// from LTSY.
+ 	//-------------------------------------------------------------------------
+
+	TBool lastEdgeGprsSupport = ETrue;	
+	TMockLtsyData1 <TBool> 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<RMmCustomAPI::TGprsInformation> 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 <TBool> 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 <TBool> 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<RMmCustomAPI::TGprsInformation> infoPckg(info);    
+
+    RMmCustomAPI::TGprsInformation info2;
+    TPckg<RMmCustomAPI::TGprsInformation> infoPckg2(info2);    
+
+ 	
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RMmCustomAPI::NotifyEGprsInfoChange
+ 	//-------------------------------------------------------------------------
+    customAPI.NotifyEGprsInfoChange(requestStatus, infoPckg);	
+    customAPI2.NotifyEGprsInfoChange(requestStatus2, infoPckg2);	
+
+	TBool lastEdgeGprsSupport = ETrue;	
+	TMockLtsyData1 <TBool> 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<RMmCustomAPI::TGprsInformation> 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 <TBool> 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<RMmCustomAPI::TGprsInformation> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> fileInfoPckg2(fileInfo2);	
+
+
+    RMmCustomAPI::TSimFileInfo fileInfo3;
+    fileInfo3.iPath.Fill(0x00);
+    fileInfo3.iOffSet = 0x10;
+    fileInfo3.iSize = responce2.Size();
+    RMmCustomAPI::TSimFileInfo expFileInfo3(fileInfo3);
+    TPckg<RMmCustomAPI::TSimFileInfo> 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<RMmCustomAPI::TSimFileInfo> fileInfoPckg(fileInfo);	
+
+	TMockLtsyData1< RMmCustomAPI::TSimFileInfo > ltsyData(fileInfo);	    
+    ltsyData.SerialiseL(expData);       
+
+    iMockLTSY.ExpectL( ECustomReadSimFileIPC, expData);
+
+	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> ltPckg(ltData);
+
+	TRequestStatus mockLtsyStatus;
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+
+ 	//-------------------------------------------------------------------------
+	// Test cancelling of RMmCustomAPI::GetLifeTime
+ 	//-------------------------------------------------------------------------
+
+    iMockLTSY.ExpectL( ECustomGetLifeTimeIPC);
+    
+    RMmCustomAPI::TLifeTimeData compData;
+	compData.iCaps = 0xFF;
+    TPckg<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> ltPckg(ltData);
+
+    RMmCustomAPI::TLifeTimeData ltData2;
+    TPckg<RMmCustomAPI::TLifeTimeData> 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<RMmCustomAPI::TLifeTimeData> 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<TUint32> 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<TUint32> 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<TUint32> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<TUint32> 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<TUint32> 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<TUint32> 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("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<RMmCustomAPI::TSimCardReaderStatus> 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<RMmCustomAPI::TSimCardReaderStatus> 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<RMmCustomAPI::TSimCardReaderStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSIMCardStatus> 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<RMmCustomAPI::TSimAuthenticationEapSim> compSimPckg(compSim);	
+ 
+	
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+	RMmCustomAPI::TSimAuthenticationEapSim sim;
+	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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<RMmCustomAPI::TSimAuthenticationEapAka> 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<RMmCustomAPI::TSimAuthenticationEapAka> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrap> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrap> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate> 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<RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate> 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<RMmCustomAPI::TSimAuthenticationGbaNafDerivation> nafPckg(naf);
+	
+	// --- data for CompleteL ---
+	RMmCustomAPI::TSimAuthenticationGbaNafDerivation compNaf;
+	// get random value
+	compNaf.iNafId = naf.iNafId;
+	compNaf.iImpi = naf.iImpi;
+    FillRandom(compNaf.iKsExtNaf);
+	TPckg<RMmCustomAPI::TSimAuthenticationGbaNafDerivation> 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<RMmCustomAPI::TSimAuthenticationMgvMskUpdate> mskUpdPckg(mskUpd);
+	
+	// --- data for CompleteL ---
+	RMmCustomAPI::TSimAuthenticationMgvMskUpdate compMskUpd;
+	// get random value
+    FillRandom(compMskUpd.iMikey);
+    FillRandom(compMskUpd.iBCASTManagement);
+    FillRandom(compMskUpd.iParentalRating);
+    FillRandom(compMskUpd.iSecurityPolicyExt);
+	TPckg<RMmCustomAPI::TSimAuthenticationMgvMskUpdate> 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<RMmCustomAPI::TSimAuthenticationMgvMtkGeneration> 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<RMmCustomAPI::TSimAuthenticationMgvMtkGeneration> 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<RMmCustomAPI::TSimAuthenticationMgvMskDeletion> mskDelPckg(mskDel);
+	
+	// --- data for CompleteL ---
+	RMmCustomAPI::TSimAuthenticationMgvMskDeletion compMskDel;
+	compMskDel.iKeyDomainId = mskDel.iKeyDomainId;
+	compMskDel.iKeyGroupIdPart = mskDel.iKeyGroupIdPart;
+	TPckg<RMmCustomAPI::TSimAuthenticationMgvMskDeletion> 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<RMmCustomAPI::TSimAuthenticationEapSim> simPckg(sim);	
+	// get random value
+    FillRandom(sim.iRandomParameters);
+	
+	// data for ExpectL
+	RMmCustomAPI::TSimAuthenticationEapSim expSim(sim);
+	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> expSimPckg(expSim);
+	
+	// data for Complete
+	RMmCustomAPI::TSimAuthenticationEapSim compSim;
+    FillRandom(compSim.iSRES);
+    FillRandom(compSim.iKC);
+	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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<TInt> wrongDataPckg(wrongData);	
+
+	//-------------------------------------------------------------------------
+	// Test wrong params, passed from LTSY to CTSY
+ 	//------------------------------------------------------------------------- 	
+	RMmCustomAPI::TSimAuthenticationEapAka simAka;
+	TPckg<RMmCustomAPI::TSimAuthenticationEapAka> 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<RMmCustomAPI::TSimAuthenticationEapSim> 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<RMmCustomAPI::TSimAuthenticationEapAka> simPckg(simAka);	
+    FillRandom(simAka.iRandomParameters);
+	
+	// data for the first ExpectL
+	RMmCustomAPI::TSimAuthenticationEapAka expSimAka(simAka);
+	TPckg<RMmCustomAPI::TSimAuthenticationEapAka> expSimPckg(expSimAka);
+	
+	// data for the first Complete
+	RMmCustomAPI::TSimAuthenticationEapAka compSimAka;
+	TPckg<RMmCustomAPI::TSimAuthenticationEapAka> compSimPckg(compSimAka);	
+	
+	
+	// data for second APi
+ 	RMmCustomAPI::TSimAuthenticationEapSim sim2;
+	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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<RMmCustomAPI::TSimAuthenticationEapSim> simPckg(sim);	
+    FillRandom(sim.iRandomParameters);
+	
+	// data for t ExpectL
+	RMmCustomAPI::TSimAuthenticationEapSim expSim(sim);
+	TPckg<RMmCustomAPI::TSimAuthenticationEapSim> 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 <RMmCustomAPI::TSetAlwaysOnMode> 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 <TInt> 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 <RMmCustomAPI::TSetAlwaysOnMode> expData(expMode);
+	expData.SerialiseL(expectData);
+		
+	RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; 	
+	
+	TInt result = 0;
+
+	TMockLtsyData1 <TInt> 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 <RMmCustomAPI::TSetAlwaysOnMode> expData(expMode);
+	expData.SerialiseL(expectData);
+		
+	RMmCustomAPI::TSetAlwaysOnMode mode = RMmCustomAPI::EAlwaysModeBoth; 	
+	RMmCustomAPI::TSetAlwaysOnMode mode2 = RMmCustomAPI::EAlwaysModeBoth; 	
+	
+	TInt result = 0;
+
+	TMockLtsyData1 <TInt> 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<RMmCustomAPI::TRauEventStatus> 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<RMmCustomAPI::TRauEventStatus> 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<RMmCustomAPI::TRauEventStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::THSxPAStatus> 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<RMmCustomAPI::TMmCellInfo>::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 <KMaxNmrAmount; i++ )
+        {
+        aCell.iGsmCellInfo.iNmr[i].iARFCN = 3 * i + aRnd;
+        aCell.iGsmCellInfo.iNmr[i].iBSIC = 3 * i + 1 + aRnd;
+        aCell.iGsmCellInfo.iNmr[i].iRxLEV = 3 * i + 2 + aRnd;
+        }
+
+    aCell.iWcdmaCellInfo.iFrequencyInfo.iFddUL = 1 + aRnd;
+    aCell.iWcdmaCellInfo.iFrequencyInfo.iFddDL = 2 + aRnd;
+    aCell.iWcdmaCellInfo.iFrequencyInfo.iTddNt = 3 + aRnd;
+    aCell.iWcdmaCellInfo.iPrimaryScrambilingCode = 4 + aRnd;
+
+    for( TInt j = 0; j <KMaxNetworkMeasureReports; j++ )
+        {
+        aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCarrierRSSI = 5 + aRnd;
+
+        for( TInt k = 0; k <KMaxCellMeasuredResults; k++ )
+            {
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iCID = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iPrimaryCPICH = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iCpichEcN0 = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iCpichRscp = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iFddInfo.iPathloss = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iCellParamID = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iProposedTGSN = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iPrimaryCcpchRscp = k + aRnd;
+            aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iPathloss = k + aRnd;
+            for( TInt l = 0; l <KMaxTimeSlotIscpAmount; l++ )
+                {
+                aCell.iWcdmaCellInfo.iNwkMeasureReport[j].iCellMeasuredResult[k].iTddInfo.iTimeslotISCP[l] = l + aRnd;
+                }
+            }
+        }	
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-CIPC-MCNCIC2-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::NotifyCellInfoChange
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::NotifyCellInfoChange
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyCustomIPCFU::TestNotifyCellInfoChange0001L()
+	{
+ 
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RMmCustomAPI customAPI;
+	OpenCustomAPILC(customAPI, iPhone);
+
+
+	RMmCustomAPI::TMmCellInfo* cell = new(ELeave) RMmCustomAPI::TMmCellInfo;
+    CleanupStack::PushL(cell);
+	RMmCustomAPI::TMmCellInfoPckg cellPckg(*cell);
+
+	// RMmCustomAPI::TMmCellInfo initialization with random data
+    FillWithRandomData(*cell);
+
+ 	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of RMmCustomAPI::NotifyCellInfoChange
+	// from LTSY.
+ 	//-------------------------------------------------------------------------
+
+	TRequestStatus mockLtsyStatus;
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+	iMockLTSY.CompleteL(ECustomNotifyCellInfoChangeIPC, KErrNone, cellPckg);
+
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
+
+	AssertMockLtsyStatusL();
+	
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->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<RMmCustomAPI::TMmCellInfo>::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<RMmCustomAPI::TMmCellInfo>::IsEqual(*cell, *cellInfo) );
+
+	User::WaitForRequest(requestStatus2);
+	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
+	ASSERT_TRUE( TComparator<RMmCustomAPI::TMmCellInfo>::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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
+															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
+															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
+															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
+															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
+															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
+															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 <RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> 
+															ltsyData(band, mode);
+	ltsyData.SerialiseL(data);	
+
+    iMockLTSY.ExpectL( ECustomSetBandSelectionIPC, data);
+    
+    customAPI.SetSystemNetworkBand(requestStatus, band, mode);
+
+	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 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<TInt> 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<RMmCustomAPI::TAppSupport> 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<TInt> 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<TInt> appNumPckg(appNum);
+	iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg);
+	
+    RMmCustomAPI::TAppSupport compData;
+	compData.iAppNum = -5;		// fill 
+	compData.iSupported = EFalse; //app is not supported
+    TPckg<RMmCustomAPI::TAppSupport> 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<TInt> appNumPckg(appNum);
+	iMockLTSY.ExpectL( ECustomGetServiceTableSupportbyApplicationIPC, appNumPckg, KErrNone);
+
+    RMmCustomAPI::TAppSupport compData;
+	compData.iAppNum = 68;		// fill 
+	compData.iSupported = ETrue; //app is not supported
+    TPckg<RMmCustomAPI::TAppSupport> 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<TInt> 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 <RMmCustomAPI::TViagCacheRecordId> 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 <RMmCustomAPI::TViagCacheRecordId> 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<RMobilePhone::TMobilePhoneNetworkInfoV5> homeNetworkData(homeNetwork);
+	homeNetworkData.SerialiseL(data);
+	iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork);
+	iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0);
+
+	// EMmTsyPhoneGetPin1DisableSupportedIPC
+	TBool pin1DisableSupport = ETrue;
+	TMockLtsyData1<TBool> 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<RMobilePhone::TMobilePhoneServiceTable> 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<RMobilePhone::TMobilePhoneServiceTableV1> serviceTableResultData(serviceTableResult);
+	data.Close();
+	serviceTableResultData.SerialiseL(data);
+	iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0);
+	
+	// EMobilePhoneGetALSLine
+	RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary;
+	TMockLtsyData1<RMobilePhone::TMobilePhoneALSLine> 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<RMobilePhone::TMobilePhoneMessageWaitingV1>
+	                                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<RMmCustomAPI::TViagCacheRecordId> 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<RMmCustomAPI::TViagCacheRecordContent> 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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
+		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 <RMmCustomAPI::TViagCacheRecordId> 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<RMmCustomAPI::TViagParams, RMmCustomAPI::TViagElements*> 
+		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<RMobilePhone::TMobilePhoneNetworkInfoV5> homeNetworkData(homeNetwork);
+	completeData.Close();
+	homeNetworkData.SerialiseL(completeData);
+	iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,completeData,0);
+
+	// EMmTsyPhoneGetPin1DisableSupportedIPC
+ 	iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC);
+	TBool pin1DisableSupport = ETrue;
+	TMockLtsyData1<TBool> 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<RMobilePhone::TMobilePhoneServiceTable> 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<RMobilePhone::TMobilePhoneServiceTableV1> serviceTableResultData(serviceTableResult);
+	completeData.Close();
+	serviceTableResultData.SerialiseL(completeData);
+	iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,completeData,0);
+	
+	// EMobilePhoneGetALSLine
+	iMockLTSY.ExpectL(EMobilePhoneGetALSLine);
+	RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary;
+	TMockLtsyData1<RMobilePhone::TMobilePhoneALSLine> 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<RMobilePhone::TMobilePhoneMessageWaitingV1>
+	                                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<TUint16> 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<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
+    CleanupStack::PushL(cache);
+    
+    TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> 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);
+        }
+    }
+
+
+
+
+