Latest bug-fixes with added tests.
/*
* 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);
}
}