--- a/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestnetworkcontrol.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestnetworkcontrol.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,4150 +1,4150 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Test step definitions for the NetworkControl functional unit.
-//
-//
-
-/**
- @internalTechnology
-*/
-
-#include <etelpckt.h>
-#include <pcktcs.h>
-
-#include "cctsyintegrationtestnetworkcontrol.h"
-#include "listretrievalhelpers.h"
-#include "cctsyinidata.h"
-
-
-CCTSYIntegrationTestNetworkControlBase::CCTSYIntegrationTestNetworkControlBase(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr),
- iNetworkTestHelper(*this),
- iCallControlTestHelper(*this),
- iPacketServiceTestHelper(*this)
-
-/**
- * Constructor
- */
- {
- }
-
-CCTSYIntegrationTestNetworkControlBase::~CCTSYIntegrationTestNetworkControlBase()
-/*
- * Destructor
- */
- {
- }
-
-
-/**
-* Check a preferred network entry is in the list
-*
-* @param aList The list to search.
-* @param aTarget The network to search for in aList.
-*
-* @return ETrue if aTarget is found in aList, EFalse otherwise.
-*/
-TBool CCTSYIntegrationTestNetworkControlBase::IsPreferredNetworkInListL(
- CMobilePhoneStoredNetworkList& aList,
- RMobilePhone::TMobilePreferredNetworkEntryV3& aTarget)
- {
- TInt listCount = aList.Enumerate();
-
- for( TInt i=0; i < listCount; i++ )
- {
- const RMobilePhone::TMobilePreferredNetworkEntryV3 &netInfo = aList.GetEntryL(i);
-
- if( netInfo.iAccess == aTarget.iAccess &&
- netInfo.iCountryCode == aTarget.iCountryCode &&
- netInfo.iNetworkId == aTarget.iNetworkId )
- {
- return ETrue;
- }
- }
-
- return EFalse;
-
- }
-
-void CCTSYIntegrationTestNetworkControlBase::SetAttachModeToWhenPossibleAndWaitForAttachL(RPacketService& aPacketService)
-/**
- * Attaches the phone to the packet service by setting the
- * attach mode to RPacketService::EAttachWhenPossible. Requests
- * that the phone attaches to the packet service and waits for
- * attach to complete.
- *
- * @param aPacketService Reference to packet service subsession.
- */
- {
- RPacketService::TAttachMode attachMode;
- CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
-
- TExtEtelRequestStatus notifyServiceStatusChStatus(aPacketService, EPacketNotifyStatusChange);
- CleanupStack::PushL(notifyServiceStatusChStatus);
- RPacketService::TStatus packetServiceStatus;
- aPacketService.NotifyStatusChange(notifyServiceStatusChStatus, packetServiceStatus);
-
- if(attachMode != RPacketService::EAttachWhenPossible)
- {
- CHECK_EQUALS_L(aPacketService.SetAttachMode(RPacketService::EAttachWhenPossible), KErrNone,
- _L("RPacketService::SetAttachMode returned with an error."));
- }
-
- CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
- CHECK_EQUALS_L(attachMode, RPacketService::EAttachWhenPossible, _L("RPacketService::GetAttachMode did not return EAttachWhenPossible."));
-
- // Ensure phone is attached to the packet service (RPacketService::GetStatus returns EStatusAttached).
- RPacketService::TStatus packetStatus;
- CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
-
- // Wait for phone to attach to packet service if it is not attached.
- if (packetStatus == RPacketService::EStatusUnattached)
- {
- iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
- aPacketService,
- notifyServiceStatusChStatus,
- packetServiceStatus,
- RPacketService::EStatusAttached,
- KErrNone);
- CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
- CHECK_EQUALS_L(packetStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus did not return EStatusAttached"));
- }
-
- CleanupStack::PopAndDestroy(1, ¬ifyServiceStatusChStatus);
- }
-
-/**************************************************************************/
-
-CCTSYIntegrationTestNetworkControl0001::CCTSYIntegrationTestNetworkControl0001(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0001::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0001::~CCTSYIntegrationTestNetworkControl0001()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0001::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0001
- * @SYMFssID BA/CTSY/NTWC-0001
- * @SYMTestCaseDesc Manually select home and non-home network.
-
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhonePreferredNetworks::NewL, RMobilePhone::SelectNetwork, RMobilePhone::StorePreferredNetworksListL, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkSelectionSetting, RMobilePhone::NotifyNetworkSelectionSettingChange
- * @SYMTestExpectedResults Pass - Can register onto home network and this does not change preferred network list.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify home network can be selected, non-home network cannot be selected and preferred network list does not change after manual network selection.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetDetectedNetworks | KCapsManualNetworkSelection
- TUint32 caps;
- CHECK_EQUALS_L( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
- TUint32 wantedCaps = RMobilePhone::KCapsGetDetectedNetworks | RMobilePhone::KCapsManualNetworkSelection;
- CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps") );
-
- // Ensure RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionAutomatic
- RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelSetting;
- RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelSettingPkg(netSelSetting);
-
- CHECK_EQUALS_L( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
- _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
-
- if (netSelSetting.iMethod != RMobilePhone::ENetworkSelectionAutomatic)
- {
- DEBUG_PRINTF1(_L("Setting network selection setting to auto"));
- TExtEtelRequestStatus setNetSelSettingStatus(phone, EMobilePhoneSetNetworkSelectionSetting);
- CleanupStack::PushL(setNetSelSettingStatus);
- netSelSetting.iMethod = RMobilePhone::ENetworkSelectionAutomatic;
- phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelSettingPkg );
-
- CHECK_EQUALS_L(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
- CHECK_EQUALS_L( setNetSelSettingStatus.Int(), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting returned error") );
-
- CleanupStack::Pop(&setNetSelSettingStatus);
- }
-
- CHECK_EQUALS_L( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
- _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
- CHECK_EQUALS_L( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionAutomatic,
- _L("RMobilePhone::GetNetworkSelectionSetting - TMobilePhoneNetworkSelectionV1::iMethod was not ENetworkSelectionAutomatic") );
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Get the ID and country code of the home network and store it for use later ===
- RMobilePhone::TMobilePhoneNetworkInfoV1 homeNetworkInfo;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV1> homeInfoPkg(homeNetworkInfo);
- TExtEtelRequestStatus getHomeNetworkStatus(phone, EMobilePhoneGetHomeNetwork);
- CleanupStack::PushL(getHomeNetworkStatus);
- phone.GetHomeNetwork( getHomeNetworkStatus, homeInfoPkg );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getHomeNetworkStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::GetHomeNetwork timed out") );
- ASSERT_EQUALS( getHomeNetworkStatus.Int(), KErrNone, _L("TNetworkTsyTestHelper::GetHomeNetworkL returned an error") );
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV1 returns aNetworkInfo.iNetworkId with length > 0
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV1 returns aNetworkInfo.iCountryCode with length > 0
-
- ASSERT_TRUE( homeNetworkInfo.iNetworkId.Length() > 0,
- _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iNetworkId <= 0"));
- ASSERT_TRUE( homeNetworkInfo.iCountryCode.Length() > 0,
- _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iCountryCode <= 0"));
-
- // === Put the phone into manual network selection mode. ===
-
- // Set up the RMobilePhone::NotifyNetworkSelectionSettingChange notification for later test
- TExtEtelRequestStatus notifyNetSelSettingChange( phone, EMobilePhoneNotifyNetworkSelectionSettingChange);
- CleanupStack::PushL(notifyNetSelSettingChange);
-
- RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelNotify;
- RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelNotifyPkg( netSelNotify );
- phone.NotifyNetworkSelectionSettingChange(notifyNetSelSettingChange, netSelNotifyPkg);
-
- // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting with
- // aSetting.iMethod = ENetworkSelectionManual
- TExtEtelRequestStatus setNetSelSettingStatus(phone, EMobilePhoneSetNetworkSelectionSetting);
- CleanupStack::PushL(setNetSelSettingStatus);
- netSelSetting.iMethod = RMobilePhone::ENetworkSelectionManual;
- phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelSettingPkg );
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
- ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting returned error") );
-
- // === Verify manual selection mode has been set and notification received ===
-
- // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with
- // aSetting.iMethod = ENetworkSelectionManual
- iNetworkTestHelper.WaitForMobilePhoneNotifyNetworkSelectionSettingChange(phone,
- notifyNetSelSettingChange,netSelNotify,
- RMobilePhone::ENetworkSelectionManual, KErrNone);
-
- // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
- ASSERT_EQUALS( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
- _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
- ASSERT_EQUALS( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionManual,
- _L("RMobilePhone::GetNetworkSelectionSetting returned method is not ENetworkSelectionManual") );
-
- // === Get and store (locally) the list of preferred networks for use later ===
-
- // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
- // Store list for use later.
-
- CRetrieveMobilePhonePreferredNetworksExec *netListHelper = CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
- CleanupStack::PushL( netListHelper );
- TInt err;
- CMobilePhoneStoredNetworkList* prefNetList = netListHelper->DoGetList(err);
- ASSERT_EQUALS(err, KErrNotSupported, _L("CRetrieveMobilePhonePreferredNetworks::Start failed to get the list"));
-
- // === Get List of detected networks and ensure that this list contain at least 2 networks ===
- // (the home network and an other one).
- // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a list of detected networks
- CRetrieveMobilePhoneDetectedNetworksExec *detectedNetListHelper =
- CRetrieveMobilePhoneDetectedNetworksHelper::NewL(phone,ERetrieveListV1);
-
- CMobilePhoneNetworkList *detectedNetList = detectedNetListHelper->DoGetList(err);
-
- ASSERT_EQUALS(err, KErrNotSupported, _L("CRetrieveMobilePhoneDetectedNetworks::Start failed to get the list"));
-
- // $CTSYProblem CTSY does not support EMobilePhoneGetPreferredNetworksPhase1 and
- // EMobilePhoneGetDetectedNetworksPhase1 IPCs.
- // If supported for these are added, the rest of this test can be uncommented
- // and the CleanupStack items sorted out.
-
- /*
- TInt detectedNetCount = detectedNetList->Enumerate();
- DEBUG_PRINTF2(_L("CRetrieveMobilePhoneDetectedNetworks returned list of %d entries"), detectedNetCount );
- ASSERT_TRUE(detectedNetCount >= 2, _L("CRetrieveMobilePhoneDetectedNetworks returned list of < 2 entries"));
-
- // Cycle through the items in CMobilePhoneNetworkList list and find a network which
- // is not the home network (TMobilePhoneNetworkInfoV1::iNetworkId in the list != aNetworkInfo.iNetworkId
- // from RMobilePhone::GetHomeNetwork)
- const RMobilePhone::TMobilePhoneNetworkInfoV1 *notHomeNetworkInfo = NULL;
- for( TInt i=0; i < detectedNetCount; i++ )
- {
- const RMobilePhone::TMobilePhoneNetworkInfoV1 &netInfo = detectedNetList->GetEntryL(i);
- if( netInfo.iNetworkId != homeNetworkInfo.iNetworkId )
- {
- notHomeNetworkInfo = &netInfo;
- break;
- }
- }
-
- // === When a non-home network has been found, try to select it ===
- ASSERT_TRUE( NULL != notHomeNetworkInfo, _L("Failed to find a non-home network") );
- TEST_CHECK_POINT_L( _L("Failed to find a non-home network, leaving") );
-
- // Select network with RMobilePhone::SelectNetwork with
- // aIsManual=ETrue and
- // aManualSelection.iCountry=TMobilePhoneNetworkInfoV1::iCountryCode and
- // aManualSelection.iNetwork=TMobilePhoneNetworkInfoV1::iNetworkId
-
- TExtEtelRequestStatus reqSetNetworkStatus(phone, EMobilePhoneSelectNetwork);
- CleanupStack::PushL(reqSetNetworkStatus);
- RMobilePhone::TMobilePhoneNetworkManualSelection manNetSel;
-
- manNetSel.iCountry = notHomeNetworkInfo->iCountryCode;
- manNetSel.iNetwork = notHomeNetworkInfo->iNetworkId;
- phone.SelectNetwork(reqSetNetworkStatus, ETrue, manNetSel );
-
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqSetNetworkStatus, ETimeLong ), KErrNone,
- _L("RMobilePhone::SelectNetwork timed out") );
-
- // Check this returns error != KErrorNone
- ASSERT_TRUE( KErrNone != reqSetNetworkStatus.Int(),
- _L("RMobilePhone::SelectNetwork on non home network succeeded - should fail"));
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegistrationDenied
- RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus;
- iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, registrationStatus);
- ASSERT_EQUALS(registrationStatus, RMobilePhone::ERegistrationDenied,
- _L("RMobilePhone::GetNetworkRegistrationStatus did not return ERegistrationDenied"));
-
- // === Register back on the home network ===
- // Select network with RMobilePhone::SelectNetwork with
- // aIsManual=ETrue and aManualSelection.iCountry=aNetworkInfo.iCountryCode
- // of home network and aManualSelection.iNetwork=aNetworkInfo.iNetworkId of home network
-
- manNetSel.iCountry = homeNetworkInfo.iCountryCode;
- manNetSel.iNetwork = homeNetworkInfo.iNetworkId;
- phone.SelectNetwork(reqSetNetworkStatus, ETrue, manNetSel );
-
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqSetNetworkStatus, ETimeLong ), KErrNone,
- _L("RMobilePhone::SelectNetwork timed out") );
-
- // Check this returns error != KErrorNone
- ASSERT_TRUE( KErrNone != reqSetNetworkStatus.Int(),
- _L("RMobilePhone::SelectNetwork on home network succeeded - should fail"));
-
- // === Get list of preferred networks and check it has not changed ===
- // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
-
- CRetrieveMobilePhonePreferredNetworksExec *checkNetListHelper = CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
- CleanupStack::PushL( checkNetListHelper );
-
- CMobilePhoneStoredNetworkList* checkPrefNetList = checkNetListHelper->DoGetList(err);
- ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhonePreferredNetworks::DoGetList failed to get the check list"));
-
- // Check contents of each entry in the CMobilePhoneStoredNetworkList list retrieved is the same as the
- // first preferred network list.
-
- TInt prefListCount = prefNetList->Enumerate();
- TInt checkListCount = checkPrefNetList->Enumerate();
-
- ASSERT_EQUALS( prefListCount, checkListCount, _L("Lists of preferred networks differ in size"));
-
- if( prefListCount == checkListCount )
- {
- // Lists are the same size. We assume the order is the same too
- for( TInt j=0; j < prefListCount; j++ )
- {
- const RMobilePhone::TMobilePreferredNetworkEntryV3 &prefInfo = prefNetList->GetEntryL(j);
- const RMobilePhone::TMobilePreferredNetworkEntryV3 &checkInfo = checkPrefNetList->GetEntryL(j);
-
- ASSERT_EQUALS( prefInfo.iCountryCode, checkInfo.iCountryCode, _L("Phone entry country codes do not match"));
- ASSERT_EQUALS( prefInfo.iNetworkId, checkInfo.iNetworkId, _L("Phone network ids do not match"));
-
- }
- }
- */
- // Repost the notification request
- phone.NotifyNetworkSelectionSettingChange(notifyNetSelSettingChange, netSelNotifyPkg);
-
- // === Put the phone into automatic network selection mode. ===
- // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting
- // with aSetting.iMethod = ENetworkSelectionAutomatic
- netSelSetting.iMethod = RMobilePhone::ENetworkSelectionAutomatic;
- phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelSettingPkg );
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
-
- ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting returned error") );
-
- // === Verify automatic selection mode has been set and notification received ===
-
- // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with aSetting.iMethod = ENetworkSelectionAutomatic
- iNetworkTestHelper.WaitForMobilePhoneNotifyNetworkSelectionSettingChange(phone,
- notifyNetSelSettingChange, netSelNotify,
- RMobilePhone::ENetworkSelectionAutomatic,
- KErrNone);
-
- // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionAutomatic
- ASSERT_EQUALS( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
- _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
- ASSERT_EQUALS( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionAutomatic,
- _L("RMobilePhone::GetNetworkSelectionSetting did not return ENetworkSelectionAutomatic") );
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // netListHelper
- // setNetSelSettingStatus
- // notifyNetSelSettingChange
- // getHomeNetworkStatus
- CleanupStack::PopAndDestroy(4,&getHomeNetworkStatus);
-
- return TestStepResult();
- }
-
-
-TPtrC CCTSYIntegrationTestNetworkControl0001::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0001");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0002::CCTSYIntegrationTestNetworkControl0002(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0002::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0002::~CCTSYIntegrationTestNetworkControl0002()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0002::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0002
- * @SYMFssID BA/CTSY/NTWC-0002
- * @SYMTestCaseDesc Basic cell selection
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::GetLastUsedAccessTechnology, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::GetServiceProviderName, RMobilePhone::GetCurrentNetworkName
- * @SYMTestExpectedResults Pass - Phone camps on a cell
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify phone has camped on a cell with an expected network information - name, mode, type, cellid, location area
- *
- * @return - TVerdict code
- */
- {
- //
- // SET UP
- //
-
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentMode | KCapsGetCurrentNetwork | KCapsGetHomeNetwork
- TUint32 networkCaps=0;
- CHECK_EQUALS_L(mobilePhone.GetNetworkCaps(networkCaps), KErrNone,
- _L("RMobilePhone::GetNetworkCaps returned with an error"));
- TUint32 expectedCaps= RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentMode
- | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsGetHomeNetwork;
- CHECK_BITS_SET_L(networkCaps, expectedCaps, KNoUnwantedBits,
- _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Get mode ===
-
- // Check RMobilePhone::GetCurrentMode returns aNetworkMode=ENetworkModeGsm or ENetworkModeWcdma
- RMobilePhone::TMobilePhoneNetworkMode mode;
- ASSERT_EQUALS(mobilePhone.GetCurrentMode(mode), KErrNone, _L("RMobilePhone::GetCurrentMode returned with an error"));
-
- ASSERT_TRUE((mode == RMobilePhone::ENetworkModeGsm) || (mode == RMobilePhone::ENetworkModeWcdma),
- _L("RMobilePhone::GetCurrentMode did not return ENetworkModeGsm or ENetworkModeWcdma as expected"));
-
- // === Get current network ===
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- RMobilePhone::TMobilePhoneLocationAreaV1 location;
- RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
- TExtEtelRequestStatus getCurrentNetworkStatus(mobilePhone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- mobilePhone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone,
- _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
- ASSERT_TRUE(netInfo.iCountryCode.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Country Code"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Long Name"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or ENetworkModeWcdma
- ASSERT_TRUE((netInfo.iMode == RMobilePhone::ENetworkModeGsm) || (netInfo.iMode == RMobilePhone::ENetworkModeWcdma) , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkModeGsm Mode or ENetworkModeWcdma Mode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Network Id"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Short Name"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus,RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected "));
-
- // Check RMobilePhone::GetLastUsedAccessTechnology returns aAccessTech=ENetworkAccessUnknown or ENetworkAccessGsm or ENetworkAccessGsmCompact or ENetworkAccessUtran
- RMobilePhone::TMobilePhoneNetworkAccess accessTech;
- TExtEtelRequestStatus getLastUsedAccessTechnologyStatus(mobilePhone, EMobilePhoneGetLastUsedAccessTechnology);
- CleanupStack::PushL(getLastUsedAccessTechnologyStatus);
- mobilePhone.GetLastUsedAccessTechnology(getLastUsedAccessTechnologyStatus,accessTech);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getLastUsedAccessTechnologyStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetLastUsedAccessTechnology timed out"));
- ASSERT_EQUALS(getLastUsedAccessTechnologyStatus.Int(), KErrNotSupported, _L("RMobilePhone::GetLastUsedAccessTechnology returned with an error"));
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork
- RMobilePhone::TMobilePhoneRegistrationStatus status;
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL( mobilePhone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork,
- _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ERegisteredOnHomeNetwork Status"));
-
- // === Get service provider name ===
-
- // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iPLMNField with length > 0
- RMobilePhone::TMobilePhoneServiceProviderNameV2 providerName;
- RMobilePhone::TMobilePhoneServiceProviderNameV2Pckg providerNamePckg(providerName);
- TExtEtelRequestStatus getServiceProviderNameStatus(mobilePhone, EMobilePhoneGetServiceProviderName);
- CleanupStack::PushL(getServiceProviderNameStatus);
- mobilePhone.GetServiceProviderName(getServiceProviderNameStatus, providerNamePckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getServiceProviderNameStatus, ETimeMedium),KErrNone,
- _L("RMobilePhone::GetServiceProviderName timed out"));
- ASSERT_EQUALS(getServiceProviderNameStatus.Int(), KErrGsm0707NotFound,
- _L("RMobilePhone::GetServiceProviderName returned with an error"));
-
- // $CTSYProblem
- // For RMobilePhone::GetServiceProviderName, LTSY is returning KErrGsm0707NotFound
- // CTSY is correctly propagating the error back to the client.
- // If the LTSY is altered to retrieve the provider name successfully, the following
- // test code can be used and KErrNone can be expected from this API.
-
-/* // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iDisplayReq with length > 0
- ASSERT_TRUE(providerName.iDisplayReq !=0, _L("RMobilePhone::GetServiceProviderName returned 0 RMobilePhone::TMobilePhoneServiceProviderNameV2.iDisplayReq"));
-
- // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iPLMNField with length > 0
- ASSERT_TRUE(providerName.iPLMNField.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank PLMNField"));
-
- // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iSPName with length > 0
- ASSERT_TRUE(providerName.iSPName.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank SPName"));
-*/
-
- // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneNetworkNameV3 returns aNetworkName.iLongName with length > 0
- RMobilePhone::TMobilePhoneNetworkNameV3 networkname;
- RMobilePhone::TMobilePhoneNetworkNameV3Pckg networknamePckg(networkname);
- RMobilePhone::TMobilePhoneOPlmnV3 locInfo;
- RMobilePhone::TMobilePhoneOPlmnV3Pckg locInfoPckg(locInfo);
- TExtEtelRequestStatus getCurrentNetworkNameStatus(mobilePhone, EMobilePhoneGetNetworkName);
- CleanupStack::PushL(getCurrentNetworkNameStatus);
- mobilePhone.GetCurrentNetworkName(getCurrentNetworkNameStatus, networknamePckg, locInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkNameStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetCurrentNetworkName timed out"));
- ASSERT_EQUALS(getCurrentNetworkNameStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetworkName returned with an error"));
- ASSERT_TRUE(networkname.iLongName.Length()>0 , _L("RMobilePhone::GetCurrentNetworkName returned with blank Long Name"));
-
- // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneNetworkNameV3 returns aNetworkName.iShortName with length > 0
- ASSERT_TRUE(networkname.iShortName.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank Short Name"));
-
- // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneOPlmnV3 returns aLocInfo.iCountryCode with length > 0
- ASSERT_TRUE(locInfo.iCountryCode.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank Country Code"));
-
- // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneOPlmnV3 returns aLocInfo.iNetworkId with length > 0
- ASSERT_TRUE(locInfo.iNetworkId.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank Network Id"));
-
- //
- // TEST END
- //
-
- StartCleanup();
- // Pop
- // getCurrentNetworkStatus
- // getLastUsedAccessTechnologyStatus
- // getServiceProviderNameStatus
- // getCurrentNetworkNameStatus
-
- CleanupStack::PopAndDestroy(4, &getCurrentNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0002::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0002");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0003::CCTSYIntegrationTestNetworkControl0003(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0003::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0003::~CCTSYIntegrationTestNetworkControl0003()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0003::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0003
- * @SYMFssID BA/CTSY/NTWC-0003
- * @SYMTestCaseDesc Cell reselection from "no service" state
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::NotifyNetworkRegistrationStatusChange, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::NotifyModeChange
- * @SYMTestExpectedResults Pass - Phone reselects a cell.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify cell is reselected and network information is correct.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Phone is in a blackspot, with no coverage.
- DisplayUserInteractionPromptL(_L("Please be sure that phone is in a blackspot, with no coverage"), ETimeLong);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentMode | KCapsGetCurrentNetwork | KCapsNotifyRegistrationStatus | KCapsNotifyMode | KCapsNotifyCurrentNetwork
- TUint32 networkCaps = 0;
- TUint32 expectedCaps = RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentMode | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyRegistrationStatus | RMobilePhone::KCapsNotifyMode | RMobilePhone::KCapsNotifyCurrentNetwork;
- CHECK_EQUALS_L(phone.GetNetworkCaps(networkCaps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned with an error"));
- CHECK_BITS_SET_L(networkCaps, expectedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10075);
- User::Leave(KErrNone);
-
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns ENotRegisteredNoService or ENotRegisteredSearching
- RMobilePhone::TMobilePhoneRegistrationStatus status;
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_TRUE(status != RMobilePhone::ENotRegisteredSearching || status != RMobilePhone::ENotRegisteredNoService,
- _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredSearching or ENotRegisteredNoServiceStatus"));
-
- TExtEtelRequestStatus reqNetworkRegStatusChange(phone, EMobilePhoneNotifyNetworkRegistrationStatusChange);
- CleanupStack::PushL(reqNetworkRegStatusChange);
- // Call notify for networkregistrationchange
- RMobilePhone::TMobilePhoneRegistrationStatus networkRegStatus;
- phone.NotifyNetworkRegistrationStatusChange(reqNetworkRegStatusChange, networkRegStatus);
-
- TExtEtelRequestStatus reqNotifyCurrentNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(reqNotifyCurrentNetChangeStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- RMobilePhone::TMobilePhoneLocationAreaV1 locationArea;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
- // Call notify for networkchange
- phone.NotifyCurrentNetworkChange(reqNotifyCurrentNetChangeStatus, netInfoPkg, locationArea );
-
- TExtEtelRequestStatus reqNotifyModeChangeStatus(phone, EMobilePhoneNotifyModeChange);
- CleanupStack::PushL(reqNotifyModeChangeStatus);
- RMobilePhone::TMobilePhoneNetworkMode mobNetworkMode;
- // Call notify for NotifyModeChange
- phone.NotifyModeChange(reqNotifyModeChangeStatus, mobNetworkMode);
-
- // Move phone to an area with coverage
- DisplayUserInteractionPromptL(_L("Move phone to an area with coverage"), ETimeLong);
-
- // === Check cell is reselected and network information is correct ===
-
- // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredOnHomeNetwork
- RMobilePhone::TMobilePhoneRegistrationStatus expectedStatus = RMobilePhone::ERegisteredOnHomeNetwork;
- const TInt wantedStatus = KErrNone;
- iNetworkTestHelper.WaitForMobilePhoneNotifyNetworkRegistrationStatusChange(phone, reqNetworkRegStatusChange, networkRegStatus, expectedStatus, wantedStatus);
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredSearching or ENotRegisteredNoServiceStatus"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_EQUALS(WaitForRequestWithTimeOut(reqNotifyCurrentNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
- ASSERT_EQUALS(reqNotifyCurrentNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned error"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongName"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- ASSERT_EQUALS(netInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::NotifyCurrentNetworkChange iMode did not return ENetworkModeGsm as expected"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortName"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange iStatus did not return ENetworkStatusCurrent as expected"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- ASSERT_TRUE(locationArea.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(locationArea.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- RMobilePhone::TMobilePhoneNetworkInfoV5 currentNetworkInfo;
- RMobilePhone::TMobilePhoneLocationAreaV1 currentNetworkAreaLocation;
- RMobilePhone::TMobilePhoneNetworkInfoV5Pckg currentNetworkInfoPckg(currentNetworkInfo);
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork(getCurrentNetworkStatus, currentNetworkInfoPckg, currentNetworkAreaLocation);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned returned error"));
-
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(currentNetworkInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(currentNetworkInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- ASSERT_EQUALS(currentNetworkInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetCurrentNetwork iMode did not return ENetworkModeGsm as expected"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(currentNetworkInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(currentNetworkInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(currentNetworkInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork iStatus did not return ENetworkStatusCurrent as expected"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- ASSERT_TRUE(currentNetworkAreaLocation.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(currentNetworkAreaLocation.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
- // Check RMobilePhone::NotifyModeChange completes with aNetworkMode=ENetworkModeGsm
- RMobilePhone::TMobilePhoneNetworkMode expectedMobNetMode = RMobilePhone::ENetworkModeGsm;
- iNetworkTestHelper.WaitForMobilePhoneNotifyModeChange(phone, reqNotifyModeChangeStatus, mobNetworkMode, expectedMobNetMode, wantedStatus);
-
- // Check RMobilePhone::GetCurrentMode completes with aNetworkMode=ENetworkModeGsm
- RMobilePhone::TMobilePhoneNetworkMode currentMobNetMode;
- phone.GetCurrentMode(currentMobNetMode);
- ASSERT_EQUALS(currentMobNetMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetCurrentMode did not return ENetworkModeGsm as expected"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop
- // reqNetworkRegStatusChange
- // reqNotifyCurrentNetChangeStatus
- // getCurrentNetworkStatus
- // reqNotifyModeChangeStatus
- CleanupStack::PopAndDestroy(4, &reqNetworkRegStatusChange);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0003::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0003");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0004::CCTSYIntegrationTestNetworkControl0004(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0004::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0004::~CCTSYIntegrationTestNetworkControl0004()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0004::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0004
- * @SYMFssID BA/CTSY/NTWC-0004
- * @SYMTestCaseDesc Emergency camping
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - Phone registers for emergency calls only
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify registration status is for emergency calls only.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- // Log a message to indicate that this test is run without a SIM in the phone
- DisplayUserInteractionPromptL(_L("Remove SIM card before running this test"), ETimeMedium);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus
- TUint32 networkCaps = 0;
- TUint32 expectedCaps = RMobilePhone::KCapsGetRegistrationStatus;
- ASSERT_EQUALS(phone.GetNetworkCaps(networkCaps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned with an error"));
- ASSERT_BITS_SET(networkCaps, expectedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
-
- // === Check that registration status is for emergency calls only. ===
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns ENotRegisteredSearching
- RMobilePhone::TMobilePhoneRegistrationStatus status;
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- // $CTSYProblem LTSY does not send correct notification. This wast tested using different timeout's but
- // ENotRegisteredEmergencyOnly notification did not arrive as expected.
- // Test was modified to accept ENotRegisteredSearching state, because this is the
- // one which returned from LTSY. From logs we could see that this was the only state which was notified to CTSY.
- ASSERT_EQUALS(status, RMobilePhone::ENotRegisteredSearching, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredSearching Status"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0004::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0004");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0005::CCTSYIntegrationTestNetworkControl0005(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0005::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0005::~CCTSYIntegrationTestNetworkControl0005()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0005::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0005
- * @SYMFssID BA/CTSY/NTWC-0005
- * @SYMTestCaseDesc Automatic cell selection
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::GetHomeNetwork, RMobilePhone::GetNetworkSelectionSetting, RMobilePhone::GetHomeNetworkSearchPeriod
- * @SYMTestExpectedResults Pass - Home, current and preferred network information are correct.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify home network info., current network info. correct and home network is in the preferred network list.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetHomeNetwork | KCapsGetCurrentNetwork
- TUint32 caps;
- CHECK_EQUALS_L(phone.GetNetworkCaps(caps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
- TUint32 wantedCaps = RMobilePhone::KCapsGetHomeNetwork | RMobilePhone::KCapsGetCurrentNetwork;
- CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelSetting;
- RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelSettingPckg(netSelSetting);
-
- // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionAutomatic
- ASSERT_EQUALS( phone.GetNetworkSelectionSetting( netSelSettingPckg ), KErrNone, _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
- ASSERT_EQUALS( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionAutomatic, _L("RMobilePhone::GetNetworkSelectionSetting did not return ENetworkSelectionAutomatic") );
-
- // $CTSYProblem
- // CTSY does not support RMobilePhone::GetHomeNetworkSearchPeriod
- // GetHomeNetworkSearchPeriod responses directly with KErrNotSupported
-
- // Check RMobilePhone::GetHomeNetworkSearchPeriod returns aSearchIntv >= 0
- TExtEtelRequestStatus searchPeriodReqStatus(phone, EMobilePhoneGetHomeNetworkSearchPeriod);
- CleanupStack::PushL(searchPeriodReqStatus);
- TInt searchIntv;
- phone.GetHomeNetworkSearchPeriod(searchPeriodReqStatus, searchIntv);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(searchPeriodReqStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetHomeNetworkSearchPeriod timed out"));
- ASSERT_EQUALS(searchPeriodReqStatus.Int(), KErrNotSupported, _L("RMobilePhone::GetHomeNetworkSearchPeriod returned an error"));
-
- // === Get the home network information. ===
- RMobilePhone::TMobilePhoneNetworkInfoV5 homeNWInfo;
- RMobilePhone::TMobilePhoneNetworkInfoV5Pckg homeNWInfoPckg(homeNWInfo);
- TExtEtelRequestStatus getHomeNetworkStatus(phone, EMobilePhoneGetHomeNetwork);
- CleanupStack::PushL(getHomeNetworkStatus);
- phone.GetHomeNetwork(getHomeNetworkStatus, homeNWInfoPckg);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getHomeNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetHomeNetwork timed out"));
- ASSERT_EQUALS(getHomeNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetHomeNetwork returned an error"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(homeNWInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid CountryCode Tag"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(homeNWInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(homeNWInfo.iLongName.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iLongName"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- ASSERT_EQUALS(homeNWInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetHomeNetwork did not return ENetworkModeGsm as expected"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(homeNWInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(homeNWInfo.iShortName.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iShortName"));
-
- // $CTSYProblem
- // GetHomeNetwork() doesn't return correct NetworkInfo.iStatus
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus= ENetworkStatusUnknown
- ASSERT_EQUALS(homeNWInfo.iStatus, RMobilePhone::ENetworkStatusUnknown , _L("RMobilePhone::GetHomeNetwork did not return ENetworkStatusUnknown status as expected "));
-
- // === Get the current network information. ===
- RMobilePhone::TMobilePhoneNetworkInfoV5 currentNWInfo;
- RMobilePhone::TMobilePhoneLocationAreaV1 currentLocation;
- RMobilePhone::TMobilePhoneNetworkInfoV5Pckg currentNWInfoPckg(currentNWInfo);
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork(getCurrentNetworkStatus, currentNWInfoPckg, currentLocation);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(currentNWInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(currentNWInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid Display Tag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(currentNWInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or ENetworkModeWcdma
- ASSERT_TRUE(currentNWInfo.iMode == RMobilePhone::ENetworkModeGsm || currentNWInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkModeGsm as expected"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(currentNWInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(currentNWInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(currentNWInfo.iStatus, RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected "));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
- ASSERT_TRUE(currentLocation.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returned invalid iCellId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(currentLocation.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
- // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
- CRetrieveMobilePhonePreferredNetworksExec *netListHelper = CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
- CleanupStack::PushL(netListHelper);
- TInt err;
- CMobilePhoneStoredNetworkList* prefNetList = netListHelper->DoGetList(err);
- ASSERT_EQUALS(err, KErrNotSupported, _L("CRetrieveMobilePhonePreferredNetworks::Start failed to get the list"));
-
- // $CTSYProblem CTSY does not support EMobilePhoneGetPreferredNetworksPhase1 and
- // EMobilePhoneGetDetectedNetworksPhase1 IPCs.
- // If supported, "if (prefNetList != NULL)"-line can be commented/deleted
-
- if (prefNetList != NULL)
- {
- // Check CMobilePhoneStoredNetworkList::Enumerate returns >= 1
- ASSERT_TRUE(prefNetList->Enumerate() >= 1, _L("CMobilePhoneStoredNetworkList::Enumerate did not return valid number of entries"));
-
- // === Check first entry in preferred network list is the home network ===
-
- // Check first item in the CMobilePhoneStoredNetworkList list contains a RMobilePhone::TMobilePreferredNetworkEntryV3 with
- const RMobilePhone::TMobilePreferredNetworkEntryV3 &prefInfo = prefNetList->GetEntryL(0);
-
- // iAccess with caps in set of KNetworkAccessGsm
- ASSERT_BITS_SET(prefInfo.iAccess, RMobilePhone::KNetworkAccessGsm, KNoUnwantedBits, _L("CMobilePhoneStoredNetworkList.GetEntry() returned first list item with invalid prefInfo.iAccess"));
-
- // iCountryCode = aNetworkInfo.iCountryCode from RMobilePhone::GetHomeNetwork
- ASSERT_EQUALS_DES16(prefInfo.iCountryCode, homeNWInfo.iCountryCode, _L("CMobilePhoneStoredNetworkList.GetEntry() returned first list item with invalid prefInfo.iCountryCode. Not equal to home network"));
-
- // iNetworkId = aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork
- ASSERT_EQUALS_DES16(prefInfo.iNetworkId, homeNWInfo.iNetworkId, _L("CMobilePhoneStoredNetworkList.GetEntry() returned first list item with invalid prefInfo.iNetworkId. Not equal to home network"));
- }
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- //searchPeriodReqStatus
- //getHomeNetworkStatus
- //getCurrentNetworkStatus
- //netListHelper
- CleanupStack::PopAndDestroy(4, &searchPeriodReqStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0005::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0005");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0006::CCTSYIntegrationTestNetworkControl0006(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0006::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0006::~CCTSYIntegrationTestNetworkControl0006()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0006::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0006
- * @SYMFssID BA/CTSY/NTWC-0006
- * @SYMTestCaseDesc Roaming cell selection
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetHomeNetwork, RMobilePhone::GetNetworkRegistrationStatus
- * @SYMTestExpectedResults Pass - Roaming SIM can register onto PLMN but is different to home network
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify current network differs from home network.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentMode | KCapsGetCurrentNetwork | KCapsGetHomeNetwork
- TUint32 caps;
- CHECK_EQUALS_L( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
- TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentMode | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsGetHomeNetwork;
- CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps") );
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // Insert a roaming SIM and start phone
-
- // === Get home network information ===
- RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetworkInfo;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> homeInfoPkg(homeNetworkInfo);
- TExtEtelRequestStatus getHomeNetworkStatus(phone, EMobilePhoneGetHomeNetwork);
- CleanupStack::PushL(getHomeNetworkStatus);
- phone.GetHomeNetwork( getHomeNetworkStatus, homeInfoPkg );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getHomeNetworkStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::GetHomeNetwork timed out") );
- ASSERT_EQUALS( getHomeNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetHomeNetwork returned an error") );
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(homeNetworkInfo.iDisplayTag.Length() > 0,
- _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iDisplayTag <= 0"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(homeNetworkInfo.iLongName.Length() > 0,
- _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iLongName <= 0"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(homeNetworkInfo.iNetworkId.Length() > 0,
- _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iNetworkId <= 0"));
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(homeNetworkInfo.iShortName.Length() > 0,
- _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iShortName <= 0"));
-
- // === Get current network information and check it differs from the home network ===
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- RMobilePhone::TMobilePhoneLocationAreaV1 location;
- RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone,
- _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag != aNetworkInfo.iDisplayTag from RMobilePhone::GetHomeNetwork
- ASSERT_TRUE(netInfo.iDisplayTag != homeNetworkInfo.iDisplayTag,
- _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag == aNetworkInfo.iDisplayTag from RMobilePhone::GetHomeNetwork"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName != aNetworkInfo.iLongName from RMobilePhone::GetHomeNetwork
- ASSERT_TRUE(netInfo.iLongName != homeNetworkInfo.iLongName,
- _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName == aNetworkInfo.iLongName from RMobilePhone::GetHomeNetwork"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId != aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork
- ASSERT_TRUE(netInfo.iNetworkId != homeNetworkInfo.iNetworkId,
- _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId == aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName != aNetworkInfo.iShortName from RMobilePhone::GetHomeNetwork
- ASSERT_TRUE(netInfo.iShortName != homeNetworkInfo.iShortName,
- _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName == aNetworkInfo.iShortName from RMobilePhone::GetHomeNetwork"));
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredRoaming
- RMobilePhone::TMobilePhoneRegistrationStatus status;
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL( phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(status, RMobilePhone::ERegisteredRoaming,
- _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ERegisteredRoaming Status"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- //getHomeNetworkStatus
- //getCurrentNetworkStatus
- CleanupStack::PopAndDestroy(2,&getHomeNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0006::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0006");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0007::CCTSYIntegrationTestNetworkControl0007(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0007::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0007::~CCTSYIntegrationTestNetworkControl0007()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0007::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0007
- * @SYMFssID BA/CTSY/NTWC-0007
- * @SYMTestCaseDesc Selection mode preserved after switch off.
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhonePreferredNetworks::NewL, RMobilePhone::SelectNetwork, RMobilePhone::StorePreferredNetworksListL, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkSelectionSetting, RMobilePhone::NotifyNetworkSelectionSettingChange
- * @SYMTestExpectedResults Pass - Manual selection mode is preserved on re-start
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify phone is still in manual selection mode after TSY is unloaded and reloaded.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- // iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- // Ensure that the phone has the capabilities KCapsGetDetectedNetworks | KCapsManualNetworkSelection
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get home network name and id (save these for later) ===
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
-
- // === Put the phone into manual netowrk selection mode. ===
-
- // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod = ENetworkSelectionManual
-
- // === Verify manual selection mode has been set and notification received ===
-
- // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with aSetting.iMethod = ENetworkSelectionManual
-
- // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
-
- // === Get and store (locally) the list of prefered Network ===
-
- // Create a CRetrieveMobilePhonePreferredNetworks::NewL
-
- // Start retrieval of preferred network list with CRetrieveMobilePhonePreferredNetworks::Start
-
- // Retrieve pointer to the CMobilePhoneStoredNetworkList list with CRetrieveMobilePhonePreferredNetworks::RetrieveListL
-
- // Check CMobilePhoneStoredNetworkList::Enumerate returns >= 1
-
- // === Close down TSY and restart to force network re-selection ===
-
- // Close phone subsession with RPhone::Close
-
- // Unload TSY with RTelServer::UnloadPhoneModule
-
- // Reload it with RTelServer::LoadPhoneModule
-
- // Open phone subsession with RPhone::Open
-
- // === Verify phone is still in manual selection mode ===
-
- // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
-
- // === Get List of detected networks ===
-
- // Create a CRetrieveMobilePhoneDetectedNetworks with CRetrieveMobilePhoneDetectedNetworks::NewL
-
- // Start retrieval of list of detected network with CRetrieveMobilePhoneDetectedNetworks::StartV5
-
- // Retrieve the CMobilePhoneNetworkListV5 with CRetrieveMobilePhoneDetectedNetworks::RetrieveListV5L
-
- // === Ensure that this list contains at least 2 networks (the Home network and another one). ===
-
- // Check CMobilePhoneNetworkListV5::Enumerate returns number of items in list > 1
-
- // === Select the home network ===
-
- // Select home network with RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=aNetworkInfo.iCountryCode from RMobilePhone::GetHomeNetwork and aManualSelection.iNetwork=aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork
-
- // === Verify that the preferred Network list is not changed. ===
-
- // Start retrieval of preferred network list with CRetrieveMobilePhonePreferredNetworks::Start
-
- // Retrieve pointer to the CMobilePhoneStoredNetworkList list with CRetrieveMobilePhonePreferredNetworks::RetrieveListL
-
- // Check CMobilePhoneStoredNetworkList::Enumerate returns same number of entries as before the TSY was closed down.
-
- // Check the current CMobilePhoneStoredNetworkList contains the same entries as previous list (check iAccess, iCountryCode, iNetworkId in TMobilePreferredNetworkEntryV3 is the same)
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0007::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0007");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0008::CCTSYIntegrationTestNetworkControl0008(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0008::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0008::~CCTSYIntegrationTestNetworkControl0008()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0008::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0008
- * @SYMFssID BA/CTSY/NTWC-0008
- * @SYMTestCaseDesc Register on a denied network.
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::RetrieveListL, RMobilePhone::NotifyNetworkRegistrationStatusChange, CRetrieveMobilePhoneDetectedNetworks::NewL, RMobilePhone::SelectNetwork, CMobilePhoneNetworkListV5::Enumerate, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::GetHomeNetwork, CRetrieveMobilePhoneDetectedNetworks::StartV5
- * @SYMTestExpectedResults Pass - Cannot register onto a denied network
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify registration status is denied when attempting to register on another network.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- // iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetDetectedNetworks | KCapsManualNetworkSelection
-
- // Be registered onto home network
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get the network ID of the home network (store this for use later) ===
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
-
- // === Get list of all the detected networks ===
-
- // Use the helper class for CRetrieveMobilePhoneDetectedNetworks to get a list of detected networks
-
- // Start retrieval of preferred network list with CRetrieveMobilePhoneDetectedNetworks::StartV5
-
- // Check CMobilePhoneNetworkListV5::Enumerate on the list returned returns number of networks >= 1
-
- // === Switch to manual network selection ===
-
- // Set network selection setting to automatic with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionManual
-
- // === Attempt to select each of the other networks ===
-
- // Cycle through the list of detected networks CMobilePhoneNetworkListV5
-
- // If the TMobilePhoneNetworkInfoV5::iNetworkId != aNetworkInfo.iNetworkId returned from RMobilePhone::GetHomeNetwork
-
- // Check RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=TMobilePhoneNetworkInfoV5::iCountryCode and aManualSelection.iNetwork=TMobilePhoneNetworkInfoV5::iNetworkId
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegistrationDenied
-
- // === Ensure registration returns to previous network ===
-
- // Set network selection setting to automatic with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionAutomatic
-
- // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredOnHomeNetwork
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns with ERegisteredOnHomeNetwork
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0008::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0008");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0009::CCTSYIntegrationTestNetworkControl0009(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0009::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0009::~CCTSYIntegrationTestNetworkControl0009()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0009::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0009
- * @SYMFssID BA/CTSY/NTWC-0009
- * @SYMTestCaseDesc Automatic network selection at start
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
- * @SYMTestExpectedResults Pass - Registration status notificatins are received
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify current network change and network registration status notifications complete.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- // $CTSYProblem
- // Put this back into the script when a decision has been made as to what
- // this test case should do since the board has already booted by the time
- // the test starts, not possible to catch the notifications.
-
- /*
-
-START_TESTCASE BA-CTSY-INT-NTWC-0009
-//!@SYMTestCaseID BA-CTSY-INT-NTWC-0009
-//!@SYMFssID BA/CTSY/NTWC-0009
-//!@SYMTestCaseDesc Automatic network selection at start
-//!@SYMTestPriority High
-//!@SYMTestActions RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
-//!@SYMTestExpectedResults Pass - Registration status notificatins are received
-//!@SYMTestType CIT
-//!@SYMTestCaseDependencies live/automatic
-RUN_TEST_STEP 180 TE_CTSYIntegrationTestSuite CCTSYIntegrationTestNetworkControl0009 c:\ctsy\ctsyintegration_data.ini
-END_TESTCASE BA-CTSY-INT-NTWC-0009
-
- */
-
- RMobilePhone& tempPhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus
- TUint32 caps;
- CHECK_EQUALS_L( tempPhone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
- TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus;
- CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong network caps") );
-
- // Close down TSY, so registration will re-start when TSY re-opens
- iEtelSessionMgr.RestartL();
- // phone object is now invalid, reopen
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Ensure network registration status goes from unknown->searching->registered home network ===
-
- // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with
- // ERegistrationUnknown->ENotRegisteredSearching->ERegisteredOnHomeNetwork
-
- // Seems a bit unlikely that we will catch the whole sequence if the TSY has been restarted
- // in the absence of notifications during the restart, so check the last one we get is reasonable
-
- TExtEtelRequestStatus reqRegStatusChange( phone, EMobilePhoneNotifyNetworkRegistrationStatusChange );
- CleanupStack::PushL(reqRegStatusChange);
-
- RMobilePhone::TMobilePhoneRegistrationStatus phoneRegStatus = RMobilePhone::ERegistrationUnknown;
- TBool receivedRegNotify = EFalse;
- TInt err;
-
- do
- {
- DEBUG_PRINTF1(_L("calling notify"));
- phone.NotifyNetworkRegistrationStatusChange( reqRegStatusChange, phoneRegStatus );
- err = WaitForRequestWithTimeOut( reqRegStatusChange, ETimeMedium );
-
- if( KErrNone == err )
- {
- receivedRegNotify = ETrue;
- }
- }
- while(KErrNone == err);
-
- ASSERT_TRUE( receivedRegNotify, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange timed out") );
- DEBUG_PRINTF2( _L("RMobilePhone::NotifyNetworkRegistrationStatusChange Last registration status=%d"), phoneRegStatus );
-
- ASSERT_TRUE( (RMobilePhone::ERegistrationUnknown == phoneRegStatus) ||
- (RMobilePhone::ENotRegisteredSearching == phoneRegStatus) ||
- (RMobilePhone::ERegisteredOnHomeNetwork == phoneRegStatus),
- _L("RMobilePhone::NotifyNetworkRegistrationStatusChange returned invalid registration status") );
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
- TExtEtelRequestStatus getNetRegStatus(phone,EMobilePhoneGetNetworkRegistrationStatus);
- CleanupStack::PushL(getNetRegStatus);
-
- phone.GetNetworkRegistrationStatus(getNetRegStatus, phoneRegStatus);
- err = WaitForRequestWithTimeOut( getNetRegStatus, ETimeShort );
-
- ASSERT_EQUALS( err, KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus timed out") )
- ASSERT_EQUALS(phoneRegStatus, RMobilePhone::ERegisteredOnHomeNetwork,
- _L("RMobilePhone::GetNetworkRegistrationStatus returned invalid state"))
-
- // === Check receive notifciations for current network change ===
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
- RMobilePhone::TMobilePhoneLocationAreaV1 area;
-
- TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(reqNetChangeStatus);
-
- phone.NotifyCurrentNetworkChange( reqNetChangeStatus, netInfoPkg, area );
-
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone,
- _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
-
- ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone,
- _L("RMobilePhone::NotifyCurrentNetworkChange returned returned error"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iCountryCode with length > 0
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iDisplayTag with length > 0
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iLongName with length > 0
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iMode=ENetworkModeGsm
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iNetworkId with length > 0
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iShortName with length > 0
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iStatus=ENetworkStatusCurrent
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aArea.iCellId > 0
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aArea.iLocationAreaCode > 0
- ASSERT_TRUE( netInfo.iCountryCode.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iCountryCode length 0") )
- ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iDisplayTag length 0") )
- ASSERT_TRUE( netInfo.iLongName.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iLongNamelength 0") )
- ASSERT_EQUALS( netInfo.iMode, RMobilePhone::ENetworkModeGsm,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns Network mode not GSM") )
- ASSERT_TRUE( netInfo.iNetworkId.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iNetworkId length 0") )
- ASSERT_TRUE( netInfo.iShortName.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iShortNamelength 0") )
- ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns network status not ENetworkStatusCurrent") )
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE( area.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location cell ID 0") )
- ASSERT_TRUE( area.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location AreaCode ID 0") )
-
- // Get the network information and test again
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork( getCurrentNetworkStatus, netInfoPkg, area );
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::GetCurrentNetwork timed out") );
- ASSERT_EQUALS( getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_TRUE( netInfo.iCountryCode.Length() > 0,
- _L("RMobilePhone::GetCurrentNetwork returns iCountryCode length 0") )
- ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0,
- _L("RMobilePhone::GetCurrentNetwork returns iDisplayTag length 0") )
- ASSERT_TRUE( netInfo.iLongName.Length() > 0,
- _L("RMobilePhone::GetCurrentNetwork returns iLongNamelength 0") )
- ASSERT_TRUE( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma,
- _L("RMobilePhone::GetCurrentNetwork returns Network mode not GSM") )
- ASSERT_TRUE( netInfo.iNetworkId.Length() > 0,
- _L("RMobilePhone::GetCurrentNetwork returns iNetworkId length 0") )
- ASSERT_TRUE( netInfo.iShortName.Length() > 0,
- _L("RMobilePhone::GetCurrentNetwork returns iShortNamelength 0") )
- ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent,
- _L("RMobilePhone::GetCurrentNetwork returns network status not ENetworkStatusCurrent") )
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE( area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns Location cell ID 0") )
- ASSERT_TRUE( area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns Location AreaCode ID 0") )
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // getCurrentNetworkStatus
- // getNetRegStatus
- // reqNetChangeStatus
- // reqRegStatusChange
- CleanupStack::Pop(4,&reqRegStatusChange);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0009::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0009");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0010::CCTSYIntegrationTestNetworkControl0010(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0010::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0010::~CCTSYIntegrationTestNetworkControl0010()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0010::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0010
- * @SYMFssID BA/CTSY/NTWC-0010
- * @SYMTestCaseDesc Select a network manually using a roaming SIM
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - Fails to register onto another VPLMN
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify roaming SIM cannot register onto another network.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetCurrentNetwork | KCapsManualNetworkSelection
-
- // === Romaing Sim is registered on a VPLMN ===
-
- // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredRoaming
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get ID of the current network (store this for use later) ===
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
-
- // === Get list of detected networks ===
-
- // Use helper class to start retrieval of V5 preferred network list with CRetrieveMobilePhoneDetectedNetworks
-
- // Check CMobilePhoneNetworkListV5::Enumerate on list returned returns number of networks > 0
-
- // === Try and manually select another one to register onto ===
-
- // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionManual
-
- // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with aSetting.iMethod = ENetworkSelectionManual
-
- // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
-
- // Cycle through the list of networks in CMobilePhoneNetworkListV5
-
- // If the TMobilePhoneNetworkInfoV5::iNetworkId != iNetworkId from RMobilePhone::GetCurrentNetwork
-
- // then
-
- // select network in list with RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=TMobilePhoneNetworkInfoV5::iCountryCode from item in CMobilePhoneNetworkListV5 and aManualSelection.iNetwork=TMobilePhoneNetworkInfoV5::iNetworkId from item in CMobilePhoneNetworkListV5
-
- // === Check network does not allow registration ===
-
- // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredRoaming or ERegistrationDenied
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0010::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0010");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0011::CCTSYIntegrationTestNetworkControl0011(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0011::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0011::~CCTSYIntegrationTestNetworkControl0011()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0011::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0011
- * @SYMFssID BA/CTSY/NTWC-0011
- * @SYMTestCaseDesc Attempt network detect when no signal strength
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::Start
- * @SYMTestExpectedResults Pass - Cannot detect networks when signal strength is zero.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify detected networks list is empty.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetDetectedNetworks
-
- // Check RMobilePhone::GetSignalCaps returns caps in set of KCapsGetSignalStrength
-
- // Remove antenna
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // Check RMobilePhone::GetSignalStrength returns aSignalStrength=0
- // Check RMobilePhone::GetSignalStrength returns aBar=0
-
- // === Get list of all the detected networks ===
-
- // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V5 list of preferred networks
-
- // Check CMobilePhoneNetworkListV5::Enumerate returns number of networks=0
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0011::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0011");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0012::CCTSYIntegrationTestNetworkControl0012(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0012::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0012::~CCTSYIntegrationTestNetworkControl0012()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0012::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0012
- * @SYMFssID BA/CTSY/NTWC-0012
- * @SYMTestCaseDesc Get NITZ information.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::NotifyNITZInfoChange
- * @SYMTestExpectedResults Pass - NITZ infomation is received from network
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify valid NITZ information returned and NITZ notification received.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetNITZInfo | KCapsNotifyNITZInfo
-
- TUint32 caps;
- CHECK_EQUALS_L( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned error") )
- TUint32 wantedCaps = RMobilePhone::KCapsGetNITZInfo | RMobilePhone::KCapsNotifyNITZInfo;
- CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong network caps") );
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Wait 2 mins for the network to send NITZ info
- User::After(KOneSecond*120);
-
- // === Get the current Network Information and Time Zone (NITZ) from the network. ===
-
- RMobilePhone::TMobilePhoneNITZ nitzInfo;
- TInt err = phone.GetNITZInfo( nitzInfo );
-
- // Check KErrNone or KErrNotFound was returned
- ASSERT_TRUE((err==KErrNone) || (err==KErrNotFound), _L("RMobilePhone::GetNITZInfo returned error"));
-
- // If the network supplied NITZ info:
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iDST=1 or aNITZInfo.iDST=2
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iLongNetworkId with length > 0
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iShortNetworkId with length > 0
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iTimeZone >= 0
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iNitzFieldsUsed contains relevant flags set
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.Year() >= 2007
- if (err == KErrNone)
- {
- ASSERT_TRUE( nitzInfo.iLongNetworkId.Length() > 0,
- _L("RMobilePhone::GetNITZInfo returns nitzInfo.iLongNetworkId zero length"))
- ASSERT_TRUE( nitzInfo.iShortNetworkId.Length() > 0,
- _L("RMobilePhone::GetNITZInfo returns nitzInfo.iShortNetworkId zero length"))
- ASSERT_TRUE( nitzInfo.iTimeZone > 0, _L("RMobilePhone::GetNITZInfo returns nitzInfo.iTimeZone zero"))
-
- ASSERT_BITS_SET( nitzInfo.iNitzFieldsUsed,
- RMobilePhone::KCapsTimeAvailable |
- RMobilePhone::KCapsTimezoneAvailable |
- RMobilePhone::KCapsShortNameAvailable |
- RMobilePhone::KCapsLongNameAvailable,
- KNoUnwantedBits,
- _L("RMobilePhone::GetNITZInfo returns nitzInfo.iNitzFieldsUsed invalid"))
-
- DEBUG_PRINTF2(_L("RMobilePhone::GetNITZInfo returns nitzInfo.year=%d"), nitzInfo.Year() );
- ASSERT_TRUE( nitzInfo.Year() >= 2007, _L("RMobilePhone::GetNITZInfo returns nitzInfo year pre 2007"));
- }
-
- // === Wait for up to 1 minute for next NITZ update ===
- TExtEtelRequestStatus reqNotifyNitzInfoChange(phone, EMobilePhoneNotifyNITZInfoChange);
- CleanupStack::PushL(reqNotifyNitzInfoChange);
-
- phone.NotifyNITZInfoChange(reqNotifyNitzInfoChange,nitzInfo);
- WaitForRequestWithTimeOut(reqNotifyNitzInfoChange, ETimeLong);
-
- // Check NITZ info if network sent it
- if (reqNotifyNitzInfoChange.Int() != KErrCancel)
- {
- ASSERT_EQUALS( reqNotifyNitzInfoChange.Int(), KErrNone, _L("RMobilePhone::NotifyNITZInfoChange returned error"))
-
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iDST=1 or aNITZInfo.iDST=2
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iLongNetworkId with length > 0
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iShortNetworkId with length > 0
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iTimeZone >= 0
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iNitzFieldsUsed contains relevant flags set
- // Check RMobilePhone::GetNITZInfo returns aNITZInfo.Year() >= 2007
- ASSERT_TRUE( nitzInfo.iLongNetworkId.Length() > 0,
- _L("RMobilePhone::GetNITZInfo returns nitzInfo.iLongNetworkId is zero length"))
- ASSERT_TRUE( nitzInfo.iShortNetworkId.Length() > 0,
- _L("RMobilePhone::GetNITZInfo returns nitzInfo.iShortNetworkId is zero length"))
- ASSERT_TRUE( nitzInfo.iTimeZone > 0, _L("NITZ Info iTimeZone is zero"))
-
- ASSERT_BITS_SET( nitzInfo.iNitzFieldsUsed,
- RMobilePhone::KCapsTimeAvailable |
- RMobilePhone::KCapsTimezoneAvailable |
- RMobilePhone::KCapsShortNameAvailable |
- RMobilePhone::KCapsLongNameAvailable,
- KNoUnwantedBits,
- _L("RMobilePhone::GetNITZInfo returns nitzInfo.iNitzFieldsUsed invalid"))
- ASSERT_TRUE( nitzInfo.Year() >= 2007, _L("RMobilePhone::GetNITZInfo returns nitzInfo year pre 2007"));
- }
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- //reqNotifyNitzInfoChange
- CleanupStack::PopAndDestroy(1,&reqNotifyNitzInfoChange);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0012::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0012");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0013::CCTSYIntegrationTestNetworkControl0013(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0013::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0013::~CCTSYIntegrationTestNetworkControl0013()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0013::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0013
- * @SYMFssID BA/CTSY/NTWC-0013
- * @SYMTestCaseDesc Move from one cell into another.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
- * @SYMTestExpectedResults Pass - New network information is received.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify current network notification completes and cell ID changes.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- // Ensure phone is camped on a suitable cell.
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Ensure phone has KCapsGetCurrentNetwork and KCapsNotifyCurrentNetwork capabilities.
- TUint32 networkCaps=0;
- CHECK_EQUALS_L(phone.GetNetworkCaps(networkCaps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned with an error"));
- TUint32 expectedCaps= RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyCurrentNetwork;
- CHECK_BITS_SET_L(networkCaps, expectedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Ensure phone is registered to the network. ===
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork
- RMobilePhone::TMobilePhoneRegistrationStatus status;
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL( phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ERegisteredOnHomeNetwork Status"));
-
- // === Get the current network information. ===
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- RMobilePhone::TMobilePhoneLocationAreaV1 location;
- RMobilePhone::TMobilePhoneLocationAreaV1 previousLocation;
- RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
- previousLocation = location;
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName "));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus,RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
- ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
- // Post notification for network change
- TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(reqNetChangeStatus);
- phone.NotifyCurrentNetworkChange(reqNetChangeStatus, netInfoPckg, location);
-
- // Simulator simulates movement into another cell.
- DisplayUserInteractionPromptL(_L("Please simulate movement to another cell"), ETimeLong);
-
- // === Ensure current network change notification complates and cell ID has changed. ===
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
- ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned with an error"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongNamelength"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortNamelength"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iStatus"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0 and aArea.iCellId != previous aArea.iCellId from RMobilePhone::GetCurrentNetwork
- ASSERT_TRUE(location.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
- ASSERT_TRUE(location.iCellId != previousLocation.iCellId, _L("RMobilePhone::NotifyCurrentNetworkChange returns same iCellId as before movement to another cell"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(location.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
-
- // === Get the current network information. ===
- phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongNamelength"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortNamelength"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0 and aArea.iCellId != previous aArea.iCellId from RMobilePhone::GetCurrentNetwork
- ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
- ASSERT_TRUE(location.iCellId != previousLocation.iCellId, _L("RMobilePhone::GetCurrentNetwork returns same iCellId as before movement to another cell"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop
- // getCurrentNetworkStatus
- // reqNetChangeStatus
- CleanupStack::PopAndDestroy(2, &getCurrentNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0013::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0013");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0014::CCTSYIntegrationTestNetworkControl0014(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0014::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0014::~CCTSYIntegrationTestNetworkControl0014()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0014::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0014
- * @SYMFssID BA/CTSY/NTWC-0014
- * @SYMTestCaseDesc Move from an area with no service into a cell with service.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::NotifyNetworkRegistrationStatusChange, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
- * @SYMTestExpectedResults Pass - Device is registered on network. Network information is retrieved.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify current network information and registration status is correct.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10077);
- User::Leave(KErrNone);
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- // === Ensure the phone is not registered to a network. ===
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns ENotRegisteredNoService
- RMobilePhone::TMobilePhoneRegistrationStatus regStatus;
- CHECK_EQUALS_L(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, regStatus), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- CHECK_EQUALS_L(regStatus, RMobilePhone::ENotRegisteredNoService, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredNoService Status"));
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationstatus | KCapsGetCurrentNetwork | KCapsNotifyRegistrationStatus capabilities.
- TUint32 caps;
- CHECK_EQUALS_L(phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned error") )
- TUint32 wantedCaps = RMobilePhone::KCapsNotifyRegistrationStatus | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyRegistrationStatus;
- CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong network caps") );
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // === Get network registration status and verify it is as expected. ===
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ENotRegisteredNoService
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, regStatus), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(regStatus, RMobilePhone::ENotRegisteredNoService, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredNoService Status"));
-
- //Push notify for NotifyCurrentNetworkChange
- TExtEtelRequestStatus regNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(regNetChangeStatus);
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
- RMobilePhone::TMobilePhoneLocationAreaV1 area;
- phone.NotifyCurrentNetworkChange(regNetChangeStatus, netInfoPkg, area);
-
- //Push notify for NotifyNetworkRegistrationStatusChange
- RMobilePhone::TMobilePhoneRegistrationStatus status;
- TExtEtelRequestStatus networkRegStChange(phone, EMobilePhoneNotifyNetworkRegistrationStatusChange);
- CleanupStack::PushL(networkRegStChange);
- phone.NotifyNetworkRegistrationStatusChange(networkRegStChange, status);
-
- // Simulator simulates movement a cell with coverage.
- DisplayUserInteractionPromptL(_L("Please move to a cell with coverage"), ETimeLong);
-
- // === Ensure network registration changes ===
-
- // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with ERegisteredOnHomeNetwork
- ASSERT_EQUALS(WaitForRequestWithTimeOut(networkRegStChange, ETimeLong), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange timed out"));
- ASSERT_EQUALS(networkRegStChange.Int(), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange returned with an error"));
- ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange did not complete with status = ERegisteredOnHomeNetwork"));
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone,regStatus),KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(regStatus, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::GetRegistrationStatus did not return expected status"));
-
- // === Ensure network information notification received ===
- ASSERT_EQUALS(WaitForRequestWithTimeOut(regNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
- ASSERT_EQUALS(regNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned an error"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iCountryCode length 0") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iDisplayTag length 0"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iLongName length 0"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- ASSERT_EQUALS(netInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::NotifyCurrentNetworkChange did not return aNetworkInfo.iMode=ENetworkModeGsm"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iNetworkId length 0"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iShortName 0 "));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange did not return aNetworkInfo.iStatus=ENetworkStatusCurrent"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location cell ID 0"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location AreaCode ID 0"));
-
- // === Get current network ===
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPkg, area);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid Display Tag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- ASSERT_EQUALS(netInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkModeGsm as expected"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected "));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returned invalid iCellId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- //regNetChangeStatus
- //networkRegStChange
- //getCurrentNetworkStatus
- CleanupStack::PopAndDestroy(3, ®NetChangeStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0014::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0014");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0015::CCTSYIntegrationTestNetworkControl0015(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0015::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0015::~CCTSYIntegrationTestNetworkControl0015()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0015::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0015
- * @SYMFssID BA/CTSY/NTWC-0015
- * @SYMTestCaseDesc Cell selection after emergency camping.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::NotifyNetworkRegistrationStatusChange, RMobilePhone::NotifyCurrentNetworkChange
- * @SYMTestExpectedResults Pass - Phone re-registers successfully to the new cell when moving out of a cell with emergency coverage to one with full coverage.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify network registration status and current network information are correct.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10078);
- User::Leave(KErrNone);
-
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentNetwork | KCapsNotifyRegistrationStatus capabilities.
- TUint32 caps;
- CHECK_EQUALS_L(phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
- TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyRegistrationStatus;
- CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
-
- // SImulator is simulating cell with emergency coverage only.
- DisplayUserInteractionPromptL(_L("Please ensure cell is set for emergency calls only"), ETimeLong);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get registration status ===
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ENotRegisteredEmergencyOnly
-
-
- RMobilePhone::TMobilePhoneRegistrationStatus regStatus;
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone,regStatus),KErrNone,
- _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(regStatus, RMobilePhone::ENotRegisteredEmergencyOnly,
- _L("RMobilePhone::GetNetworkRegistrationStatus did not return expected status"));
-
- //Push notify for NotifyNetworkRegistrationStatusChange
- RMobilePhone::TMobilePhoneRegistrationStatus status;
- TExtEtelRequestStatus networkRegStChange(phone, EMobilePhoneNotifyNetworkRegistrationStatusChange);
- CleanupStack::PushL(networkRegStChange);
- phone.NotifyNetworkRegistrationStatusChange(networkRegStChange, status);
-
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
- RMobilePhone::TMobilePhoneLocationAreaV1 area;
-
- //Push notify for NotifyCurrentNetworkChange
- TExtEtelRequestStatus regNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(regNetChangeStatus);
- phone.NotifyCurrentNetworkChange( regNetChangeStatus, netInfoPkg, area );
-
- // Simulate moving into a new cell with full coverage.
- DisplayUserInteractionPromptL(_L("Simulate moving into a cell with full coverage"), ETimeLong);
-
- // === Check registration status notification completes ===
-
- // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredOnHomeNetwork
- ASSERT_EQUALS(WaitForRequestWithTimeOut(networkRegStChange, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange timed out"));
- ASSERT_EQUALS(networkRegStChange.Int(), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange returned with an error"));
- ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange did not complete with status = ERegisteredOnHomeNetwork"));
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns with ERegisteredOnHomeNetwork
- ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone,regStatus),KErrNone,
- _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
- ASSERT_EQUALS(regStatus, RMobilePhone::ERegisteredOnHomeNetwork,
- _L("RMobilePhone::GetRegistrationStatus did not return expected status"));
-
- // === Get current network ===
- ASSERT_EQUALS(WaitForRequestWithTimeOut(regNetChangeStatus, ETimeMedium), KErrNone,
- _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
- ASSERT_EQUALS(regNetChangeStatus.Int(), KErrNone,
- _L("RMobilePhone::NotifyCurrentNetworkChange returned an error"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iCountryCode length 0") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iDisplayTag length 0"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iLongName length 0"));
-
- //Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0,
- _L("RMobilePhone::NotifyCurrentNetworkChange returns iNetworkId length 0"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iShortName 0 "));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange did not return aNetworkInfo.iStatus=ENetworkStatusCurrent"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location cell ID 0"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location AreaCode ID 0"));
-
-
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork( getCurrentNetworkStatus, netInfoPkg, area );
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::GetCurrentNetwork timed out") );
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length()>0, _L("RMobilePhone::GetCurrentNetwork returns iCountryCode length 0"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iDisplayTag length 0"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iLongName length 0"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iNetworkId length 0"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iShortName length 0"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork did not return aNetworkInfo.iStatus=ENetworkStatusCurrent"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
- ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns Location cell ID 0"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns Location AreaCode ID 0"));
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- //Pop
- //networkRegStChange
- //regNetChangeStatus
- //getCurrentNetworkStatus
- CleanupStack::PopAndDestroy(3,&networkRegStChange);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0015::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0015");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0016::CCTSYIntegrationTestNetworkControl0016(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0016::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0016::~CCTSYIntegrationTestNetworkControl0016()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0016::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0016
- * @SYMFssID BA/CTSY/NTWC-0016
- * @SYMTestCaseDesc Get network capabilities.
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - Network caps returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify network capabilities returned are correct.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Check RMobilePhone::GetNetworkCaps returns caps of RMobilePhone::KCapsGetRegistrationStatus
- // | RMobilePhone::KCapsNotifyRegistrationStatus
- // | RMobilePhone::KCapsGetCurrentMode
- // | RMobilePhone::KCapsNotifyMode
- // | RMobilePhone::KCapsGetCurrentNetwork
- // | RMobilePhone::KCapsNotifyCurrentNetwork
- // | RMobilePhone::KCapsGetHomeNetwork
- // | RMobilePhone::KCapsGetDetectedNetworks
- // | RMobilePhone::KCapsManualNetworkSelection
- // | RMobilePhone::KCapsNotifyNITZInfo
- // | RMobilePhone::KCapsGetNITZInfo
-
- TUint32 caps;
- ASSERT_EQUALS( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned error") )
- TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus
- | RMobilePhone::KCapsNotifyRegistrationStatus
- | RMobilePhone::KCapsGetCurrentMode
- | RMobilePhone::KCapsNotifyMode
- | RMobilePhone::KCapsGetCurrentNetwork
- | RMobilePhone::KCapsNotifyCurrentNetwork
- | RMobilePhone::KCapsGetHomeNetwork
- | RMobilePhone::KCapsGetDetectedNetworks
- | RMobilePhone::KCapsManualNetworkSelection
- | RMobilePhone::KCapsNotifyNITZInfo
- | RMobilePhone::KCapsGetNITZInfo;
-
- ASSERT_BITS_SET( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returns wrong network caps") );
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0016::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0016");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0017::CCTSYIntegrationTestNetworkControl0017(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0017::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0017::~CCTSYIntegrationTestNetworkControl0017()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0017::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0017
- * @SYMFssID BA/CTSY/NTWC-0017
- * @SYMTestCaseDesc Receive period network information update.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetCurrentNetwork
- * @SYMTestExpectedResults Pass - Location information updated.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify current network information notification received.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10079);
- User::Leave(KErrNone);
-
- // Phone camped on valid cell.
- RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsNotifyCurrentNetwork capability.
- TUint32 caps;
- CHECK_EQUALS_L( mobilePhone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
- TUint32 wantedCaps = RMobilePhone::KCapsNotifyCurrentNetwork;
- CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps") );
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // $CTSYProblem Timer T3302 needs to be set in the attach accept message from the Simulator
- ASSERT(TRUE);
-
- // === Get current network information ===
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV1> netInfoPkg(netInfo);
- RMobilePhone::TMobilePhoneLocationAreaV1 area;
- TExtEtelRequestStatus currentNetworkStatus(mobilePhone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(currentNetworkStatus);
- mobilePhone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
-
- ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS( currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE( netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE( netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE( netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
- ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE((TInt)area.iLocationAreaCode > 0 ,_L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
- // === Register for notification of change in the current network. ===
-
- // Register for notification of RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5
-
- // Post notification for network change
- TExtEtelRequestStatus reqNetChangeStatus(mobilePhone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(reqNetChangeStatus);
- mobilePhone.NotifyCurrentNetworkChange( reqNetChangeStatus, netInfoPkg, area );
-
- // Simulated network sends new location network information (e.g. new display tag or new location area code)
- DisplayUserInteractionPromptL(_L("Simulate network sending new location information (e.g. new display tag or new location area code."), ETimeLong);
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
- ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned returned error"));
- ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE( netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongName") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE( netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE( netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortname") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange did not return ENetworkStatusCurrent status as expected"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
- //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId is not > 0 as expected.
- ASSERT_EQUALS((TInt)area.iCellId, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
-
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode is not > 0 as expected.
- ASSERT_EQUALS((TInt)area.iLocationAreaCode, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
-
- // === Get current network information ===
-
- mobilePhone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
- ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS( currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned returned error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE( netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE( netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE( netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected"))
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
- ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE((TInt)area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode") );
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Pop
- // currentNetworkStatus
- // reqNetChangeStatus
-
- CleanupStack::PopAndDestroy(2, ¤tNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0017::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0017");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0018::CCTSYIntegrationTestNetworkControl0018(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0018::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0018::~CCTSYIntegrationTestNetworkControl0018()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0018::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0018
- * @SYMFssID BA/CTSY/NTWC-0018
- * @SYMTestCaseDesc Receive notification of a higher priority network that does not offer CS voice.
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::RetrieveListL, CRetrieveMobilePhoneDetectedNetworks::NewL, RMobilePhone::GetNetworkInvScanSetting, RMobilePhone::SelectNetwork, CMobilePhoneNetworkListV5::Enumerate, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::GetHomeNetwork, RMobilePhone::NotifyNetworkInvScanEvent, CRetrieveMobilePhoneDetectedNetworks::StartV5
- * @SYMTestExpectedResults Pass - Network investigation scan event completes and new network can be selected.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify network investigation event completes and new network can be selected.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Check network investigation scan setting is on ===
-
- // Check RMobilePhone::GetNetworkInvScanSetting returns aSetting!=0
-
- // === Get the network ID of the home network (store this for use later) ===
-
- // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
-
- // === Detect another higher priority network ===
-
- // Simulator simulates an additional higher priority network which does not provide CS voice.
-
- // Check RMobilePhone::NotifyNetworkInvScanEvent completes with aEvent=ENetworkInvestigationHighPriorityPlmn
-
- // === Get list if detected networks ===
-
- // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V5 list of preferred networks
-
- // Check CMobilePhoneNetworkListV5::Enumerate on the list returned returns number of networks > 1
-
- // === Switch to manual network selection ===
-
- // Set network selection setting to automatic with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionManual
-
- // === Go through the list of detected networks and manually select new network ===
-
- // Cycle through the list of detected networks CMobilePhoneNetworkListV5
-
- // If the TMobilePhoneNetworkInfoV5::iNetworkId != aNetworkInfo.iNetworkId returned from RMobilePhone::GetHomeNetwork
-
- // then select network with RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=TMobilePhoneNetworkInfoV5::iCountryCode and aManualSelection.iNetwork=TMobilePhoneNetworkInfoV5::iNetworkId
-
- // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork or =ERegisteredRoaming
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0018::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0018");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0019::CCTSYIntegrationTestNetworkControl0019(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0019::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0019::~CCTSYIntegrationTestNetworkControl0019()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0019::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0019
- * @SYMFssID BA/CTSY/NTWC-0019
- * @SYMTestCaseDesc Move into new cell with an active call.
- * @SYMTestPriority High
- * @SYMTestActions RCall::GetStatus, RCall:Dial, RCall::NotifyStatusChange, RMobilePhone::NotifyCurrentNetworkChange
- * @SYMTestExpectedResults Pass - Network information can be retrieved.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify call stays connected and network information notification received.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10080);
- User::Leave(KErrNone);
-
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetCurrentNetwork, KCapsNotifyCurrentNetwork.
- TUint32 caps;
- CHECK_EQUALS_L( phone.GetNetworkCaps(caps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
- TUint32 wantedCaps = RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyCurrentNetwork;
- CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
-
- // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Get voice line 1.
- RMobileLine& mobileLine = iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KVoiceLine);
-
- // Get call 1.
- RMobileCall& mobileCall= iEtelSessionMgr.GetCallL(KMainServer,KMainPhone, KVoiceLine, KCall1);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get current network information ===
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- RMobilePhone::TMobilePhoneLocationAreaV1 location;
- RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
- TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(getCurrentNetworkStatus);
- phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName "));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE (netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus,RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
- ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode == 0
- ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
- // Post Notifier for RCall::NotifyStatusChange
- TCoreEtelRequestStatus<RCall> notifyStatusChangeStatus(mobileCall, &RCall::NotifyStatusChangeCancel);
- CleanupStack::PushL(notifyStatusChangeStatus);
- RCall::TStatus callStatus;
- mobileCall.NotifyStatusChange(notifyStatusChangeStatus, callStatus);
-
- // Dial a number that answers.
- TPtrC number;
- ASSERT_TRUE(GetStringFromConfig(KIniVoiceNumSection, KIniVoiceNumber1, number) != EFalse, _L("GetStringFromConfig did not complete as expected"));
- DEBUG_PRINTF1(_L("Board Now Dialling: "));
- TCoreEtelRequestStatus<RCall> dialStatus(mobileCall, &RCall::DialCancel);
- CleanupStack::PushL(dialStatus);
- mobileCall.Dial(dialStatus, number);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
- ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error"));
-
- // Check RCall::NotifyStatusChange completes with EStatusConnected.
- RCall::TStatus expectedCallStatus = RCall::EStatusConnected;
- iCallControlTestHelper.WaitForCallNotifyStatusChange(mobileCall,
- notifyStatusChangeStatus,
- callStatus,
- expectedCallStatus,
- KErrNone);
-
- // Post notification for network change
- TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(reqNetChangeStatus);
- phone.NotifyCurrentNetworkChange(reqNetChangeStatus, netInfoPckg, location);
-
- // Simulate moving into a new cell.
- DisplayUserInteractionPromptL(_L("Simulate moving into a new cell"), ETimeLong);
-
- // === Check change of current network notification completes ===
-
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
- ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned with an error"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongNamelength"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE (netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortNamelength"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iStatus"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
- ASSERT_TRUE(location.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
- ASSERT_TRUE(location.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
-
- // === Get current network information ===
-
- phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongNamelength"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortNamelength"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
- ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode == 0
- ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
-
- // === Check call is still connected ===
-
- // Check RCall::GetStatus returns EStatusConnected.
- ASSERT_EQUALS(mobileCall.GetStatus(callStatus), KErrNone, _L("RCall::GetStatus returned an Error"));
- ASSERT_EQUALS(callStatus, RCall::EStatusConnected, _L("RCall::GetStatus did not return EStatusConnected"));
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Hang up the active call.
- mobileCall.HangUp();
-
- // Pop
- // getCurrentNetworkStatus
- // notifyStatusChangeStatus
- // dialStatus
- // reqNetChangeStatus
- CleanupStack::PopAndDestroy(4, &getCurrentNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0019::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0019");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0020::CCTSYIntegrationTestNetworkControl0020(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0020::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0020::~CCTSYIntegrationTestNetworkControl0020()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0020::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0020
- * @SYMFssID BA/CTSY/NTWC-0020
- * @SYMTestCaseDesc Move into a new cell with packet service active.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::NotifyCurrentNetworkChange, RPacketService::GetStatus
- * @SYMTestExpectedResults Pass - Network information is retrieved. Packet service remains active.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies simulated/manual
- *
- * Reason for test: Verify packet service stays active.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
-
- // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetCurrentNetwork and KCapsNotifyCurrentNetwork.
- TUint32 caps;
- CHECK_EQUALS_L(phone.GetNetworkCaps(caps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
- TUint32 wantedCaps = RMobilePhone::KCapsGetHomeNetwork | RMobilePhone::KCapsNotifyCurrentNetwork;
- CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
-
- // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
- CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
-
- // Ensure phone is attached to packet service.
- // Get packet service
- RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
- // Get the attach mode so that it can be restored at the end of the test
- RPacketService::TAttachMode attachMode;
- CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
-
- SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
-
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get current network information ===
- RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
- TPckg<RMobilePhone::TMobilePhoneNetworkInfoV1> netInfoPkg(netInfo);
- RMobilePhone::TMobilePhoneLocationAreaV1 area;
- TExtEtelRequestStatus currentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
- CleanupStack::PushL(currentNetworkStatus);
- phone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
-
- ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS(currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
- ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
-
- // Post notification for network change
- TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
- CleanupStack::PushL(reqNetChangeStatus);
- phone.NotifyCurrentNetworkChange( reqNetChangeStatus, netInfoPkg, area );
-
- // Simulate moving into a new cell.
- DisplayUserInteractionPromptL(_L("Simulate moving into a new cell"), ETimeLong);
-
- // === Check change of current network notification completes ===
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
- ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned returned error"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongName"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortname"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iStatus"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
- //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId is not > 0 as expected.
- ASSERT_EQUALS((TInt)area.iCellId, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
-
- // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode == 0
- //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode is not > 0 as expected.
- ASSERT_EQUALS((TInt)area.iLocationAreaCode, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
-
-
- // === Get current network information ===
- phone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
- ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
- ASSERT_EQUALS( currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned returned error"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
- ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
- ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
- ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
- ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
- ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
- ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
- ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
-
- // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
- ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
-
- // === Check packet service is still attached ===
-
- // Check RPacketService::GetStatus returns EStatusAttached
- RPacketService::TStatus pckSrvcStatus;
- ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
- ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
-
- // === Check packet network status ===
-
- // Check RPacketService::GetNtwkRegStatus returns ERegisteredOnHomeNetwork
- TExtEtelRequestStatus regStatus(packetService, EPacketGetNtwkRegStatus);
- CleanupStack::PushL(regStatus);
- RPacketService::TRegistrationStatus registrationStatus;
- packetService.GetNtwkRegStatus(regStatus, registrationStatus);
- ASSERT_EQUALS(WaitForRequestWithTimeOut(regStatus, ETimeLong), KErrNone, _L("RPacketService::GetNtwkRegStatus timed-out."));
- ASSERT_EQUALS(regStatus.Int(), KErrNone, _L("RPacketService::GetNtwkRegStatus returned with an error"));
- ASSERT_EQUALS(registrationStatus, RPacketService::ERegisteredOnHomeNetwork, _L("RPacketService::GetNtwkRegStatus did not return RPacketService::ERegisteredOnHomeNetwork"));
-
- //
- // TEST END
- //
-
-
- StartCleanup();
-
- // Return packet service's attach mode to original setting
- ASSERT_EQUALS(packetService.SetAttachMode(attachMode), KErrNone, _L("RPacketService::SetAttachMode returned with an error."));
-
- // Pop
- // currentNetworkStatus
- // reqNetChangeStatus
- // regStatus
- CleanupStack::PopAndDestroy(3, ¤tNetworkStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0020::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0020");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0021::CCTSYIntegrationTestNetworkControl0021(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0021::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0021::~CCTSYIntegrationTestNetworkControl0021()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0021::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0021
- * @SYMFssID BA/CTSY/NTWC-0021
- * @SYMTestCaseDesc Store and retrieve a list of preferred networks.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::NotifyPreferredNetworksListChange, CRetrieveMobilePhonePreferredNetworks
-::Start
- * @SYMTestExpectedResults Pass - Preferred network list stored and retrieved.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify list retrieved is the same as that stored and notification of list change is received.
- *
- * @return - TVerdict code
- */
- {
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- TInt err;
-
- // === Create a list of preferred networks ===
- // Create three TMobilePreferredNetworkEntryV3 objects with valid values in
- // TMobilePreferredNetworkEntryV3::iAccess,
- // TMobilePreferredNetworkEntryV3::iCountryCode and
- // TMobilePreferredNetworkEntryV3::iNetworkId
-
- RMobilePhone::TMobilePreferredNetworkEntryV3 prefNetworks[3];
-
- // Three German networks
-
- prefNetworks[0].iAccess = RMobilePhone::KNetworkAccessGsm;
- prefNetworks[0].iCountryCode = _L("262");
- prefNetworks[0].iNetworkId = _L("01");
-
- prefNetworks[1].iAccess = RMobilePhone::KNetworkAccessGsm;
- prefNetworks[1].iCountryCode = _L("262");
- prefNetworks[1].iNetworkId = _L("02");
-
- prefNetworks[2].iAccess = RMobilePhone::KNetworkAccessGsm;
- prefNetworks[2].iCountryCode = _L("262");
- prefNetworks[2].iNetworkId = _L("03");
-
- CMobilePhoneStoredNetworkList *newNetList = CMobilePhoneStoredNetworkList::NewL();
- CleanupStack::PushL( newNetList );
-
- // Add them to a CMobilePhoneStoredNetworkList with CMobilePhoneStoredNetworkList::InsertEntryL
- for( TInt i=0; i < 3; i++ )
- {
- newNetList->AddEntryL(prefNetworks[i]);
- }
-
- TExtEtelRequestStatus reqStoreStatus( phone, EMobilePhoneStorePreferredNetworksList );
- CleanupStack::PushL(reqStoreStatus);
-
-
- // Request change notification
- TExtEtelRequestStatus reqPrefListChange( phone, EMobilePhoneNotifyStorePreferredNetworksListChange );
- CleanupStack::PushL(reqPrefListChange);
-
- phone.NotifyPreferredNetworksListChange( reqPrefListChange );
-
- // === Store list ===
- // Store the list with RMobilePhone::StorePreferredNetworksListL completes with KErrNone
-
- // The session manager cannot be used for this API because it
- // allocates memory.
- // Therefore open a new subsession just for this API
- RMobilePhone phone2;
- RTelServer telServer;
- User::LeaveIfError(telServer.Connect());
- User::LeaveIfError(phone2.Open(telServer, iEtelSessionMgr.PhoneName()));
- phone2.StorePreferredNetworksListL(reqStoreStatus, newNetList);
- err = WaitForRequestWithTimeOut( reqStoreStatus, ETimeLong );
- ASSERT_EQUALS( err, KErrNone, _L("RMobilePhone::StorePreferredNetworksList timed out"))
- ASSERT_EQUALS( reqStoreStatus.Int(), KErrNotSupported, _L("RMobilePhone::StorePreferredNetworksList returned error"))
- phone2.Close();
- telServer.Close();
-
- // $CTSYProblem CTSY does not support RMobilePhone::StorePreferredNetworksListL
- // so the test has been coded to return KErrNotSupported (the correct result in
- // this situation. When CTSY support has been added, the test case can be
- // extended to have the following code below.
-
-
- /*
- // === Check list change notification completes ===
-
- // Check RMobilePhone::NotifyPreferredNetworksListChange completes with KErrNone
- iNetworkTestHelper.WaitForMobilePhoneNotifyPreferredNetworksListChange( reqPrefListChange, KErrNone );
- ASSERT_EQUALS( reqPrefListChange.Int(), KErrNone,
- _L("RMobilePhone::NotifyPreferredNetworksListChange returned with an error") );
-
- // === Get list of preferred networks and verify it is the same as the list stored ===
- // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of
- // preferred networks
-
- CRetrieveMobilePhonePreferredNetworksExec *checkNetListHelper =
- CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
- CleanupStack::PushL( checkNetListHelper );
-
- CMobilePhoneStoredNetworkList* checkNetList = checkNetListHelper->DoGetList(err);
-
- // Check CMobilePhoneStoredNetworkList::Enumerate on the list retrieved returns number of networks = 3
- TInt checkCount = checkNetList->Enumerate();
-
- ASSERT_EQUALS( checkCount, 3, _L("Incorrect number of entries in CMobilePhoneStoredNetworkList"));
-
- ASSERT_TRUE( IsPreferredNetworkInListL( *checkNetList, prefNetworks[0]), _L("Entry 0 not found in list") );
- ASSERT_TRUE( IsPreferredNetworkInListL( *checkNetList, prefNetworks[1]), _L("Entry 1 not found in list") );
- ASSERT_TRUE( IsPreferredNetworkInListL( *checkNetList, prefNetworks[2]), _L("Entry 2 not found in list") );
- */
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // reqPrefListChange
- // reqStoreStatus
- // newNetList
- CleanupStack::PopAndDestroy(3, newNetList);
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0021::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0021");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0022::CCTSYIntegrationTestNetworkControl0022(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0022::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0022::~CCTSYIntegrationTestNetworkControl0022()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0022::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0022
- * @SYMFssID BA/CTSY/NTWC-0022
- * @SYMTestCaseDesc Get service provider name.
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - Service provider name returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify service provider name is retrieved.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
-
- RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus;
- TInt err = iNetworkTestHelper.GetNetworkRegistrationStatusL( phone,registrationStatus);
-
- CHECK_TRUE_L(err == KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned error"))
-
- CHECK_TRUE_L(registrationStatus == RMobilePhone::ERegisteredOnHomeNetwork,
- _L("RMobilePhone::GetNetworkRegistrationStatus did not return ERegisteredOnHomeNetwork"))
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get service provider name ===
- RMobilePhone::TMobilePhoneServiceProviderNameV2 spName;
- TPckg<RMobilePhone::TMobilePhoneServiceProviderNameV2> spNamePkg(spName);
- TExtEtelRequestStatus reqGetSPNameStatus(phone, EMobilePhoneGetServiceProviderName );
- CleanupStack::PushL(reqGetSPNameStatus);
-
- phone.GetServiceProviderName(reqGetSPNameStatus, spNamePkg );
- ASSERT_EQUALS( WaitForRequestWithTimeOut(reqGetSPNameStatus, ETimeLong ), KErrNone,
- _L("RMobilePhone::GetServiceProviderName timed out") );
- ASSERT_EQUALS( reqGetSPNameStatus.Int(), KErrGsm0707NotFound ,_L("RMobilePhone::GetServiceProviderName returned error") );
-
- // $CTSYProblem The LTSY always returns KErrGsm0707NotFound when this API is called.
- // CTSY correctly propagates the error back to the client.
- // If the LTSY does not return an error the following code can be used to test
- // this API.
-
- /*
- // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iPLMNField with length > 0
- // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iSPName with length > 0
- ASSERT_TRUE( spName.iPLMNField.Length() > 0,
- _L("RMobilePhone::GetServiceProviderName returns TMobilePhoneServiceProviderNameV2 iPLMNField has zero length"))
- ASSERT_TRUE( spName.iSPName.Length() > 0,
- _L("RMobilePhone::GetServiceProviderName returns TMobilePhoneServiceProviderNameV2 iSPName has zero length"))
- */
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- CleanupStack::PopAndDestroy(1,&reqGetSPNameStatus);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0022::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0022");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0023::CCTSYIntegrationTestNetworkControl0023(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0023::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0023::~CCTSYIntegrationTestNetworkControl0023()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0023::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0023
- * @SYMFssID BA/CTSY/NTWC-0023
- * @SYMTestCaseDesc Cancel retrieval of preferred networks.
- * @SYMTestPriority High
- * @SYMTestActions
- * @SYMTestExpectedResults Pass - Retrieval of preferred networks is cancelled.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- //iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get list of all the preferred networks and cancel request ===
-
- // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
-
- // Cancel the request
-
- // Check request completes with KErrCancel
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0023::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0023");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0024::CCTSYIntegrationTestNetworkControl0024(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0024::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0024::~CCTSYIntegrationTestNetworkControl0024()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0024::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0024
- * @SYMFssID BA/CTSY/NTWC-0024
- * @SYMTestCaseDesc Cancel retrieval of detected networks.
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::StartV2, CRetrieveMobilePhoneDetectedNetworks::StartV5, CRetrieveMobilePhoneDetectedNetworks::StartV8
- * @SYMTestExpectedResults Pass - Retrieval of detected networks is cancelled.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- //iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
-
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
-
- // === Get list of all the detected networks with V1 version of the API and cancel request ===
-
- // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V1 list of detected networks
-
- // Cancel the request immediately
-
- // Check request completes with KErrCancel
-
- // === Get list of all the detected networks with V2 version of the API ===
-
- // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V2 list of detected networks
-
- // Cancel the request immediately
-
- // Check request completes with KErrCancel
-
- // === Get list of all the detected networks with V5 version of the API ===
-
- // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V5 list of detected networks
-
- // Cancel the request immediately
-
- // Check request completes with KErrCancel
-
- // === Get list of all the detected networks with V8 version of the API ===
-
- // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V8 list of detected networks
-
- // Cancel the request with immediately
-
- // Check request completes with KErrCancel
-
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Put any required test clean up here, then remove this comment
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0024::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0024");
- }
-
-
-
-CCTSYIntegrationTestNetworkControl0025::CCTSYIntegrationTestNetworkControl0025(CEtelSessionMgr& aEtelSessionMgr)
- : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
- {
- SetTestStepName(CCTSYIntegrationTestNetworkControl0025::GetTestStepName());
- }
-
-CCTSYIntegrationTestNetworkControl0025::~CCTSYIntegrationTestNetworkControl0025()
-/**
- * Destructor.
- */
- {
- }
-
-TVerdict CCTSYIntegrationTestNetworkControl0025::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-NTWC-0025
- * @SYMFssID BA/CTSY/NTWC-0025
- * @SYMTestCaseDesc Set network selection setting to an unsupported setting.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhone::NotifyNetworkSelectionSettingChange, RMobilePhone::SetNetworkSelectionSetting
- * @SYMTestExpectedResults Pass - KErrNotSupported returned when unsupported setting is set and old setting is preserved.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify KErrNotSupported is returned and network selection setting is unchanged.
- *
- * @return - TVerdict code
- */
- {
-
- //
- // SET UP
- //
-
- RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
- iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
-
- //
- // SET UP END
- //
-
- StartTest();
-
- //
- // TEST START
- //
-
- // Set up the notification for RMobilePhone::NotifyNetworkSelectionSettingChange for later test
- TExtEtelRequestStatus reqNotifyNetSelSettingChange(phone, EMobilePhoneNotifyNetworkSelectionSettingChange);
- CleanupStack::PushL(reqNotifyNetSelSettingChange);
-
- RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelNotify;
- RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelNotifyPkg( netSelNotify );
-
- phone.NotifyNetworkSelectionSettingChange(reqNotifyNetSelSettingChange, netSelNotifyPkg);
-
- // === Set network selection setting to an unsupported setting ===
- // Set network selection setting to manual wtth RMobilePhone::SetNetworkSelectionSetting with
- // aSetting.iMethod=ENetworkSelectionUnknown
- TExtEtelRequestStatus setNetSelSettingStatus(phone, EMobilePhoneSetNetworkSelectionSetting);
- CleanupStack::PushL(setNetSelSettingStatus);
- RMobilePhone::TMobilePhoneNetworkSelectionV1 netSel;
- RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelPkg(netSel);
- netSel.iMethod = RMobilePhone::ENetworkSelectionUnknown;
- phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelPkg );
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
-
- // Check KErrNotSupported is returned
- ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNotSupported,
- _L("RMobilePhone::SetNetworkSelectionSetting did not return KErrNotSupported"));
-
- // Check RMobilePhone::NotifyNetworkSelectionSettingChange is still pending
- ASSERT_EQUALS( reqNotifyNetSelSettingChange.Int(), KRequestPending,
- _L("RMobilePhone::NotifyNetworkSelectionSettingChange did not return KRequestPending"));
-
- //
- // TEST END
- //
-
- StartCleanup();
-
- // Set the network selection back to automatic
-
- netSel.iMethod = RMobilePhone::ENetworkSelectionAutomatic;
- phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelPkg );
-
- ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
-
- ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNone,
- _L("RMobilePhone::SetNetworkSelectionSetting returned error"))
-
- //setNetSelSettingStatus
- //reqNotifyNetSelSettingChange
- CleanupStack::PopAndDestroy(2,&reqNotifyNetSelSettingChange);
-
- return TestStepResult();
- }
-
-TPtrC CCTSYIntegrationTestNetworkControl0025::GetTestStepName()
-/**
- * @return The test step name.
- */
- {
- return _L("CCTSYIntegrationTestNetworkControl0025");
- }
-
-
-
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Test step definitions for the NetworkControl functional unit.
+//
+//
+
+/**
+ @internalTechnology
+*/
+
+#include <etelpckt.h>
+#include <pcktcs.h>
+
+#include "cctsyintegrationtestnetworkcontrol.h"
+#include "listretrievalhelpers.h"
+#include "cctsyinidata.h"
+
+
+CCTSYIntegrationTestNetworkControlBase::CCTSYIntegrationTestNetworkControlBase(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr),
+ iNetworkTestHelper(*this),
+ iCallControlTestHelper(*this),
+ iPacketServiceTestHelper(*this)
+
+/**
+ * Constructor
+ */
+ {
+ }
+
+CCTSYIntegrationTestNetworkControlBase::~CCTSYIntegrationTestNetworkControlBase()
+/*
+ * Destructor
+ */
+ {
+ }
+
+
+/**
+* Check a preferred network entry is in the list
+*
+* @param aList The list to search.
+* @param aTarget The network to search for in aList.
+*
+* @return ETrue if aTarget is found in aList, EFalse otherwise.
+*/
+TBool CCTSYIntegrationTestNetworkControlBase::IsPreferredNetworkInListL(
+ CMobilePhoneStoredNetworkList& aList,
+ RMobilePhone::TMobilePreferredNetworkEntryV3& aTarget)
+ {
+ TInt listCount = aList.Enumerate();
+
+ for( TInt i=0; i < listCount; i++ )
+ {
+ const RMobilePhone::TMobilePreferredNetworkEntryV3 &netInfo = aList.GetEntryL(i);
+
+ if( netInfo.iAccess == aTarget.iAccess &&
+ netInfo.iCountryCode == aTarget.iCountryCode &&
+ netInfo.iNetworkId == aTarget.iNetworkId )
+ {
+ return ETrue;
+ }
+ }
+
+ return EFalse;
+
+ }
+
+void CCTSYIntegrationTestNetworkControlBase::SetAttachModeToWhenPossibleAndWaitForAttachL(RPacketService& aPacketService)
+/**
+ * Attaches the phone to the packet service by setting the
+ * attach mode to RPacketService::EAttachWhenPossible. Requests
+ * that the phone attaches to the packet service and waits for
+ * attach to complete.
+ *
+ * @param aPacketService Reference to packet service subsession.
+ */
+ {
+ RPacketService::TAttachMode attachMode;
+ CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+
+ TExtEtelRequestStatus notifyServiceStatusChStatus(aPacketService, EPacketNotifyStatusChange);
+ CleanupStack::PushL(notifyServiceStatusChStatus);
+ RPacketService::TStatus packetServiceStatus;
+ aPacketService.NotifyStatusChange(notifyServiceStatusChStatus, packetServiceStatus);
+
+ if(attachMode != RPacketService::EAttachWhenPossible)
+ {
+ CHECK_EQUALS_L(aPacketService.SetAttachMode(RPacketService::EAttachWhenPossible), KErrNone,
+ _L("RPacketService::SetAttachMode returned with an error."));
+ }
+
+ CHECK_EQUALS_L(aPacketService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+ CHECK_EQUALS_L(attachMode, RPacketService::EAttachWhenPossible, _L("RPacketService::GetAttachMode did not return EAttachWhenPossible."));
+
+ // Ensure phone is attached to the packet service (RPacketService::GetStatus returns EStatusAttached).
+ RPacketService::TStatus packetStatus;
+ CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
+
+ // Wait for phone to attach to packet service if it is not attached.
+ if (packetStatus == RPacketService::EStatusUnattached)
+ {
+ iPacketServiceTestHelper.WaitForPacketServiceNotifyStatusChange(
+ aPacketService,
+ notifyServiceStatusChStatus,
+ packetServiceStatus,
+ RPacketService::EStatusAttached,
+ KErrNone);
+ CHECK_EQUALS_L(aPacketService.GetStatus(packetStatus), KErrNone, _L("RPacketService::GetStatus returned with an error"));
+ CHECK_EQUALS_L(packetStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus did not return EStatusAttached"));
+ }
+
+ CleanupStack::PopAndDestroy(1, ¬ifyServiceStatusChStatus);
+ }
+
+/**************************************************************************/
+
+CCTSYIntegrationTestNetworkControl0001::CCTSYIntegrationTestNetworkControl0001(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0001::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0001::~CCTSYIntegrationTestNetworkControl0001()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0001::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0001
+ * @SYMFssID BA/CTSY/NTWC-0001
+ * @SYMTestCaseDesc Manually select home and non-home network.
+
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhonePreferredNetworks::NewL, RMobilePhone::SelectNetwork, RMobilePhone::StorePreferredNetworksListL, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkSelectionSetting, RMobilePhone::NotifyNetworkSelectionSettingChange
+ * @SYMTestExpectedResults Pass - Can register onto home network and this does not change preferred network list.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify home network can be selected, non-home network cannot be selected and preferred network list does not change after manual network selection.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetDetectedNetworks | KCapsManualNetworkSelection
+ TUint32 caps;
+ CHECK_EQUALS_L( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
+ TUint32 wantedCaps = RMobilePhone::KCapsGetDetectedNetworks | RMobilePhone::KCapsManualNetworkSelection;
+ CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps") );
+
+ // Ensure RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionAutomatic
+ RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelSetting;
+ RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelSettingPkg(netSelSetting);
+
+ CHECK_EQUALS_L( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
+ _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
+
+ if (netSelSetting.iMethod != RMobilePhone::ENetworkSelectionAutomatic)
+ {
+ DEBUG_PRINTF1(_L("Setting network selection setting to auto"));
+ TExtEtelRequestStatus setNetSelSettingStatus(phone, EMobilePhoneSetNetworkSelectionSetting);
+ CleanupStack::PushL(setNetSelSettingStatus);
+ netSelSetting.iMethod = RMobilePhone::ENetworkSelectionAutomatic;
+ phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelSettingPkg );
+
+ CHECK_EQUALS_L(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
+ CHECK_EQUALS_L( setNetSelSettingStatus.Int(), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting returned error") );
+
+ CleanupStack::Pop(&setNetSelSettingStatus);
+ }
+
+ CHECK_EQUALS_L( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
+ _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
+ CHECK_EQUALS_L( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionAutomatic,
+ _L("RMobilePhone::GetNetworkSelectionSetting - TMobilePhoneNetworkSelectionV1::iMethod was not ENetworkSelectionAutomatic") );
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Get the ID and country code of the home network and store it for use later ===
+ RMobilePhone::TMobilePhoneNetworkInfoV1 homeNetworkInfo;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV1> homeInfoPkg(homeNetworkInfo);
+ TExtEtelRequestStatus getHomeNetworkStatus(phone, EMobilePhoneGetHomeNetwork);
+ CleanupStack::PushL(getHomeNetworkStatus);
+ phone.GetHomeNetwork( getHomeNetworkStatus, homeInfoPkg );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getHomeNetworkStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::GetHomeNetwork timed out") );
+ ASSERT_EQUALS( getHomeNetworkStatus.Int(), KErrNone, _L("TNetworkTsyTestHelper::GetHomeNetworkL returned an error") );
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV1 returns aNetworkInfo.iNetworkId with length > 0
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV1 returns aNetworkInfo.iCountryCode with length > 0
+
+ ASSERT_TRUE( homeNetworkInfo.iNetworkId.Length() > 0,
+ _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iNetworkId <= 0"));
+ ASSERT_TRUE( homeNetworkInfo.iCountryCode.Length() > 0,
+ _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iCountryCode <= 0"));
+
+ // === Put the phone into manual network selection mode. ===
+
+ // Set up the RMobilePhone::NotifyNetworkSelectionSettingChange notification for later test
+ TExtEtelRequestStatus notifyNetSelSettingChange( phone, EMobilePhoneNotifyNetworkSelectionSettingChange);
+ CleanupStack::PushL(notifyNetSelSettingChange);
+
+ RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelNotify;
+ RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelNotifyPkg( netSelNotify );
+ phone.NotifyNetworkSelectionSettingChange(notifyNetSelSettingChange, netSelNotifyPkg);
+
+ // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting with
+ // aSetting.iMethod = ENetworkSelectionManual
+ TExtEtelRequestStatus setNetSelSettingStatus(phone, EMobilePhoneSetNetworkSelectionSetting);
+ CleanupStack::PushL(setNetSelSettingStatus);
+ netSelSetting.iMethod = RMobilePhone::ENetworkSelectionManual;
+ phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelSettingPkg );
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
+ ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting returned error") );
+
+ // === Verify manual selection mode has been set and notification received ===
+
+ // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with
+ // aSetting.iMethod = ENetworkSelectionManual
+ iNetworkTestHelper.WaitForMobilePhoneNotifyNetworkSelectionSettingChange(phone,
+ notifyNetSelSettingChange,netSelNotify,
+ RMobilePhone::ENetworkSelectionManual, KErrNone);
+
+ // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
+ ASSERT_EQUALS( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
+ _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
+ ASSERT_EQUALS( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionManual,
+ _L("RMobilePhone::GetNetworkSelectionSetting returned method is not ENetworkSelectionManual") );
+
+ // === Get and store (locally) the list of preferred networks for use later ===
+
+ // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
+ // Store list for use later.
+
+ CRetrieveMobilePhonePreferredNetworksExec *netListHelper = CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
+ CleanupStack::PushL( netListHelper );
+ TInt err;
+ CMobilePhoneStoredNetworkList* prefNetList = netListHelper->DoGetList(err);
+ ASSERT_EQUALS(err, KErrNotSupported, _L("CRetrieveMobilePhonePreferredNetworks::Start failed to get the list"));
+
+ // === Get List of detected networks and ensure that this list contain at least 2 networks ===
+ // (the home network and an other one).
+ // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a list of detected networks
+ CRetrieveMobilePhoneDetectedNetworksExec *detectedNetListHelper =
+ CRetrieveMobilePhoneDetectedNetworksHelper::NewL(phone,ERetrieveListV1);
+
+ CMobilePhoneNetworkList *detectedNetList = detectedNetListHelper->DoGetList(err);
+
+ ASSERT_EQUALS(err, KErrNotSupported, _L("CRetrieveMobilePhoneDetectedNetworks::Start failed to get the list"));
+
+ // $CTSYProblem CTSY does not support EMobilePhoneGetPreferredNetworksPhase1 and
+ // EMobilePhoneGetDetectedNetworksPhase1 IPCs.
+ // If supported for these are added, the rest of this test can be uncommented
+ // and the CleanupStack items sorted out.
+
+ /*
+ TInt detectedNetCount = detectedNetList->Enumerate();
+ DEBUG_PRINTF2(_L("CRetrieveMobilePhoneDetectedNetworks returned list of %d entries"), detectedNetCount );
+ ASSERT_TRUE(detectedNetCount >= 2, _L("CRetrieveMobilePhoneDetectedNetworks returned list of < 2 entries"));
+
+ // Cycle through the items in CMobilePhoneNetworkList list and find a network which
+ // is not the home network (TMobilePhoneNetworkInfoV1::iNetworkId in the list != aNetworkInfo.iNetworkId
+ // from RMobilePhone::GetHomeNetwork)
+ const RMobilePhone::TMobilePhoneNetworkInfoV1 *notHomeNetworkInfo = NULL;
+ for( TInt i=0; i < detectedNetCount; i++ )
+ {
+ const RMobilePhone::TMobilePhoneNetworkInfoV1 &netInfo = detectedNetList->GetEntryL(i);
+ if( netInfo.iNetworkId != homeNetworkInfo.iNetworkId )
+ {
+ notHomeNetworkInfo = &netInfo;
+ break;
+ }
+ }
+
+ // === When a non-home network has been found, try to select it ===
+ ASSERT_TRUE( NULL != notHomeNetworkInfo, _L("Failed to find a non-home network") );
+ TEST_CHECK_POINT_L( _L("Failed to find a non-home network, leaving") );
+
+ // Select network with RMobilePhone::SelectNetwork with
+ // aIsManual=ETrue and
+ // aManualSelection.iCountry=TMobilePhoneNetworkInfoV1::iCountryCode and
+ // aManualSelection.iNetwork=TMobilePhoneNetworkInfoV1::iNetworkId
+
+ TExtEtelRequestStatus reqSetNetworkStatus(phone, EMobilePhoneSelectNetwork);
+ CleanupStack::PushL(reqSetNetworkStatus);
+ RMobilePhone::TMobilePhoneNetworkManualSelection manNetSel;
+
+ manNetSel.iCountry = notHomeNetworkInfo->iCountryCode;
+ manNetSel.iNetwork = notHomeNetworkInfo->iNetworkId;
+ phone.SelectNetwork(reqSetNetworkStatus, ETrue, manNetSel );
+
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqSetNetworkStatus, ETimeLong ), KErrNone,
+ _L("RMobilePhone::SelectNetwork timed out") );
+
+ // Check this returns error != KErrorNone
+ ASSERT_TRUE( KErrNone != reqSetNetworkStatus.Int(),
+ _L("RMobilePhone::SelectNetwork on non home network succeeded - should fail"));
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegistrationDenied
+ RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus;
+ iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, registrationStatus);
+ ASSERT_EQUALS(registrationStatus, RMobilePhone::ERegistrationDenied,
+ _L("RMobilePhone::GetNetworkRegistrationStatus did not return ERegistrationDenied"));
+
+ // === Register back on the home network ===
+ // Select network with RMobilePhone::SelectNetwork with
+ // aIsManual=ETrue and aManualSelection.iCountry=aNetworkInfo.iCountryCode
+ // of home network and aManualSelection.iNetwork=aNetworkInfo.iNetworkId of home network
+
+ manNetSel.iCountry = homeNetworkInfo.iCountryCode;
+ manNetSel.iNetwork = homeNetworkInfo.iNetworkId;
+ phone.SelectNetwork(reqSetNetworkStatus, ETrue, manNetSel );
+
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqSetNetworkStatus, ETimeLong ), KErrNone,
+ _L("RMobilePhone::SelectNetwork timed out") );
+
+ // Check this returns error != KErrorNone
+ ASSERT_TRUE( KErrNone != reqSetNetworkStatus.Int(),
+ _L("RMobilePhone::SelectNetwork on home network succeeded - should fail"));
+
+ // === Get list of preferred networks and check it has not changed ===
+ // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
+
+ CRetrieveMobilePhonePreferredNetworksExec *checkNetListHelper = CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
+ CleanupStack::PushL( checkNetListHelper );
+
+ CMobilePhoneStoredNetworkList* checkPrefNetList = checkNetListHelper->DoGetList(err);
+ ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhonePreferredNetworks::DoGetList failed to get the check list"));
+
+ // Check contents of each entry in the CMobilePhoneStoredNetworkList list retrieved is the same as the
+ // first preferred network list.
+
+ TInt prefListCount = prefNetList->Enumerate();
+ TInt checkListCount = checkPrefNetList->Enumerate();
+
+ ASSERT_EQUALS( prefListCount, checkListCount, _L("Lists of preferred networks differ in size"));
+
+ if( prefListCount == checkListCount )
+ {
+ // Lists are the same size. We assume the order is the same too
+ for( TInt j=0; j < prefListCount; j++ )
+ {
+ const RMobilePhone::TMobilePreferredNetworkEntryV3 &prefInfo = prefNetList->GetEntryL(j);
+ const RMobilePhone::TMobilePreferredNetworkEntryV3 &checkInfo = checkPrefNetList->GetEntryL(j);
+
+ ASSERT_EQUALS( prefInfo.iCountryCode, checkInfo.iCountryCode, _L("Phone entry country codes do not match"));
+ ASSERT_EQUALS( prefInfo.iNetworkId, checkInfo.iNetworkId, _L("Phone network ids do not match"));
+
+ }
+ }
+ */
+ // Repost the notification request
+ phone.NotifyNetworkSelectionSettingChange(notifyNetSelSettingChange, netSelNotifyPkg);
+
+ // === Put the phone into automatic network selection mode. ===
+ // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting
+ // with aSetting.iMethod = ENetworkSelectionAutomatic
+ netSelSetting.iMethod = RMobilePhone::ENetworkSelectionAutomatic;
+ phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelSettingPkg );
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
+
+ ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting returned error") );
+
+ // === Verify automatic selection mode has been set and notification received ===
+
+ // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with aSetting.iMethod = ENetworkSelectionAutomatic
+ iNetworkTestHelper.WaitForMobilePhoneNotifyNetworkSelectionSettingChange(phone,
+ notifyNetSelSettingChange, netSelNotify,
+ RMobilePhone::ENetworkSelectionAutomatic,
+ KErrNone);
+
+ // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionAutomatic
+ ASSERT_EQUALS( phone.GetNetworkSelectionSetting( netSelSettingPkg ), KErrNone,
+ _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
+ ASSERT_EQUALS( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionAutomatic,
+ _L("RMobilePhone::GetNetworkSelectionSetting did not return ENetworkSelectionAutomatic") );
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // netListHelper
+ // setNetSelSettingStatus
+ // notifyNetSelSettingChange
+ // getHomeNetworkStatus
+ CleanupStack::PopAndDestroy(4,&getHomeNetworkStatus);
+
+ return TestStepResult();
+ }
+
+
+TPtrC CCTSYIntegrationTestNetworkControl0001::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0001");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0002::CCTSYIntegrationTestNetworkControl0002(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0002::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0002::~CCTSYIntegrationTestNetworkControl0002()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0002::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0002
+ * @SYMFssID BA/CTSY/NTWC-0002
+ * @SYMTestCaseDesc Basic cell selection
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::GetLastUsedAccessTechnology, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::GetServiceProviderName, RMobilePhone::GetCurrentNetworkName
+ * @SYMTestExpectedResults Pass - Phone camps on a cell
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify phone has camped on a cell with an expected network information - name, mode, type, cellid, location area
+ *
+ * @return - TVerdict code
+ */
+ {
+ //
+ // SET UP
+ //
+
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentMode | KCapsGetCurrentNetwork | KCapsGetHomeNetwork
+ TUint32 networkCaps=0;
+ CHECK_EQUALS_L(mobilePhone.GetNetworkCaps(networkCaps), KErrNone,
+ _L("RMobilePhone::GetNetworkCaps returned with an error"));
+ TUint32 expectedCaps= RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentMode
+ | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsGetHomeNetwork;
+ CHECK_BITS_SET_L(networkCaps, expectedCaps, KNoUnwantedBits,
+ _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Get mode ===
+
+ // Check RMobilePhone::GetCurrentMode returns aNetworkMode=ENetworkModeGsm or ENetworkModeWcdma
+ RMobilePhone::TMobilePhoneNetworkMode mode;
+ ASSERT_EQUALS(mobilePhone.GetCurrentMode(mode), KErrNone, _L("RMobilePhone::GetCurrentMode returned with an error"));
+
+ ASSERT_TRUE((mode == RMobilePhone::ENetworkModeGsm) || (mode == RMobilePhone::ENetworkModeWcdma),
+ _L("RMobilePhone::GetCurrentMode did not return ENetworkModeGsm or ENetworkModeWcdma as expected"));
+
+ // === Get current network ===
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ RMobilePhone::TMobilePhoneLocationAreaV1 location;
+ RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
+ TExtEtelRequestStatus getCurrentNetworkStatus(mobilePhone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ mobilePhone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone,
+ _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
+ ASSERT_TRUE(netInfo.iCountryCode.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Country Code"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Long Name"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or ENetworkModeWcdma
+ ASSERT_TRUE((netInfo.iMode == RMobilePhone::ENetworkModeGsm) || (netInfo.iMode == RMobilePhone::ENetworkModeWcdma) , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkModeGsm Mode or ENetworkModeWcdma Mode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Network Id"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length()>0 , _L("RMobilePhone::GetCurrentNetwork returned with blank Short Name"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus,RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected "));
+
+ // Check RMobilePhone::GetLastUsedAccessTechnology returns aAccessTech=ENetworkAccessUnknown or ENetworkAccessGsm or ENetworkAccessGsmCompact or ENetworkAccessUtran
+ RMobilePhone::TMobilePhoneNetworkAccess accessTech;
+ TExtEtelRequestStatus getLastUsedAccessTechnologyStatus(mobilePhone, EMobilePhoneGetLastUsedAccessTechnology);
+ CleanupStack::PushL(getLastUsedAccessTechnologyStatus);
+ mobilePhone.GetLastUsedAccessTechnology(getLastUsedAccessTechnologyStatus,accessTech);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getLastUsedAccessTechnologyStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetLastUsedAccessTechnology timed out"));
+ ASSERT_EQUALS(getLastUsedAccessTechnologyStatus.Int(), KErrNotSupported, _L("RMobilePhone::GetLastUsedAccessTechnology returned with an error"));
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork
+ RMobilePhone::TMobilePhoneRegistrationStatus status;
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL( mobilePhone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork,
+ _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ERegisteredOnHomeNetwork Status"));
+
+ // === Get service provider name ===
+
+ // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iPLMNField with length > 0
+ RMobilePhone::TMobilePhoneServiceProviderNameV2 providerName;
+ RMobilePhone::TMobilePhoneServiceProviderNameV2Pckg providerNamePckg(providerName);
+ TExtEtelRequestStatus getServiceProviderNameStatus(mobilePhone, EMobilePhoneGetServiceProviderName);
+ CleanupStack::PushL(getServiceProviderNameStatus);
+ mobilePhone.GetServiceProviderName(getServiceProviderNameStatus, providerNamePckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getServiceProviderNameStatus, ETimeMedium),KErrNone,
+ _L("RMobilePhone::GetServiceProviderName timed out"));
+ ASSERT_EQUALS(getServiceProviderNameStatus.Int(), KErrGsm0707NotFound,
+ _L("RMobilePhone::GetServiceProviderName returned with an error"));
+
+ // $CTSYProblem
+ // For RMobilePhone::GetServiceProviderName, LTSY is returning KErrGsm0707NotFound
+ // CTSY is correctly propagating the error back to the client.
+ // If the LTSY is altered to retrieve the provider name successfully, the following
+ // test code can be used and KErrNone can be expected from this API.
+
+/* // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iDisplayReq with length > 0
+ ASSERT_TRUE(providerName.iDisplayReq !=0, _L("RMobilePhone::GetServiceProviderName returned 0 RMobilePhone::TMobilePhoneServiceProviderNameV2.iDisplayReq"));
+
+ // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iPLMNField with length > 0
+ ASSERT_TRUE(providerName.iPLMNField.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank PLMNField"));
+
+ // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iSPName with length > 0
+ ASSERT_TRUE(providerName.iSPName.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank SPName"));
+*/
+
+ // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneNetworkNameV3 returns aNetworkName.iLongName with length > 0
+ RMobilePhone::TMobilePhoneNetworkNameV3 networkname;
+ RMobilePhone::TMobilePhoneNetworkNameV3Pckg networknamePckg(networkname);
+ RMobilePhone::TMobilePhoneOPlmnV3 locInfo;
+ RMobilePhone::TMobilePhoneOPlmnV3Pckg locInfoPckg(locInfo);
+ TExtEtelRequestStatus getCurrentNetworkNameStatus(mobilePhone, EMobilePhoneGetNetworkName);
+ CleanupStack::PushL(getCurrentNetworkNameStatus);
+ mobilePhone.GetCurrentNetworkName(getCurrentNetworkNameStatus, networknamePckg, locInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkNameStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetCurrentNetworkName timed out"));
+ ASSERT_EQUALS(getCurrentNetworkNameStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetworkName returned with an error"));
+ ASSERT_TRUE(networkname.iLongName.Length()>0 , _L("RMobilePhone::GetCurrentNetworkName returned with blank Long Name"));
+
+ // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneNetworkNameV3 returns aNetworkName.iShortName with length > 0
+ ASSERT_TRUE(networkname.iShortName.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank Short Name"));
+
+ // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneOPlmnV3 returns aLocInfo.iCountryCode with length > 0
+ ASSERT_TRUE(locInfo.iCountryCode.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank Country Code"));
+
+ // Check RMobilePhone::GetCurrentNetworkName with a TMobilePhoneOPlmnV3 returns aLocInfo.iNetworkId with length > 0
+ ASSERT_TRUE(locInfo.iNetworkId.Length()>0 , _L("RMobilePhone::GetServiceProviderName returned with blank Network Id"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+ // Pop
+ // getCurrentNetworkStatus
+ // getLastUsedAccessTechnologyStatus
+ // getServiceProviderNameStatus
+ // getCurrentNetworkNameStatus
+
+ CleanupStack::PopAndDestroy(4, &getCurrentNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0002::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0002");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0003::CCTSYIntegrationTestNetworkControl0003(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0003::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0003::~CCTSYIntegrationTestNetworkControl0003()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0003::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0003
+ * @SYMFssID BA/CTSY/NTWC-0003
+ * @SYMTestCaseDesc Cell reselection from "no service" state
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::NotifyNetworkRegistrationStatusChange, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::NotifyModeChange
+ * @SYMTestExpectedResults Pass - Phone reselects a cell.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify cell is reselected and network information is correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Phone is in a blackspot, with no coverage.
+ DisplayUserInteractionPromptL(_L("Please be sure that phone is in a blackspot, with no coverage"), ETimeLong);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentMode | KCapsGetCurrentNetwork | KCapsNotifyRegistrationStatus | KCapsNotifyMode | KCapsNotifyCurrentNetwork
+ TUint32 networkCaps = 0;
+ TUint32 expectedCaps = RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentMode | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyRegistrationStatus | RMobilePhone::KCapsNotifyMode | RMobilePhone::KCapsNotifyCurrentNetwork;
+ CHECK_EQUALS_L(phone.GetNetworkCaps(networkCaps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned with an error"));
+ CHECK_BITS_SET_L(networkCaps, expectedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10075);
+ User::Leave(KErrNone);
+
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns ENotRegisteredNoService or ENotRegisteredSearching
+ RMobilePhone::TMobilePhoneRegistrationStatus status;
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_TRUE(status != RMobilePhone::ENotRegisteredSearching || status != RMobilePhone::ENotRegisteredNoService,
+ _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredSearching or ENotRegisteredNoServiceStatus"));
+
+ TExtEtelRequestStatus reqNetworkRegStatusChange(phone, EMobilePhoneNotifyNetworkRegistrationStatusChange);
+ CleanupStack::PushL(reqNetworkRegStatusChange);
+ // Call notify for networkregistrationchange
+ RMobilePhone::TMobilePhoneRegistrationStatus networkRegStatus;
+ phone.NotifyNetworkRegistrationStatusChange(reqNetworkRegStatusChange, networkRegStatus);
+
+ TExtEtelRequestStatus reqNotifyCurrentNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(reqNotifyCurrentNetChangeStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ RMobilePhone::TMobilePhoneLocationAreaV1 locationArea;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
+ // Call notify for networkchange
+ phone.NotifyCurrentNetworkChange(reqNotifyCurrentNetChangeStatus, netInfoPkg, locationArea );
+
+ TExtEtelRequestStatus reqNotifyModeChangeStatus(phone, EMobilePhoneNotifyModeChange);
+ CleanupStack::PushL(reqNotifyModeChangeStatus);
+ RMobilePhone::TMobilePhoneNetworkMode mobNetworkMode;
+ // Call notify for NotifyModeChange
+ phone.NotifyModeChange(reqNotifyModeChangeStatus, mobNetworkMode);
+
+ // Move phone to an area with coverage
+ DisplayUserInteractionPromptL(_L("Move phone to an area with coverage"), ETimeLong);
+
+ // === Check cell is reselected and network information is correct ===
+
+ // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredOnHomeNetwork
+ RMobilePhone::TMobilePhoneRegistrationStatus expectedStatus = RMobilePhone::ERegisteredOnHomeNetwork;
+ const TInt wantedStatus = KErrNone;
+ iNetworkTestHelper.WaitForMobilePhoneNotifyNetworkRegistrationStatusChange(phone, reqNetworkRegStatusChange, networkRegStatus, expectedStatus, wantedStatus);
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredSearching or ENotRegisteredNoServiceStatus"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(reqNotifyCurrentNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+ ASSERT_EQUALS(reqNotifyCurrentNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned error"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongName"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ ASSERT_EQUALS(netInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::NotifyCurrentNetworkChange iMode did not return ENetworkModeGsm as expected"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortName"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange iStatus did not return ENetworkStatusCurrent as expected"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ ASSERT_TRUE(locationArea.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(locationArea.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ RMobilePhone::TMobilePhoneNetworkInfoV5 currentNetworkInfo;
+ RMobilePhone::TMobilePhoneLocationAreaV1 currentNetworkAreaLocation;
+ RMobilePhone::TMobilePhoneNetworkInfoV5Pckg currentNetworkInfoPckg(currentNetworkInfo);
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, currentNetworkInfoPckg, currentNetworkAreaLocation);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned returned error"));
+
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(currentNetworkInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(currentNetworkInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ ASSERT_EQUALS(currentNetworkInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetCurrentNetwork iMode did not return ENetworkModeGsm as expected"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(currentNetworkInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(currentNetworkInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(currentNetworkInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork iStatus did not return ENetworkStatusCurrent as expected"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ ASSERT_TRUE(currentNetworkAreaLocation.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(currentNetworkAreaLocation.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+ // Check RMobilePhone::NotifyModeChange completes with aNetworkMode=ENetworkModeGsm
+ RMobilePhone::TMobilePhoneNetworkMode expectedMobNetMode = RMobilePhone::ENetworkModeGsm;
+ iNetworkTestHelper.WaitForMobilePhoneNotifyModeChange(phone, reqNotifyModeChangeStatus, mobNetworkMode, expectedMobNetMode, wantedStatus);
+
+ // Check RMobilePhone::GetCurrentMode completes with aNetworkMode=ENetworkModeGsm
+ RMobilePhone::TMobilePhoneNetworkMode currentMobNetMode;
+ phone.GetCurrentMode(currentMobNetMode);
+ ASSERT_EQUALS(currentMobNetMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetCurrentMode did not return ENetworkModeGsm as expected"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop
+ // reqNetworkRegStatusChange
+ // reqNotifyCurrentNetChangeStatus
+ // getCurrentNetworkStatus
+ // reqNotifyModeChangeStatus
+ CleanupStack::PopAndDestroy(4, &reqNetworkRegStatusChange);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0003::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0003");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0004::CCTSYIntegrationTestNetworkControl0004(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0004::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0004::~CCTSYIntegrationTestNetworkControl0004()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0004::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0004
+ * @SYMFssID BA/CTSY/NTWC-0004
+ * @SYMTestCaseDesc Emergency camping
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - Phone registers for emergency calls only
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify registration status is for emergency calls only.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // Log a message to indicate that this test is run without a SIM in the phone
+ DisplayUserInteractionPromptL(_L("Remove SIM card before running this test"), ETimeMedium);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus
+ TUint32 networkCaps = 0;
+ TUint32 expectedCaps = RMobilePhone::KCapsGetRegistrationStatus;
+ ASSERT_EQUALS(phone.GetNetworkCaps(networkCaps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned with an error"));
+ ASSERT_BITS_SET(networkCaps, expectedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
+
+ // === Check that registration status is for emergency calls only. ===
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns ENotRegisteredSearching
+ RMobilePhone::TMobilePhoneRegistrationStatus status;
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ // $CTSYProblem LTSY does not send correct notification. This wast tested using different timeout's but
+ // ENotRegisteredEmergencyOnly notification did not arrive as expected.
+ // Test was modified to accept ENotRegisteredSearching state, because this is the
+ // one which returned from LTSY. From logs we could see that this was the only state which was notified to CTSY.
+ ASSERT_EQUALS(status, RMobilePhone::ENotRegisteredSearching, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredSearching Status"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0004::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0004");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0005::CCTSYIntegrationTestNetworkControl0005(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0005::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0005::~CCTSYIntegrationTestNetworkControl0005()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0005::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0005
+ * @SYMFssID BA/CTSY/NTWC-0005
+ * @SYMTestCaseDesc Automatic cell selection
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::GetHomeNetwork, RMobilePhone::GetNetworkSelectionSetting, RMobilePhone::GetHomeNetworkSearchPeriod
+ * @SYMTestExpectedResults Pass - Home, current and preferred network information are correct.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify home network info., current network info. correct and home network is in the preferred network list.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetHomeNetwork | KCapsGetCurrentNetwork
+ TUint32 caps;
+ CHECK_EQUALS_L(phone.GetNetworkCaps(caps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
+ TUint32 wantedCaps = RMobilePhone::KCapsGetHomeNetwork | RMobilePhone::KCapsGetCurrentNetwork;
+ CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelSetting;
+ RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelSettingPckg(netSelSetting);
+
+ // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionAutomatic
+ ASSERT_EQUALS( phone.GetNetworkSelectionSetting( netSelSettingPckg ), KErrNone, _L("RMobilePhone::GetNetworkSelectionSetting returned an error") );
+ ASSERT_EQUALS( netSelSetting.iMethod, RMobilePhone::ENetworkSelectionAutomatic, _L("RMobilePhone::GetNetworkSelectionSetting did not return ENetworkSelectionAutomatic") );
+
+ // $CTSYProblem
+ // CTSY does not support RMobilePhone::GetHomeNetworkSearchPeriod
+ // GetHomeNetworkSearchPeriod responses directly with KErrNotSupported
+
+ // Check RMobilePhone::GetHomeNetworkSearchPeriod returns aSearchIntv >= 0
+ TExtEtelRequestStatus searchPeriodReqStatus(phone, EMobilePhoneGetHomeNetworkSearchPeriod);
+ CleanupStack::PushL(searchPeriodReqStatus);
+ TInt searchIntv;
+ phone.GetHomeNetworkSearchPeriod(searchPeriodReqStatus, searchIntv);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(searchPeriodReqStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetHomeNetworkSearchPeriod timed out"));
+ ASSERT_EQUALS(searchPeriodReqStatus.Int(), KErrNotSupported, _L("RMobilePhone::GetHomeNetworkSearchPeriod returned an error"));
+
+ // === Get the home network information. ===
+ RMobilePhone::TMobilePhoneNetworkInfoV5 homeNWInfo;
+ RMobilePhone::TMobilePhoneNetworkInfoV5Pckg homeNWInfoPckg(homeNWInfo);
+ TExtEtelRequestStatus getHomeNetworkStatus(phone, EMobilePhoneGetHomeNetwork);
+ CleanupStack::PushL(getHomeNetworkStatus);
+ phone.GetHomeNetwork(getHomeNetworkStatus, homeNWInfoPckg);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getHomeNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetHomeNetwork timed out"));
+ ASSERT_EQUALS(getHomeNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetHomeNetwork returned an error"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(homeNWInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid CountryCode Tag"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(homeNWInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(homeNWInfo.iLongName.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iLongName"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ ASSERT_EQUALS(homeNWInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetHomeNetwork did not return ENetworkModeGsm as expected"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(homeNWInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(homeNWInfo.iShortName.Length() > 0, _L("RMobilePhone::GetHomeNetwork returns invalid iShortName"));
+
+ // $CTSYProblem
+ // GetHomeNetwork() doesn't return correct NetworkInfo.iStatus
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus= ENetworkStatusUnknown
+ ASSERT_EQUALS(homeNWInfo.iStatus, RMobilePhone::ENetworkStatusUnknown , _L("RMobilePhone::GetHomeNetwork did not return ENetworkStatusUnknown status as expected "));
+
+ // === Get the current network information. ===
+ RMobilePhone::TMobilePhoneNetworkInfoV5 currentNWInfo;
+ RMobilePhone::TMobilePhoneLocationAreaV1 currentLocation;
+ RMobilePhone::TMobilePhoneNetworkInfoV5Pckg currentNWInfoPckg(currentNWInfo);
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, currentNWInfoPckg, currentLocation);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(currentNWInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(currentNWInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid Display Tag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(currentNWInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or ENetworkModeWcdma
+ ASSERT_TRUE(currentNWInfo.iMode == RMobilePhone::ENetworkModeGsm || currentNWInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkModeGsm as expected"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(currentNWInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(currentNWInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(currentNWInfo.iStatus, RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected "));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
+ ASSERT_TRUE(currentLocation.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returned invalid iCellId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(currentLocation.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+ // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
+ CRetrieveMobilePhonePreferredNetworksExec *netListHelper = CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
+ CleanupStack::PushL(netListHelper);
+ TInt err;
+ CMobilePhoneStoredNetworkList* prefNetList = netListHelper->DoGetList(err);
+ ASSERT_EQUALS(err, KErrNotSupported, _L("CRetrieveMobilePhonePreferredNetworks::Start failed to get the list"));
+
+ // $CTSYProblem CTSY does not support EMobilePhoneGetPreferredNetworksPhase1 and
+ // EMobilePhoneGetDetectedNetworksPhase1 IPCs.
+ // If supported, "if (prefNetList != NULL)"-line can be commented/deleted
+
+ if (prefNetList != NULL)
+ {
+ // Check CMobilePhoneStoredNetworkList::Enumerate returns >= 1
+ ASSERT_TRUE(prefNetList->Enumerate() >= 1, _L("CMobilePhoneStoredNetworkList::Enumerate did not return valid number of entries"));
+
+ // === Check first entry in preferred network list is the home network ===
+
+ // Check first item in the CMobilePhoneStoredNetworkList list contains a RMobilePhone::TMobilePreferredNetworkEntryV3 with
+ const RMobilePhone::TMobilePreferredNetworkEntryV3 &prefInfo = prefNetList->GetEntryL(0);
+
+ // iAccess with caps in set of KNetworkAccessGsm
+ ASSERT_BITS_SET(prefInfo.iAccess, RMobilePhone::KNetworkAccessGsm, KNoUnwantedBits, _L("CMobilePhoneStoredNetworkList.GetEntry() returned first list item with invalid prefInfo.iAccess"));
+
+ // iCountryCode = aNetworkInfo.iCountryCode from RMobilePhone::GetHomeNetwork
+ ASSERT_EQUALS_DES16(prefInfo.iCountryCode, homeNWInfo.iCountryCode, _L("CMobilePhoneStoredNetworkList.GetEntry() returned first list item with invalid prefInfo.iCountryCode. Not equal to home network"));
+
+ // iNetworkId = aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork
+ ASSERT_EQUALS_DES16(prefInfo.iNetworkId, homeNWInfo.iNetworkId, _L("CMobilePhoneStoredNetworkList.GetEntry() returned first list item with invalid prefInfo.iNetworkId. Not equal to home network"));
+ }
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ //searchPeriodReqStatus
+ //getHomeNetworkStatus
+ //getCurrentNetworkStatus
+ //netListHelper
+ CleanupStack::PopAndDestroy(4, &searchPeriodReqStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0005::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0005");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0006::CCTSYIntegrationTestNetworkControl0006(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0006::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0006::~CCTSYIntegrationTestNetworkControl0006()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0006::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0006
+ * @SYMFssID BA/CTSY/NTWC-0006
+ * @SYMTestCaseDesc Roaming cell selection
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetHomeNetwork, RMobilePhone::GetNetworkRegistrationStatus
+ * @SYMTestExpectedResults Pass - Roaming SIM can register onto PLMN but is different to home network
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify current network differs from home network.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentMode | KCapsGetCurrentNetwork | KCapsGetHomeNetwork
+ TUint32 caps;
+ CHECK_EQUALS_L( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
+ TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentMode | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsGetHomeNetwork;
+ CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps") );
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // Insert a roaming SIM and start phone
+
+ // === Get home network information ===
+ RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetworkInfo;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> homeInfoPkg(homeNetworkInfo);
+ TExtEtelRequestStatus getHomeNetworkStatus(phone, EMobilePhoneGetHomeNetwork);
+ CleanupStack::PushL(getHomeNetworkStatus);
+ phone.GetHomeNetwork( getHomeNetworkStatus, homeInfoPkg );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getHomeNetworkStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::GetHomeNetwork timed out") );
+ ASSERT_EQUALS( getHomeNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetHomeNetwork returned an error") );
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(homeNetworkInfo.iDisplayTag.Length() > 0,
+ _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iDisplayTag <= 0"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(homeNetworkInfo.iLongName.Length() > 0,
+ _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iLongName <= 0"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(homeNetworkInfo.iNetworkId.Length() > 0,
+ _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iNetworkId <= 0"));
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(homeNetworkInfo.iShortName.Length() > 0,
+ _L("RMobilePhone::GetHomeNetwork returned aNetworkInfo.iShortName <= 0"));
+
+ // === Get current network information and check it differs from the home network ===
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ RMobilePhone::TMobilePhoneLocationAreaV1 location;
+ RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone,
+ _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag != aNetworkInfo.iDisplayTag from RMobilePhone::GetHomeNetwork
+ ASSERT_TRUE(netInfo.iDisplayTag != homeNetworkInfo.iDisplayTag,
+ _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag == aNetworkInfo.iDisplayTag from RMobilePhone::GetHomeNetwork"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName != aNetworkInfo.iLongName from RMobilePhone::GetHomeNetwork
+ ASSERT_TRUE(netInfo.iLongName != homeNetworkInfo.iLongName,
+ _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName == aNetworkInfo.iLongName from RMobilePhone::GetHomeNetwork"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId != aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork
+ ASSERT_TRUE(netInfo.iNetworkId != homeNetworkInfo.iNetworkId,
+ _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId == aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName != aNetworkInfo.iShortName from RMobilePhone::GetHomeNetwork
+ ASSERT_TRUE(netInfo.iShortName != homeNetworkInfo.iShortName,
+ _L("RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName == aNetworkInfo.iShortName from RMobilePhone::GetHomeNetwork"));
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredRoaming
+ RMobilePhone::TMobilePhoneRegistrationStatus status;
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL( phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(status, RMobilePhone::ERegisteredRoaming,
+ _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ERegisteredRoaming Status"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ //getHomeNetworkStatus
+ //getCurrentNetworkStatus
+ CleanupStack::PopAndDestroy(2,&getHomeNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0006::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0006");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0007::CCTSYIntegrationTestNetworkControl0007(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0007::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0007::~CCTSYIntegrationTestNetworkControl0007()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0007::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0007
+ * @SYMFssID BA/CTSY/NTWC-0007
+ * @SYMTestCaseDesc Selection mode preserved after switch off.
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhonePreferredNetworks::NewL, RMobilePhone::SelectNetwork, RMobilePhone::StorePreferredNetworksListL, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkSelectionSetting, RMobilePhone::NotifyNetworkSelectionSettingChange
+ * @SYMTestExpectedResults Pass - Manual selection mode is preserved on re-start
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify phone is still in manual selection mode after TSY is unloaded and reloaded.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ // Ensure that the phone has the capabilities KCapsGetDetectedNetworks | KCapsManualNetworkSelection
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get home network name and id (save these for later) ===
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+
+ // === Put the phone into manual netowrk selection mode. ===
+
+ // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod = ENetworkSelectionManual
+
+ // === Verify manual selection mode has been set and notification received ===
+
+ // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with aSetting.iMethod = ENetworkSelectionManual
+
+ // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
+
+ // === Get and store (locally) the list of prefered Network ===
+
+ // Create a CRetrieveMobilePhonePreferredNetworks::NewL
+
+ // Start retrieval of preferred network list with CRetrieveMobilePhonePreferredNetworks::Start
+
+ // Retrieve pointer to the CMobilePhoneStoredNetworkList list with CRetrieveMobilePhonePreferredNetworks::RetrieveListL
+
+ // Check CMobilePhoneStoredNetworkList::Enumerate returns >= 1
+
+ // === Close down TSY and restart to force network re-selection ===
+
+ // Close phone subsession with RPhone::Close
+
+ // Unload TSY with RTelServer::UnloadPhoneModule
+
+ // Reload it with RTelServer::LoadPhoneModule
+
+ // Open phone subsession with RPhone::Open
+
+ // === Verify phone is still in manual selection mode ===
+
+ // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
+
+ // === Get List of detected networks ===
+
+ // Create a CRetrieveMobilePhoneDetectedNetworks with CRetrieveMobilePhoneDetectedNetworks::NewL
+
+ // Start retrieval of list of detected network with CRetrieveMobilePhoneDetectedNetworks::StartV5
+
+ // Retrieve the CMobilePhoneNetworkListV5 with CRetrieveMobilePhoneDetectedNetworks::RetrieveListV5L
+
+ // === Ensure that this list contains at least 2 networks (the Home network and another one). ===
+
+ // Check CMobilePhoneNetworkListV5::Enumerate returns number of items in list > 1
+
+ // === Select the home network ===
+
+ // Select home network with RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=aNetworkInfo.iCountryCode from RMobilePhone::GetHomeNetwork and aManualSelection.iNetwork=aNetworkInfo.iNetworkId from RMobilePhone::GetHomeNetwork
+
+ // === Verify that the preferred Network list is not changed. ===
+
+ // Start retrieval of preferred network list with CRetrieveMobilePhonePreferredNetworks::Start
+
+ // Retrieve pointer to the CMobilePhoneStoredNetworkList list with CRetrieveMobilePhonePreferredNetworks::RetrieveListL
+
+ // Check CMobilePhoneStoredNetworkList::Enumerate returns same number of entries as before the TSY was closed down.
+
+ // Check the current CMobilePhoneStoredNetworkList contains the same entries as previous list (check iAccess, iCountryCode, iNetworkId in TMobilePreferredNetworkEntryV3 is the same)
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0007::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0007");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0008::CCTSYIntegrationTestNetworkControl0008(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0008::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0008::~CCTSYIntegrationTestNetworkControl0008()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0008::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0008
+ * @SYMFssID BA/CTSY/NTWC-0008
+ * @SYMTestCaseDesc Register on a denied network.
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::RetrieveListL, RMobilePhone::NotifyNetworkRegistrationStatusChange, CRetrieveMobilePhoneDetectedNetworks::NewL, RMobilePhone::SelectNetwork, CMobilePhoneNetworkListV5::Enumerate, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::GetHomeNetwork, CRetrieveMobilePhoneDetectedNetworks::StartV5
+ * @SYMTestExpectedResults Pass - Cannot register onto a denied network
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify registration status is denied when attempting to register on another network.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ // iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetDetectedNetworks | KCapsManualNetworkSelection
+
+ // Be registered onto home network
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get the network ID of the home network (store this for use later) ===
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+
+ // === Get list of all the detected networks ===
+
+ // Use the helper class for CRetrieveMobilePhoneDetectedNetworks to get a list of detected networks
+
+ // Start retrieval of preferred network list with CRetrieveMobilePhoneDetectedNetworks::StartV5
+
+ // Check CMobilePhoneNetworkListV5::Enumerate on the list returned returns number of networks >= 1
+
+ // === Switch to manual network selection ===
+
+ // Set network selection setting to automatic with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionManual
+
+ // === Attempt to select each of the other networks ===
+
+ // Cycle through the list of detected networks CMobilePhoneNetworkListV5
+
+ // If the TMobilePhoneNetworkInfoV5::iNetworkId != aNetworkInfo.iNetworkId returned from RMobilePhone::GetHomeNetwork
+
+ // Check RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=TMobilePhoneNetworkInfoV5::iCountryCode and aManualSelection.iNetwork=TMobilePhoneNetworkInfoV5::iNetworkId
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegistrationDenied
+
+ // === Ensure registration returns to previous network ===
+
+ // Set network selection setting to automatic with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionAutomatic
+
+ // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredOnHomeNetwork
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns with ERegisteredOnHomeNetwork
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0008::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0008");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0009::CCTSYIntegrationTestNetworkControl0009(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0009::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0009::~CCTSYIntegrationTestNetworkControl0009()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0009::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0009
+ * @SYMFssID BA/CTSY/NTWC-0009
+ * @SYMTestCaseDesc Automatic network selection at start
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
+ * @SYMTestExpectedResults Pass - Registration status notificatins are received
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify current network change and network registration status notifications complete.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ // $CTSYProblem
+ // Put this back into the script when a decision has been made as to what
+ // this test case should do since the board has already booted by the time
+ // the test starts, not possible to catch the notifications.
+
+ /*
+
+START_TESTCASE BA-CTSY-INT-NTWC-0009
+//!@SYMTestCaseID BA-CTSY-INT-NTWC-0009
+//!@SYMFssID BA/CTSY/NTWC-0009
+//!@SYMTestCaseDesc Automatic network selection at start
+//!@SYMTestPriority High
+//!@SYMTestActions RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
+//!@SYMTestExpectedResults Pass - Registration status notificatins are received
+//!@SYMTestType CIT
+//!@SYMTestCaseDependencies live/automatic
+RUN_TEST_STEP 180 TE_CTSYIntegrationTestSuite CCTSYIntegrationTestNetworkControl0009 c:\ctsy\ctsyintegration_data.ini
+END_TESTCASE BA-CTSY-INT-NTWC-0009
+
+ */
+
+ RMobilePhone& tempPhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus
+ TUint32 caps;
+ CHECK_EQUALS_L( tempPhone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
+ TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus;
+ CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong network caps") );
+
+ // Close down TSY, so registration will re-start when TSY re-opens
+ iEtelSessionMgr.RestartL();
+ // phone object is now invalid, reopen
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Ensure network registration status goes from unknown->searching->registered home network ===
+
+ // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with
+ // ERegistrationUnknown->ENotRegisteredSearching->ERegisteredOnHomeNetwork
+
+ // Seems a bit unlikely that we will catch the whole sequence if the TSY has been restarted
+ // in the absence of notifications during the restart, so check the last one we get is reasonable
+
+ TExtEtelRequestStatus reqRegStatusChange( phone, EMobilePhoneNotifyNetworkRegistrationStatusChange );
+ CleanupStack::PushL(reqRegStatusChange);
+
+ RMobilePhone::TMobilePhoneRegistrationStatus phoneRegStatus = RMobilePhone::ERegistrationUnknown;
+ TBool receivedRegNotify = EFalse;
+ TInt err;
+
+ do
+ {
+ DEBUG_PRINTF1(_L("calling notify"));
+ phone.NotifyNetworkRegistrationStatusChange( reqRegStatusChange, phoneRegStatus );
+ err = WaitForRequestWithTimeOut( reqRegStatusChange, ETimeMedium );
+
+ if( KErrNone == err )
+ {
+ receivedRegNotify = ETrue;
+ }
+ }
+ while(KErrNone == err);
+
+ ASSERT_TRUE( receivedRegNotify, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange timed out") );
+ DEBUG_PRINTF2( _L("RMobilePhone::NotifyNetworkRegistrationStatusChange Last registration status=%d"), phoneRegStatus );
+
+ ASSERT_TRUE( (RMobilePhone::ERegistrationUnknown == phoneRegStatus) ||
+ (RMobilePhone::ENotRegisteredSearching == phoneRegStatus) ||
+ (RMobilePhone::ERegisteredOnHomeNetwork == phoneRegStatus),
+ _L("RMobilePhone::NotifyNetworkRegistrationStatusChange returned invalid registration status") );
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
+ TExtEtelRequestStatus getNetRegStatus(phone,EMobilePhoneGetNetworkRegistrationStatus);
+ CleanupStack::PushL(getNetRegStatus);
+
+ phone.GetNetworkRegistrationStatus(getNetRegStatus, phoneRegStatus);
+ err = WaitForRequestWithTimeOut( getNetRegStatus, ETimeShort );
+
+ ASSERT_EQUALS( err, KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus timed out") )
+ ASSERT_EQUALS(phoneRegStatus, RMobilePhone::ERegisteredOnHomeNetwork,
+ _L("RMobilePhone::GetNetworkRegistrationStatus returned invalid state"))
+
+ // === Check receive notifciations for current network change ===
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
+ RMobilePhone::TMobilePhoneLocationAreaV1 area;
+
+ TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(reqNetChangeStatus);
+
+ phone.NotifyCurrentNetworkChange( reqNetChangeStatus, netInfoPkg, area );
+
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone,
+ _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+
+ ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returned returned error"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iCountryCode with length > 0
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iDisplayTag with length > 0
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iLongName with length > 0
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iMode=ENetworkModeGsm
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iNetworkId with length > 0
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iShortName with length > 0
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aNetworkInfo.iStatus=ENetworkStatusCurrent
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aArea.iCellId > 0
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 completes with aArea.iLocationAreaCode > 0
+ ASSERT_TRUE( netInfo.iCountryCode.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iCountryCode length 0") )
+ ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iDisplayTag length 0") )
+ ASSERT_TRUE( netInfo.iLongName.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iLongNamelength 0") )
+ ASSERT_EQUALS( netInfo.iMode, RMobilePhone::ENetworkModeGsm,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns Network mode not GSM") )
+ ASSERT_TRUE( netInfo.iNetworkId.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iNetworkId length 0") )
+ ASSERT_TRUE( netInfo.iShortName.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iShortNamelength 0") )
+ ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns network status not ENetworkStatusCurrent") )
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE( area.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location cell ID 0") )
+ ASSERT_TRUE( area.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location AreaCode ID 0") )
+
+ // Get the network information and test again
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork( getCurrentNetworkStatus, netInfoPkg, area );
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::GetCurrentNetwork timed out") );
+ ASSERT_EQUALS( getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_TRUE( netInfo.iCountryCode.Length() > 0,
+ _L("RMobilePhone::GetCurrentNetwork returns iCountryCode length 0") )
+ ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0,
+ _L("RMobilePhone::GetCurrentNetwork returns iDisplayTag length 0") )
+ ASSERT_TRUE( netInfo.iLongName.Length() > 0,
+ _L("RMobilePhone::GetCurrentNetwork returns iLongNamelength 0") )
+ ASSERT_TRUE( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma,
+ _L("RMobilePhone::GetCurrentNetwork returns Network mode not GSM") )
+ ASSERT_TRUE( netInfo.iNetworkId.Length() > 0,
+ _L("RMobilePhone::GetCurrentNetwork returns iNetworkId length 0") )
+ ASSERT_TRUE( netInfo.iShortName.Length() > 0,
+ _L("RMobilePhone::GetCurrentNetwork returns iShortNamelength 0") )
+ ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent,
+ _L("RMobilePhone::GetCurrentNetwork returns network status not ENetworkStatusCurrent") )
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE( area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns Location cell ID 0") )
+ ASSERT_TRUE( area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns Location AreaCode ID 0") )
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // getCurrentNetworkStatus
+ // getNetRegStatus
+ // reqNetChangeStatus
+ // reqRegStatusChange
+ CleanupStack::Pop(4,&reqRegStatusChange);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0009::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0009");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0010::CCTSYIntegrationTestNetworkControl0010(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0010::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0010::~CCTSYIntegrationTestNetworkControl0010()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0010::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0010
+ * @SYMFssID BA/CTSY/NTWC-0010
+ * @SYMTestCaseDesc Select a network manually using a roaming SIM
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - Fails to register onto another VPLMN
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify roaming SIM cannot register onto another network.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetCurrentNetwork | KCapsManualNetworkSelection
+
+ // === Romaing Sim is registered on a VPLMN ===
+
+ // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredRoaming
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get ID of the current network (store this for use later) ===
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+
+ // === Get list of detected networks ===
+
+ // Use helper class to start retrieval of V5 preferred network list with CRetrieveMobilePhoneDetectedNetworks
+
+ // Check CMobilePhoneNetworkListV5::Enumerate on list returned returns number of networks > 0
+
+ // === Try and manually select another one to register onto ===
+
+ // Set network selection setting to manual with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionManual
+
+ // Check RMobilePhone::NotifyNetworkSelectionSettingChange completes with aSetting.iMethod = ENetworkSelectionManual
+
+ // Check RMobilePhone::GetNetworkSelectionSetting returns aSetting.iMethod = ENetworkSelectionManual
+
+ // Cycle through the list of networks in CMobilePhoneNetworkListV5
+
+ // If the TMobilePhoneNetworkInfoV5::iNetworkId != iNetworkId from RMobilePhone::GetCurrentNetwork
+
+ // then
+
+ // select network in list with RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=TMobilePhoneNetworkInfoV5::iCountryCode from item in CMobilePhoneNetworkListV5 and aManualSelection.iNetwork=TMobilePhoneNetworkInfoV5::iNetworkId from item in CMobilePhoneNetworkListV5
+
+ // === Check network does not allow registration ===
+
+ // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredRoaming or ERegistrationDenied
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0010::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0010");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0011::CCTSYIntegrationTestNetworkControl0011(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0011::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0011::~CCTSYIntegrationTestNetworkControl0011()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0011::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0011
+ * @SYMFssID BA/CTSY/NTWC-0011
+ * @SYMTestCaseDesc Attempt network detect when no signal strength
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::Start
+ * @SYMTestExpectedResults Pass - Cannot detect networks when signal strength is zero.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify detected networks list is empty.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetDetectedNetworks
+
+ // Check RMobilePhone::GetSignalCaps returns caps in set of KCapsGetSignalStrength
+
+ // Remove antenna
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // Check RMobilePhone::GetSignalStrength returns aSignalStrength=0
+ // Check RMobilePhone::GetSignalStrength returns aBar=0
+
+ // === Get list of all the detected networks ===
+
+ // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V5 list of preferred networks
+
+ // Check CMobilePhoneNetworkListV5::Enumerate returns number of networks=0
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0011::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0011");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0012::CCTSYIntegrationTestNetworkControl0012(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0012::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0012::~CCTSYIntegrationTestNetworkControl0012()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0012::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0012
+ * @SYMFssID BA/CTSY/NTWC-0012
+ * @SYMTestCaseDesc Get NITZ information.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::NotifyNITZInfoChange
+ * @SYMTestExpectedResults Pass - NITZ infomation is received from network
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify valid NITZ information returned and NITZ notification received.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetNITZInfo | KCapsNotifyNITZInfo
+
+ TUint32 caps;
+ CHECK_EQUALS_L( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned error") )
+ TUint32 wantedCaps = RMobilePhone::KCapsGetNITZInfo | RMobilePhone::KCapsNotifyNITZInfo;
+ CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong network caps") );
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Wait 2 mins for the network to send NITZ info
+ User::After(KOneSecond*120);
+
+ // === Get the current Network Information and Time Zone (NITZ) from the network. ===
+
+ RMobilePhone::TMobilePhoneNITZ nitzInfo;
+ TInt err = phone.GetNITZInfo( nitzInfo );
+
+ // Check KErrNone or KErrNotFound was returned
+ ASSERT_TRUE((err==KErrNone) || (err==KErrNotFound), _L("RMobilePhone::GetNITZInfo returned error"));
+
+ // If the network supplied NITZ info:
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iDST=1 or aNITZInfo.iDST=2
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iLongNetworkId with length > 0
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iShortNetworkId with length > 0
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iTimeZone >= 0
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iNitzFieldsUsed contains relevant flags set
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.Year() >= 2007
+ if (err == KErrNone)
+ {
+ ASSERT_TRUE( nitzInfo.iLongNetworkId.Length() > 0,
+ _L("RMobilePhone::GetNITZInfo returns nitzInfo.iLongNetworkId zero length"))
+ ASSERT_TRUE( nitzInfo.iShortNetworkId.Length() > 0,
+ _L("RMobilePhone::GetNITZInfo returns nitzInfo.iShortNetworkId zero length"))
+ ASSERT_TRUE( nitzInfo.iTimeZone > 0, _L("RMobilePhone::GetNITZInfo returns nitzInfo.iTimeZone zero"))
+
+ ASSERT_BITS_SET( nitzInfo.iNitzFieldsUsed,
+ RMobilePhone::KCapsTimeAvailable |
+ RMobilePhone::KCapsTimezoneAvailable |
+ RMobilePhone::KCapsShortNameAvailable |
+ RMobilePhone::KCapsLongNameAvailable,
+ KNoUnwantedBits,
+ _L("RMobilePhone::GetNITZInfo returns nitzInfo.iNitzFieldsUsed invalid"))
+
+ DEBUG_PRINTF2(_L("RMobilePhone::GetNITZInfo returns nitzInfo.year=%d"), nitzInfo.Year() );
+ ASSERT_TRUE( nitzInfo.Year() >= 2007, _L("RMobilePhone::GetNITZInfo returns nitzInfo year pre 2007"));
+ }
+
+ // === Wait for up to 1 minute for next NITZ update ===
+ TExtEtelRequestStatus reqNotifyNitzInfoChange(phone, EMobilePhoneNotifyNITZInfoChange);
+ CleanupStack::PushL(reqNotifyNitzInfoChange);
+
+ phone.NotifyNITZInfoChange(reqNotifyNitzInfoChange,nitzInfo);
+ WaitForRequestWithTimeOut(reqNotifyNitzInfoChange, ETimeLong);
+
+ // Check NITZ info if network sent it
+ if (reqNotifyNitzInfoChange.Int() != KErrCancel)
+ {
+ ASSERT_EQUALS( reqNotifyNitzInfoChange.Int(), KErrNone, _L("RMobilePhone::NotifyNITZInfoChange returned error"))
+
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iDST=1 or aNITZInfo.iDST=2
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iLongNetworkId with length > 0
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iShortNetworkId with length > 0
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iTimeZone >= 0
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.iNitzFieldsUsed contains relevant flags set
+ // Check RMobilePhone::GetNITZInfo returns aNITZInfo.Year() >= 2007
+ ASSERT_TRUE( nitzInfo.iLongNetworkId.Length() > 0,
+ _L("RMobilePhone::GetNITZInfo returns nitzInfo.iLongNetworkId is zero length"))
+ ASSERT_TRUE( nitzInfo.iShortNetworkId.Length() > 0,
+ _L("RMobilePhone::GetNITZInfo returns nitzInfo.iShortNetworkId is zero length"))
+ ASSERT_TRUE( nitzInfo.iTimeZone > 0, _L("NITZ Info iTimeZone is zero"))
+
+ ASSERT_BITS_SET( nitzInfo.iNitzFieldsUsed,
+ RMobilePhone::KCapsTimeAvailable |
+ RMobilePhone::KCapsTimezoneAvailable |
+ RMobilePhone::KCapsShortNameAvailable |
+ RMobilePhone::KCapsLongNameAvailable,
+ KNoUnwantedBits,
+ _L("RMobilePhone::GetNITZInfo returns nitzInfo.iNitzFieldsUsed invalid"))
+ ASSERT_TRUE( nitzInfo.Year() >= 2007, _L("RMobilePhone::GetNITZInfo returns nitzInfo year pre 2007"));
+ }
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ //reqNotifyNitzInfoChange
+ CleanupStack::PopAndDestroy(1,&reqNotifyNitzInfoChange);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0012::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0012");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0013::CCTSYIntegrationTestNetworkControl0013(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0013::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0013::~CCTSYIntegrationTestNetworkControl0013()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0013::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0013
+ * @SYMFssID BA/CTSY/NTWC-0013
+ * @SYMTestCaseDesc Move from one cell into another.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
+ * @SYMTestExpectedResults Pass - New network information is received.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify current network notification completes and cell ID changes.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ // Ensure phone is camped on a suitable cell.
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Ensure phone has KCapsGetCurrentNetwork and KCapsNotifyCurrentNetwork capabilities.
+ TUint32 networkCaps=0;
+ CHECK_EQUALS_L(phone.GetNetworkCaps(networkCaps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned with an error"));
+ TUint32 expectedCaps= RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyCurrentNetwork;
+ CHECK_BITS_SET_L(networkCaps, expectedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned with wrong caps"));
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Ensure phone is registered to the network. ===
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork
+ RMobilePhone::TMobilePhoneRegistrationStatus status;
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL( phone, status), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ERegisteredOnHomeNetwork Status"));
+
+ // === Get the current network information. ===
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ RMobilePhone::TMobilePhoneLocationAreaV1 location;
+ RMobilePhone::TMobilePhoneLocationAreaV1 previousLocation;
+ RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
+ previousLocation = location;
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName "));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus,RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
+ ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+ // Post notification for network change
+ TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(reqNetChangeStatus);
+ phone.NotifyCurrentNetworkChange(reqNetChangeStatus, netInfoPckg, location);
+
+ // Simulator simulates movement into another cell.
+ DisplayUserInteractionPromptL(_L("Please simulate movement to another cell"), ETimeLong);
+
+ // === Ensure current network change notification complates and cell ID has changed. ===
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+ ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned with an error"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongNamelength"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortNamelength"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iStatus"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0 and aArea.iCellId != previous aArea.iCellId from RMobilePhone::GetCurrentNetwork
+ ASSERT_TRUE(location.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
+ ASSERT_TRUE(location.iCellId != previousLocation.iCellId, _L("RMobilePhone::NotifyCurrentNetworkChange returns same iCellId as before movement to another cell"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(location.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
+
+ // === Get the current network information. ===
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongNamelength"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortNamelength"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0 and aArea.iCellId != previous aArea.iCellId from RMobilePhone::GetCurrentNetwork
+ ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+ ASSERT_TRUE(location.iCellId != previousLocation.iCellId, _L("RMobilePhone::GetCurrentNetwork returns same iCellId as before movement to another cell"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop
+ // getCurrentNetworkStatus
+ // reqNetChangeStatus
+ CleanupStack::PopAndDestroy(2, &getCurrentNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0013::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0013");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0014::CCTSYIntegrationTestNetworkControl0014(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0014::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0014::~CCTSYIntegrationTestNetworkControl0014()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0014::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0014
+ * @SYMFssID BA/CTSY/NTWC-0014
+ * @SYMTestCaseDesc Move from an area with no service into a cell with service.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::NotifyNetworkRegistrationStatusChange, RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::GetCurrentNetwork
+ * @SYMTestExpectedResults Pass - Device is registered on network. Network information is retrieved.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify current network information and registration status is correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10077);
+ User::Leave(KErrNone);
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // === Ensure the phone is not registered to a network. ===
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns ENotRegisteredNoService
+ RMobilePhone::TMobilePhoneRegistrationStatus regStatus;
+ CHECK_EQUALS_L(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, regStatus), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ CHECK_EQUALS_L(regStatus, RMobilePhone::ENotRegisteredNoService, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredNoService Status"));
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationstatus | KCapsGetCurrentNetwork | KCapsNotifyRegistrationStatus capabilities.
+ TUint32 caps;
+ CHECK_EQUALS_L(phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned error") )
+ TUint32 wantedCaps = RMobilePhone::KCapsNotifyRegistrationStatus | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyRegistrationStatus;
+ CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong network caps") );
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // === Get network registration status and verify it is as expected. ===
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ENotRegisteredNoService
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone, regStatus), KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(regStatus, RMobilePhone::ENotRegisteredNoService, _L("RMobilePhone::GetNetworkRegistrationStatus did not return the expected ENotRegisteredNoService Status"));
+
+ //Push notify for NotifyCurrentNetworkChange
+ TExtEtelRequestStatus regNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(regNetChangeStatus);
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
+ RMobilePhone::TMobilePhoneLocationAreaV1 area;
+ phone.NotifyCurrentNetworkChange(regNetChangeStatus, netInfoPkg, area);
+
+ //Push notify for NotifyNetworkRegistrationStatusChange
+ RMobilePhone::TMobilePhoneRegistrationStatus status;
+ TExtEtelRequestStatus networkRegStChange(phone, EMobilePhoneNotifyNetworkRegistrationStatusChange);
+ CleanupStack::PushL(networkRegStChange);
+ phone.NotifyNetworkRegistrationStatusChange(networkRegStChange, status);
+
+ // Simulator simulates movement a cell with coverage.
+ DisplayUserInteractionPromptL(_L("Please move to a cell with coverage"), ETimeLong);
+
+ // === Ensure network registration changes ===
+
+ // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with ERegisteredOnHomeNetwork
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(networkRegStChange, ETimeLong), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange timed out"));
+ ASSERT_EQUALS(networkRegStChange.Int(), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange returned with an error"));
+ ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange did not complete with status = ERegisteredOnHomeNetwork"));
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone,regStatus),KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(regStatus, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::GetRegistrationStatus did not return expected status"));
+
+ // === Ensure network information notification received ===
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(regNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+ ASSERT_EQUALS(regNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned an error"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iCountryCode length 0") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iDisplayTag length 0"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iLongName length 0"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ ASSERT_EQUALS(netInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::NotifyCurrentNetworkChange did not return aNetworkInfo.iMode=ENetworkModeGsm"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iNetworkId length 0"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iShortName 0 "));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange did not return aNetworkInfo.iStatus=ENetworkStatusCurrent"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location cell ID 0"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location AreaCode ID 0"));
+
+ // === Get current network ===
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPkg, area);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid Display Tag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ ASSERT_EQUALS(netInfo.iMode, RMobilePhone::ENetworkModeGsm, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkModeGsm as expected"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected "));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returned invalid iCellId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ //regNetChangeStatus
+ //networkRegStChange
+ //getCurrentNetworkStatus
+ CleanupStack::PopAndDestroy(3, ®NetChangeStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0014::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0014");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0015::CCTSYIntegrationTestNetworkControl0015(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0015::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0015::~CCTSYIntegrationTestNetworkControl0015()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0015::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0015
+ * @SYMFssID BA/CTSY/NTWC-0015
+ * @SYMTestCaseDesc Cell selection after emergency camping.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::NotifyNetworkRegistrationStatusChange, RMobilePhone::NotifyCurrentNetworkChange
+ * @SYMTestExpectedResults Pass - Phone re-registers successfully to the new cell when moving out of a cell with emergency coverage to one with full coverage.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify network registration status and current network information are correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10078);
+ User::Leave(KErrNone);
+
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetRegistrationStatus | KCapsGetCurrentNetwork | KCapsNotifyRegistrationStatus capabilities.
+ TUint32 caps;
+ CHECK_EQUALS_L(phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
+ TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus | RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyRegistrationStatus;
+ CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
+
+ // SImulator is simulating cell with emergency coverage only.
+ DisplayUserInteractionPromptL(_L("Please ensure cell is set for emergency calls only"), ETimeLong);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get registration status ===
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ENotRegisteredEmergencyOnly
+
+
+ RMobilePhone::TMobilePhoneRegistrationStatus regStatus;
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone,regStatus),KErrNone,
+ _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(regStatus, RMobilePhone::ENotRegisteredEmergencyOnly,
+ _L("RMobilePhone::GetNetworkRegistrationStatus did not return expected status"));
+
+ //Push notify for NotifyNetworkRegistrationStatusChange
+ RMobilePhone::TMobilePhoneRegistrationStatus status;
+ TExtEtelRequestStatus networkRegStChange(phone, EMobilePhoneNotifyNetworkRegistrationStatusChange);
+ CleanupStack::PushL(networkRegStChange);
+ phone.NotifyNetworkRegistrationStatusChange(networkRegStChange, status);
+
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> netInfoPkg(netInfo);
+ RMobilePhone::TMobilePhoneLocationAreaV1 area;
+
+ //Push notify for NotifyCurrentNetworkChange
+ TExtEtelRequestStatus regNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(regNetChangeStatus);
+ phone.NotifyCurrentNetworkChange( regNetChangeStatus, netInfoPkg, area );
+
+ // Simulate moving into a new cell with full coverage.
+ DisplayUserInteractionPromptL(_L("Simulate moving into a cell with full coverage"), ETimeLong);
+
+ // === Check registration status notification completes ===
+
+ // Check RMobilePhone::NotifyNetworkRegistrationStatusChange completes with aStatus=ERegisteredOnHomeNetwork
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(networkRegStChange, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange timed out"));
+ ASSERT_EQUALS(networkRegStChange.Int(), KErrNone, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange returned with an error"));
+ ASSERT_EQUALS(status, RMobilePhone::ERegisteredOnHomeNetwork, _L("RMobilePhone::NotifyNetworkRegistrationStatusChange did not complete with status = ERegisteredOnHomeNetwork"));
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns with ERegisteredOnHomeNetwork
+ ASSERT_EQUALS(iNetworkTestHelper.GetNetworkRegistrationStatusL(phone,regStatus),KErrNone,
+ _L("RMobilePhone::GetNetworkRegistrationStatus returned with an error"));
+ ASSERT_EQUALS(regStatus, RMobilePhone::ERegisteredOnHomeNetwork,
+ _L("RMobilePhone::GetRegistrationStatus did not return expected status"));
+
+ // === Get current network ===
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(regNetChangeStatus, ETimeMedium), KErrNone,
+ _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+ ASSERT_EQUALS(regNetChangeStatus.Int(), KErrNone,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returned an error"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iCountryCode length 0") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iDisplayTag length 0"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iLongName length 0"));
+
+ //Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0,
+ _L("RMobilePhone::NotifyCurrentNetworkChange returns iNetworkId length 0"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns iShortName 0 "));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange did not return aNetworkInfo.iStatus=ENetworkStatusCurrent"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location cell ID 0"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns Location AreaCode ID 0"));
+
+
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork( getCurrentNetworkStatus, netInfoPkg, area );
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::GetCurrentNetwork timed out") );
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length()>0, _L("RMobilePhone::GetCurrentNetwork returns iCountryCode length 0"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iDisplayTag length 0"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iLongName length 0"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iNetworkId length 0"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns iShortName length 0"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork did not return aNetworkInfo.iStatus=ENetworkStatusCurrent"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iCellId > 0
+ ASSERT_TRUE(area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns Location cell ID 0"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns Location AreaCode ID 0"));
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ //Pop
+ //networkRegStChange
+ //regNetChangeStatus
+ //getCurrentNetworkStatus
+ CleanupStack::PopAndDestroy(3,&networkRegStChange);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0015::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0015");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0016::CCTSYIntegrationTestNetworkControl0016(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0016::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0016::~CCTSYIntegrationTestNetworkControl0016()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0016::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0016
+ * @SYMFssID BA/CTSY/NTWC-0016
+ * @SYMTestCaseDesc Get network capabilities.
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - Network caps returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify network capabilities returned are correct.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Check RMobilePhone::GetNetworkCaps returns caps of RMobilePhone::KCapsGetRegistrationStatus
+ // | RMobilePhone::KCapsNotifyRegistrationStatus
+ // | RMobilePhone::KCapsGetCurrentMode
+ // | RMobilePhone::KCapsNotifyMode
+ // | RMobilePhone::KCapsGetCurrentNetwork
+ // | RMobilePhone::KCapsNotifyCurrentNetwork
+ // | RMobilePhone::KCapsGetHomeNetwork
+ // | RMobilePhone::KCapsGetDetectedNetworks
+ // | RMobilePhone::KCapsManualNetworkSelection
+ // | RMobilePhone::KCapsNotifyNITZInfo
+ // | RMobilePhone::KCapsGetNITZInfo
+
+ TUint32 caps;
+ ASSERT_EQUALS( phone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned error") )
+ TUint32 wantedCaps = RMobilePhone::KCapsGetRegistrationStatus
+ | RMobilePhone::KCapsNotifyRegistrationStatus
+ | RMobilePhone::KCapsGetCurrentMode
+ | RMobilePhone::KCapsNotifyMode
+ | RMobilePhone::KCapsGetCurrentNetwork
+ | RMobilePhone::KCapsNotifyCurrentNetwork
+ | RMobilePhone::KCapsGetHomeNetwork
+ | RMobilePhone::KCapsGetDetectedNetworks
+ | RMobilePhone::KCapsManualNetworkSelection
+ | RMobilePhone::KCapsNotifyNITZInfo
+ | RMobilePhone::KCapsGetNITZInfo;
+
+ ASSERT_BITS_SET( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returns wrong network caps") );
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0016::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0016");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0017::CCTSYIntegrationTestNetworkControl0017(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0017::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0017::~CCTSYIntegrationTestNetworkControl0017()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0017::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0017
+ * @SYMFssID BA/CTSY/NTWC-0017
+ * @SYMTestCaseDesc Receive period network information update.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetCurrentNetwork
+ * @SYMTestExpectedResults Pass - Location information updated.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify current network information notification received.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10079);
+ User::Leave(KErrNone);
+
+ // Phone camped on valid cell.
+ RMobilePhone& mobilePhone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(mobilePhone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsNotifyCurrentNetwork capability.
+ TUint32 caps;
+ CHECK_EQUALS_L( mobilePhone.GetNetworkCaps( caps ), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error") );
+ TUint32 wantedCaps = RMobilePhone::KCapsNotifyCurrentNetwork;
+ CHECK_BITS_SET_L( caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps") );
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // $CTSYProblem Timer T3302 needs to be set in the attach accept message from the Simulator
+ ASSERT(TRUE);
+
+ // === Get current network information ===
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV1> netInfoPkg(netInfo);
+ RMobilePhone::TMobilePhoneLocationAreaV1 area;
+ TExtEtelRequestStatus currentNetworkStatus(mobilePhone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(currentNetworkStatus);
+ mobilePhone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
+
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS( currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE( netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE( netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE( netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
+ ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE((TInt)area.iLocationAreaCode > 0 ,_L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+ // === Register for notification of change in the current network. ===
+
+ // Register for notification of RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5
+
+ // Post notification for network change
+ TExtEtelRequestStatus reqNetChangeStatus(mobilePhone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(reqNetChangeStatus);
+ mobilePhone.NotifyCurrentNetworkChange( reqNetChangeStatus, netInfoPkg, area );
+
+ // Simulated network sends new location network information (e.g. new display tag or new location area code)
+ DisplayUserInteractionPromptL(_L("Simulate network sending new location information (e.g. new display tag or new location area code."), ETimeLong);
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+ ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned returned error"));
+ ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE( netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongName") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE( netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE( netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortname") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange did not return ENetworkStatusCurrent status as expected"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
+ //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId is not > 0 as expected.
+ ASSERT_EQUALS((TInt)area.iCellId, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
+
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode is not > 0 as expected.
+ ASSERT_EQUALS((TInt)area.iLocationAreaCode, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
+
+ // === Get current network information ===
+
+ mobilePhone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS( currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned returned error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE( netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE( netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE( netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS( netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork did not return ENetworkStatusCurrent status as expected"))
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
+ ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE((TInt)area.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode") );
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Pop
+ // currentNetworkStatus
+ // reqNetChangeStatus
+
+ CleanupStack::PopAndDestroy(2, ¤tNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0017::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0017");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0018::CCTSYIntegrationTestNetworkControl0018(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0018::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0018::~CCTSYIntegrationTestNetworkControl0018()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0018::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0018
+ * @SYMFssID BA/CTSY/NTWC-0018
+ * @SYMTestCaseDesc Receive notification of a higher priority network that does not offer CS voice.
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::RetrieveListL, CRetrieveMobilePhoneDetectedNetworks::NewL, RMobilePhone::GetNetworkInvScanSetting, RMobilePhone::SelectNetwork, CMobilePhoneNetworkListV5::Enumerate, RMobilePhone::SetNetworkSelectionSetting, RMobilePhone::GetNetworkRegistrationStatus, RMobilePhone::GetHomeNetwork, RMobilePhone::NotifyNetworkInvScanEvent, CRetrieveMobilePhoneDetectedNetworks::StartV5
+ * @SYMTestExpectedResults Pass - Network investigation scan event completes and new network can be selected.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify network investigation event completes and new network can be selected.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Check network investigation scan setting is on ===
+
+ // Check RMobilePhone::GetNetworkInvScanSetting returns aSetting!=0
+
+ // === Get the network ID of the home network (store this for use later) ===
+
+ // Check RMobilePhone::GetHomeNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+
+ // === Detect another higher priority network ===
+
+ // Simulator simulates an additional higher priority network which does not provide CS voice.
+
+ // Check RMobilePhone::NotifyNetworkInvScanEvent completes with aEvent=ENetworkInvestigationHighPriorityPlmn
+
+ // === Get list if detected networks ===
+
+ // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V5 list of preferred networks
+
+ // Check CMobilePhoneNetworkListV5::Enumerate on the list returned returns number of networks > 1
+
+ // === Switch to manual network selection ===
+
+ // Set network selection setting to automatic with RMobilePhone::SetNetworkSelectionSetting with aSetting.iMethod=ENetworkSelectionManual
+
+ // === Go through the list of detected networks and manually select new network ===
+
+ // Cycle through the list of detected networks CMobilePhoneNetworkListV5
+
+ // If the TMobilePhoneNetworkInfoV5::iNetworkId != aNetworkInfo.iNetworkId returned from RMobilePhone::GetHomeNetwork
+
+ // then select network with RMobilePhone::SelectNetwork with aIsManual=ETrue and aManualSelection.iCountry=TMobilePhoneNetworkInfoV5::iCountryCode and aManualSelection.iNetwork=TMobilePhoneNetworkInfoV5::iNetworkId
+
+ // Check RMobilePhone::GetNetworkRegistrationStatus returns aStatus=ERegisteredOnHomeNetwork or =ERegisteredRoaming
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0018::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0018");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0019::CCTSYIntegrationTestNetworkControl0019(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0019::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0019::~CCTSYIntegrationTestNetworkControl0019()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0019::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0019
+ * @SYMFssID BA/CTSY/NTWC-0019
+ * @SYMTestCaseDesc Move into new cell with an active call.
+ * @SYMTestPriority High
+ * @SYMTestActions RCall::GetStatus, RCall:Dial, RCall::NotifyStatusChange, RMobilePhone::NotifyCurrentNetworkChange
+ * @SYMTestExpectedResults Pass - Network information can be retrieved.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify call stays connected and network information notification received.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ ERR_PRINTF2(_L("<font color=Orange>$CTSYProblem: defect id = %d</font>"), 10080);
+ User::Leave(KErrNone);
+
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetCurrentNetwork, KCapsNotifyCurrentNetwork.
+ TUint32 caps;
+ CHECK_EQUALS_L( phone.GetNetworkCaps(caps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
+ TUint32 wantedCaps = RMobilePhone::KCapsGetCurrentNetwork | RMobilePhone::KCapsNotifyCurrentNetwork;
+ CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
+
+ // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Get voice line 1.
+ RMobileLine& mobileLine = iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KVoiceLine);
+
+ // Get call 1.
+ RMobileCall& mobileCall= iEtelSessionMgr.GetCallL(KMainServer,KMainPhone, KVoiceLine, KCall1);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get current network information ===
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ RMobilePhone::TMobilePhoneLocationAreaV1 location;
+ RMobilePhone::TMobilePhoneNetworkInfoV5Pckg netInfoPckg(netInfo);
+ TExtEtelRequestStatus getCurrentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(getCurrentNetworkStatus);
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeMedium),KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned with an error"));
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName "));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE (netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus,RMobilePhone::ENetworkStatusCurrent , _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
+ ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode == 0
+ ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+ // Post Notifier for RCall::NotifyStatusChange
+ TCoreEtelRequestStatus<RCall> notifyStatusChangeStatus(mobileCall, &RCall::NotifyStatusChangeCancel);
+ CleanupStack::PushL(notifyStatusChangeStatus);
+ RCall::TStatus callStatus;
+ mobileCall.NotifyStatusChange(notifyStatusChangeStatus, callStatus);
+
+ // Dial a number that answers.
+ TPtrC number;
+ ASSERT_TRUE(GetStringFromConfig(KIniVoiceNumSection, KIniVoiceNumber1, number) != EFalse, _L("GetStringFromConfig did not complete as expected"));
+ DEBUG_PRINTF1(_L("Board Now Dialling: "));
+ TCoreEtelRequestStatus<RCall> dialStatus(mobileCall, &RCall::DialCancel);
+ CleanupStack::PushL(dialStatus);
+ mobileCall.Dial(dialStatus, number);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
+ ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error"));
+
+ // Check RCall::NotifyStatusChange completes with EStatusConnected.
+ RCall::TStatus expectedCallStatus = RCall::EStatusConnected;
+ iCallControlTestHelper.WaitForCallNotifyStatusChange(mobileCall,
+ notifyStatusChangeStatus,
+ callStatus,
+ expectedCallStatus,
+ KErrNone);
+
+ // Post notification for network change
+ TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(reqNetChangeStatus);
+ phone.NotifyCurrentNetworkChange(reqNetChangeStatus, netInfoPckg, location);
+
+ // Simulate moving into a new cell.
+ DisplayUserInteractionPromptL(_L("Simulate moving into a new cell"), ETimeLong);
+
+ // === Check change of current network notification completes ===
+
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+ ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned with an error"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongNamelength"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE (netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortNamelength"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iStatus"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId > 0
+ ASSERT_TRUE(location.iCellId > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode > 0
+ ASSERT_TRUE(location.iLocationAreaCode > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
+
+ // === Get current network information ===
+
+ phone.GetCurrentNetwork(getCurrentNetworkStatus, netInfoPckg, location);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(getCurrentNetworkStatus, ETimeLong), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(getCurrentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned an error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongNamelength"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortNamelength"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
+ ASSERT_TRUE((TInt)location.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode == 0
+ ASSERT_TRUE((TInt)location.iLocationAreaCode > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLocationAreaCode"));
+
+ // === Check call is still connected ===
+
+ // Check RCall::GetStatus returns EStatusConnected.
+ ASSERT_EQUALS(mobileCall.GetStatus(callStatus), KErrNone, _L("RCall::GetStatus returned an Error"));
+ ASSERT_EQUALS(callStatus, RCall::EStatusConnected, _L("RCall::GetStatus did not return EStatusConnected"));
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Hang up the active call.
+ mobileCall.HangUp();
+
+ // Pop
+ // getCurrentNetworkStatus
+ // notifyStatusChangeStatus
+ // dialStatus
+ // reqNetChangeStatus
+ CleanupStack::PopAndDestroy(4, &getCurrentNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0019::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0019");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0020::CCTSYIntegrationTestNetworkControl0020(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0020::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0020::~CCTSYIntegrationTestNetworkControl0020()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0020::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0020
+ * @SYMFssID BA/CTSY/NTWC-0020
+ * @SYMTestCaseDesc Move into a new cell with packet service active.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::GetCurrentNetwork, RMobilePhone::NotifyCurrentNetworkChange, RPacketService::GetStatus
+ * @SYMTestExpectedResults Pass - Network information is retrieved. Packet service remains active.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies simulated/manual
+ *
+ * Reason for test: Verify packet service stays active.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+
+ // Ensure that RMobilePhone::GetNetworkCaps returns caps in set of KCapsGetCurrentNetwork and KCapsNotifyCurrentNetwork.
+ TUint32 caps;
+ CHECK_EQUALS_L(phone.GetNetworkCaps(caps), KErrNone, _L("RMobilePhone::GetNetworkCaps returned an error"));
+ TUint32 wantedCaps = RMobilePhone::KCapsGetHomeNetwork | RMobilePhone::KCapsNotifyCurrentNetwork;
+ CHECK_BITS_SET_L(caps, wantedCaps, KNoUnwantedBits, _L("RMobilePhone::GetNetworkCaps returned wrong caps"));
+
+ // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
+ CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
+
+ // Ensure phone is attached to packet service.
+ // Get packet service
+ RPacketService& packetService = iEtelSessionMgr.GetPacketServiceL(KMainServer, KMainPhone, KMainPacketService);
+ // Get the attach mode so that it can be restored at the end of the test
+ RPacketService::TAttachMode attachMode;
+ CHECK_EQUALS_L(packetService.GetAttachMode(attachMode), KErrNone, _L("RPacketService::GetAttachMode returned with an error."));
+
+ SetAttachModeToWhenPossibleAndWaitForAttachL(packetService);
+
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get current network information ===
+ RMobilePhone::TMobilePhoneNetworkInfoV5 netInfo;
+ TPckg<RMobilePhone::TMobilePhoneNetworkInfoV1> netInfoPkg(netInfo);
+ RMobilePhone::TMobilePhoneLocationAreaV1 area;
+ TExtEtelRequestStatus currentNetworkStatus(phone, EMobilePhoneGetCurrentNetwork);
+ CleanupStack::PushL(currentNetworkStatus);
+ phone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
+
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS(currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
+ ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+
+ // Post notification for network change
+ TExtEtelRequestStatus reqNetChangeStatus(phone, EMobilePhoneNotifyCurrentNetworkChange);
+ CleanupStack::PushL(reqNetChangeStatus);
+ phone.NotifyCurrentNetworkChange( reqNetChangeStatus, netInfoPkg, area );
+
+ // Simulate moving into a new cell.
+ DisplayUserInteractionPromptL(_L("Simulate moving into a new cell"), ETimeLong);
+
+ // === Check change of current network notification completes ===
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqNetChangeStatus, ETimeMedium), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange timed out"));
+ ASSERT_EQUALS( reqNetChangeStatus.Int(), KErrNone, _L("RMobilePhone::NotifyCurrentNetworkChange returned returned error"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE(netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCountryCode"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE(netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLongName"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iMode") );
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iNetworkId"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iShortname"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iStatus"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
+ //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId is not > 0 as expected.
+ ASSERT_EQUALS((TInt)area.iCellId, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iCellId"));
+
+ // Check RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode == 0
+ //$CTSYProblem: RMobilePhone::NotifyCurrentNetworkChange with parameter type TMobilePhoneLocationAreaV1 returns aArea.iLocationAreaCode is not > 0 as expected.
+ ASSERT_EQUALS((TInt)area.iLocationAreaCode, 0, _L("RMobilePhone::NotifyCurrentNetworkChange returns invalid iLocationAreaCode"));
+
+
+ // === Get current network information ===
+ phone.GetCurrentNetwork( currentNetworkStatus, netInfoPkg, area );
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(currentNetworkStatus, ETimeMedium), KErrNone, _L("RMobilePhone::GetCurrentNetwork timed out"));
+ ASSERT_EQUALS( currentNetworkStatus.Int(), KErrNone, _L("RMobilePhone::GetCurrentNetwork returned returned error"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iCountryCode with length > 0
+ ASSERT_TRUE( netInfo.iCountryCode.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCountryCode"));
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iDisplayTag with length > 0
+ ASSERT_TRUE( netInfo.iDisplayTag.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iDisplayTag"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iLongName with length > 0
+ ASSERT_TRUE(netInfo.iLongName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iLongName"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iMode=ENetworkModeGsm or aNetworkInfo.iMode=ENetworkModeWcdma
+ ASSERT_TRUE ( netInfo.iMode == RMobilePhone::ENetworkModeGsm || netInfo.iMode == RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentNetwork returns invalid iMode") );
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iNetworkId with length > 0
+ ASSERT_TRUE(netInfo.iNetworkId.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iNetworkId"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneNetworkInfoV5 returns aNetworkInfo.iShortName with length > 0
+ ASSERT_TRUE(netInfo.iShortName.Length() > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iShortname"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aNetworkInfo.iStatus=ENetworkStatusCurrent
+ ASSERT_EQUALS(netInfo.iStatus, RMobilePhone::ENetworkStatusCurrent, _L("RMobilePhone::GetCurrentNetwork returns invalid iStatus"));
+
+ // Check RMobilePhone::GetCurrentNetwork with parameter type TMobilePhoneLocationAreaV1 returns aArea.iCellId == 0
+ ASSERT_TRUE((TInt)area.iCellId > 0, _L("RMobilePhone::GetCurrentNetwork returns invalid iCellId"));
+
+ // === Check packet service is still attached ===
+
+ // Check RPacketService::GetStatus returns EStatusAttached
+ RPacketService::TStatus pckSrvcStatus;
+ ASSERT_EQUALS(packetService.GetStatus(pckSrvcStatus), KErrNone, _L("RPacketService::GetStatus returned with an error."));
+ ASSERT_EQUALS(pckSrvcStatus, RPacketService::EStatusAttached, _L("RPacketService::GetStatus returns incorrect status."));
+
+ // === Check packet network status ===
+
+ // Check RPacketService::GetNtwkRegStatus returns ERegisteredOnHomeNetwork
+ TExtEtelRequestStatus regStatus(packetService, EPacketGetNtwkRegStatus);
+ CleanupStack::PushL(regStatus);
+ RPacketService::TRegistrationStatus registrationStatus;
+ packetService.GetNtwkRegStatus(regStatus, registrationStatus);
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(regStatus, ETimeLong), KErrNone, _L("RPacketService::GetNtwkRegStatus timed-out."));
+ ASSERT_EQUALS(regStatus.Int(), KErrNone, _L("RPacketService::GetNtwkRegStatus returned with an error"));
+ ASSERT_EQUALS(registrationStatus, RPacketService::ERegisteredOnHomeNetwork, _L("RPacketService::GetNtwkRegStatus did not return RPacketService::ERegisteredOnHomeNetwork"));
+
+ //
+ // TEST END
+ //
+
+
+ StartCleanup();
+
+ // Return packet service's attach mode to original setting
+ ASSERT_EQUALS(packetService.SetAttachMode(attachMode), KErrNone, _L("RPacketService::SetAttachMode returned with an error."));
+
+ // Pop
+ // currentNetworkStatus
+ // reqNetChangeStatus
+ // regStatus
+ CleanupStack::PopAndDestroy(3, ¤tNetworkStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0020::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0020");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0021::CCTSYIntegrationTestNetworkControl0021(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0021::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0021::~CCTSYIntegrationTestNetworkControl0021()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0021::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0021
+ * @SYMFssID BA/CTSY/NTWC-0021
+ * @SYMTestCaseDesc Store and retrieve a list of preferred networks.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::NotifyPreferredNetworksListChange, CRetrieveMobilePhonePreferredNetworks
+::Start
+ * @SYMTestExpectedResults Pass - Preferred network list stored and retrieved.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify list retrieved is the same as that stored and notification of list change is received.
+ *
+ * @return - TVerdict code
+ */
+ {
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ TInt err;
+
+ // === Create a list of preferred networks ===
+ // Create three TMobilePreferredNetworkEntryV3 objects with valid values in
+ // TMobilePreferredNetworkEntryV3::iAccess,
+ // TMobilePreferredNetworkEntryV3::iCountryCode and
+ // TMobilePreferredNetworkEntryV3::iNetworkId
+
+ RMobilePhone::TMobilePreferredNetworkEntryV3 prefNetworks[3];
+
+ // Three German networks
+
+ prefNetworks[0].iAccess = RMobilePhone::KNetworkAccessGsm;
+ prefNetworks[0].iCountryCode = _L("262");
+ prefNetworks[0].iNetworkId = _L("01");
+
+ prefNetworks[1].iAccess = RMobilePhone::KNetworkAccessGsm;
+ prefNetworks[1].iCountryCode = _L("262");
+ prefNetworks[1].iNetworkId = _L("02");
+
+ prefNetworks[2].iAccess = RMobilePhone::KNetworkAccessGsm;
+ prefNetworks[2].iCountryCode = _L("262");
+ prefNetworks[2].iNetworkId = _L("03");
+
+ CMobilePhoneStoredNetworkList *newNetList = CMobilePhoneStoredNetworkList::NewL();
+ CleanupStack::PushL( newNetList );
+
+ // Add them to a CMobilePhoneStoredNetworkList with CMobilePhoneStoredNetworkList::InsertEntryL
+ for( TInt i=0; i < 3; i++ )
+ {
+ newNetList->AddEntryL(prefNetworks[i]);
+ }
+
+ TExtEtelRequestStatus reqStoreStatus( phone, EMobilePhoneStorePreferredNetworksList );
+ CleanupStack::PushL(reqStoreStatus);
+
+
+ // Request change notification
+ TExtEtelRequestStatus reqPrefListChange( phone, EMobilePhoneNotifyStorePreferredNetworksListChange );
+ CleanupStack::PushL(reqPrefListChange);
+
+ phone.NotifyPreferredNetworksListChange( reqPrefListChange );
+
+ // === Store list ===
+ // Store the list with RMobilePhone::StorePreferredNetworksListL completes with KErrNone
+
+ // The session manager cannot be used for this API because it
+ // allocates memory.
+ // Therefore open a new subsession just for this API
+ RMobilePhone phone2;
+ RTelServer telServer;
+ User::LeaveIfError(telServer.Connect());
+ User::LeaveIfError(phone2.Open(telServer, iEtelSessionMgr.PhoneName()));
+ phone2.StorePreferredNetworksListL(reqStoreStatus, newNetList);
+ err = WaitForRequestWithTimeOut( reqStoreStatus, ETimeLong );
+ ASSERT_EQUALS( err, KErrNone, _L("RMobilePhone::StorePreferredNetworksList timed out"))
+ ASSERT_EQUALS( reqStoreStatus.Int(), KErrNotSupported, _L("RMobilePhone::StorePreferredNetworksList returned error"))
+ phone2.Close();
+ telServer.Close();
+
+ // $CTSYProblem CTSY does not support RMobilePhone::StorePreferredNetworksListL
+ // so the test has been coded to return KErrNotSupported (the correct result in
+ // this situation. When CTSY support has been added, the test case can be
+ // extended to have the following code below.
+
+
+ /*
+ // === Check list change notification completes ===
+
+ // Check RMobilePhone::NotifyPreferredNetworksListChange completes with KErrNone
+ iNetworkTestHelper.WaitForMobilePhoneNotifyPreferredNetworksListChange( reqPrefListChange, KErrNone );
+ ASSERT_EQUALS( reqPrefListChange.Int(), KErrNone,
+ _L("RMobilePhone::NotifyPreferredNetworksListChange returned with an error") );
+
+ // === Get list of preferred networks and verify it is the same as the list stored ===
+ // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of
+ // preferred networks
+
+ CRetrieveMobilePhonePreferredNetworksExec *checkNetListHelper =
+ CRetrieveMobilePhonePreferredNetworksHelper::NewL(phone);
+ CleanupStack::PushL( checkNetListHelper );
+
+ CMobilePhoneStoredNetworkList* checkNetList = checkNetListHelper->DoGetList(err);
+
+ // Check CMobilePhoneStoredNetworkList::Enumerate on the list retrieved returns number of networks = 3
+ TInt checkCount = checkNetList->Enumerate();
+
+ ASSERT_EQUALS( checkCount, 3, _L("Incorrect number of entries in CMobilePhoneStoredNetworkList"));
+
+ ASSERT_TRUE( IsPreferredNetworkInListL( *checkNetList, prefNetworks[0]), _L("Entry 0 not found in list") );
+ ASSERT_TRUE( IsPreferredNetworkInListL( *checkNetList, prefNetworks[1]), _L("Entry 1 not found in list") );
+ ASSERT_TRUE( IsPreferredNetworkInListL( *checkNetList, prefNetworks[2]), _L("Entry 2 not found in list") );
+ */
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // reqPrefListChange
+ // reqStoreStatus
+ // newNetList
+ CleanupStack::PopAndDestroy(3, newNetList);
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0021::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0021");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0022::CCTSYIntegrationTestNetworkControl0022(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0022::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0022::~CCTSYIntegrationTestNetworkControl0022()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0022::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0022
+ * @SYMFssID BA/CTSY/NTWC-0022
+ * @SYMTestCaseDesc Get service provider name.
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - Service provider name returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify service provider name is retrieved.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
+
+ RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus;
+ TInt err = iNetworkTestHelper.GetNetworkRegistrationStatusL( phone,registrationStatus);
+
+ CHECK_TRUE_L(err == KErrNone, _L("RMobilePhone::GetNetworkRegistrationStatus returned error"))
+
+ CHECK_TRUE_L(registrationStatus == RMobilePhone::ERegisteredOnHomeNetwork,
+ _L("RMobilePhone::GetNetworkRegistrationStatus did not return ERegisteredOnHomeNetwork"))
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get service provider name ===
+ RMobilePhone::TMobilePhoneServiceProviderNameV2 spName;
+ TPckg<RMobilePhone::TMobilePhoneServiceProviderNameV2> spNamePkg(spName);
+ TExtEtelRequestStatus reqGetSPNameStatus(phone, EMobilePhoneGetServiceProviderName );
+ CleanupStack::PushL(reqGetSPNameStatus);
+
+ phone.GetServiceProviderName(reqGetSPNameStatus, spNamePkg );
+ ASSERT_EQUALS( WaitForRequestWithTimeOut(reqGetSPNameStatus, ETimeLong ), KErrNone,
+ _L("RMobilePhone::GetServiceProviderName timed out") );
+ ASSERT_EQUALS( reqGetSPNameStatus.Int(), KErrGsm0707NotFound ,_L("RMobilePhone::GetServiceProviderName returned error") );
+
+ // $CTSYProblem The LTSY always returns KErrGsm0707NotFound when this API is called.
+ // CTSY correctly propagates the error back to the client.
+ // If the LTSY does not return an error the following code can be used to test
+ // this API.
+
+ /*
+ // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iPLMNField with length > 0
+ // Check RMobilePhone::GetServiceProviderName with a TMobilePhoneServiceProviderNameV2 parameter returns aName.iSPName with length > 0
+ ASSERT_TRUE( spName.iPLMNField.Length() > 0,
+ _L("RMobilePhone::GetServiceProviderName returns TMobilePhoneServiceProviderNameV2 iPLMNField has zero length"))
+ ASSERT_TRUE( spName.iSPName.Length() > 0,
+ _L("RMobilePhone::GetServiceProviderName returns TMobilePhoneServiceProviderNameV2 iSPName has zero length"))
+ */
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ CleanupStack::PopAndDestroy(1,&reqGetSPNameStatus);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0022::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0022");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0023::CCTSYIntegrationTestNetworkControl0023(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0023::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0023::~CCTSYIntegrationTestNetworkControl0023()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0023::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0023
+ * @SYMFssID BA/CTSY/NTWC-0023
+ * @SYMTestCaseDesc Cancel retrieval of preferred networks.
+ * @SYMTestPriority High
+ * @SYMTestActions
+ * @SYMTestExpectedResults Pass - Retrieval of preferred networks is cancelled.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ //iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get list of all the preferred networks and cancel request ===
+
+ // Use helper class for CRetrieveMobilePhonePreferredNetworks to retrieve a list of preferred networks
+
+ // Cancel the request
+
+ // Check request completes with KErrCancel
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0023::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0023");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0024::CCTSYIntegrationTestNetworkControl0024(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0024::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0024::~CCTSYIntegrationTestNetworkControl0024()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0024::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0024
+ * @SYMFssID BA/CTSY/NTWC-0024
+ * @SYMTestCaseDesc Cancel retrieval of detected networks.
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhoneDetectedNetworks::StartV2, CRetrieveMobilePhoneDetectedNetworks::StartV5, CRetrieveMobilePhoneDetectedNetworks::StartV8
+ * @SYMTestExpectedResults Pass - Retrieval of detected networks is cancelled.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ //iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ // Ensure RMobilePhone::GetNetworkRegistrationStatus returns ERegisteredOnHomeNetwork
+
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+
+ // === Get list of all the detected networks with V1 version of the API and cancel request ===
+
+ // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V1 list of detected networks
+
+ // Cancel the request immediately
+
+ // Check request completes with KErrCancel
+
+ // === Get list of all the detected networks with V2 version of the API ===
+
+ // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V2 list of detected networks
+
+ // Cancel the request immediately
+
+ // Check request completes with KErrCancel
+
+ // === Get list of all the detected networks with V5 version of the API ===
+
+ // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V5 list of detected networks
+
+ // Cancel the request immediately
+
+ // Check request completes with KErrCancel
+
+ // === Get list of all the detected networks with V8 version of the API ===
+
+ // Use helper class for CRetrieveMobilePhoneDetectedNetworks to retrieve a V8 list of detected networks
+
+ // Cancel the request with immediately
+
+ // Check request completes with KErrCancel
+
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Put any required test clean up here, then remove this comment
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0024::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0024");
+ }
+
+
+
+CCTSYIntegrationTestNetworkControl0025::CCTSYIntegrationTestNetworkControl0025(CEtelSessionMgr& aEtelSessionMgr)
+ : CCTSYIntegrationTestNetworkControlBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+ {
+ SetTestStepName(CCTSYIntegrationTestNetworkControl0025::GetTestStepName());
+ }
+
+CCTSYIntegrationTestNetworkControl0025::~CCTSYIntegrationTestNetworkControl0025()
+/**
+ * Destructor.
+ */
+ {
+ }
+
+TVerdict CCTSYIntegrationTestNetworkControl0025::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-NTWC-0025
+ * @SYMFssID BA/CTSY/NTWC-0025
+ * @SYMTestCaseDesc Set network selection setting to an unsupported setting.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhone::NotifyNetworkSelectionSettingChange, RMobilePhone::SetNetworkSelectionSetting
+ * @SYMTestExpectedResults Pass - KErrNotSupported returned when unsupported setting is set and old setting is preserved.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify KErrNotSupported is returned and network selection setting is unchanged.
+ *
+ * @return - TVerdict code
+ */
+ {
+
+ //
+ // SET UP
+ //
+
+ RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer, KMainPhone);
+ iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone);
+
+ //
+ // SET UP END
+ //
+
+ StartTest();
+
+ //
+ // TEST START
+ //
+
+ // Set up the notification for RMobilePhone::NotifyNetworkSelectionSettingChange for later test
+ TExtEtelRequestStatus reqNotifyNetSelSettingChange(phone, EMobilePhoneNotifyNetworkSelectionSettingChange);
+ CleanupStack::PushL(reqNotifyNetSelSettingChange);
+
+ RMobilePhone::TMobilePhoneNetworkSelectionV1 netSelNotify;
+ RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelNotifyPkg( netSelNotify );
+
+ phone.NotifyNetworkSelectionSettingChange(reqNotifyNetSelSettingChange, netSelNotifyPkg);
+
+ // === Set network selection setting to an unsupported setting ===
+ // Set network selection setting to manual wtth RMobilePhone::SetNetworkSelectionSetting with
+ // aSetting.iMethod=ENetworkSelectionUnknown
+ TExtEtelRequestStatus setNetSelSettingStatus(phone, EMobilePhoneSetNetworkSelectionSetting);
+ CleanupStack::PushL(setNetSelSettingStatus);
+ RMobilePhone::TMobilePhoneNetworkSelectionV1 netSel;
+ RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg netSelPkg(netSel);
+ netSel.iMethod = RMobilePhone::ENetworkSelectionUnknown;
+ phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelPkg );
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
+
+ // Check KErrNotSupported is returned
+ ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNotSupported,
+ _L("RMobilePhone::SetNetworkSelectionSetting did not return KErrNotSupported"));
+
+ // Check RMobilePhone::NotifyNetworkSelectionSettingChange is still pending
+ ASSERT_EQUALS( reqNotifyNetSelSettingChange.Int(), KRequestPending,
+ _L("RMobilePhone::NotifyNetworkSelectionSettingChange did not return KRequestPending"));
+
+ //
+ // TEST END
+ //
+
+ StartCleanup();
+
+ // Set the network selection back to automatic
+
+ netSel.iMethod = RMobilePhone::ENetworkSelectionAutomatic;
+ phone.SetNetworkSelectionSetting( setNetSelSettingStatus, netSelPkg );
+
+ ASSERT_EQUALS(WaitForRequestWithTimeOut(setNetSelSettingStatus, ETimeLong), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting timed out") );
+
+ ASSERT_EQUALS( setNetSelSettingStatus.Int(), KErrNone,
+ _L("RMobilePhone::SetNetworkSelectionSetting returned error"))
+
+ //setNetSelSettingStatus
+ //reqNotifyNetSelSettingChange
+ CleanupStack::PopAndDestroy(2,&reqNotifyNetSelSettingChange);
+
+ return TestStepResult();
+ }
+
+TPtrC CCTSYIntegrationTestNetworkControl0025::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+ {
+ return _L("CCTSYIntegrationTestNetworkControl0025");
+ }
+
+
+