telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestnetworkcontrol.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- 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, &notifyServiceStatusChStatus);
-    }
-	
-/**************************************************************************/
-
-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, &regNetChangeStatus);
-	
-	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, &currentNetworkStatus);
-	
-	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, &currentNetworkStatus);
-	
-	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, &notifyServiceStatusChStatus);
+    }
+	
+/**************************************************************************/
+
+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, &regNetChangeStatus);
+	
+	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, &currentNetworkStatus);
+	
+	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, &currentNetworkStatus);
+	
+	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");
+	}
+
+
+