telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestonstore.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestonstore.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestonstore.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,4760 +1,4760 @@
-// 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 ONStore functional unit.
-// 
-//
-
-/**
- @internalTechnology
-*/
-
-#include "cctsyintegrationtestonstore.h"
-
-CCTSYIntegrationTestONStoreBase::CCTSYIntegrationTestONStoreBase(
-		CEtelSessionMgr& aEtelSessionMgr) : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr),
-		iSimTestHelper(*this),iPhoneTsyTestHelper(*this)
-/**
- * Constructor
- */
-	{
-	}
-
-CCTSYIntegrationTestONStoreBase::~CCTSYIntegrationTestONStoreBase()
-/*
- * Destructor
- */
-	{
-	}
-
-
-	
-TBool CCTSYIntegrationTestONStoreBase::CompareEntries(const RMobileONStore::TMobileONEntryV1 &aEntry1,
-		const RMobileONStore::TMobileONEntryV1 &aEntry2)
-/*
- * This function compare two ON store entries
- *
- * @param aEntry1 a reference to the first entry.
- * @param aEntry2 a reference to the second entry.
- *
- * @return - Returns ETrue iff both entries have the same parameters, EFalse otherwise.
- */	
-	{
-	TBool ret=ETrue;
-	ASSERT_EQUALS_DES16(aEntry1.iNumber.iTelNumber, aEntry2.iNumber.iTelNumber, _L("RMobileONStore::Read Entry has the wrong iNumber.iTelNumber"));
-	if(aEntry1.iNumber.iTelNumber!= aEntry2.iNumber.iTelNumber)
-		{
-		ret=EFalse;
-		}
-	ASSERT_EQUALS_DES16(aEntry1.iText, aEntry2.iText, _L("RMobileONStore::Read Entry has the wrong iText"));
-	if(aEntry1.iText!= aEntry2.iText)
-		{
-		ret=EFalse;
-		}
-	return ret;
-	}
-
-TBool CCTSYIntegrationTestONStoreBase::GetUsedEntriesL(RMobileONStore& aOnStore,RMobilePhone& aPhone,TInt& aUsedEntries)
-/**
- * This function return the number of used entries in the store
- * 
- * @param aOnStore a reference to the on store
- * @param aPhone a reference to the phone session
- * @param aUsedEntries a reference to an integer wich the function will put the number of used entries in
- * 
- * @return ETrue iff the function succeed
- */
-	{
-	TBool ret=ETrue;
-	TInt usedEntries1=-1, usedEntries2=-1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_TRUE(ret=(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(aOnStore,KETelOwnNumberStore,storeInfoPckg,aPhone,usedEntries1,usedEntries2)==KErrNone),
-			_L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-	if(usedEntries1!=-1)
-		aUsedEntries=usedEntries1;
-	else
-		aUsedEntries=usedEntries2;
-	return ret;
-	}
-TInt CCTSYIntegrationTestONStoreBase::GetNumberOfUsedAndTotalEntriesInStoreL(RMobileONStore& aOnStore,
-		RMobilePhone& aPhone,
-		TInt& aUsedEntries, 
-		TInt& aUsedEntries2,
-		TInt& aTotalEntries, 
-		TInt& aTotalEntries2)
-/**
- * This function return the number of used entries and total entries in the store, using both the RMobileONStore and the RMobilePhone
- * 
- * @param aOnStore a reference to the on store
- * @param aPhone a reference to the phone session
- * @param aUsedEntries a reference to an integer wich the function will put the number of used entries in returned by RMobileONStore
- * @param aUsedEntries2 a reference to an integer wich the function will put the number of used entries in returned by RMobilePhone
- * @param aTotalEntries a reference to an integer wich the function will put the number of total entries in returned by RMobileONStore
- * @param aTotalEntries2 a reference to an integer wich the function will put the number of total  entries in returned by RMobilePhone
- * 
- * @return KErrNone if one of the get info APIs are supported, KErrNotSupported if neither are supported.
- */
-	{
-	// Get number of entries using RMobilePhoneStore::GetInfo
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	TExtEtelRequestStatus getInfoStatus (aOnStore,EMobilePhoneStoreGetInfo);	
-	CleanupStack::PushL(getInfoStatus);
-	aOnStore.GetInfo(getInfoStatus,storeInfoPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(getInfoStatus, ETimeMedium), KErrNone,_L("RMobileSmsStore::GetInfo timed out"));
-	if (getInfoStatus.Int() == KErrNone)
-		{
-		aUsedEntries = storeInfo.iUsedEntries;
-		aTotalEntries = storeInfo.iTotalEntries;
-		}
-	else
-		{
-		DEBUG_PRINTF2(_L("RMobilePhoneStore::GetInfo returned with error = %d"), getInfoStatus.Int());
-		}
-
-	// Get number of entries using RMobilePhone::GetPhoneStoreInfo
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo2;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg2 (storeInfo2);
-	TExtEtelRequestStatus getInfoStatus2 (aOnStore,EMobilePhoneStoreGetInfo);	
-	CleanupStack::PushL(getInfoStatus2);	
-	aPhone.GetPhoneStoreInfo(getInfoStatus2,storeInfoPckg2, KETelOwnNumberStore);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(getInfoStatus2, ETimeMedium), KErrNone,_L("RMobilePhone::GetPhoneStoreInfo timed out"));
-	if (getInfoStatus2.Int() == KErrNone)
-		{
-		aTotalEntries2 = storeInfo2.iTotalEntries;
-		aUsedEntries2 = storeInfo2.iUsedEntries;
-		}
-	else
-		{
-		DEBUG_PRINTF2(_L("RMobilePhone::GetPhoneStoreInfo returned with error = %d"), getInfoStatus2.Int());
-		}
-	
-	if (getInfoStatus.Int() == KErrNone || getInfoStatus2.Int() == KErrNone)
-		{
-		CleanupStack::PopAndDestroy(2);
-		return KErrNone;
-		}
-	else
-		{
-		CleanupStack::PopAndDestroy(2);
-		return KErrNotSupported;
-		}
-	
-	}
-
-TBool CCTSYIntegrationTestONStoreBase::GetUsedandTotalEntriesL(RMobileONStore& aOnStore,RMobilePhone& aPhone,
-		TInt& aUsedEntries,TInt& aTotalEntries)
-/**
- * This function return the number of used entries in the store
- * 
- * @param aOnStore a reference to the on store
- * @param aPhone a reference to the phone session
- * @param aUsedEntries a reference to an integer wich the function will put the number of used entries in
- * 
- * @return ETrue iff the function succeed
- */
-	{
-	TBool ret=ETrue;
-	TInt usedEntries1=-1, usedEntries2=-1;
-	TInt totalEntries1=-1, totalEntries2=-1;
-	ASSERT_TRUE(ret=(GetNumberOfUsedAndTotalEntriesInStoreL(aOnStore,
-			aPhone,usedEntries1,usedEntries2,totalEntries1,totalEntries2)==KErrNone),
-			_L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-	if(usedEntries1!=-1)
-		{
-		aUsedEntries=usedEntries1;
-		}
-	else
-		{
-		aUsedEntries=usedEntries2;
-		}
-	if(totalEntries1!=-1)
-		{
-		aTotalEntries=totalEntries1;
-		}
-	else
-		{
-		aTotalEntries=totalEntries2;
-		}
-	return ret;
-	}
-
-TBool  CCTSYIntegrationTestONStoreBase::OpenADNStoreL()
-/**
- * This function open a session for the ADN store,
- * this is since the ON store work only if there is a subsession of the ADN store open.
- * 
- * @return ETrue iff the function succeed
- */
-    {
-	// Open the ADN phone book subsession  
-	RMobilePhoneBookStore& adnPhoneBookStore = iEtelSessionMgr.GetPhoneBookStoreL(KMainServer, KMainPhone, KIccAdnPhoneBook);
-	RMmCustomAPI& mmCustomAPI = iEtelSessionMgr.GetCustomApiL(KMainServer, KMainPhone,KMainCustomApi);
-	iPhoneTsyTestHelper.WaitForPhoneBookStoreCacheReadyL(mmCustomAPI,KIccAdnPhoneBook);
-	return ETrue;
-    }
-
-
-CCTSYIntegrationTestONStore0001::CCTSYIntegrationTestONStore0001(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0001::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0001::~CCTSYIntegrationTestONStore0001()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0001::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0001
- * @SYMFssID BA/CTSY/PBON-0001
- * @SYMTestCaseDesc Get ON store info. 
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - Phone store information returned correctly.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify ON store information is valid.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-	
-	// Open ONStore subsession
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-	
-	
-	//
-	// TEST START
-	//
-
-
-	// Get ON store info. using RMobilePhoneStore::GetInfo with RMobileONStore::TMobileONStoreInfoV1 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	ASSERT_EQUALS(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	ASSERT_EQUALS_DES16(onStoreInfo.iName,KETelOwnNumberStore, _L("RMobileONStore::GetInfo returned wrong ON Store name"));
-
-	// iType == RMobilePhoneStore::EOwnNumberStore 
-	ASSERT_EQUALS(onStoreInfo.iType, RMobilePhoneStore::EOwnNumberStore, _L("RMobileONStore::GetInfo returned wrong type"));
-
-	// iTotalEntries >= -1 
-	ASSERT_TRUE(onStoreInfo.iTotalEntries >= -1 , _L("RMobileONStore::GetInfo returned wrong Total Entries"));
-
-	// iUsedEntries >= -1 
-	ASSERT_TRUE(onStoreInfo.iUsedEntries >= -1 , _L("RMobileONStore::GetInfo returned wrong Used Entries"));
-
-	// iCaps == RMobilePhoneStore::KCapsIndividualEntry 
-	//         | RMobilePhoneStore::KCapsReadAccess 
-	//         | RMobilePhoneStore::KCapsWriteAccess 
-	//         | RMobilePhoneStore::KCapsDeleteAll 
-	//         | RMobilePhoneStore::KCapsNotifyEvent 
-	//         | RMobilePhoneStore::KCapsWholeStore  
-	TUint wantedBits = RMobilePhoneStore::KCapsIndividualEntry| RMobilePhoneStore::KCapsReadAccess| RMobilePhoneStore::KCapsWriteAccess| RMobilePhoneStore::KCapsDeleteAll| RMobilePhoneStore::KCapsNotifyEvent| RMobilePhoneStore::KCapsWholeStore;
-	ASSERT_BITS_SET(onStoreInfo.iCaps,wantedBits,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned unexpected iCaps"));
-
-	// iNumberLen >= -1 
-	ASSERT_TRUE(onStoreInfo.iNumberLen >= -1 , _L("RMobileONStore::GetInfo returned wrong Number Length"));
-
-	// iTextLen >= -1  (actually hard coded to 20 in CTSY) 
-	ASSERT_TRUE(onStoreInfo.iTextLen >= -1 , _L("RMobileONStore::GetInfo returned wrong Text Length"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	onStoreInfoStatus
-	CleanupStack::PopAndDestroy(&onStoreInfoStatus);
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0001::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0001");
-	}
-
-CCTSYIntegrationTestONStore0002::CCTSYIntegrationTestONStore0002(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0002::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0002::~CCTSYIntegrationTestONStore0002()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0002::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0002
- * @SYMFssID BA/CTSY/PBON-0002
- * @SYMTestCaseDesc Read entries from the ON store.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - Entry read successfully.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify entries are read correctly.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Get ON store subsession. 
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-
-	// Backup first Entry
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-	
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Write entries to the first slot, second slot, and the maximum slot in the phone book. 
-	RMobileONStore::TMobileONEntryV1 entry1, entry2, entryLast;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg1(entry1);
-	RMobileONStore::TMobileONEntryV1Pckg writePckg2(entry2);
-	RMobileONStore::TMobileONEntryV1Pckg writePckgLast(entryLast);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-
-	// Create and write entry for 1st slot
-	entry1.iMode=RMobilePhone::ENetworkModeGsm;
-	entry1.iService=RMobilePhone::ETelephony;
-	entry1.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry1.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "12345");
-	entry1.iNumber.iTelNumber = KNumber;
-	entry1.iText = _L("Entry 1");
-	entry1.iIndex=1;
-	onStore.Write (writeStatus, writePckg1);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-	// Create and write entry for 2nd slot
-	entry2.iMode=RMobilePhone::ENetworkModeGsm;
-	entry2.iService=RMobilePhone::EAllTele;
-	entry2.iNumber.iNumberPlan = RMobilePhone::EPrivateNumberPlan;
-	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENetworkSpecificNumber;
-	_LIT(KNumber2, "647852");
-	entry2.iNumber.iTelNumber = KNumber2;
-	entry2.iText = _L("entry 2");
-	entry2.iIndex=2;
-	onStore.Write (writeStatus, writePckg2);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-
-	// Create and write entry for last slot	
-	entryLast.iMode=RMobilePhone::ENetworkModeGsm;
-	entryLast.iService=RMobilePhone::EAllDataExSms;
-	entryLast.iNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
-	entryLast.iNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber;
-	_LIT(KNumberLast, "341231233");
-	entryLast.iNumber.iTelNumber = KNumberLast;
-	entryLast.iText = _L("last entry");
-	entryLast.iIndex=onStoreInfo.iTotalEntries;
-	onStore.Write (writeStatus, writePckgLast);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Read entry from the first slot, second slot and the maximum slot from the phone book in turn passing an RMobileONStore::TMobileONEntryV1 as aEntry. 
-	RMobileONStore::TMobileONEntryV1 readEntry1, readEntry2, readEntryLast;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg1(readEntry1);
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg2(readEntry2);
-	RMobileONStore::TMobileONEntryV1Pckg entryPckgLast(readEntryLast);
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	readEntry1.iIndex=1;
-	readEntry2.iIndex=2;
-	readEntryLast.iIndex=onStoreInfo.iTotalEntries;
-
-	// Slot 1
-	onStore.Read (readStatus, entryPckg1);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// Slot 2
-	onStore.Read (readStatus, entryPckg2);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// last Slot
-	onStore.Read (readStatus, entryPckgLast);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// For each one: 
-
-	// Check iMode is the same as that written to the phone book in set up.
-    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10036);
-	ASSERT_EQUALS(readEntry1.iMode,entry1.iMode, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iMode"));
-	ASSERT_EQUALS(readEntry2.iMode,entry2.iMode, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iMode"));
-	ASSERT_EQUALS(readEntryLast.iMode,entryLast.iMode, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iMode"));
-
-	// Check iNumber is the same as that written to the phone book in set up.
-	ASSERT_EQUALS(readEntry1.iNumber.iNumberPlan,entry1.iNumber.iNumberPlan, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iNumber.iNumberPlan"));
-	ASSERT_EQUALS(readEntry2.iNumber.iNumberPlan,entry2.iNumber.iNumberPlan, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iNumber.iNumberPlan"));
-	ASSERT_EQUALS(readEntryLast.iNumber.iNumberPlan,entryLast.iNumber.iNumberPlan, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iNumber.iNumberPlan"));
-	ASSERT_EQUALS(readEntry1.iNumber.iTypeOfNumber,entry1.iNumber.iTypeOfNumber, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iNumber.iTypeOfNumber"));
-	ASSERT_EQUALS(readEntry2.iNumber.iTypeOfNumber,entry2.iNumber.iTypeOfNumber, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iNumber.iTypeOfNumber"));
-	ASSERT_EQUALS(readEntryLast.iNumber.iTypeOfNumber,entryLast.iNumber.iTypeOfNumber, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iNumber.iTypeOfNumber"));
-	ASSERT_EQUALS_DES16(readEntry1.iNumber.iTelNumber,entry1.iNumber.iTelNumber, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iNumber.iTelNumber"));
-	ASSERT_EQUALS_DES16(readEntry2.iNumber.iTelNumber,entry2.iNumber.iTelNumber, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iNumber.iTelNumber"));
-	ASSERT_EQUALS_DES16(readEntryLast.iNumber.iTelNumber,entryLast.iNumber.iTelNumber, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iNumber.iTelNumber"));
-
-	// Check iService is the same as that written to the phone book in set up.
-	ASSERT_EQUALS(readEntry1.iService,entry1.iService, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iService"));
-	ASSERT_EQUALS(readEntry2.iService,entry2.iService, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iService"));
-	ASSERT_EQUALS(readEntryLast.iService,entryLast.iService, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iService"));
-
-	// Check iText is the same as that written to the phone book in set up.
-	ASSERT_EQUALS_DES16(readEntry1.iText,entry1.iText, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iText"));
-	ASSERT_EQUALS_DES16(readEntry2.iText,entry2.iText, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iText"));
-	ASSERT_EQUALS_DES16(readEntryLast.iText,entryLast.iText, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iText"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	readStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(4,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0002::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0002");
-	}
-
-CCTSYIntegrationTestONStore0003::CCTSYIntegrationTestONStore0003(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0003::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0003::~CCTSYIntegrationTestONStore0003()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0003::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0003
- * @SYMFssID BA/CTSY/PBON-0003
- * @SYMTestCaseDesc Read entry that is not present in the ON store.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - KErrNotFound returned when reading a non-existent entry.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify KErrNotFound is returned.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Get ON store subsession. 
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-
-	// Backup first Entry
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Delete all entries from the phone book. 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Read an entry from a valid index. 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	readEntry.iIndex=1;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-
-	// Check KErrNotFound is returned.
-	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is read from an empty slot
-	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
-	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
-	// should be expected in this case.
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	readStatus
-	//	deleteAllStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(4,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0003::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0003");
-	}
-
-CCTSYIntegrationTestONStore0004::CCTSYIntegrationTestONStore0004(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0004::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0004::~CCTSYIntegrationTestONStore0004()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0004::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0004
- * @SYMFssID BA/CTSY/PBON-0004
- * @SYMTestCaseDesc Read entries from the ON store using invalid index.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - Error returned on read.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify KErrArgument is returned.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Get ON store subsession. 
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Read an entry with an invalid slot number ===
-
-	// Read a single entry from the phone book using aIndex = -1 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	readEntry.iIndex=-1;
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-
-	// Check KErrGsmSMSInvalidMemoryIndex is returned.
-    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10041);
-	ASSERT_EQUALS(readStatus.Int(), KErrGsmSMSInvalidMemoryIndex, _L("RMobileONStore::Read returned unexpected result"));
-
-	// Read a single entry from the phone book using aIndex = -10 
-	readEntry.iIndex=-10;
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-
-	// Check KErrGsmSMSInvalidMemoryIndex is returned.
-	ASSERT_EQUALS(readStatus.Int(), KErrGsmSMSInvalidMemoryIndex, _L("RMobileONStore::Read returned unexpected result"));
-
-	// Read a single entry from the phone book using aIndex = -50 
-	readEntry.iIndex=-50;
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-
-	// Check KErrGsmSMSInvalidMemoryIndex is returned.
-	ASSERT_EQUALS(readStatus.Int(), KErrGsmSMSInvalidMemoryIndex, _L("RMobileONStore::Read returned unexpected result"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-	//	readStatus
-	//	onStoreInfoStatus
-	CleanupStack::PopAndDestroy(2,&onStoreInfoStatus);
-	
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0004::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0004");
-	}
-
-CCTSYIntegrationTestONStore0005::CCTSYIntegrationTestONStore0005(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0005::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0005::~CCTSYIntegrationTestONStore0005()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0005::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0005
- * @SYMFssID BA/CTSY/PBON-0005
- * @SYMTestCaseDesc Write entries to the ON store.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - Write successful.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify entries are written correctly and can be read.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Get ON store subsession. 
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-
-	// Backup first Entry
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess | KCapsWriteAccess | KCapsNotifyEvent 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),
-			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-
-	// Ensure phone book is not full. 
-	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureBookIsNotFullL was unable to get an empty space"));
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get phone store information using RMobilePhone::GetPhoneStoreInfo and KETelOwnNumberStore 
-
-	// Store the iUsedEntries returned. 
-
-	// Get phone book store information using RMobilePhoneStore::GetInfo 
-
-	// Store the iUsedEntries returned. 
-	TInt usedEntries =-1;
-	TInt usedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// ===  Write a valid entry ===
-
-	// Post notify event
-	TUint32 storeEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-
-	// Write a valid entry with a national number to the phone book specifying a specific index to store the entry which does not contain an entry. 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "01632960000");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("An Entry");
-	entry.iIndex=clearSpace;
-	onStore.Write (writeStatus, writePckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreEntryAdded
-	RMobilePhoneStore::TMobileStoreEvent
-			expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent(onStore,notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
-
-	// ===  Read the written entry ===
-
-	// Read the entry from the phone book. 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg pckgReadEntry(readEntry);
-	readEntry.iIndex = clearSpace;
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	onStore.Read (readStatus, pckgReadEntry);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// Check that the entry information is the same as that written.
-	ASSERT_TRUE(CompareEntries (readEntry, entry), _L("RMobileONStore::Read entries are not the same"));
-
-	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
-			phone,usedEntries+1,usedEntries2+1), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// ===  Write a valid entry ===
-
-	// post notifier for RMobilePhoneStore::NotifyStoreEvent
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-	
-	// Write a valid entry with an international number (containing a '+' sign) to the phone book specifying a specific index to store the entry which does not contain an entry. 
-	RMobileONStore::TMobileONEntryV1 entry2;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg2(entry2);
-	entry2.iMode=RMobilePhone::ENetworkModeGsm;
-	entry2.iService=RMobilePhone::ETelephony;
-	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry2.iNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber;
-	_LIT(KNumber2, "+441632960000");
-	entry2.iNumber.iTelNumber = KNumber2;
-	entry2.iText = _L("IEntry");
-	entry2.iIndex=clearSpace;
-	onStore.Write (writeStatus, writePckg2);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreEntryAdded
-	expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyStoreEventStatus, storeEvent, expectedEvent, entry2.iIndex,KErrNone);
-
-	// ===  Read the written entry ===
-
-	// Read the entry from the phone book. 
-	readEntry.iIndex = entry2.iIndex;
-	onStore.Read (readStatus, pckgReadEntry);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// Check that the entry information is the same as that written.
-	ASSERT_TRUE(CompareEntries (entry2, readEntry), _L("RMobileONStore::Read entries are not the same"));
-
-	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
-
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries+1,usedEntries2+1), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	readStatus
-	//	writeStatus
-	//	notifyStoreEventStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(5,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0005::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0005");
-	}
-
-CCTSYIntegrationTestONStore0006::CCTSYIntegrationTestONStore0006(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0006::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0006::~CCTSYIntegrationTestONStore0006()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0006::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0006
- * @SYMFssID BA/CTSY/PBON-0006
- * @SYMTestCaseDesc Write an entry to phonebook at index of -1 (first free slot).
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - Entry written.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify entry is written correctly and correct slot number is returned.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	
-	// Backup first Entry
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// SIM phone book is not full. 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsReadAccess | KCapsNotifyEvent 
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsNotifyEvent | RMobilePhoneStore::KCapsWriteAccess),
-			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Store iUsedEntries returned for future use 
-	
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Store iUsedEntries returned for future use 
-	TInt savedUsedEntries = -1;
-	TInt savedUsedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-	
-
-	// ===  Write an entry to the first free slot ===
-
-	// Post notify event
-	TUint32 storeEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-
-	// Write a valid entry to the phone book using RMobilePhoneStore::Write supplying aEntry.index = -1 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "01632960000");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("Entry11");
-	entry.iIndex=-1;
-	onStore.Write (writeStatus, writePckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-	// Store the aEntry.iIndex returned for future use 
-	TInt savedIndex=entry.iIndex;
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreEntryAdded
-	RMobilePhoneStore::TMobileStoreEvent
-			expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
-
-	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries+1,savedUsedEntries2+1), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// ===  Read the written entry ===
-
-	// Read the written entry at index aEntry.iIndex returned from the write 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	readEntry.iIndex = savedIndex;
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// Check RMobilePhoneStore::Read returns correct entry information 
-	ASSERT_TRUE(CompareEntries (entry, readEntry), _L("RMobileONStore::Read entries are not the same"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	readStatus
-	//	writeStatus
-	//	notifyStoreEventStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(5,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0006::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0006");
-	}
-
-CCTSYIntegrationTestONStore0007::CCTSYIntegrationTestONStore0007(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0007::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0007::~CCTSYIntegrationTestONStore0007()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0007::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0007
- * @SYMFssID BA/CTSY/PBON-0007
- * @SYMTestCaseDesc Write entries to the ON store using invalid indexes.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
- * @SYMTestExpectedResults Pass - Error returned on write.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify error is returned on attempt to write to an invalid index and number of used entries in the phone book is unchanged.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure phone book is not full. 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsReadAccess 
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess),
-			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  1. Find out how many entries are used in the phone book ===
-	// ===  2. Attempt to write an entry to invalid index (0) ===
-	DEBUG_PRINTF1(_L("Attempt to write an entry to invalid index (0)"));
-	_LIT(KNumber0, "01632960000");
-	WriteEntryAndCheckThatUsedEntriesDidNotChangedL (onStore, 0, KNumber0);
-    clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	ASSERT_TRUE(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-	// Repeat steps 1 to 3 for aEntry.index = -2, -10 
-	DEBUG_PRINTF1(_L("Attempt to write an entry to invalid index (-2)"));
-	_LIT(KNumber2, "01632960000");
-	WriteEntryAndCheckThatUsedEntriesDidNotChangedL (onStore, -2, KNumber2);
-    clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	ASSERT_TRUE(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-	_LIT(KNumber3, "01632960000");
-	
-	DEBUG_PRINTF1(_L("Attempt to write an entry to invalid index (-10)"));
-	WriteEntryAndCheckThatUsedEntriesDidNotChangedL (onStore, -10, KNumber3);
-    clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	ASSERT_TRUE(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-
-	// ===  Attempt to write an entry to an index that is higher than the max slot number ===
-
-	// Write an entry using RMobilePhoneStore::Write and aEntry.index = 10000 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber4, "01632960000");
-	entry.iNumber.iTelNumber = KNumber4;
-	entry.iText = _L("Entry11");
-	entry.iIndex=10000;
-	onStore.Write (writeStatus, writePckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-
-	// Check error returned is not KErrNone
-	ASSERT_TRUE((writeStatus.Int() != KErrNone), _L("RMobileONStore::Write returned an error") );
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(3,&backup);
-
-	return TestStepResult();
-	}
-
-
-void CCTSYIntegrationTestONStore0007::WriteEntryAndCheckThatUsedEntriesDidNotChangedL(
-		RMobileONStore& aStore, TInt aIndex, const TDesC& aNumber)
-/*
- * This function write an entry to an invalid index and check that the number of used entries did not changed
- *
- * @param aStore Reference to On Store session.
- * @param aIndex the (invald) index
- * @param aNumber the number to write
- *
- */	
-	{
-
-
-	// ===  1. Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1 
-
-	// Store iUsedEntries returned for future use 
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Store iUsedEntries returned for future use 
-	TInt savedUsedEntries = -1;
-	TInt savedUsedEntries2 = -1;
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(aStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// ===  2. Attempt to write an entry to invalid index ===
-
-	// Write an entry using RMobilePhoneStore::Write and aEntry.index = aIndex 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(aStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iNumber.iTelNumber = aNumber;
-	entry.iText = _L("Entry11");
-	entry.iIndex=aIndex;
-
-	// Check KErrArgument is returned
-	aStore.Write (writeStatus, writePckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-
-    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10042);
-	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-	// ===  3. Get the number of used entries and check it is same as before the attempted write ===
-
-	// Check RMobilePhoneStore::GetInfo returns same iUsedEntries as before
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns same iUsedEntries as before
-    ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(aStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2), 
-                  KErrNone, 
-                  _L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// Pop:
-	//	writeStatus
-	CleanupStack::PopAndDestroy(&writeStatus);
-
-	}
-
-TPtrC CCTSYIntegrationTestONStore0007::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0007");
-	}
-
-CCTSYIntegrationTestONStore0008::CCTSYIntegrationTestONStore0008(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0008::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0008::~CCTSYIntegrationTestONStore0008()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0008::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0008
- * @SYMFssID BA/CTSY/PBON-0008
- * @SYMTestCaseDesc Write entry to the ON store when SIM is full.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
- * @SYMTestExpectedResults Pass - Error on attempt to write.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify error is returned and number of used entries is unchanged.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Fill SIM phone book. 
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iNumber.iTelNumber = _L("12012030");
-	entry.iText = _L("Entry11");
-	TInt usedEntries,totalEntries;
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (; usedEntries<totalEntries;++usedEntries)
-		{
-		entry.iIndex=-1;
-		onStore.Write (writeStatus, writePckg);
-		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Write timed out"));
-		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-		}
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Store iUsedEntries returned for future use 
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Store iUsedEntries returned for future use 
-	TInt savedUsedEntries = -1;
-	TInt savedUsedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// ===  Attempt to write an entry to the phone book ===
-
-	// Write an entry using RMobilePhoneStore::Write and aEntry.index = -1 
-	entry.iNumber.iTelNumber = _L("12012034");
-	entry.iIndex=-1;
-
-	// Check error != KErrNone is returned.
-	onStore.Write (writeStatus, writePckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_TRUE((writeStatus.Int() != KErrNone), _L("RMobileONStore::Write did not returned an error") );
-
-	// ===  Get the number of used entries and check it is the same as before attempted write ===
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is same as before
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is same as before
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	writeStatus
-	//	backup
-	CleanupStack::PopAndDestroy(2,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0008::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0008");
-	}
-
-CCTSYIntegrationTestONStore0009::CCTSYIntegrationTestONStore0009(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0009::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0009::~CCTSYIntegrationTestONStore0009()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0009::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0009
- * @SYMFssID BA/CTSY/PBON-0009
- * @SYMTestCaseDesc Write entry to the ON store making the store full.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::Write, RMobilePhoneStore::DeleteAll
- * @SYMTestExpectedResults Pass - Entry written correctly.  Store event is retrieved indicating entry has been written and store is full.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify entry written and store event completes indicating store is now full.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-	
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsReadAccess | KCapsNotifyEvent 
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsNotifyEvent | RMobilePhoneStore::KCapsWriteAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Fill phone book until there is only one slot free. 
-	TInt usedEntries,totalEntries;
-	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
-	CleanupStack::PushL (deleteStatus);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iNumber.iTelNumber = _L("12012030");
-	entry.iText = _L("Entry11");
-	if(usedEntries==totalEntries)
-		{
-		onStore.Delete (deleteStatus, totalEntries);
-		CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-		CHECK_EQUALS_L(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
-		}
-	else
-		{
-		for (; usedEntries+1<totalEntries;++usedEntries)
-			{
-			entry.iIndex=-1;
-			onStore.Write (writeStatus, writePckg);
-			CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-					KErrNone, _L("RMobileONStore::Write timed out"));
-			CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-			}
-		}
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	CHECK_EQUALS_L(usedEntries,totalEntries-1, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Store iUsedEntries returned for future use 
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Store iUsedEntries returned for future use 
-	TInt savedUsedEntries = -1;
-	TInt savedUsedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// ===  Write an entry into the last free slot in the phone book ===
-
-	// Post notify event
-	TUint32 storeEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-
-	// Write an entry using RMobilePhoneStore::Write and aEntry.index = -1 
-	entry.iIndex=-1;
-	onStore.Write (writeStatus, writePckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreFull | KStoreEntryAdded
-    TInt expectedEvent = RMobilePhoneStore::KStoreFull | RMobilePhoneStore::KStoreEntryAdded;
-    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10037);
-    iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
-
-	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries+1,savedUsedEntries2+1), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// ===  Read the written entry ===
-
-	// Read the written entry with RMobilePhoneStore::Read 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	readEntry.iIndex = savedUsedEntries+1;
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// Check entry details are correct
-	ASSERT_TRUE(CompareEntries (entry, readEntry), _L("RMobileONStore::Read entries are not the same"));
-	// ===  Delete all entries from the phone book  ===
-
-	// Delete all entries from the ON Store 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries of 0.
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries of 0.
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,0,0), 
-		KErrNone, 
-		_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// ===  Fill the phone book using RMobileONStore::StoreAllL ===
-
-	// Populate a CMobilePhoneONList with enough entries to fill the ON store phone book. 
-	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
-	CleanupStack::PushL (list);
-	RMobileONStore::TMobileONEntryV1 entry2;
-	entry2.iMode=RMobilePhone::ENetworkModeGsm;
-	entry2.iService=RMobilePhone::ETelephony;
-	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry2.iText = _L("Entry2");
-	entry2.iNumber.iTelNumber = _L("12012032");
-	ASSERT_TRUE(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (TInt i=usedEntries+1; i <= totalEntries;++i)
-		{
-		entry2.iIndex=i;
-		if ( entry2.iNumber.iTelNumber[0]=='9')
-			{
-			entry2.iNumber.iTelNumber[0]='0';
-			}
-		else
-			{
-			entry2.iNumber.iTelNumber[0]++;
-			}
-		list->AddEntryL (entry2);
-		}
-
-	// Post notify event
-	TUint32 storeEvent2;
-	TInt index2;
-	TExtEtelRequestStatus notifyStoreAllEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreAllEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreAllEventStatus, storeEvent2, index2);
-
-	// Use RMobileONStore::StoreAllL to add these entries to the phone book. 
-	DEBUG_PRINTF1( _L("Store all has cause panic, using bypass"));
-	// Bypass : The session manager can not be used, since a PANIC is created
-	RMobileONStore byPassOnStore;
-	User::LeaveIfError(byPassOnStore.Open(phone));
-	CleanupClosePushL(byPassOnStore);
-	// By pass end
-	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
-	CleanupStack::PushL (storeAllStatus);
-	byPassOnStore.StoreAllL (storeAllStatus, list);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
-	ASSERT_EQUALS(storeAllStatus.Int(), KErrNone, _L("RMobileONStore::StoreAllL returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreFull
-    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10038);
-	RMobilePhoneStore::TMobileStoreEvent
-			expectedEvent2 = RMobilePhoneStore::KStoreFull;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyStoreAllEventStatus, storeEvent2, expectedEvent2, index2,KErrNone);
-
-	// ===  Read all the written entries ===
-
-	// Read all the entries in from the ON store. 
-
-	// Check that they are the same as that stored using the CMobilePhoneONList
-	ASSERT_TRUE(GetUsedEntriesL(onStore,phone,usedEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	RMobileONStore::TMobileONEntryV1 readEntry2;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg2(readEntry2);
-	for (TInt i=1; i<=usedEntries;++i)
-		{
-		readEntry2.iIndex=i;
-		onStore.Read (readStatus, entryPckg2);
-		ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Read timed out"));
-		ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-		ASSERT_TRUE(CompareEntries (readEntry2, list->GetEntryL (i-1)), _L("RMobileONStore::Read entries are not the same"));
-		}
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	storeAllStatus
-	//	byPassOnStore
-	//	notifyStoreAllEventStatus
-	//	list
-	//	deleteAllStatus
-	//	readStatus
-	//	notifyStoreEventStatus
-	//	writeStatus
-	//	deleteStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(11,&backup);
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0009::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0009");
-	}
-
-CCTSYIntegrationTestONStore0010::CCTSYIntegrationTestONStore0010(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0010::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0010::~CCTSYIntegrationTestONStore0010()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0010::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0010
- * @SYMFssID BA/CTSY/PBON-0010
- * @SYMTestCaseDesc Write entry to ON store where name-tag and number are of maximum length.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::NotifyStoreEvent, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
- * @SYMTestExpectedResults Pass - Write successful.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify name and number are written correctly and can be read.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure phone book is not full. 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),
-			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Store iUsedEntries returned for future use 
-
-	// Store iNumLength and iTextLength for future use 
-	TInt numberLength = onStoreInfo.iNumberLen;
-	TInt textLength = onStoreInfo.iTextLen;
-	
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Store iUsedEntries returned for future use 
-	TInt usedEntries =-1;
-	TInt usedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// ===  Write entry of maximum size to the ON store ===
-
-	// Post notify event
-	TUint32 storeEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-	
-	// Create a RMobileONStore::TMobileONEntryV1 with a valid name in iText of length iTextLength and iNumber of length iNumLength 
-	RMobileONStore::TMobileONEntryV1 entry;
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iIndex=clearSpace;
-	entry.iText = TBuf<RMobileONStore::KOwnNumberTextSize>(textLength);
-	entry.iText.Fill('A',textLength);
-	entry.iNumber.iTelNumber = TBuf<RMobilePhone::KMaxMobileTelNumberSize>(numberLength);
-    entry.iNumber.iTelNumber.Zero();
-    entry.iNumber.iTelNumber.Append('+');
-    for(TInt i=1;i<numberLength;++i) //Apend numberLength digits, since the '+' is the first digit
-        {
-        entry.iNumber.iTelNumber.Append('0'+(i%10));
-        }
-
-	// Write the entry to the ON store
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	onStore.Write (writeStatus, writePckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEntryAdded
-	RMobilePhoneStore::TMobileStoreEvent expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent(onStore,notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
-
-	// ===  Read the written entry ===
-
-	// Read the written entry with RMobilePhoneStore::Read 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg pckgReadEntry(readEntry);
-	readEntry.iIndex = clearSpace;
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	onStore.Read (readStatus, pckgReadEntry);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// Check entry details are correct
-	ASSERT_TRUE(CompareEntries (readEntry, entry), _L("RMobileONStore::Read entries are not the same"));
-
-	// ===  Get the number of used entries and check used entries is one higher than before the write ===
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries is one higher than before the write
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries is one higher than before the write
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries+1,usedEntries2+1), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-	//	readStatus
-	//	writeStatus
-	//	notifyStoreEventStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(5,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0010::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0010");
-	}
-
-CCTSYIntegrationTestONStore0011::CCTSYIntegrationTestONStore0011(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0011::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0011::~CCTSYIntegrationTestONStore0011()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0011::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0011
- * @SYMFssID BA/CTSY/PBON-0011
- * @SYMTestCaseDesc Delete entry from the ON store.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
- * @SYMTestExpectedResults Pass - Entry deleted.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify deletion is successful and deleted entry cannot be read.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure phone has KCapsReadAccess | KCapsWriteAccess | KCapsNotifyEvent capabilities. 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Fill the phone book. 
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iNumber.iTelNumber = _L("12012030");
-	entry.iText = _L("Entry11");
-	TInt usedEntries,totalEntries;
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (; usedEntries<totalEntries;++usedEntries)
-		{
-		entry.iIndex=-1;
-		onStore.Write (writeStatus, writePckg);
-		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Write timed out"));
-		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-		}
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobilePhoneBookStore::TMobileONStoreInfoV1  
-
-	// Store iUsedEntries returned for future use 
-
-	// Store iTotalEntries for future use 
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Store iUsedEntries returned for future use 
-	TInt savedUsedEntries = -1;
-	TInt savedUsedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// ===  Delete an entry ===
-
-	// Post notify event
-	TUint32 deleteEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyDeleteEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyDeleteEventStatus);
-	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
-
-	// Delete entry from the phone book specifying aIndex = 1 
-	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
-	CleanupStack::PushL (deleteStatus);
-	onStore.Delete (deleteStatus, 1);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEntryDeleted
-	RMobilePhoneStore::TMobileStoreEvent expectedEvent = RMobilePhoneStore::KStoreEntryDeleted;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
-
-	// ===  Get the number of used entries and check it is 1 lower than before deleting the new entry ===
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 lower  than that stored.
-
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 lower than that stored.
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
-			phone,savedUsedEntries-1,savedUsedEntries2-1), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// ===  Attempt to read the deleted entry.  ===
-
-	// Read a single entry stored in the slot used in delete 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
-	readEntry.iIndex=1;
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-
-	// Check KErrNotFound is returned.
-	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is read from an empty slot
-	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
-	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
-	// should be expected in this case.
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-
-	// ===  Attempt to delete the already deleted entry again. ===
-
-	// Delete the already deleted entry 
-	onStore.Delete (deleteStatus, 1);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-
-	// Check KErrNotFound is returned
-	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is deleted from an empty slot
-	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
-	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
-	// should be expected in this case.
-	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned unexpected"));
-
-	// Repeat whole test with aIndex = TMobileONStoreInfoV1::iTotalEntries (the last slot) 
-	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
-	onStore.Delete (deleteStatus, storeInfo.iTotalEntries);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
-			phone,savedUsedEntries-2,savedUsedEntries2-2), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-	readEntry.iIndex=storeInfo.iTotalEntries;
-	onStore.Read (readStatus, entryPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is read from an empty slot
-	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
-	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
-	// should be expected in this case.
-	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-	onStore.Delete (deleteStatus, storeInfo.iTotalEntries);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is deleted from an empty slot
-	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
-	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
-	// should be expected in this case.
-	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned unexpected"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	readStatus
-	//	deleteStatus
-	//	notifyDeleteEventStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(6,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0011::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0011");
-	}
-
-CCTSYIntegrationTestONStore0012::CCTSYIntegrationTestONStore0012(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0012::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0012::~CCTSYIntegrationTestONStore0012()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0012::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0012
- * @SYMFssID BA/CTSY/PBON-0012
- * @SYMTestCaseDesc Delete entry from the ON store which does not exist.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
- * @SYMTestExpectedResults Pass - Error returned on delete.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify KErrNotFound is returned.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Ensure phone has KCapsReadAccess and KCapsWriteAccess capabilities. 
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess),
-			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Backup first Entry
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure there is an empty slot in a known location. 
-	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Store iUsedEntries returned for future use 
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Store iUsedEntries returned for future use 
-	TInt savedUsedEntries = -1;
-	TInt savedUsedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// Delete an entry using RMobilePhoneStore::Delete where aIndex is the index of a known empty slot. 
-	// Check KErrNotFound is returned.
-	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
-	CleanupStack::PushL (deleteStatus);
-	onStore.Delete (deleteStatus, clearSpace);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is deleted from a slot which is already empty
-	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
-	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
-	// should be expected in this case.
-	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
-
-	// ===  Get the number of used entries and check it is the same as before attempted delete ===
-
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is same as before
-	
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is same as before
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	deleteStatus
-	//	backup
-	//	onStoreInfoStatus
-	CleanupStack::PopAndDestroy(3,&onStoreInfoStatus);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0012::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0012");
-	}
-
-CCTSYIntegrationTestONStore0013::CCTSYIntegrationTestONStore0013(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0013::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0013::~CCTSYIntegrationTestONStore0013()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0013::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0013
- * @SYMFssID BA/CTSY/PBON-0013
- * @SYMTestCaseDesc Delete entry from the ON store which makes the store empty.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
- * @SYMTestExpectedResults Pass - Entry deleted, RMobilePhoneStore::KStoreEmpty event occurs.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify entry deleted and KStoreEmpty event occurs.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure phone has KCapsReadAccess | KCapsWriteAccess | KCapsNotifyEvent capabilities. 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Delete all the entries from the phone book then write one entry to a known location. 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "12345");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("Entry 1");
-	entry.iIndex=1;
-	onStore.Write (writeStatus, writePckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1 
-	// Check iUsedEntries is 1
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-	// Store iUsedEntries is 1 
-	TInt usedEntries =-1;
-	TInt usedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-	ASSERT_EQUALS(usedEntries,1,_L("RMobilePhoneStore::GetInfo returned an unexpected value."));
-
-	// Post notify event
-	TUint32 deleteEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyDeleteEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyDeleteEventStatus);
-	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
-	
-	// Delete the entry from the ON store 
-	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
-	CleanupStack::PushL (deleteStatus);
-	onStore.Delete (deleteStatus, 1);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEntryDeleted
-    // Due to defect 10039 (see above) KStoreEmpty will not returned
-	TInt32 expectedEvent = RMobilePhoneStore::KStoreEntryDeleted;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
-
-	// ===  Get the number of used entries and check it is the same as before attempted delete ===
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries of 0
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries of 0
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-	ASSERT_EQUALS(usedEntries,0,_L("RMobilePhoneStore::GetInfo returned an unexpected value."));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-	//	deleteStatus
-	//	notifyDeleteEventStatus
-	//	writeStatus
-	//	deleteAllStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(6,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0013::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0013");
-	}
-
-CCTSYIntegrationTestONStore0014::CCTSYIntegrationTestONStore0014(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0014::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0014::~CCTSYIntegrationTestONStore0014()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0014::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0014
- * @SYMFssID BA/CTSY/PBON-0014
- * @SYMTestCaseDesc Delete an entry from a full ON store.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
- * @SYMTestExpectedResults Pass - Entries deleted, RMobilePhoneStore::KStoreHasSpace event occurs.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/manual
- *
- * Reason for test: Verify entry deleted and KStoreHasSpace event occurs.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Ensure phone book is full 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iNumber.iTelNumber = _L("12012030");
-	entry.iText = _L("Entry11");
-	TInt usedEntries,totalEntries;
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (; usedEntries<totalEntries;++usedEntries)
-		{
-		entry.iIndex=-1;
-		onStore.Write (writeStatus, writePckg);
-		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Write timed out"));
-		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-		}
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-	// Store iUsedEntries returned for future use 
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-	// Store iUsedEntries returned for future use 
-	usedEntries =-1;
-	TInt usedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// Post notify event
-	TUint32 deleteEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyDeleteEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyDeleteEventStatus);
-	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
-
-	// Delete an entry from the phone book. 
-	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
-	CleanupStack::PushL (deleteStatus);
-	onStore.Delete (deleteStatus, 1);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreHasSpace | RMobilePhoneStore::KStoreEntryDeleted
-    // Checking for KStoreHasSpace will fail, see defect 10039
-	TInt32 expectedEvent = RMobilePhoneStore::KStoreEntryDeleted;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
-
-	// ===  Get the number of used entries and check it is one lower than before ===
-	// Check RMobilePhoneStore::GetInfo returns iUsedEntries is one lower than before
-	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries is one lower than before
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
-			phone,usedEntries-1,usedEntries2-1), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-	//	deleteStatus
-	//	notifyDeleteEventStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(5,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0014::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0014");
-	}
-
-CCTSYIntegrationTestONStore0015::CCTSYIntegrationTestONStore0015(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0015::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0015::~CCTSYIntegrationTestONStore0015()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0015::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0015
- * @SYMFssID BA/CTSY/PBON-0015
- * @SYMTestCaseDesc Delete all entries from the ON store.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
- * @SYMTestExpectedResults Pass - Entries deleted, RMobilePhoneStore::KStoreEmpty event occurs.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: All entries deleted.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsNotifyEvent |  RMobilePhoneStore::KCapsWriteAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-
-	// Ensure phone book is not empty 
-	TInt clearSpace;
-	CHECK_TRUE_L(GetUsedEntriesL(onStore,phone,clearSpace),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	if ( clearSpace == 0)
-		{
-
-		// Create and write entry for 1st slot
-		entry.iMode=RMobilePhone::ENetworkModeGsm;
-		entry.iService=RMobilePhone::ETelephony;
-		entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-		entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-		_LIT(KNumber, "12345");
-		entry.iNumber.iTelNumber = KNumber;
-		entry.iText = _L("Entry 1");
-		entry.iIndex=1;
-		onStore.Write (writeStatus, writePckg);
-		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Write timed out"));
-		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-		CHECK_TRUE_L(GetUsedEntriesL(onStore,phone,clearSpace),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-		CHECK_TRUE_L(clearSpace >0, _L("CCTSYIntegrationTestONStore0015::doTestStepL was unable to add entry"));
-		}
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Delete all entries from the phone book ===
-
-	// Post notify event
-	TUint32 storeEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-
-	// Delete all entries from the full phone book 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent complete with KStoreEmpty
-	RMobilePhoneStore::TMobileStoreEvent
-			expectedEvent = RMobilePhoneStore::KStoreEmpty;
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
-
-	// ===  Check phone book is empty ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Check iUsedEntries == 0
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Check iUsedEntries == 0
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,0,0), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	deleteAllStatus
-	//	notifyStoreEventStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(5,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0015::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0015");
-	}
-
-CCTSYIntegrationTestONStore0016::CCTSYIntegrationTestONStore0016(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0016::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0016::~CCTSYIntegrationTestONStore0016()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0016::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0016
- * @SYMFssID BA/CTSY/PBON-0016
- * @SYMTestCaseDesc Cancel delete of all entries from the ON store.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
- * @SYMTestExpectedResults Pass - Some entries deleted, request cancelled successfully. Store not empty.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify some entries deleted before cancellation but cancellation occurs.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Ensure phone book is full 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iNumber.iTelNumber = _L("12012030");
-	entry.iText = _L("Entry11");
-	TInt usedEntries,totalEntries;
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (; usedEntries<totalEntries;++usedEntries)
-		{
-		entry.iIndex=-1;
-		onStore.Write (writeStatus, writePckg);
-		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Write timed out"));
-		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-		}
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries are used in the phone book ===
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-	// Store iUsedEntries returned for future use 
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-	// Store iUsedEntries returned for future use 
-	usedEntries =-1;
-	TInt usedEntries2 = -1;
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// ===  Delete all entries from the phone book ===
-
-	// Delete all entries from the full phone book 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-
-	// Do not wait for the request to complete. 
-	// Wait for 1 second. 
-	User::After(KOneSecond);
-	
-	// Cancel the DeleteAll operation. Check KErrCancel returned on status of DeleteAll 
-	onStore.CancelAsyncRequest(EMobilePhoneStoreDeleteAll);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	ASSERT_TRUE(((deleteAllStatus.Int()== KErrCancel) || (deleteAllStatus.Int()== KErrNone)) , _L("RMobileONStore::DeleteAll did not returned cancel"));
-
-	// ===  Check phone book is not empty but some entries have been deleted. ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-	TInt newUsedEntries =-1;
-	TInt newUsedEntries2 = -1;
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,newUsedEntries,newUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// Check iUsedEntries < before deletion.
-	ASSERT_TRUE(newUsedEntries<=usedEntries,_L("RMobileONStore::DeleteAll failed to delete"));
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-	// Check iUsedEntries < before deletion.
-	ASSERT_TRUE(newUsedEntries2<=usedEntries2,_L("RMobileONStore::DeleteAll failed to delete"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-	//	deleteAllStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(4,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0016::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0016");
-	}
-
-CCTSYIntegrationTestONStore0017::CCTSYIntegrationTestONStore0017(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0017::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0017::~CCTSYIntegrationTestONStore0017()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0017::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0017
- * @SYMFssID BA/CTSY/PBON-0017
- * @SYMTestCaseDesc Write and delete all own number entries.
- * @SYMTestPriority High
- * @SYMTestActions RMobileONStore::StoreAllL, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
- * @SYMTestExpectedResults Pass - Own numbers stored, read and deleted successfully. KErrNotFound when deleting all entries from an empty store.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify that entire store can be written to in one call and correct store event occurs.
-
- Verify KErrNotFound when attempting to delete all entries from an empty store.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries can be stored in the ON store ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Store iTotalEntries for future use 
-	TInt usedEntries,savedTotalEntries,usedEntries2,savedTotalEntries2;
-	ASSERT_EQUALS(GetNumberOfUsedAndTotalEntriesInStoreL(onStore,phone,usedEntries,usedEntries2,savedTotalEntries,savedTotalEntries2),KErrNone,
-			_L("CCTSYIntegrationTestONStore0017::doTestStepL can not get the number of used entries"));
-	
-	// Populate a CMobilePhoneOnList with iTotalEntries number of valid entries 
-	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
-	CleanupStack::PushL (list);
-	RMobileONStore::TMobileONEntryV1 entry;
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iText = _L("Entry2");
-	entry.iNumber.iTelNumber = _L("12012032");
-	for (TInt i=1; i <= savedTotalEntries;++i)
-		{
-		entry.iIndex=i;
-		if ( entry.iNumber.iTelNumber[0]=='9')
-			{
-			entry.iNumber.iTelNumber[0]='0';
-			}
-		else
-			{
-			entry.iNumber.iTelNumber[0]++;
-			}
-		list->AddEntryL (entry);
-		}
-	
-	// Post notify event
-	TUint32 storeEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-	
-	// Use RMobileONStore::StoreAllL to store all the entries to the ON store. 
-	// Bypass : The session manager can not be used, since a PANIC is created
-	RMobileONStore byPassOnStore;
-	User::LeaveIfError(byPassOnStore.Open(phone));
-	CleanupClosePushL(byPassOnStore);
-	// By pass end
-	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
-	CleanupStack::PushL (storeAllStatus);
-	byPassOnStore.StoreAllL (storeAllStatus, list);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
-	ASSERT_EQUALS(storeAllStatus.Int(), KErrNone, _L("RMobileONStore::StoreAllL returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreDoRefresh | KStoreFull event
-    //CANT USE KStoreFull, SEE defect 10038
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyStoreEventStatus, storeEvent, (RMobilePhoneStore::KStoreDoRefresh), index,KErrNone);
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Check iUsedEntries returned = iTotalEntries returned
-	
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Check iUsedEntries returned = iTotalEntries returnedx
-	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedTotalEntries,savedTotalEntries2), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// Read all the entries from the ON store 
-
-	// Check all contain the same data as that written
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	TInt usedSpace;
-	ASSERT_TRUE(GetUsedEntriesL(onStore,phone,usedSpace),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (TInt i=1; i<=usedSpace;++i)
-		{
-		readEntry.iIndex=i;
-		onStore.Read (readStatus, entryPckg);
-		ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Read timed out"));
-		ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
-		ASSERT_TRUE(CompareEntries (readEntry, list->GetEntryL (i-1)), _L("RMobileONStore::Read entries are not the same"));
-		}
-
-	// Delete all the entries from the store 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEmpty
-	RMobilePhoneStore::TMobileStoreEvent
-	expectedEvent = RMobilePhoneStore::KStoreEmpty;
-    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10039);
-	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
-			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-
-	// Check iUsedEntries is 0
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-
-	// Check iUsedEntries is 0
-	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,0,0), 
-			KErrNone, 
-			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
-
-	// Delete all entries from the store 
-	onStore.DeleteAll (deleteAllStatus);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-
-	// Check KErrNotFound is returned
-	// $CTSYProblem The LTSY returns KErrNone to CTSY when all the entries are deleted from an empty store
-	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
-	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
-	// should be expected in this case.
-	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	deleteAllStatus
-	//	readStatus
-	//	storeAllStatus
-	//	byPassOnStore
-	//	notifyStoreEventStatus
-	//	list
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(8,&backup);
-	
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0017::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0017");
-	}
-
-CCTSYIntegrationTestONStore0018::CCTSYIntegrationTestONStore0018(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0018::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0018::~CCTSYIntegrationTestONStore0018()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0018::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0018
- * @SYMFssID BA/CTSY/PBON-0018
- * @SYMTestCaseDesc Cancel writing of all entries to the ON store
- * @SYMTestPriority High
- * @SYMTestActions RMobileONStore::StoreAllL, RMobilePhoneStore::DeleteAll, RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo
- * @SYMTestExpectedResults Pass - KErrCancel when cancelling StoreAll operation on ON store.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify some but not all entries are written.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess),
-			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Ensure ON store is empty 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-	TInt usedEntries;
-	CHECK_TRUE_L(GetUsedEntriesL(onStore,phone,usedEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	CHECK_EQUALS_L(usedEntries,0,_L("RMobileONStore::DeleteAll did not delete all"));
-	
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries can be stored in the ON store ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-	// Store iTotalEntries for future use 
-	TInt totalEntries;
-	ASSERT_TRUE(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-
-	// Populate a CMobilePhoneOnList with iTotalEntries number of valid entries 
-	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
-	CleanupStack::PushL (list);
-	RMobileONStore::TMobileONEntryV1 entry2;
-	entry2.iMode=RMobilePhone::ENetworkModeGsm;
-	entry2.iService=RMobilePhone::ETelephony;
-	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry2.iText = _L("Entry2");
-	entry2.iNumber.iTelNumber = _L("12012032");
-	ASSERT_TRUE(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (TInt i=1; i <= totalEntries;++i)
-		{
-		entry2.iIndex=i;
-		if ( entry2.iNumber.iTelNumber[0]=='9')
-			{
-			entry2.iNumber.iTelNumber[0]='0';
-			}
-		else
-			{
-			entry2.iNumber.iTelNumber[0]++;
-			}
-		list->AddEntryL (entry2);
-		}
-
-	// Use RMobileONStore::StoreAllL to store all the entries to the ON store. 
-	DEBUG_PRINTF1( _L("Store all has cause panic, using bypass"));
-	// Bypass : The session manager can not be used, since a PANIC is created
-	RMobileONStore byPassOnStore;
-	User::LeaveIfError(byPassOnStore.Open(phone));
-	CleanupClosePushL(byPassOnStore);
-	// By pass end
-	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
-	CleanupStack::PushL (storeAllStatus);
-	byPassOnStore.StoreAllL (storeAllStatus, list);
-
-	// Do not wait for the request to complete before continuing. 
-
-	// Wait for 1 second. 
-	User::After(KOneSecond);
-	
-	// Cancel the StoreAllL request. 
-	onStore.CancelAsyncRequest(EMobileONStoreStoreAll);
-
-	// Check KErrCancel is returned.
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
-	ASSERT_TRUE(((storeAllStatus.Int() == KErrCancel) || (storeAllStatus.Int() == KErrNone)), _L("RMobileONStore::StoreAllL did not returned cancel"));
-
-	// ===  Find out how many entries are used in the phone book ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-	TInt newUsedEntries =-1;
-	TInt newUsedEntries2 = -1;
-	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,onStoreInfoPckg,phone,newUsedEntries,newUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
-
-	// Check iUsedEntries is > 0
-	ASSERT_TRUE(newUsedEntries>=0,_L("RMobileONStore::StoreAllL failed to store"));
-
-	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
-	// Check iUsedEntries is > 0
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-	//	storeAllStatus
-    //  byPassOnStore
-	//	list
-	//	deleteAllStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(6,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0018::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0018");
-	}
-
-CCTSYIntegrationTestONStore0019::CCTSYIntegrationTestONStore0019(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0019::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0019::~CCTSYIntegrationTestONStore0019()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0019::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0019
- * @SYMFssID BA/CTSY/PBON-0019
- * @SYMTestCaseDesc Write a list of own numbers when there is not enough space in the phone book for the whole list.
- * @SYMTestPriority High
- * @SYMTestActions RMobileONStore::StoreAllL
- * @SYMTestExpectedResults Pass - KErrTooBig returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify error is returned when an attempt is made to store more entries than is possible into the ON store.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWriteAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// ===  Find out how many entries can be stored in the ON store ===
-
-	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	ASSERT_EQUALS(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-
-	
-	// Populate a CMobilePhoneOnList with (iTotalEntries+1) number of valid entries 
-	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
-	CleanupStack::PushL (list);
-	RMobileONStore::TMobileONEntryV1 entry;
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iText = _L("Entry2");
-	entry.iNumber.iTelNumber = _L("12012032");
-	for (TInt i=1; i <= onStoreInfo.iTotalEntries+1;++i)
-		{
-		entry.iIndex=i;
-		if ( entry.iNumber.iTelNumber[0]=='9')
-			{
-			entry.iNumber.iTelNumber[0]='0';
-			}
-		else
-			{
-			entry.iNumber.iTelNumber[0]++;
-			}
-		list->AddEntryL (entry);
-		}
-
-	// Use RMobileONStore::StoreAllL to store all the entries to the ON store. 
-	// Bypass : The session manager can not be used, since a PANIC is created
-	RMobileONStore byPassOnStore;
-	User::LeaveIfError(byPassOnStore.Open(phone));
-	CleanupClosePushL(byPassOnStore);
-	// By pass end
-	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
-	CleanupStack::PushL (storeAllStatus);
-	byPassOnStore.StoreAllL (storeAllStatus, list);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
-
-	// Check KErrTooBig is returned.
-	ASSERT_EQUALS(storeAllStatus.Int(), KErrTooBig, _L("RMobileONStore::StoreAllL returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	storeAllStatus
-	//	byPassOnStore
-	//	list
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(5,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0019::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0019");
-	}
-
-CCTSYIntegrationTestONStore0020::CCTSYIntegrationTestONStore0020(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0020::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0020::~CCTSYIntegrationTestONStore0020()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0020::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0020
- * @SYMFssID BA/CTSY/PBON-0020
- * @SYMTestCaseDesc Cancel writing an entry to the ON store.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWriteAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Ensure there is an empty slot in a known location. 
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
-	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Write an entry from the location of a known empty slot. 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "01632960000");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("An Entry 2");
-	entry.iIndex=clearSpace;
-	onStore.Write (writeStatus, writePckg);
-
-	// Cancel the read request immediately using RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneStoreWrite) 
-	onStore.CancelAsyncRequest(EMobilePhoneStoreWrite);
-
-	// Check KErrCancel or KErrNone is returned.
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_TRUE(((writeStatus.Int()== KErrNone) || ((writeStatus.Int()== KErrCancel))), _L("RMobileONStore::Write returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(3,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0020::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0020");
-	}
-
-CCTSYIntegrationTestONStore0021::CCTSYIntegrationTestONStore0021(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0021::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0021::~CCTSYIntegrationTestONStore0021()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0021::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0021
- * @SYMFssID BA/CTSY/PBON-0021
- * @SYMTestCaseDesc Attempt to read own number into a wrongly sized buffer.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - KErrArgument?
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify error is returned on attempt to write.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Write an entry to a known location in the phone book 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "12345");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("Entry 2");
-	entry.iIndex=2;
-	onStore.Write (writeStatus, writePckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Read an entry from the ON store using RMobilePhoneStore::Read and aEntry as a TBuf<1> 
-	TBuf8<1> entryPckg;
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	onStore.Read (readStatus, entryPckg);
-
-	// Check error is returned.
-	ASSERT_TRUE((readStatus.Int() != KErrNone), _L("RMobileONStore::Read did not returned an error") );
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-	//	readStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(4,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0021::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0021");
-	}
-
-CCTSYIntegrationTestONStore0022::CCTSYIntegrationTestONStore0022(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0022::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0022::~CCTSYIntegrationTestONStore0022()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0022::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0022
- * @SYMFssID BA/CTSY/PBON-0022
- * @SYMTestCaseDesc Cancel reading an entry from the ON store.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Write an entry to a known location in the phone book 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "12345");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("Entry 2");
-	entry.iIndex=2;
-	onStore.Write (writeStatus, writePckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Read an entry from a known location from the ON store. 
-	RMobileONStore::TMobileONEntryV1 readEntry;
-	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
-	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
-	CleanupStack::PushL (readStatus);
-	readEntry.iIndex=2;
-	onStore.Read (readStatus, entryPckg);
-
-	// Cancel the read request immediately using RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneStoreRead) 
-	onStore.CancelAsyncRequest(EMobilePhoneStoreRead);
-
-	// Check KErrCancel or KErrNone is returned.
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Read timed out"));
-	ASSERT_TRUE(((readStatus.Int()== KErrNone) || ((readStatus.Int()== KErrCancel))), _L("RMobileONStore::Read returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	readStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(4,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0022::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0022");
-	}
-
-CCTSYIntegrationTestONStore0023::CCTSYIntegrationTestONStore0023(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0023::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0023::~CCTSYIntegrationTestONStore0023()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0023::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0023
- * @SYMFssID BA/CTSY/PBON-0023
- * @SYMTestCaseDesc Cancel delete one entry from ON store.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWriteAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-	
-	// Write an entry to a known location in the phone book 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "12345");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("Entry 2");
-	entry.iIndex=2;
-	onStore.Write (writeStatus, writePckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Delete an entry at a known index from the ON store. 
-	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
-	CleanupStack::PushL (deleteStatus);
-	onStore.Delete (deleteStatus, 2);
-
-	// Cancel the request immediately with RTelSubSessionBase::.CancelAsyncRequest( EMobilePhoneStoreDelete ) 
-	onStore.CancelAsyncRequest(EMobilePhoneStoreDelete);
-
-	// Check KErrCancel or KErrNone is returned (if it was too late to cancel).
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
-	ASSERT_TRUE(((deleteStatus.Int()== KErrNone) || (deleteStatus.Int()== KErrCancel)), _L("RMobileONStore::Delete returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	deleteStatus
-	//	writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(4,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0023::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0023");
-	}
-
-CCTSYIntegrationTestONStore0024::CCTSYIntegrationTestONStore0024(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0024::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0024::~CCTSYIntegrationTestONStore0024()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0024::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0024
- * @SYMFssID BA/CTSY/PBON-0024
- * @SYMTestCaseDesc Cancel notification of a store event on the ON store.
- * @SYMTestPriority High
- * @SYMTestActions RMobilePhoneStore::Write, RMobilePhoneStore::Delete, RMobileONStore::StoreAllL
- * @SYMTestExpectedResults Pass - KErrCancel returned.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsNotifyEvent 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsNotifyEvent,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Write an entry to a known location in the phone book 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	_LIT(KNumber, "12345");
-	entry.iNumber.iTelNumber = KNumber;
-	entry.iText = _L("Entry 2");
-	entry.iIndex=2;
-	onStore.Write (writeStatus, writePckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Request notification of a store event with RMobilePhoneStore::NotifyStoreEvent 
-	TUint32 storeEvent;
-	TInt index;
-	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
-			EMobilePhoneStoreNotifyStoreEvent);
-	CleanupStack::PushL (notifyStoreEventStatus);
-	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
-
-	// Cancel the RMobilePhoneStore::NotifyStoreEvent with RTelSubSession::CancelAsyncRequest( EMobilePhoneStoreNotifyStoreEvent ) 
-	onStore.CancelAsyncRequest(EMobilePhoneStoreNotifyStoreEvent);
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyStoreEventStatus, ETimeMedium), KErrNone, _L("RMobileONStore::NotifyStoreEvent timed out"));
-
-	// Delete an entry from the phone store 
-	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
-	CleanupStack::PushL (deleteStatus);
-	onStore.Delete (deleteStatus, 2);
-    ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Delete timed out"));
-	ASSERT_EQUALS(deleteStatus.Int(),KErrNone, _L("RMobileONStore::Delete did not returned as expected"));
-
-	// Write an entry to the phone store 
-	entry.iNumber.iTelNumber = _L("4531231");
-	entry.iIndex=1;
-	onStore.Write (writeStatus, writePckg);
-    ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::Write timed out"));
-	ASSERT_EQUALS(writeStatus.Int(),KErrNone, _L("RMobileONStore::Write did not returned as expected"));
-
-	// Use RMobileONStore::StoreAllL to store entries to the ON store. 
-	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
-	CleanupStack::PushL (list);
-	RMobileONStore::TMobileONEntryV1 entry2;
-	entry2.iMode=RMobilePhone::ENetworkModeGsm;
-	entry2.iService=RMobilePhone::ETelephony;
-	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry2.iText = _L("Entry2");
-	entry2.iNumber.iTelNumber = _L("12012032");
-	for (TInt i=1; i < 2;++i)
-		{
-		entry2.iIndex=i;
-		if ( entry2.iNumber.iTelNumber[0]=='9')
-			{
-			entry2.iNumber.iTelNumber[0]='0';
-			}
-		else
-			{
-			entry2.iNumber.iTelNumber[0]++;
-			}
-		list->AddEntryL (entry2);
-		}
-	// Bypass : The session manager can not be used, since a PANIC is created
-	RMobileONStore byPassOnStore;
-	User::LeaveIfError(byPassOnStore.Open(phone));
-	CleanupClosePushL(byPassOnStore);
-	// By pass end
-	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
-	CleanupStack::PushL (storeAllStatus);
-	byPassOnStore.StoreAllL (storeAllStatus, list);
-    ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeLong),
-			KErrNone, _L("RMobileONStore::StoreAllL timed out"));
-	ASSERT_EQUALS(storeAllStatus.Int(),KErrNone, _L("RMobileONStore::StoreAllL did not returned as expected"));
-
-	// Check RMobilePhoneStore::NotifyStoreEvent completes with KErrCancel
-	ASSERT_EQUALS(notifyStoreEventStatus.Int(),KErrCancel, _L("RMobileONStore::NotifyStoreEvent did not returned KErrCancel"));
-
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	storeAllStatus
-	//	byPassOnStore
-	//	list
-	//	deleteStatus
-	//	notifyStoreEventStatus
-	//	writeStatus
-    //  deleteAllStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(9,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0024::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0024");
-	}
-
-CCTSYIntegrationTestONStore0025::CCTSYIntegrationTestONStore0025(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0025::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0025::~CCTSYIntegrationTestONStore0025()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0025::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0025
- * @SYMFssID BA/CTSY/PBON-0025
- * @SYMTestCaseDesc Cancel get ON store info.
- * @SYMTestPriority High
- * @SYMTestActions 
- * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Request to get phone store information by calling RMobilePhoneStore::GetInfo 
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-
-	// $CTSYKnownFailure defect id=50009. CMmONStoreTsy::GetInfoL completes RMobileONStore::GetInfo() request to the test client with error KErrNotReady
-	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d </font>"), 50009);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-
-	// Cancel get information by calling RTelSubSession::CancelAsyncRequest(EMobilePhoneStoreGetInfo) 
-	onStore.CancelAsyncRequest(EMobilePhoneStoreGetInfo);
-
-	// Check KErrCancel is returned or KErrNone if it was too late to cancel.
-	ASSERT_EQUALS(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	ASSERT_TRUE(((onStoreInfoStatus.Int()== KErrCancel)||(onStoreInfoStatus.Int()== KErrNone)), _L("RMobileONStore::GetInfo returned an error"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//	onStoreInfoStatus
-	CleanupStack::PopAndDestroy(&onStoreInfoStatus);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0025::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0025");
-	}
-
-CCTSYIntegrationTestONStore0026::CCTSYIntegrationTestONStore0026(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0026::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0026::~CCTSYIntegrationTestONStore0026()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0026::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0026
- * @SYMFssID BA/CTSY/PBON-0026
- * @SYMTestCaseDesc Read all ON store entries.
- * @SYMTestPriority High
- * @SYMTestActions CRetrieveMobilePhoneONList::RetrieveListL
- * @SYMTestExpectedResults Pass - All entries read correctly.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify all entries read correctly.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-	// Backup first Entry
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWholeStore 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWholeStore,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Ensure there are 2 entries in the ON store. 
-	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	onStore.DeleteAll (deleteAllStatus);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
-	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
-    TInt numberOfUsedEntries = 2 ;
-	CHECK_TRUE_L((onStoreInfo.iTotalEntries>=numberOfUsedEntries), _L("The ON store dose not have 2 entries!"));
-	CMobilePhoneONList *writeList = CMobilePhoneONList::NewL ();
-	CleanupStack::PushL (writeList);
-	RMobileONStore::TMobileONEntryV1 entry;
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iText = _L("Entry2");
-	entry.iNumber.iTelNumber = _L("12012032");
-	for (TInt i=1; i <= numberOfUsedEntries;++i)
-		{
-		entry.iIndex=i;
-		if ( entry.iNumber.iTelNumber[0]=='9')
-			{
-			entry.iNumber.iTelNumber[0]='0';
-			}
-		else
-			{
-			entry.iNumber.iTelNumber[0]++;
-			}
-		writeList->AddEntryL (entry);
-		}
-	DEBUG_PRINTF1( _L("Store all has cause panic, using bypass"));
-	// Bypass : The session manager can not be used, since a PANIC is created
-	RMobileONStore byPassOnStore;
-	User::LeaveIfError(byPassOnStore.Open(phone));
-	CleanupClosePushL(byPassOnStore);
-	// By pass end
-	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
-	CleanupStack::PushL (storeAllStatus);
-	byPassOnStore.StoreAllL (storeAllStatus, writeList);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
-	CHECK_EQUALS_L(storeAllStatus.Int(), KErrNone, _L("RMobileONStore::StoreAllL returned an error"));
-	
-	
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Use the helper class for CRetrieveMobilePhoneONList to read entries from the ON store. 
-	TInt err;
-	CRetrieveMobilePhoneONListExec *helper=CRetrieveMobilePhoneONListHelper::NewL(onStore);
-    CleanupStack::PushL(helper);
-	CMobilePhoneONList *readList = helper->DoGetList(err);
-	ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneONListHelper::DoGetList is not able to get the list"));
-	
-
-	// Check that all 2 entries have been read and are correct.
-	ASSERT_EQUALS(readList->Enumerate(), writeList->Enumerate(), _L("CRetrieveMobilePhoneONListHelper::DoGetList entries list size is wrong"));
-	for (TInt i=0; i<readList->Enumerate();++i)
-		{
-		ASSERT_TRUE(CompareEntries (readList->GetEntryL (i), writeList->GetEntryL (i)), _L("CRetrieveMobilePhoneONListHelper::DoGetListe entries are not the same"));
-		}
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	// Pop:
-    // helper
-	//	storeAllStatus
-	//	byPassOnStore
-	//	writeList
-    //  deleteAllStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(7,&backup);
-
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0026::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0026");
-	}
-
-CCTSYIntegrationTestONStore0027::CCTSYIntegrationTestONStore0027(
-		CEtelSessionMgr& aEtelSessionMgr) :
-	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
-/**
- * Constructor.
- */
-	{
-	SetTestStepName(CCTSYIntegrationTestONStore0027::GetTestStepName());
-	}
-
-CCTSYIntegrationTestONStore0027::~CCTSYIntegrationTestONStore0027()
-/**
- * Destructor.
- */
-	{
-	}
-
-TVerdict CCTSYIntegrationTestONStore0027::doTestStepL()
-/**
- * @SYMTestCaseID BA-CTSY-INT-PBON-0027
- * @SYMFssID BA/CTSY/PBON-0027
- * @SYMTestCaseDesc Cancel read all ON store entries.
- * @SYMTestPriority High
- * @SYMTestActions CAsyncRetrieveStoreList::CancelReq
- * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
- * @SYMTestType CIT
- * @SYMTestCaseDependencies live/automatic
- *
- * Reason for test: Verify request is cancelled.
- *
- * @return - TVerdict code
- */
-	{
-
-	//
-	// SET UP
-	//
-
-	// Open the ADN store
-	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
-
-	// Backup first Entry
-	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
-	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
-			KMainPhone, KMainONStore);
-	TBackupAllEntries backup(*this,onStore);
-	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
-	CleanupStack::PushL (backup);
-
-	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWholeStore 
-	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
-	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
-	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
-	CleanupStack::PushL (onStoreInfoStatus);
-	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
-	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
-			KErrNone, _L("RMobileONStore::GetInfo timed out"));
-	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
-	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWholeStore,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
-
-	// Fill SIM phone book. 
-	RMobileONStore::TMobileONEntryV1 entry;
-	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
-	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-	entry.iMode=RMobilePhone::ENetworkModeGsm;
-	entry.iService=RMobilePhone::ETelephony;
-	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
-	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
-	entry.iNumber.iTelNumber = _L("12012030");
-	entry.iText = _L("Entry11");
-	TInt usedEntries,totalEntries;
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	for (; usedEntries<totalEntries;++usedEntries)
-		{
-		entry.iIndex=-1;
-		onStore.Write (writeStatus, writePckg);
-		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
-				KErrNone, _L("RMobileONStore::Write timed out"));
-		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
-		}
-	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
-	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
-
-
-	//
-	// SET UP END
-	//
-
-	StartTest ();
-
-	//
-	// TEST START
-	//
-
-
-	// Use the helper class for CRetrieveMobilePhoneONList to read entries from the ON store. 
-	TInt err;
-	CRetrieveMobilePhoneONListExec *helper=CRetrieveMobilePhoneONListHelper::NewL(onStore);
-	CleanupStack::PushL(helper);
-	CMobilePhoneONList *readList = helper->DoGetList(err,ETrue);
-
-	// Wait one second. 
-	User::After(KOneSecond);
-
-	// Cancel the request immediately. 
-	
-	// Check KErrCancel is returned or KErrNone if it was too late to cancel.
-	ASSERT_TRUE(((err== KErrCancel) ||(err== KErrNone)), _L("CRetrieveMobilePhoneONListHelper::DoGetList is not able to get the list"));
-
-
-	//
-	// TEST END
-	//
-
-	StartCleanup();
-
-	
-	// Pop:
-	//  helper
-	//  writeStatus
-	//	onStoreInfoStatus
-	//	backup
-	CleanupStack::PopAndDestroy(4,&backup);
-    
-	return TestStepResult();
-	}
-
-TPtrC CCTSYIntegrationTestONStore0027::GetTestStepName()
-/**
- * @return The test step name.
- */
-	{
-	return _L("CCTSYIntegrationTestONStore0027");
-	}
-
-
-TBackupAllEntries::TBackupAllEntries(CCTSYIntegrationTestONStoreBase &aBase,
-		RMobileONStore &aOnStore) : iValid(EFalse), iOnStore(aOnStore), iBase(aBase),
-                                     							iHelper(NULL), iList(NULL)
-/*
- * Constructor
- * @param aBase pointer to the test.
- * @param aOnStore reference to a store session
- *
- */
-{
-}
-
-TBool TBackupAllEntries::BackupL()
-/*
- * This function save the first entry in the storem and return false if its fails
- *
- * @return true if the backup was successful
- *
- */	
-	{
-	iValid=EFalse;
-    if(iList!=NULL)
-        return iValid;
-    if(iHelper!=NULL)
-        return iValid;
-
-    // Read All the items from the store
-	TInt err;
-	iHelper=CRetrieveMobilePhoneONListHelper::NewL(iOnStore);
-    CleanupStack::PushL(iHelper);
-	iList = iHelper->DoGetList(err);
-    if((err!=KErrNone)||(iList->Enumerate()==0))
-        {
-        iList=NULL;
-        CleanupStack::PopAndDestroy(iHelper);
-        iHelper=NULL;
-        return iValid;
-        }
-    iValid=ETrue;
-	CleanupStack::Pop(1);
-    return iValid;
-	}
-
-void TBackupAllEntries::DoCleanupL(TAny* aPtr)
-/*
- * This function is a static clean up function to be saved in the cleanup stack. Its restore the saved entry to the first entry in the phone
- *
- * @param aPtr a pointer to a TBackupAllEntries instance.
- *
- */	
-	{
-	TBackupAllEntries* me = static_cast<TBackupAllEntries*>(aPtr);
-	me->CleanupL();
-	}
-
-void TBackupAllEntries::CleanupL()
-/*
- * This function restore the saved entry to the first entry in the phone
- *
- */	
-	{
-	if(!iValid)
-		return;
-    CleanupStack::PushL(iHelper);
-    TExtEtelRequestStatus deleteAllStatus(iOnStore, EMobilePhoneStoreDeleteAll);
-	CleanupStack::PushL (deleteAllStatus);
-	TExtEtelRequestStatus writeStatus(iOnStore, EMobilePhoneStoreWrite);
-	CleanupStack::PushL (writeStatus);
-
-	iOnStore.DeleteAll (deleteAllStatus);
-    iBase.WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium);
-    for(TInt i=0;i<iList->Enumerate();++i)
-    	{
-    	RMobileONStore::TMobileONEntryV1Pckg writePckg(iList->GetEntryL (i));
-    	iOnStore.Write (writeStatus, writePckg);
-    	iBase.WaitForRequestWithTimeOut(writeStatus, ETimeMedium);
-    	}
-
-	CleanupStack::PopAndDestroy(3);
-    iHelper=NULL;
-    iList=NULL;
-    iValid=EFalse;
-	}
-
-TBackupAllEntries::operator TCleanupItem()
-/*
- * This operator create a TCleanupItem to save a pointer to the DoCleanup static function and this in the cleanup stack
- *
- */	
-	{
-	return TCleanupItem(DoCleanupL,this);
-	}
+// 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 ONStore functional unit.
+// 
+//
+
+/**
+ @internalTechnology
+*/
+
+#include "cctsyintegrationtestonstore.h"
+
+CCTSYIntegrationTestONStoreBase::CCTSYIntegrationTestONStoreBase(
+		CEtelSessionMgr& aEtelSessionMgr) : CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr),
+		iSimTestHelper(*this),iPhoneTsyTestHelper(*this)
+/**
+ * Constructor
+ */
+	{
+	}
+
+CCTSYIntegrationTestONStoreBase::~CCTSYIntegrationTestONStoreBase()
+/*
+ * Destructor
+ */
+	{
+	}
+
+
+	
+TBool CCTSYIntegrationTestONStoreBase::CompareEntries(const RMobileONStore::TMobileONEntryV1 &aEntry1,
+		const RMobileONStore::TMobileONEntryV1 &aEntry2)
+/*
+ * This function compare two ON store entries
+ *
+ * @param aEntry1 a reference to the first entry.
+ * @param aEntry2 a reference to the second entry.
+ *
+ * @return - Returns ETrue iff both entries have the same parameters, EFalse otherwise.
+ */	
+	{
+	TBool ret=ETrue;
+	ASSERT_EQUALS_DES16(aEntry1.iNumber.iTelNumber, aEntry2.iNumber.iTelNumber, _L("RMobileONStore::Read Entry has the wrong iNumber.iTelNumber"));
+	if(aEntry1.iNumber.iTelNumber!= aEntry2.iNumber.iTelNumber)
+		{
+		ret=EFalse;
+		}
+	ASSERT_EQUALS_DES16(aEntry1.iText, aEntry2.iText, _L("RMobileONStore::Read Entry has the wrong iText"));
+	if(aEntry1.iText!= aEntry2.iText)
+		{
+		ret=EFalse;
+		}
+	return ret;
+	}
+
+TBool CCTSYIntegrationTestONStoreBase::GetUsedEntriesL(RMobileONStore& aOnStore,RMobilePhone& aPhone,TInt& aUsedEntries)
+/**
+ * This function return the number of used entries in the store
+ * 
+ * @param aOnStore a reference to the on store
+ * @param aPhone a reference to the phone session
+ * @param aUsedEntries a reference to an integer wich the function will put the number of used entries in
+ * 
+ * @return ETrue iff the function succeed
+ */
+	{
+	TBool ret=ETrue;
+	TInt usedEntries1=-1, usedEntries2=-1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_TRUE(ret=(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(aOnStore,KETelOwnNumberStore,storeInfoPckg,aPhone,usedEntries1,usedEntries2)==KErrNone),
+			_L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+	if(usedEntries1!=-1)
+		aUsedEntries=usedEntries1;
+	else
+		aUsedEntries=usedEntries2;
+	return ret;
+	}
+TInt CCTSYIntegrationTestONStoreBase::GetNumberOfUsedAndTotalEntriesInStoreL(RMobileONStore& aOnStore,
+		RMobilePhone& aPhone,
+		TInt& aUsedEntries, 
+		TInt& aUsedEntries2,
+		TInt& aTotalEntries, 
+		TInt& aTotalEntries2)
+/**
+ * This function return the number of used entries and total entries in the store, using both the RMobileONStore and the RMobilePhone
+ * 
+ * @param aOnStore a reference to the on store
+ * @param aPhone a reference to the phone session
+ * @param aUsedEntries a reference to an integer wich the function will put the number of used entries in returned by RMobileONStore
+ * @param aUsedEntries2 a reference to an integer wich the function will put the number of used entries in returned by RMobilePhone
+ * @param aTotalEntries a reference to an integer wich the function will put the number of total entries in returned by RMobileONStore
+ * @param aTotalEntries2 a reference to an integer wich the function will put the number of total  entries in returned by RMobilePhone
+ * 
+ * @return KErrNone if one of the get info APIs are supported, KErrNotSupported if neither are supported.
+ */
+	{
+	// Get number of entries using RMobilePhoneStore::GetInfo
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	TExtEtelRequestStatus getInfoStatus (aOnStore,EMobilePhoneStoreGetInfo);	
+	CleanupStack::PushL(getInfoStatus);
+	aOnStore.GetInfo(getInfoStatus,storeInfoPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(getInfoStatus, ETimeMedium), KErrNone,_L("RMobileSmsStore::GetInfo timed out"));
+	if (getInfoStatus.Int() == KErrNone)
+		{
+		aUsedEntries = storeInfo.iUsedEntries;
+		aTotalEntries = storeInfo.iTotalEntries;
+		}
+	else
+		{
+		DEBUG_PRINTF2(_L("RMobilePhoneStore::GetInfo returned with error = %d"), getInfoStatus.Int());
+		}
+
+	// Get number of entries using RMobilePhone::GetPhoneStoreInfo
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo2;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg2 (storeInfo2);
+	TExtEtelRequestStatus getInfoStatus2 (aOnStore,EMobilePhoneStoreGetInfo);	
+	CleanupStack::PushL(getInfoStatus2);	
+	aPhone.GetPhoneStoreInfo(getInfoStatus2,storeInfoPckg2, KETelOwnNumberStore);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(getInfoStatus2, ETimeMedium), KErrNone,_L("RMobilePhone::GetPhoneStoreInfo timed out"));
+	if (getInfoStatus2.Int() == KErrNone)
+		{
+		aTotalEntries2 = storeInfo2.iTotalEntries;
+		aUsedEntries2 = storeInfo2.iUsedEntries;
+		}
+	else
+		{
+		DEBUG_PRINTF2(_L("RMobilePhone::GetPhoneStoreInfo returned with error = %d"), getInfoStatus2.Int());
+		}
+	
+	if (getInfoStatus.Int() == KErrNone || getInfoStatus2.Int() == KErrNone)
+		{
+		CleanupStack::PopAndDestroy(2);
+		return KErrNone;
+		}
+	else
+		{
+		CleanupStack::PopAndDestroy(2);
+		return KErrNotSupported;
+		}
+	
+	}
+
+TBool CCTSYIntegrationTestONStoreBase::GetUsedandTotalEntriesL(RMobileONStore& aOnStore,RMobilePhone& aPhone,
+		TInt& aUsedEntries,TInt& aTotalEntries)
+/**
+ * This function return the number of used entries in the store
+ * 
+ * @param aOnStore a reference to the on store
+ * @param aPhone a reference to the phone session
+ * @param aUsedEntries a reference to an integer wich the function will put the number of used entries in
+ * 
+ * @return ETrue iff the function succeed
+ */
+	{
+	TBool ret=ETrue;
+	TInt usedEntries1=-1, usedEntries2=-1;
+	TInt totalEntries1=-1, totalEntries2=-1;
+	ASSERT_TRUE(ret=(GetNumberOfUsedAndTotalEntriesInStoreL(aOnStore,
+			aPhone,usedEntries1,usedEntries2,totalEntries1,totalEntries2)==KErrNone),
+			_L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+	if(usedEntries1!=-1)
+		{
+		aUsedEntries=usedEntries1;
+		}
+	else
+		{
+		aUsedEntries=usedEntries2;
+		}
+	if(totalEntries1!=-1)
+		{
+		aTotalEntries=totalEntries1;
+		}
+	else
+		{
+		aTotalEntries=totalEntries2;
+		}
+	return ret;
+	}
+
+TBool  CCTSYIntegrationTestONStoreBase::OpenADNStoreL()
+/**
+ * This function open a session for the ADN store,
+ * this is since the ON store work only if there is a subsession of the ADN store open.
+ * 
+ * @return ETrue iff the function succeed
+ */
+    {
+	// Open the ADN phone book subsession  
+	RMobilePhoneBookStore& adnPhoneBookStore = iEtelSessionMgr.GetPhoneBookStoreL(KMainServer, KMainPhone, KIccAdnPhoneBook);
+	RMmCustomAPI& mmCustomAPI = iEtelSessionMgr.GetCustomApiL(KMainServer, KMainPhone,KMainCustomApi);
+	iPhoneTsyTestHelper.WaitForPhoneBookStoreCacheReadyL(mmCustomAPI,KIccAdnPhoneBook);
+	return ETrue;
+    }
+
+
+CCTSYIntegrationTestONStore0001::CCTSYIntegrationTestONStore0001(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0001::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0001::~CCTSYIntegrationTestONStore0001()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0001::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0001
+ * @SYMFssID BA/CTSY/PBON-0001
+ * @SYMTestCaseDesc Get ON store info. 
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - Phone store information returned correctly.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify ON store information is valid.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+	
+	// Open ONStore subsession
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+	
+	
+	//
+	// TEST START
+	//
+
+
+	// Get ON store info. using RMobilePhoneStore::GetInfo with RMobileONStore::TMobileONStoreInfoV1 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	ASSERT_EQUALS(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	ASSERT_EQUALS_DES16(onStoreInfo.iName,KETelOwnNumberStore, _L("RMobileONStore::GetInfo returned wrong ON Store name"));
+
+	// iType == RMobilePhoneStore::EOwnNumberStore 
+	ASSERT_EQUALS(onStoreInfo.iType, RMobilePhoneStore::EOwnNumberStore, _L("RMobileONStore::GetInfo returned wrong type"));
+
+	// iTotalEntries >= -1 
+	ASSERT_TRUE(onStoreInfo.iTotalEntries >= -1 , _L("RMobileONStore::GetInfo returned wrong Total Entries"));
+
+	// iUsedEntries >= -1 
+	ASSERT_TRUE(onStoreInfo.iUsedEntries >= -1 , _L("RMobileONStore::GetInfo returned wrong Used Entries"));
+
+	// iCaps == RMobilePhoneStore::KCapsIndividualEntry 
+	//         | RMobilePhoneStore::KCapsReadAccess 
+	//         | RMobilePhoneStore::KCapsWriteAccess 
+	//         | RMobilePhoneStore::KCapsDeleteAll 
+	//         | RMobilePhoneStore::KCapsNotifyEvent 
+	//         | RMobilePhoneStore::KCapsWholeStore  
+	TUint wantedBits = RMobilePhoneStore::KCapsIndividualEntry| RMobilePhoneStore::KCapsReadAccess| RMobilePhoneStore::KCapsWriteAccess| RMobilePhoneStore::KCapsDeleteAll| RMobilePhoneStore::KCapsNotifyEvent| RMobilePhoneStore::KCapsWholeStore;
+	ASSERT_BITS_SET(onStoreInfo.iCaps,wantedBits,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned unexpected iCaps"));
+
+	// iNumberLen >= -1 
+	ASSERT_TRUE(onStoreInfo.iNumberLen >= -1 , _L("RMobileONStore::GetInfo returned wrong Number Length"));
+
+	// iTextLen >= -1  (actually hard coded to 20 in CTSY) 
+	ASSERT_TRUE(onStoreInfo.iTextLen >= -1 , _L("RMobileONStore::GetInfo returned wrong Text Length"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	onStoreInfoStatus
+	CleanupStack::PopAndDestroy(&onStoreInfoStatus);
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0001::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0001");
+	}
+
+CCTSYIntegrationTestONStore0002::CCTSYIntegrationTestONStore0002(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0002::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0002::~CCTSYIntegrationTestONStore0002()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0002::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0002
+ * @SYMFssID BA/CTSY/PBON-0002
+ * @SYMTestCaseDesc Read entries from the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - Entry read successfully.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify entries are read correctly.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Get ON store subsession. 
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+
+	// Backup first Entry
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+	
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Write entries to the first slot, second slot, and the maximum slot in the phone book. 
+	RMobileONStore::TMobileONEntryV1 entry1, entry2, entryLast;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg1(entry1);
+	RMobileONStore::TMobileONEntryV1Pckg writePckg2(entry2);
+	RMobileONStore::TMobileONEntryV1Pckg writePckgLast(entryLast);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+
+	// Create and write entry for 1st slot
+	entry1.iMode=RMobilePhone::ENetworkModeGsm;
+	entry1.iService=RMobilePhone::ETelephony;
+	entry1.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry1.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "12345");
+	entry1.iNumber.iTelNumber = KNumber;
+	entry1.iText = _L("Entry 1");
+	entry1.iIndex=1;
+	onStore.Write (writeStatus, writePckg1);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+	// Create and write entry for 2nd slot
+	entry2.iMode=RMobilePhone::ENetworkModeGsm;
+	entry2.iService=RMobilePhone::EAllTele;
+	entry2.iNumber.iNumberPlan = RMobilePhone::EPrivateNumberPlan;
+	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENetworkSpecificNumber;
+	_LIT(KNumber2, "647852");
+	entry2.iNumber.iTelNumber = KNumber2;
+	entry2.iText = _L("entry 2");
+	entry2.iIndex=2;
+	onStore.Write (writeStatus, writePckg2);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+
+	// Create and write entry for last slot	
+	entryLast.iMode=RMobilePhone::ENetworkModeGsm;
+	entryLast.iService=RMobilePhone::EAllDataExSms;
+	entryLast.iNumber.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
+	entryLast.iNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber;
+	_LIT(KNumberLast, "341231233");
+	entryLast.iNumber.iTelNumber = KNumberLast;
+	entryLast.iText = _L("last entry");
+	entryLast.iIndex=onStoreInfo.iTotalEntries;
+	onStore.Write (writeStatus, writePckgLast);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Read entry from the first slot, second slot and the maximum slot from the phone book in turn passing an RMobileONStore::TMobileONEntryV1 as aEntry. 
+	RMobileONStore::TMobileONEntryV1 readEntry1, readEntry2, readEntryLast;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg1(readEntry1);
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg2(readEntry2);
+	RMobileONStore::TMobileONEntryV1Pckg entryPckgLast(readEntryLast);
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	readEntry1.iIndex=1;
+	readEntry2.iIndex=2;
+	readEntryLast.iIndex=onStoreInfo.iTotalEntries;
+
+	// Slot 1
+	onStore.Read (readStatus, entryPckg1);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// Slot 2
+	onStore.Read (readStatus, entryPckg2);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// last Slot
+	onStore.Read (readStatus, entryPckgLast);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// For each one: 
+
+	// Check iMode is the same as that written to the phone book in set up.
+    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10036);
+	ASSERT_EQUALS(readEntry1.iMode,entry1.iMode, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iMode"));
+	ASSERT_EQUALS(readEntry2.iMode,entry2.iMode, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iMode"));
+	ASSERT_EQUALS(readEntryLast.iMode,entryLast.iMode, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iMode"));
+
+	// Check iNumber is the same as that written to the phone book in set up.
+	ASSERT_EQUALS(readEntry1.iNumber.iNumberPlan,entry1.iNumber.iNumberPlan, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iNumber.iNumberPlan"));
+	ASSERT_EQUALS(readEntry2.iNumber.iNumberPlan,entry2.iNumber.iNumberPlan, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iNumber.iNumberPlan"));
+	ASSERT_EQUALS(readEntryLast.iNumber.iNumberPlan,entryLast.iNumber.iNumberPlan, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iNumber.iNumberPlan"));
+	ASSERT_EQUALS(readEntry1.iNumber.iTypeOfNumber,entry1.iNumber.iTypeOfNumber, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iNumber.iTypeOfNumber"));
+	ASSERT_EQUALS(readEntry2.iNumber.iTypeOfNumber,entry2.iNumber.iTypeOfNumber, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iNumber.iTypeOfNumber"));
+	ASSERT_EQUALS(readEntryLast.iNumber.iTypeOfNumber,entryLast.iNumber.iTypeOfNumber, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iNumber.iTypeOfNumber"));
+	ASSERT_EQUALS_DES16(readEntry1.iNumber.iTelNumber,entry1.iNumber.iTelNumber, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iNumber.iTelNumber"));
+	ASSERT_EQUALS_DES16(readEntry2.iNumber.iTelNumber,entry2.iNumber.iTelNumber, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iNumber.iTelNumber"));
+	ASSERT_EQUALS_DES16(readEntryLast.iNumber.iTelNumber,entryLast.iNumber.iTelNumber, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iNumber.iTelNumber"));
+
+	// Check iService is the same as that written to the phone book in set up.
+	ASSERT_EQUALS(readEntry1.iService,entry1.iService, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iService"));
+	ASSERT_EQUALS(readEntry2.iService,entry2.iService, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iService"));
+	ASSERT_EQUALS(readEntryLast.iService,entryLast.iService, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iService"));
+
+	// Check iText is the same as that written to the phone book in set up.
+	ASSERT_EQUALS_DES16(readEntry1.iText,entry1.iText, _L("RMobileONStore::Read ::Read 1st Read Entry has the wrong iText"));
+	ASSERT_EQUALS_DES16(readEntry2.iText,entry2.iText, _L("RMobileONStore::Read ::Read 2nd Read Entry has the wrong iText"));
+	ASSERT_EQUALS_DES16(readEntryLast.iText,entryLast.iText, _L("RMobileONStore::Read ::Read last Read Entry has the wrong iText"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	readStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(4,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0002::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0002");
+	}
+
+CCTSYIntegrationTestONStore0003::CCTSYIntegrationTestONStore0003(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0003::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0003::~CCTSYIntegrationTestONStore0003()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0003::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0003
+ * @SYMFssID BA/CTSY/PBON-0003
+ * @SYMTestCaseDesc Read entry that is not present in the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - KErrNotFound returned when reading a non-existent entry.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify KErrNotFound is returned.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Get ON store subsession. 
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+
+	// Backup first Entry
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Delete all entries from the phone book. 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Read an entry from a valid index. 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	readEntry.iIndex=1;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+
+	// Check KErrNotFound is returned.
+	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is read from an empty slot
+	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
+	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
+	// should be expected in this case.
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	readStatus
+	//	deleteAllStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(4,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0003::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0003");
+	}
+
+CCTSYIntegrationTestONStore0004::CCTSYIntegrationTestONStore0004(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0004::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0004::~CCTSYIntegrationTestONStore0004()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0004::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0004
+ * @SYMFssID BA/CTSY/PBON-0004
+ * @SYMTestCaseDesc Read entries from the ON store using invalid index.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - Error returned on read.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify KErrArgument is returned.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Get ON store subsession. 
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Read an entry with an invalid slot number ===
+
+	// Read a single entry from the phone book using aIndex = -1 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	readEntry.iIndex=-1;
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+
+	// Check KErrGsmSMSInvalidMemoryIndex is returned.
+    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10041);
+	ASSERT_EQUALS(readStatus.Int(), KErrGsmSMSInvalidMemoryIndex, _L("RMobileONStore::Read returned unexpected result"));
+
+	// Read a single entry from the phone book using aIndex = -10 
+	readEntry.iIndex=-10;
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+
+	// Check KErrGsmSMSInvalidMemoryIndex is returned.
+	ASSERT_EQUALS(readStatus.Int(), KErrGsmSMSInvalidMemoryIndex, _L("RMobileONStore::Read returned unexpected result"));
+
+	// Read a single entry from the phone book using aIndex = -50 
+	readEntry.iIndex=-50;
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+
+	// Check KErrGsmSMSInvalidMemoryIndex is returned.
+	ASSERT_EQUALS(readStatus.Int(), KErrGsmSMSInvalidMemoryIndex, _L("RMobileONStore::Read returned unexpected result"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+	//	readStatus
+	//	onStoreInfoStatus
+	CleanupStack::PopAndDestroy(2,&onStoreInfoStatus);
+	
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0004::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0004");
+	}
+
+CCTSYIntegrationTestONStore0005::CCTSYIntegrationTestONStore0005(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0005::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0005::~CCTSYIntegrationTestONStore0005()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0005::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0005
+ * @SYMFssID BA/CTSY/PBON-0005
+ * @SYMTestCaseDesc Write entries to the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - Write successful.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify entries are written correctly and can be read.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Get ON store subsession. 
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+
+	// Backup first Entry
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess | KCapsWriteAccess | KCapsNotifyEvent 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),
+			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+
+	// Ensure phone book is not full. 
+	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureBookIsNotFullL was unable to get an empty space"));
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get phone store information using RMobilePhone::GetPhoneStoreInfo and KETelOwnNumberStore 
+
+	// Store the iUsedEntries returned. 
+
+	// Get phone book store information using RMobilePhoneStore::GetInfo 
+
+	// Store the iUsedEntries returned. 
+	TInt usedEntries =-1;
+	TInt usedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// ===  Write a valid entry ===
+
+	// Post notify event
+	TUint32 storeEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+
+	// Write a valid entry with a national number to the phone book specifying a specific index to store the entry which does not contain an entry. 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "01632960000");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("An Entry");
+	entry.iIndex=clearSpace;
+	onStore.Write (writeStatus, writePckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreEntryAdded
+	RMobilePhoneStore::TMobileStoreEvent
+			expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent(onStore,notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
+
+	// ===  Read the written entry ===
+
+	// Read the entry from the phone book. 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg pckgReadEntry(readEntry);
+	readEntry.iIndex = clearSpace;
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	onStore.Read (readStatus, pckgReadEntry);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// Check that the entry information is the same as that written.
+	ASSERT_TRUE(CompareEntries (readEntry, entry), _L("RMobileONStore::Read entries are not the same"));
+
+	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
+			phone,usedEntries+1,usedEntries2+1), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// ===  Write a valid entry ===
+
+	// post notifier for RMobilePhoneStore::NotifyStoreEvent
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+	
+	// Write a valid entry with an international number (containing a '+' sign) to the phone book specifying a specific index to store the entry which does not contain an entry. 
+	RMobileONStore::TMobileONEntryV1 entry2;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg2(entry2);
+	entry2.iMode=RMobilePhone::ENetworkModeGsm;
+	entry2.iService=RMobilePhone::ETelephony;
+	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry2.iNumber.iTypeOfNumber = RMobilePhone::EInternationalNumber;
+	_LIT(KNumber2, "+441632960000");
+	entry2.iNumber.iTelNumber = KNumber2;
+	entry2.iText = _L("IEntry");
+	entry2.iIndex=clearSpace;
+	onStore.Write (writeStatus, writePckg2);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreEntryAdded
+	expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyStoreEventStatus, storeEvent, expectedEvent, entry2.iIndex,KErrNone);
+
+	// ===  Read the written entry ===
+
+	// Read the entry from the phone book. 
+	readEntry.iIndex = entry2.iIndex;
+	onStore.Read (readStatus, pckgReadEntry);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// Check that the entry information is the same as that written.
+	ASSERT_TRUE(CompareEntries (entry2, readEntry), _L("RMobileONStore::Read entries are not the same"));
+
+	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
+
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries+1,usedEntries2+1), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	readStatus
+	//	writeStatus
+	//	notifyStoreEventStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(5,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0005::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0005");
+	}
+
+CCTSYIntegrationTestONStore0006::CCTSYIntegrationTestONStore0006(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0006::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0006::~CCTSYIntegrationTestONStore0006()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0006::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0006
+ * @SYMFssID BA/CTSY/PBON-0006
+ * @SYMTestCaseDesc Write an entry to phonebook at index of -1 (first free slot).
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - Entry written.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify entry is written correctly and correct slot number is returned.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	
+	// Backup first Entry
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// SIM phone book is not full. 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsReadAccess | KCapsNotifyEvent 
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsNotifyEvent | RMobilePhoneStore::KCapsWriteAccess),
+			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Store iUsedEntries returned for future use 
+	
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Store iUsedEntries returned for future use 
+	TInt savedUsedEntries = -1;
+	TInt savedUsedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+	
+
+	// ===  Write an entry to the first free slot ===
+
+	// Post notify event
+	TUint32 storeEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+
+	// Write a valid entry to the phone book using RMobilePhoneStore::Write supplying aEntry.index = -1 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "01632960000");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("Entry11");
+	entry.iIndex=-1;
+	onStore.Write (writeStatus, writePckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+	// Store the aEntry.iIndex returned for future use 
+	TInt savedIndex=entry.iIndex;
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreEntryAdded
+	RMobilePhoneStore::TMobileStoreEvent
+			expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
+
+	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries+1,savedUsedEntries2+1), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// ===  Read the written entry ===
+
+	// Read the written entry at index aEntry.iIndex returned from the write 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	readEntry.iIndex = savedIndex;
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// Check RMobilePhoneStore::Read returns correct entry information 
+	ASSERT_TRUE(CompareEntries (entry, readEntry), _L("RMobileONStore::Read entries are not the same"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	readStatus
+	//	writeStatus
+	//	notifyStoreEventStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(5,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0006::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0006");
+	}
+
+CCTSYIntegrationTestONStore0007::CCTSYIntegrationTestONStore0007(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0007::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0007::~CCTSYIntegrationTestONStore0007()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0007::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0007
+ * @SYMFssID BA/CTSY/PBON-0007
+ * @SYMTestCaseDesc Write entries to the ON store using invalid indexes.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
+ * @SYMTestExpectedResults Pass - Error returned on write.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify error is returned on attempt to write to an invalid index and number of used entries in the phone book is unchanged.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure phone book is not full. 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsReadAccess 
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess),
+			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  1. Find out how many entries are used in the phone book ===
+	// ===  2. Attempt to write an entry to invalid index (0) ===
+	DEBUG_PRINTF1(_L("Attempt to write an entry to invalid index (0)"));
+	_LIT(KNumber0, "01632960000");
+	WriteEntryAndCheckThatUsedEntriesDidNotChangedL (onStore, 0, KNumber0);
+    clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	ASSERT_TRUE(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+	// Repeat steps 1 to 3 for aEntry.index = -2, -10 
+	DEBUG_PRINTF1(_L("Attempt to write an entry to invalid index (-2)"));
+	_LIT(KNumber2, "01632960000");
+	WriteEntryAndCheckThatUsedEntriesDidNotChangedL (onStore, -2, KNumber2);
+    clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	ASSERT_TRUE(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+	_LIT(KNumber3, "01632960000");
+	
+	DEBUG_PRINTF1(_L("Attempt to write an entry to invalid index (-10)"));
+	WriteEntryAndCheckThatUsedEntriesDidNotChangedL (onStore, -10, KNumber3);
+    clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	ASSERT_TRUE(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+
+	// ===  Attempt to write an entry to an index that is higher than the max slot number ===
+
+	// Write an entry using RMobilePhoneStore::Write and aEntry.index = 10000 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber4, "01632960000");
+	entry.iNumber.iTelNumber = KNumber4;
+	entry.iText = _L("Entry11");
+	entry.iIndex=10000;
+	onStore.Write (writeStatus, writePckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+
+	// Check error returned is not KErrNone
+	ASSERT_TRUE((writeStatus.Int() != KErrNone), _L("RMobileONStore::Write returned an error") );
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(3,&backup);
+
+	return TestStepResult();
+	}
+
+
+void CCTSYIntegrationTestONStore0007::WriteEntryAndCheckThatUsedEntriesDidNotChangedL(
+		RMobileONStore& aStore, TInt aIndex, const TDesC& aNumber)
+/*
+ * This function write an entry to an invalid index and check that the number of used entries did not changed
+ *
+ * @param aStore Reference to On Store session.
+ * @param aIndex the (invald) index
+ * @param aNumber the number to write
+ *
+ */	
+	{
+
+
+	// ===  1. Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1 
+
+	// Store iUsedEntries returned for future use 
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Store iUsedEntries returned for future use 
+	TInt savedUsedEntries = -1;
+	TInt savedUsedEntries2 = -1;
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(aStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// ===  2. Attempt to write an entry to invalid index ===
+
+	// Write an entry using RMobilePhoneStore::Write and aEntry.index = aIndex 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(aStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iNumber.iTelNumber = aNumber;
+	entry.iText = _L("Entry11");
+	entry.iIndex=aIndex;
+
+	// Check KErrArgument is returned
+	aStore.Write (writeStatus, writePckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+
+    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10042);
+	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+	// ===  3. Get the number of used entries and check it is same as before the attempted write ===
+
+	// Check RMobilePhoneStore::GetInfo returns same iUsedEntries as before
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns same iUsedEntries as before
+    ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(aStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2), 
+                  KErrNone, 
+                  _L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// Pop:
+	//	writeStatus
+	CleanupStack::PopAndDestroy(&writeStatus);
+
+	}
+
+TPtrC CCTSYIntegrationTestONStore0007::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0007");
+	}
+
+CCTSYIntegrationTestONStore0008::CCTSYIntegrationTestONStore0008(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0008::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0008::~CCTSYIntegrationTestONStore0008()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0008::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0008
+ * @SYMFssID BA/CTSY/PBON-0008
+ * @SYMTestCaseDesc Write entry to the ON store when SIM is full.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
+ * @SYMTestExpectedResults Pass - Error on attempt to write.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify error is returned and number of used entries is unchanged.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Fill SIM phone book. 
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iNumber.iTelNumber = _L("12012030");
+	entry.iText = _L("Entry11");
+	TInt usedEntries,totalEntries;
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (; usedEntries<totalEntries;++usedEntries)
+		{
+		entry.iIndex=-1;
+		onStore.Write (writeStatus, writePckg);
+		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Write timed out"));
+		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+		}
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Store iUsedEntries returned for future use 
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Store iUsedEntries returned for future use 
+	TInt savedUsedEntries = -1;
+	TInt savedUsedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// ===  Attempt to write an entry to the phone book ===
+
+	// Write an entry using RMobilePhoneStore::Write and aEntry.index = -1 
+	entry.iNumber.iTelNumber = _L("12012034");
+	entry.iIndex=-1;
+
+	// Check error != KErrNone is returned.
+	onStore.Write (writeStatus, writePckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_TRUE((writeStatus.Int() != KErrNone), _L("RMobileONStore::Write did not returned an error") );
+
+	// ===  Get the number of used entries and check it is the same as before attempted write ===
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is same as before
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is same as before
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	writeStatus
+	//	backup
+	CleanupStack::PopAndDestroy(2,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0008::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0008");
+	}
+
+CCTSYIntegrationTestONStore0009::CCTSYIntegrationTestONStore0009(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0009::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0009::~CCTSYIntegrationTestONStore0009()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0009::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0009
+ * @SYMFssID BA/CTSY/PBON-0009
+ * @SYMTestCaseDesc Write entry to the ON store making the store full.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::Write, RMobilePhoneStore::DeleteAll
+ * @SYMTestExpectedResults Pass - Entry written correctly.  Store event is retrieved indicating entry has been written and store is full.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify entry written and store event completes indicating store is now full.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+	
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsReadAccess | KCapsNotifyEvent 
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsNotifyEvent | RMobilePhoneStore::KCapsWriteAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Fill phone book until there is only one slot free. 
+	TInt usedEntries,totalEntries;
+	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
+	CleanupStack::PushL (deleteStatus);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iNumber.iTelNumber = _L("12012030");
+	entry.iText = _L("Entry11");
+	if(usedEntries==totalEntries)
+		{
+		onStore.Delete (deleteStatus, totalEntries);
+		CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+		CHECK_EQUALS_L(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
+		}
+	else
+		{
+		for (; usedEntries+1<totalEntries;++usedEntries)
+			{
+			entry.iIndex=-1;
+			onStore.Write (writeStatus, writePckg);
+			CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+					KErrNone, _L("RMobileONStore::Write timed out"));
+			CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+			}
+		}
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	CHECK_EQUALS_L(usedEntries,totalEntries-1, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Store iUsedEntries returned for future use 
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Store iUsedEntries returned for future use 
+	TInt savedUsedEntries = -1;
+	TInt savedUsedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// ===  Write an entry into the last free slot in the phone book ===
+
+	// Post notify event
+	TUint32 storeEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+
+	// Write an entry using RMobilePhoneStore::Write and aEntry.index = -1 
+	entry.iIndex=-1;
+	onStore.Write (writeStatus, writePckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreFull | KStoreEntryAdded
+    TInt expectedEvent = RMobilePhoneStore::KStoreFull | RMobilePhoneStore::KStoreEntryAdded;
+    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10037);
+    iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
+
+	// ===  Get the number of used entries and check it is 1 higher than before writing the new entry ===
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 higher than that stored.
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 higher than that stored.
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries+1,savedUsedEntries2+1), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// ===  Read the written entry ===
+
+	// Read the written entry with RMobilePhoneStore::Read 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	readEntry.iIndex = savedUsedEntries+1;
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// Check entry details are correct
+	ASSERT_TRUE(CompareEntries (entry, readEntry), _L("RMobileONStore::Read entries are not the same"));
+	// ===  Delete all entries from the phone book  ===
+
+	// Delete all entries from the ON Store 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries of 0.
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries of 0.
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,0,0), 
+		KErrNone, 
+		_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// ===  Fill the phone book using RMobileONStore::StoreAllL ===
+
+	// Populate a CMobilePhoneONList with enough entries to fill the ON store phone book. 
+	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
+	CleanupStack::PushL (list);
+	RMobileONStore::TMobileONEntryV1 entry2;
+	entry2.iMode=RMobilePhone::ENetworkModeGsm;
+	entry2.iService=RMobilePhone::ETelephony;
+	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry2.iText = _L("Entry2");
+	entry2.iNumber.iTelNumber = _L("12012032");
+	ASSERT_TRUE(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (TInt i=usedEntries+1; i <= totalEntries;++i)
+		{
+		entry2.iIndex=i;
+		if ( entry2.iNumber.iTelNumber[0]=='9')
+			{
+			entry2.iNumber.iTelNumber[0]='0';
+			}
+		else
+			{
+			entry2.iNumber.iTelNumber[0]++;
+			}
+		list->AddEntryL (entry2);
+		}
+
+	// Post notify event
+	TUint32 storeEvent2;
+	TInt index2;
+	TExtEtelRequestStatus notifyStoreAllEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreAllEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreAllEventStatus, storeEvent2, index2);
+
+	// Use RMobileONStore::StoreAllL to add these entries to the phone book. 
+	DEBUG_PRINTF1( _L("Store all has cause panic, using bypass"));
+	// Bypass : The session manager can not be used, since a PANIC is created
+	RMobileONStore byPassOnStore;
+	User::LeaveIfError(byPassOnStore.Open(phone));
+	CleanupClosePushL(byPassOnStore);
+	// By pass end
+	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
+	CleanupStack::PushL (storeAllStatus);
+	byPassOnStore.StoreAllL (storeAllStatus, list);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
+	ASSERT_EQUALS(storeAllStatus.Int(), KErrNone, _L("RMobileONStore::StoreAllL returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreFull
+    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10038);
+	RMobilePhoneStore::TMobileStoreEvent
+			expectedEvent2 = RMobilePhoneStore::KStoreFull;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyStoreAllEventStatus, storeEvent2, expectedEvent2, index2,KErrNone);
+
+	// ===  Read all the written entries ===
+
+	// Read all the entries in from the ON store. 
+
+	// Check that they are the same as that stored using the CMobilePhoneONList
+	ASSERT_TRUE(GetUsedEntriesL(onStore,phone,usedEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	RMobileONStore::TMobileONEntryV1 readEntry2;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg2(readEntry2);
+	for (TInt i=1; i<=usedEntries;++i)
+		{
+		readEntry2.iIndex=i;
+		onStore.Read (readStatus, entryPckg2);
+		ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Read timed out"));
+		ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+		ASSERT_TRUE(CompareEntries (readEntry2, list->GetEntryL (i-1)), _L("RMobileONStore::Read entries are not the same"));
+		}
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	storeAllStatus
+	//	byPassOnStore
+	//	notifyStoreAllEventStatus
+	//	list
+	//	deleteAllStatus
+	//	readStatus
+	//	notifyStoreEventStatus
+	//	writeStatus
+	//	deleteStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(11,&backup);
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0009::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0009");
+	}
+
+CCTSYIntegrationTestONStore0010::CCTSYIntegrationTestONStore0010(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0010::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0010::~CCTSYIntegrationTestONStore0010()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0010::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0010
+ * @SYMFssID BA/CTSY/PBON-0010
+ * @SYMTestCaseDesc Write entry to ON store where name-tag and number are of maximum length.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::Read, RMobilePhoneStore::NotifyStoreEvent, RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
+ * @SYMTestExpectedResults Pass - Write successful.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify name and number are written correctly and can be read.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure phone book is not full. 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),
+			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Store iUsedEntries returned for future use 
+
+	// Store iNumLength and iTextLength for future use 
+	TInt numberLength = onStoreInfo.iNumberLen;
+	TInt textLength = onStoreInfo.iTextLen;
+	
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Store iUsedEntries returned for future use 
+	TInt usedEntries =-1;
+	TInt usedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// ===  Write entry of maximum size to the ON store ===
+
+	// Post notify event
+	TUint32 storeEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+	
+	// Create a RMobileONStore::TMobileONEntryV1 with a valid name in iText of length iTextLength and iNumber of length iNumLength 
+	RMobileONStore::TMobileONEntryV1 entry;
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iIndex=clearSpace;
+	entry.iText = TBuf<RMobileONStore::KOwnNumberTextSize>(textLength);
+	entry.iText.Fill('A',textLength);
+	entry.iNumber.iTelNumber = TBuf<RMobilePhone::KMaxMobileTelNumberSize>(numberLength);
+    entry.iNumber.iTelNumber.Zero();
+    entry.iNumber.iTelNumber.Append('+');
+    for(TInt i=1;i<numberLength;++i) //Apend numberLength digits, since the '+' is the first digit
+        {
+        entry.iNumber.iTelNumber.Append('0'+(i%10));
+        }
+
+	// Write the entry to the ON store
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	onStore.Write (writeStatus, writePckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_EQUALS(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEntryAdded
+	RMobilePhoneStore::TMobileStoreEvent expectedEvent = RMobilePhoneStore::KStoreEntryAdded;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent(onStore,notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
+
+	// ===  Read the written entry ===
+
+	// Read the written entry with RMobilePhoneStore::Read 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg pckgReadEntry(readEntry);
+	readEntry.iIndex = clearSpace;
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	onStore.Read (readStatus, pckgReadEntry);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// Check entry details are correct
+	ASSERT_TRUE(CompareEntries (readEntry, entry), _L("RMobileONStore::Read entries are not the same"));
+
+	// ===  Get the number of used entries and check used entries is one higher than before the write ===
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries is one higher than before the write
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries is one higher than before the write
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries+1,usedEntries2+1), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+	//	readStatus
+	//	writeStatus
+	//	notifyStoreEventStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(5,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0010::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0010");
+	}
+
+CCTSYIntegrationTestONStore0011::CCTSYIntegrationTestONStore0011(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0011::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0011::~CCTSYIntegrationTestONStore0011()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0011::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0011
+ * @SYMFssID BA/CTSY/PBON-0011
+ * @SYMTestCaseDesc Delete entry from the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
+ * @SYMTestExpectedResults Pass - Entry deleted.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify deletion is successful and deleted entry cannot be read.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure phone has KCapsReadAccess | KCapsWriteAccess | KCapsNotifyEvent capabilities. 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Fill the phone book. 
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iNumber.iTelNumber = _L("12012030");
+	entry.iText = _L("Entry11");
+	TInt usedEntries,totalEntries;
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (; usedEntries<totalEntries;++usedEntries)
+		{
+		entry.iIndex=-1;
+		onStore.Write (writeStatus, writePckg);
+		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Write timed out"));
+		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+		}
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobilePhoneBookStore::TMobileONStoreInfoV1  
+
+	// Store iUsedEntries returned for future use 
+
+	// Store iTotalEntries for future use 
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Store iUsedEntries returned for future use 
+	TInt savedUsedEntries = -1;
+	TInt savedUsedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// ===  Delete an entry ===
+
+	// Post notify event
+	TUint32 deleteEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyDeleteEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyDeleteEventStatus);
+	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
+
+	// Delete entry from the phone book specifying aIndex = 1 
+	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
+	CleanupStack::PushL (deleteStatus);
+	onStore.Delete (deleteStatus, 1);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEntryDeleted
+	RMobilePhoneStore::TMobileStoreEvent expectedEvent = RMobilePhoneStore::KStoreEntryDeleted;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
+
+	// ===  Get the number of used entries and check it is 1 lower than before deleting the new entry ===
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is 1 lower  than that stored.
+
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is 1 lower than that stored.
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
+			phone,savedUsedEntries-1,savedUsedEntries2-1), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// ===  Attempt to read the deleted entry.  ===
+
+	// Read a single entry stored in the slot used in delete 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
+	readEntry.iIndex=1;
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+
+	// Check KErrNotFound is returned.
+	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is read from an empty slot
+	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
+	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
+	// should be expected in this case.
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+
+	// ===  Attempt to delete the already deleted entry again. ===
+
+	// Delete the already deleted entry 
+	onStore.Delete (deleteStatus, 1);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+
+	// Check KErrNotFound is returned
+	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is deleted from an empty slot
+	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
+	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
+	// should be expected in this case.
+	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned unexpected"));
+
+	// Repeat whole test with aIndex = TMobileONStoreInfoV1::iTotalEntries (the last slot) 
+	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
+	onStore.Delete (deleteStatus, storeInfo.iTotalEntries);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
+			phone,savedUsedEntries-2,savedUsedEntries2-2), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+	readEntry.iIndex=storeInfo.iTotalEntries;
+	onStore.Read (readStatus, entryPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is read from an empty slot
+	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
+	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
+	// should be expected in this case.
+	ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+	onStore.Delete (deleteStatus, storeInfo.iTotalEntries);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is deleted from an empty slot
+	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
+	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
+	// should be expected in this case.
+	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned unexpected"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	readStatus
+	//	deleteStatus
+	//	notifyDeleteEventStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(6,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0011::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0011");
+	}
+
+CCTSYIntegrationTestONStore0012::CCTSYIntegrationTestONStore0012(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0012::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0012::~CCTSYIntegrationTestONStore0012()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0012::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0012
+ * @SYMFssID BA/CTSY/PBON-0012
+ * @SYMTestCaseDesc Delete entry from the ON store which does not exist.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
+ * @SYMTestExpectedResults Pass - Error returned on delete.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify KErrNotFound is returned.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Ensure phone has KCapsReadAccess and KCapsWriteAccess capabilities. 
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess),
+			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Backup first Entry
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure there is an empty slot in a known location. 
+	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Store iUsedEntries returned for future use 
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Store iUsedEntries returned for future use 
+	TInt savedUsedEntries = -1;
+	TInt savedUsedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// Delete an entry using RMobilePhoneStore::Delete where aIndex is the index of a known empty slot. 
+	// Check KErrNotFound is returned.
+	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
+	CleanupStack::PushL (deleteStatus);
+	onStore.Delete (deleteStatus, clearSpace);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+	// $CTSYProblem The LTSY returns KErrNone to CTSY when an entry is deleted from a slot which is already empty
+	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
+	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
+	// should be expected in this case.
+	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
+
+	// ===  Get the number of used entries and check it is the same as before attempted delete ===
+
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries which is same as before
+	
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries which is same as before
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedUsedEntries,savedUsedEntries2), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	deleteStatus
+	//	backup
+	//	onStoreInfoStatus
+	CleanupStack::PopAndDestroy(3,&onStoreInfoStatus);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0012::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0012");
+	}
+
+CCTSYIntegrationTestONStore0013::CCTSYIntegrationTestONStore0013(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0013::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0013::~CCTSYIntegrationTestONStore0013()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0013::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0013
+ * @SYMFssID BA/CTSY/PBON-0013
+ * @SYMTestCaseDesc Delete entry from the ON store which makes the store empty.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
+ * @SYMTestExpectedResults Pass - Entry deleted, RMobilePhoneStore::KStoreEmpty event occurs.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify entry deleted and KStoreEmpty event occurs.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure phone has KCapsReadAccess | KCapsWriteAccess | KCapsNotifyEvent capabilities. 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Delete all the entries from the phone book then write one entry to a known location. 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "12345");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("Entry 1");
+	entry.iIndex=1;
+	onStore.Write (writeStatus, writePckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1 
+	// Check iUsedEntries is 1
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+	// Store iUsedEntries is 1 
+	TInt usedEntries =-1;
+	TInt usedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+	ASSERT_EQUALS(usedEntries,1,_L("RMobilePhoneStore::GetInfo returned an unexpected value."));
+
+	// Post notify event
+	TUint32 deleteEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyDeleteEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyDeleteEventStatus);
+	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
+	
+	// Delete the entry from the ON store 
+	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
+	CleanupStack::PushL (deleteStatus);
+	onStore.Delete (deleteStatus, 1);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEntryDeleted
+    // Due to defect 10039 (see above) KStoreEmpty will not returned
+	TInt32 expectedEvent = RMobilePhoneStore::KStoreEntryDeleted;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
+
+	// ===  Get the number of used entries and check it is the same as before attempted delete ===
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries of 0
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries of 0
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+	ASSERT_EQUALS(usedEntries,0,_L("RMobilePhoneStore::GetInfo returned an unexpected value."));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+	//	deleteStatus
+	//	notifyDeleteEventStatus
+	//	writeStatus
+	//	deleteAllStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(6,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0013::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0013");
+	}
+
+CCTSYIntegrationTestONStore0014::CCTSYIntegrationTestONStore0014(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0014::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0014::~CCTSYIntegrationTestONStore0014()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0014::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0014
+ * @SYMFssID BA/CTSY/PBON-0014
+ * @SYMTestCaseDesc Delete an entry from a full ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
+ * @SYMTestExpectedResults Pass - Entries deleted, RMobilePhoneStore::KStoreHasSpace event occurs.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/manual
+ *
+ * Reason for test: Verify entry deleted and KStoreHasSpace event occurs.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Ensure phone book is full 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iNumber.iTelNumber = _L("12012030");
+	entry.iText = _L("Entry11");
+	TInt usedEntries,totalEntries;
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (; usedEntries<totalEntries;++usedEntries)
+		{
+		entry.iIndex=-1;
+		onStore.Write (writeStatus, writePckg);
+		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Write timed out"));
+		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+		}
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+	// Store iUsedEntries returned for future use 
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+	// Store iUsedEntries returned for future use 
+	usedEntries =-1;
+	TInt usedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// Post notify event
+	TUint32 deleteEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyDeleteEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyDeleteEventStatus);
+	onStore.NotifyStoreEvent (notifyDeleteEventStatus, deleteEvent, index);
+
+	// Delete an entry from the phone book. 
+	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
+	CleanupStack::PushL (deleteStatus);
+	onStore.Delete (deleteStatus, 1);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+	ASSERT_EQUALS(deleteStatus.Int(), KErrNone, _L("RMobileONStore::Delete returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with RMobilePhoneStore::KStoreHasSpace | RMobilePhoneStore::KStoreEntryDeleted
+    // Checking for KStoreHasSpace will fail, see defect 10039
+	TInt32 expectedEvent = RMobilePhoneStore::KStoreEntryDeleted;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyDeleteEventStatus, deleteEvent, expectedEvent, index,KErrNone);
+
+	// ===  Get the number of used entries and check it is one lower than before ===
+	// Check RMobilePhoneStore::GetInfo returns iUsedEntries is one lower than before
+	// Check RMobilePhone::GetPhoneStoreInfo returns iUsedEntries is one lower than before
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,
+			phone,usedEntries-1,usedEntries2-1), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+	//	deleteStatus
+	//	notifyDeleteEventStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(5,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0014::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0014");
+	}
+
+CCTSYIntegrationTestONStore0015::CCTSYIntegrationTestONStore0015(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0015::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0015::~CCTSYIntegrationTestONStore0015()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0015::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0015
+ * @SYMFssID BA/CTSY/PBON-0015
+ * @SYMTestCaseDesc Delete all entries from the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
+ * @SYMTestExpectedResults Pass - Entries deleted, RMobilePhoneStore::KStoreEmpty event occurs.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: All entries deleted.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsNotifyEvent |  RMobilePhoneStore::KCapsWriteAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+
+	// Ensure phone book is not empty 
+	TInt clearSpace;
+	CHECK_TRUE_L(GetUsedEntriesL(onStore,phone,clearSpace),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	if ( clearSpace == 0)
+		{
+
+		// Create and write entry for 1st slot
+		entry.iMode=RMobilePhone::ENetworkModeGsm;
+		entry.iService=RMobilePhone::ETelephony;
+		entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+		entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+		_LIT(KNumber, "12345");
+		entry.iNumber.iTelNumber = KNumber;
+		entry.iText = _L("Entry 1");
+		entry.iIndex=1;
+		onStore.Write (writeStatus, writePckg);
+		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Write timed out"));
+		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+		CHECK_TRUE_L(GetUsedEntriesL(onStore,phone,clearSpace),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+		CHECK_TRUE_L(clearSpace >0, _L("CCTSYIntegrationTestONStore0015::doTestStepL was unable to add entry"));
+		}
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Delete all entries from the phone book ===
+
+	// Post notify event
+	TUint32 storeEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+
+	// Delete all entries from the full phone book 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent complete with KStoreEmpty
+	RMobilePhoneStore::TMobileStoreEvent
+			expectedEvent = RMobilePhoneStore::KStoreEmpty;
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
+
+	// ===  Check phone book is empty ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Check iUsedEntries == 0
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Check iUsedEntries == 0
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,0,0), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	deleteAllStatus
+	//	notifyStoreEventStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(5,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0015::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0015");
+	}
+
+CCTSYIntegrationTestONStore0016::CCTSYIntegrationTestONStore0016(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0016::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0016::~CCTSYIntegrationTestONStore0016()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0016::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0016
+ * @SYMFssID BA/CTSY/PBON-0016
+ * @SYMTestCaseDesc Cancel delete of all entries from the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::GetInfo, RMobilePhone::GetPhoneStoreInfo
+ * @SYMTestExpectedResults Pass - Some entries deleted, request cancelled successfully. Store not empty.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify some entries deleted before cancellation but cancellation occurs.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Ensure phone book is full 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iNumber.iTelNumber = _L("12012030");
+	entry.iText = _L("Entry11");
+	TInt usedEntries,totalEntries;
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (; usedEntries<totalEntries;++usedEntries)
+		{
+		entry.iIndex=-1;
+		onStore.Write (writeStatus, writePckg);
+		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Write timed out"));
+		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+		}
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries are used in the phone book ===
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+	// Store iUsedEntries returned for future use 
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+	// Store iUsedEntries returned for future use 
+	usedEntries =-1;
+	TInt usedEntries2 = -1;
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,usedEntries,usedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// ===  Delete all entries from the phone book ===
+
+	// Delete all entries from the full phone book 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+
+	// Do not wait for the request to complete. 
+	// Wait for 1 second. 
+	User::After(KOneSecond);
+	
+	// Cancel the DeleteAll operation. Check KErrCancel returned on status of DeleteAll 
+	onStore.CancelAsyncRequest(EMobilePhoneStoreDeleteAll);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	ASSERT_TRUE(((deleteAllStatus.Int()== KErrCancel) || (deleteAllStatus.Int()== KErrNone)) , _L("RMobileONStore::DeleteAll did not returned cancel"));
+
+	// ===  Check phone book is not empty but some entries have been deleted. ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+	TInt newUsedEntries =-1;
+	TInt newUsedEntries2 = -1;
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,newUsedEntries,newUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// Check iUsedEntries < before deletion.
+	ASSERT_TRUE(newUsedEntries<=usedEntries,_L("RMobileONStore::DeleteAll failed to delete"));
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+	// Check iUsedEntries < before deletion.
+	ASSERT_TRUE(newUsedEntries2<=usedEntries2,_L("RMobileONStore::DeleteAll failed to delete"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+	//	deleteAllStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(4,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0016::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0016");
+	}
+
+CCTSYIntegrationTestONStore0017::CCTSYIntegrationTestONStore0017(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0017::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0017::~CCTSYIntegrationTestONStore0017()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0017::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0017
+ * @SYMFssID BA/CTSY/PBON-0017
+ * @SYMTestCaseDesc Write and delete all own number entries.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileONStore::StoreAllL, RMobilePhone::GetPhoneStoreInfo, RMobilePhoneStore::NotifyStoreEvent
+ * @SYMTestExpectedResults Pass - Own numbers stored, read and deleted successfully. KErrNotFound when deleting all entries from an empty store.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify that entire store can be written to in one call and correct store event occurs.
+
+ Verify KErrNotFound when attempting to delete all entries from an empty store.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess | KCapsNotifyEvent 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess | RMobilePhoneStore::KCapsNotifyEvent),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries can be stored in the ON store ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Store iTotalEntries for future use 
+	TInt usedEntries,savedTotalEntries,usedEntries2,savedTotalEntries2;
+	ASSERT_EQUALS(GetNumberOfUsedAndTotalEntriesInStoreL(onStore,phone,usedEntries,usedEntries2,savedTotalEntries,savedTotalEntries2),KErrNone,
+			_L("CCTSYIntegrationTestONStore0017::doTestStepL can not get the number of used entries"));
+	
+	// Populate a CMobilePhoneOnList with iTotalEntries number of valid entries 
+	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
+	CleanupStack::PushL (list);
+	RMobileONStore::TMobileONEntryV1 entry;
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iText = _L("Entry2");
+	entry.iNumber.iTelNumber = _L("12012032");
+	for (TInt i=1; i <= savedTotalEntries;++i)
+		{
+		entry.iIndex=i;
+		if ( entry.iNumber.iTelNumber[0]=='9')
+			{
+			entry.iNumber.iTelNumber[0]='0';
+			}
+		else
+			{
+			entry.iNumber.iTelNumber[0]++;
+			}
+		list->AddEntryL (entry);
+		}
+	
+	// Post notify event
+	TUint32 storeEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+	
+	// Use RMobileONStore::StoreAllL to store all the entries to the ON store. 
+	// Bypass : The session manager can not be used, since a PANIC is created
+	RMobileONStore byPassOnStore;
+	User::LeaveIfError(byPassOnStore.Open(phone));
+	CleanupClosePushL(byPassOnStore);
+	// By pass end
+	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
+	CleanupStack::PushL (storeAllStatus);
+	byPassOnStore.StoreAllL (storeAllStatus, list);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
+	ASSERT_EQUALS(storeAllStatus.Int(), KErrNone, _L("RMobileONStore::StoreAllL returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreDoRefresh | KStoreFull event
+    //CANT USE KStoreFull, SEE defect 10038
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyStoreEventStatus, storeEvent, (RMobilePhoneStore::KStoreDoRefresh), index,KErrNone);
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Check iUsedEntries returned = iTotalEntries returned
+	
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Check iUsedEntries returned = iTotalEntries returnedx
+	RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg storeInfoPckg (storeInfo);
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,savedTotalEntries,savedTotalEntries2), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// Read all the entries from the ON store 
+
+	// Check all contain the same data as that written
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	TInt usedSpace;
+	ASSERT_TRUE(GetUsedEntriesL(onStore,phone,usedSpace),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (TInt i=1; i<=usedSpace;++i)
+		{
+		readEntry.iIndex=i;
+		onStore.Read (readStatus, entryPckg);
+		ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Read timed out"));
+		ASSERT_EQUALS(readStatus.Int(), KErrNone, _L("RMobileONStore::Read returned an error"));
+		ASSERT_TRUE(CompareEntries (readEntry, list->GetEntryL (i-1)), _L("RMobileONStore::Read entries are not the same"));
+		}
+
+	// Delete all the entries from the store 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KStoreEmpty
+	RMobilePhoneStore::TMobileStoreEvent
+	expectedEvent = RMobilePhoneStore::KStoreEmpty;
+    ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 10039);
+	iSimTestHelper.WaitForMobilePhoneStoreNotifyStoreEvent ( onStore,
+			notifyStoreEventStatus, storeEvent, expectedEvent, index,KErrNone);
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+
+	// Check iUsedEntries is 0
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+
+	// Check iUsedEntries is 0
+	ASSERT_EQUALS(iSimTestHelper.AssertNumberOfUsedEntriesCorrectL(onStore,KETelOwnNumberStore,storeInfoPckg,phone,0,0), 
+			KErrNone, 
+			_L("RMobilePhoneStore::GetInfo and RMobilePhone::GetPhoneStoreInfo both returned an error"));
+
+	// Delete all entries from the store 
+	onStore.DeleteAll (deleteAllStatus);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+
+	// Check KErrNotFound is returned
+	// $CTSYProblem The LTSY returns KErrNone to CTSY when all the entries are deleted from an empty store
+	// CTSY correctly propagates whatever error is returned by LTSY back to the client.
+	// Therefore the test has been coded to expect KErrNone.  If the LTSY behaviour is fixed, KErrNotFound or similar
+	// should be expected in this case.
+	ASSERT_EQUALS(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	deleteAllStatus
+	//	readStatus
+	//	storeAllStatus
+	//	byPassOnStore
+	//	notifyStoreEventStatus
+	//	list
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(8,&backup);
+	
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0017::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0017");
+	}
+
+CCTSYIntegrationTestONStore0018::CCTSYIntegrationTestONStore0018(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0018::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0018::~CCTSYIntegrationTestONStore0018()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0018::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0018
+ * @SYMFssID BA/CTSY/PBON-0018
+ * @SYMTestCaseDesc Cancel writing of all entries to the ON store
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileONStore::StoreAllL, RMobilePhoneStore::DeleteAll, RMobilePhoneStore::Read, RMobilePhoneStore::GetInfo
+ * @SYMTestExpectedResults Pass - KErrCancel when cancelling StoreAll operation on ON store.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify some but not all entries are written.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsWriteAccess),
+			KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Ensure ON store is empty 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+	TInt usedEntries;
+	CHECK_TRUE_L(GetUsedEntriesL(onStore,phone,usedEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	CHECK_EQUALS_L(usedEntries,0,_L("RMobileONStore::DeleteAll did not delete all"));
+	
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries can be stored in the ON store ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+	// Store iTotalEntries for future use 
+	TInt totalEntries;
+	ASSERT_TRUE(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+
+	// Populate a CMobilePhoneOnList with iTotalEntries number of valid entries 
+	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
+	CleanupStack::PushL (list);
+	RMobileONStore::TMobileONEntryV1 entry2;
+	entry2.iMode=RMobilePhone::ENetworkModeGsm;
+	entry2.iService=RMobilePhone::ETelephony;
+	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry2.iText = _L("Entry2");
+	entry2.iNumber.iTelNumber = _L("12012032");
+	ASSERT_TRUE(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (TInt i=1; i <= totalEntries;++i)
+		{
+		entry2.iIndex=i;
+		if ( entry2.iNumber.iTelNumber[0]=='9')
+			{
+			entry2.iNumber.iTelNumber[0]='0';
+			}
+		else
+			{
+			entry2.iNumber.iTelNumber[0]++;
+			}
+		list->AddEntryL (entry2);
+		}
+
+	// Use RMobileONStore::StoreAllL to store all the entries to the ON store. 
+	DEBUG_PRINTF1( _L("Store all has cause panic, using bypass"));
+	// Bypass : The session manager can not be used, since a PANIC is created
+	RMobileONStore byPassOnStore;
+	User::LeaveIfError(byPassOnStore.Open(phone));
+	CleanupClosePushL(byPassOnStore);
+	// By pass end
+	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
+	CleanupStack::PushL (storeAllStatus);
+	byPassOnStore.StoreAllL (storeAllStatus, list);
+
+	// Do not wait for the request to complete before continuing. 
+
+	// Wait for 1 second. 
+	User::After(KOneSecond);
+	
+	// Cancel the StoreAllL request. 
+	onStore.CancelAsyncRequest(EMobileONStoreStoreAll);
+
+	// Check KErrCancel is returned.
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
+	ASSERT_TRUE(((storeAllStatus.Int() == KErrCancel) || (storeAllStatus.Int() == KErrNone)), _L("RMobileONStore::StoreAllL did not returned cancel"));
+
+	// ===  Find out how many entries are used in the phone book ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+	TInt newUsedEntries =-1;
+	TInt newUsedEntries2 = -1;
+	ASSERT_EQUALS(iSimTestHelper.GetNumberOfUsedEntriesInStoreL(onStore,KETelOwnNumberStore,onStoreInfoPckg,phone,newUsedEntries,newUsedEntries2),KErrNone, _L("RMobilePhone::GetPhoneStoreInfo and RMobilePhoneStore::GetInfo both returned an error."));
+
+	// Check iUsedEntries is > 0
+	ASSERT_TRUE(newUsedEntries>=0,_L("RMobileONStore::StoreAllL failed to store"));
+
+	// Get the phone book information using RMobilePhone::GetPhoneStoreInfo 
+	// Check iUsedEntries is > 0
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+	//	storeAllStatus
+    //  byPassOnStore
+	//	list
+	//	deleteAllStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(6,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0018::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0018");
+	}
+
+CCTSYIntegrationTestONStore0019::CCTSYIntegrationTestONStore0019(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0019::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0019::~CCTSYIntegrationTestONStore0019()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0019::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0019
+ * @SYMFssID BA/CTSY/PBON-0019
+ * @SYMTestCaseDesc Write a list of own numbers when there is not enough space in the phone book for the whole list.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobileONStore::StoreAllL
+ * @SYMTestExpectedResults Pass - KErrTooBig returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify error is returned when an attempt is made to store more entries than is possible into the ON store.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWriteAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// ===  Find out how many entries can be stored in the ON store ===
+
+	// Get the phone book information using RMobilePhoneStore::GetInfo using a RMobileONStore::TMobileONStoreInfoV1  
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	ASSERT_EQUALS(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+
+	
+	// Populate a CMobilePhoneOnList with (iTotalEntries+1) number of valid entries 
+	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
+	CleanupStack::PushL (list);
+	RMobileONStore::TMobileONEntryV1 entry;
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iText = _L("Entry2");
+	entry.iNumber.iTelNumber = _L("12012032");
+	for (TInt i=1; i <= onStoreInfo.iTotalEntries+1;++i)
+		{
+		entry.iIndex=i;
+		if ( entry.iNumber.iTelNumber[0]=='9')
+			{
+			entry.iNumber.iTelNumber[0]='0';
+			}
+		else
+			{
+			entry.iNumber.iTelNumber[0]++;
+			}
+		list->AddEntryL (entry);
+		}
+
+	// Use RMobileONStore::StoreAllL to store all the entries to the ON store. 
+	// Bypass : The session manager can not be used, since a PANIC is created
+	RMobileONStore byPassOnStore;
+	User::LeaveIfError(byPassOnStore.Open(phone));
+	CleanupClosePushL(byPassOnStore);
+	// By pass end
+	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
+	CleanupStack::PushL (storeAllStatus);
+	byPassOnStore.StoreAllL (storeAllStatus, list);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
+
+	// Check KErrTooBig is returned.
+	ASSERT_EQUALS(storeAllStatus.Int(), KErrTooBig, _L("RMobileONStore::StoreAllL returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	storeAllStatus
+	//	byPassOnStore
+	//	list
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(5,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0019::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0019");
+	}
+
+CCTSYIntegrationTestONStore0020::CCTSYIntegrationTestONStore0020(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0020::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0020::~CCTSYIntegrationTestONStore0020()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0020::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0020
+ * @SYMFssID BA/CTSY/PBON-0020
+ * @SYMTestCaseDesc Cancel writing an entry to the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWriteAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Ensure there is an empty slot in a known location. 
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	TInt clearSpace = iSimTestHelper.EnsureEmptyStoreSpaceL(onStore,KETelOwnNumberStore,onStoreInfo,phone);
+	CHECK_TRUE_L(clearSpace>=0,_L("TSimTsyTestHelper::EnsureEmptyStoreSpaceL was unable to get an empty space"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Write an entry from the location of a known empty slot. 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "01632960000");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("An Entry 2");
+	entry.iIndex=clearSpace;
+	onStore.Write (writeStatus, writePckg);
+
+	// Cancel the read request immediately using RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneStoreWrite) 
+	onStore.CancelAsyncRequest(EMobilePhoneStoreWrite);
+
+	// Check KErrCancel or KErrNone is returned.
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_TRUE(((writeStatus.Int()== KErrNone) || ((writeStatus.Int()== KErrCancel))), _L("RMobileONStore::Write returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(3,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0020::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0020");
+	}
+
+CCTSYIntegrationTestONStore0021::CCTSYIntegrationTestONStore0021(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0021::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0021::~CCTSYIntegrationTestONStore0021()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0021::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0021
+ * @SYMFssID BA/CTSY/PBON-0021
+ * @SYMTestCaseDesc Attempt to read own number into a wrongly sized buffer.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - KErrArgument?
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify error is returned on attempt to write.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, (RMobilePhoneStore::KCapsReadAccess),KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Write an entry to a known location in the phone book 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "12345");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("Entry 2");
+	entry.iIndex=2;
+	onStore.Write (writeStatus, writePckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Read an entry from the ON store using RMobilePhoneStore::Read and aEntry as a TBuf<1> 
+	TBuf8<1> entryPckg;
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	onStore.Read (readStatus, entryPckg);
+
+	// Check error is returned.
+	ASSERT_TRUE((readStatus.Int() != KErrNone), _L("RMobileONStore::Read did not returned an error") );
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+	//	readStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(4,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0021::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0021");
+	}
+
+CCTSYIntegrationTestONStore0022::CCTSYIntegrationTestONStore0022(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0022::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0022::~CCTSYIntegrationTestONStore0022()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0022::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0022
+ * @SYMFssID BA/CTSY/PBON-0022
+ * @SYMTestCaseDesc Cancel reading an entry from the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsReadAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsReadAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Write an entry to a known location in the phone book 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "12345");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("Entry 2");
+	entry.iIndex=2;
+	onStore.Write (writeStatus, writePckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Read an entry from a known location from the ON store. 
+	RMobileONStore::TMobileONEntryV1 readEntry;
+	RMobileONStore::TMobileONEntryV1Pckg entryPckg(readEntry);
+	TExtEtelRequestStatus readStatus(onStore, EMobilePhoneStoreRead);
+	CleanupStack::PushL (readStatus);
+	readEntry.iIndex=2;
+	onStore.Read (readStatus, entryPckg);
+
+	// Cancel the read request immediately using RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneStoreRead) 
+	onStore.CancelAsyncRequest(EMobilePhoneStoreRead);
+
+	// Check KErrCancel or KErrNone is returned.
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(readStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Read timed out"));
+	ASSERT_TRUE(((readStatus.Int()== KErrNone) || ((readStatus.Int()== KErrCancel))), _L("RMobileONStore::Read returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	readStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(4,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0022::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0022");
+	}
+
+CCTSYIntegrationTestONStore0023::CCTSYIntegrationTestONStore0023(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0023::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0023::~CCTSYIntegrationTestONStore0023()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0023::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0023
+ * @SYMFssID BA/CTSY/PBON-0023
+ * @SYMTestCaseDesc Cancel delete one entry from ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWriteAccess 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWriteAccess,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+	
+	// Write an entry to a known location in the phone book 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "12345");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("Entry 2");
+	entry.iIndex=2;
+	onStore.Write (writeStatus, writePckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Delete an entry at a known index from the ON store. 
+	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
+	CleanupStack::PushL (deleteStatus);
+	onStore.Delete (deleteStatus, 2);
+
+	// Cancel the request immediately with RTelSubSessionBase::.CancelAsyncRequest( EMobilePhoneStoreDelete ) 
+	onStore.CancelAsyncRequest(EMobilePhoneStoreDelete);
+
+	// Check KErrCancel or KErrNone is returned (if it was too late to cancel).
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium), KErrNone, _L("RMobileONStore::Delete timed out"));
+	ASSERT_TRUE(((deleteStatus.Int()== KErrNone) || (deleteStatus.Int()== KErrCancel)), _L("RMobileONStore::Delete returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	deleteStatus
+	//	writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(4,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0023::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0023");
+	}
+
+CCTSYIntegrationTestONStore0024::CCTSYIntegrationTestONStore0024(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0024::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0024::~CCTSYIntegrationTestONStore0024()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0024::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0024
+ * @SYMFssID BA/CTSY/PBON-0024
+ * @SYMTestCaseDesc Cancel notification of a store event on the ON store.
+ * @SYMTestPriority High
+ * @SYMTestActions RMobilePhoneStore::Write, RMobilePhoneStore::Delete, RMobileONStore::StoreAllL
+ * @SYMTestExpectedResults Pass - KErrCancel returned.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsNotifyEvent 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsNotifyEvent,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Write an entry to a known location in the phone book 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	_LIT(KNumber, "12345");
+	entry.iNumber.iTelNumber = KNumber;
+	entry.iText = _L("Entry 2");
+	entry.iIndex=2;
+	onStore.Write (writeStatus, writePckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Request notification of a store event with RMobilePhoneStore::NotifyStoreEvent 
+	TUint32 storeEvent;
+	TInt index;
+	TExtEtelRequestStatus notifyStoreEventStatus(onStore,
+			EMobilePhoneStoreNotifyStoreEvent);
+	CleanupStack::PushL (notifyStoreEventStatus);
+	onStore.NotifyStoreEvent (notifyStoreEventStatus, storeEvent, index);
+
+	// Cancel the RMobilePhoneStore::NotifyStoreEvent with RTelSubSession::CancelAsyncRequest( EMobilePhoneStoreNotifyStoreEvent ) 
+	onStore.CancelAsyncRequest(EMobilePhoneStoreNotifyStoreEvent);
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyStoreEventStatus, ETimeMedium), KErrNone, _L("RMobileONStore::NotifyStoreEvent timed out"));
+
+	// Delete an entry from the phone store 
+	TExtEtelRequestStatus deleteStatus(onStore, EMobilePhoneStoreDelete);
+	CleanupStack::PushL (deleteStatus);
+	onStore.Delete (deleteStatus, 2);
+    ASSERT_EQUALS(WaitForRequestWithTimeOut(deleteStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Delete timed out"));
+	ASSERT_EQUALS(deleteStatus.Int(),KErrNone, _L("RMobileONStore::Delete did not returned as expected"));
+
+	// Write an entry to the phone store 
+	entry.iNumber.iTelNumber = _L("4531231");
+	entry.iIndex=1;
+	onStore.Write (writeStatus, writePckg);
+    ASSERT_EQUALS(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::Write timed out"));
+	ASSERT_EQUALS(writeStatus.Int(),KErrNone, _L("RMobileONStore::Write did not returned as expected"));
+
+	// Use RMobileONStore::StoreAllL to store entries to the ON store. 
+	CMobilePhoneONList *list = CMobilePhoneONList::NewL ();
+	CleanupStack::PushL (list);
+	RMobileONStore::TMobileONEntryV1 entry2;
+	entry2.iMode=RMobilePhone::ENetworkModeGsm;
+	entry2.iService=RMobilePhone::ETelephony;
+	entry2.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry2.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry2.iText = _L("Entry2");
+	entry2.iNumber.iTelNumber = _L("12012032");
+	for (TInt i=1; i < 2;++i)
+		{
+		entry2.iIndex=i;
+		if ( entry2.iNumber.iTelNumber[0]=='9')
+			{
+			entry2.iNumber.iTelNumber[0]='0';
+			}
+		else
+			{
+			entry2.iNumber.iTelNumber[0]++;
+			}
+		list->AddEntryL (entry2);
+		}
+	// Bypass : The session manager can not be used, since a PANIC is created
+	RMobileONStore byPassOnStore;
+	User::LeaveIfError(byPassOnStore.Open(phone));
+	CleanupClosePushL(byPassOnStore);
+	// By pass end
+	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
+	CleanupStack::PushL (storeAllStatus);
+	byPassOnStore.StoreAllL (storeAllStatus, list);
+    ASSERT_EQUALS(WaitForRequestWithTimeOut(storeAllStatus, ETimeLong),
+			KErrNone, _L("RMobileONStore::StoreAllL timed out"));
+	ASSERT_EQUALS(storeAllStatus.Int(),KErrNone, _L("RMobileONStore::StoreAllL did not returned as expected"));
+
+	// Check RMobilePhoneStore::NotifyStoreEvent completes with KErrCancel
+	ASSERT_EQUALS(notifyStoreEventStatus.Int(),KErrCancel, _L("RMobileONStore::NotifyStoreEvent did not returned KErrCancel"));
+
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	storeAllStatus
+	//	byPassOnStore
+	//	list
+	//	deleteStatus
+	//	notifyStoreEventStatus
+	//	writeStatus
+    //  deleteAllStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(9,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0024::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0024");
+	}
+
+CCTSYIntegrationTestONStore0025::CCTSYIntegrationTestONStore0025(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0025::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0025::~CCTSYIntegrationTestONStore0025()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0025::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0025
+ * @SYMFssID BA/CTSY/PBON-0025
+ * @SYMTestCaseDesc Cancel get ON store info.
+ * @SYMTestPriority High
+ * @SYMTestActions 
+ * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Request to get phone store information by calling RMobilePhoneStore::GetInfo 
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+
+	// $CTSYKnownFailure defect id=50009. CMmONStoreTsy::GetInfoL completes RMobileONStore::GetInfo() request to the test client with error KErrNotReady
+	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d </font>"), 50009);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+
+	// Cancel get information by calling RTelSubSession::CancelAsyncRequest(EMobilePhoneStoreGetInfo) 
+	onStore.CancelAsyncRequest(EMobilePhoneStoreGetInfo);
+
+	// Check KErrCancel is returned or KErrNone if it was too late to cancel.
+	ASSERT_EQUALS(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	ASSERT_TRUE(((onStoreInfoStatus.Int()== KErrCancel)||(onStoreInfoStatus.Int()== KErrNone)), _L("RMobileONStore::GetInfo returned an error"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//	onStoreInfoStatus
+	CleanupStack::PopAndDestroy(&onStoreInfoStatus);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0025::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0025");
+	}
+
+CCTSYIntegrationTestONStore0026::CCTSYIntegrationTestONStore0026(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0026::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0026::~CCTSYIntegrationTestONStore0026()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0026::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0026
+ * @SYMFssID BA/CTSY/PBON-0026
+ * @SYMTestCaseDesc Read all ON store entries.
+ * @SYMTestPriority High
+ * @SYMTestActions CRetrieveMobilePhoneONList::RetrieveListL
+ * @SYMTestExpectedResults Pass - All entries read correctly.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify all entries read correctly.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+	// Backup first Entry
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWholeStore 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWholeStore,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Ensure there are 2 entries in the ON store. 
+	TExtEtelRequestStatus deleteAllStatus(onStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	onStore.DeleteAll (deleteAllStatus);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::DeleteAll timed out"));
+	CHECK_EQUALS_L(deleteAllStatus.Int(), KErrNone, _L("RMobileONStore::DeleteAll returned an error"));
+    TInt numberOfUsedEntries = 2 ;
+	CHECK_TRUE_L((onStoreInfo.iTotalEntries>=numberOfUsedEntries), _L("The ON store dose not have 2 entries!"));
+	CMobilePhoneONList *writeList = CMobilePhoneONList::NewL ();
+	CleanupStack::PushL (writeList);
+	RMobileONStore::TMobileONEntryV1 entry;
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iText = _L("Entry2");
+	entry.iNumber.iTelNumber = _L("12012032");
+	for (TInt i=1; i <= numberOfUsedEntries;++i)
+		{
+		entry.iIndex=i;
+		if ( entry.iNumber.iTelNumber[0]=='9')
+			{
+			entry.iNumber.iTelNumber[0]='0';
+			}
+		else
+			{
+			entry.iNumber.iTelNumber[0]++;
+			}
+		writeList->AddEntryL (entry);
+		}
+	DEBUG_PRINTF1( _L("Store all has cause panic, using bypass"));
+	// Bypass : The session manager can not be used, since a PANIC is created
+	RMobileONStore byPassOnStore;
+	User::LeaveIfError(byPassOnStore.Open(phone));
+	CleanupClosePushL(byPassOnStore);
+	// By pass end
+	TExtEtelRequestStatus storeAllStatus(byPassOnStore, EMobileONStoreStoreAll);
+	CleanupStack::PushL (storeAllStatus);
+	byPassOnStore.StoreAllL (storeAllStatus, writeList);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(storeAllStatus, ETimeMedium), KErrNone, _L("RMobileONStore::StoreAllL timed out"));
+	CHECK_EQUALS_L(storeAllStatus.Int(), KErrNone, _L("RMobileONStore::StoreAllL returned an error"));
+	
+	
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Use the helper class for CRetrieveMobilePhoneONList to read entries from the ON store. 
+	TInt err;
+	CRetrieveMobilePhoneONListExec *helper=CRetrieveMobilePhoneONListHelper::NewL(onStore);
+    CleanupStack::PushL(helper);
+	CMobilePhoneONList *readList = helper->DoGetList(err);
+	ASSERT_EQUALS(err, KErrNone, _L("CRetrieveMobilePhoneONListHelper::DoGetList is not able to get the list"));
+	
+
+	// Check that all 2 entries have been read and are correct.
+	ASSERT_EQUALS(readList->Enumerate(), writeList->Enumerate(), _L("CRetrieveMobilePhoneONListHelper::DoGetList entries list size is wrong"));
+	for (TInt i=0; i<readList->Enumerate();++i)
+		{
+		ASSERT_TRUE(CompareEntries (readList->GetEntryL (i), writeList->GetEntryL (i)), _L("CRetrieveMobilePhoneONListHelper::DoGetListe entries are not the same"));
+		}
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	// Pop:
+    // helper
+	//	storeAllStatus
+	//	byPassOnStore
+	//	writeList
+    //  deleteAllStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(7,&backup);
+
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0026::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0026");
+	}
+
+CCTSYIntegrationTestONStore0027::CCTSYIntegrationTestONStore0027(
+		CEtelSessionMgr& aEtelSessionMgr) :
+	CCTSYIntegrationTestONStoreBase(aEtelSessionMgr)
+/**
+ * Constructor.
+ */
+	{
+	SetTestStepName(CCTSYIntegrationTestONStore0027::GetTestStepName());
+	}
+
+CCTSYIntegrationTestONStore0027::~CCTSYIntegrationTestONStore0027()
+/**
+ * Destructor.
+ */
+	{
+	}
+
+TVerdict CCTSYIntegrationTestONStore0027::doTestStepL()
+/**
+ * @SYMTestCaseID BA-CTSY-INT-PBON-0027
+ * @SYMFssID BA/CTSY/PBON-0027
+ * @SYMTestCaseDesc Cancel read all ON store entries.
+ * @SYMTestPriority High
+ * @SYMTestActions CAsyncRetrieveStoreList::CancelReq
+ * @SYMTestExpectedResults Pass - KErrCancel or KErrNone if it was too late to cancel.
+ * @SYMTestType CIT
+ * @SYMTestCaseDependencies live/automatic
+ *
+ * Reason for test: Verify request is cancelled.
+ *
+ * @return - TVerdict code
+ */
+	{
+
+	//
+	// SET UP
+	//
+
+	// Open the ADN store
+	CHECK_TRUE_L(OpenADNStoreL(),_L("CCTSYIntegrationTestONStoreBase::OpenADNStoreL Failed"));
+
+	// Backup first Entry
+	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL (KMainServer, KMainPhone);
+	RMobileONStore& onStore = iEtelSessionMgr.GetONStoreL (KMainServer,
+			KMainPhone, KMainONStore);
+	TBackupAllEntries backup(*this,onStore);
+	CHECK_TRUE_L(backup.BackupL(), _L("TBackupAllEntries::Backup Could not backup"));
+	CleanupStack::PushL (backup);
+
+	// Ensure RMobilePhoneStore::GetInfo returns iCaps in set of KCapsWholeStore 
+	RMobileONStore::TMobileONStoreInfoV1 onStoreInfo;
+	RMobileONStore::TMobileONStoreInfoV1Pckg onStoreInfoPckg(onStoreInfo);
+	TExtEtelRequestStatus onStoreInfoStatus(onStore, EMobilePhoneStoreGetInfo);
+	CleanupStack::PushL (onStoreInfoStatus);
+	onStore.GetInfo (onStoreInfoStatus, onStoreInfoPckg);
+	CHECK_EQUALS_L(WaitForRequestWithTimeOut(onStoreInfoStatus, ETimeMedium),
+			KErrNone, _L("RMobileONStore::GetInfo timed out"));
+	CHECK_EQUALS_L(onStoreInfoStatus.Int(), KErrNone, _L("RMobileONStore::GetInfo returned an error"));
+	CHECK_BITS_SET_L(onStoreInfo.iCaps, RMobilePhoneStore::KCapsWholeStore,KNoUnwantedBits, _L("RMobileONStore::GetInfo returned incorrect store caps"));
+
+	// Fill SIM phone book. 
+	RMobileONStore::TMobileONEntryV1 entry;
+	RMobileONStore::TMobileONEntryV1Pckg writePckg(entry);
+	TExtEtelRequestStatus writeStatus(onStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+	entry.iMode=RMobilePhone::ENetworkModeGsm;
+	entry.iService=RMobilePhone::ETelephony;
+	entry.iNumber.iNumberPlan = RMobilePhone::ENationalNumberPlan;
+	entry.iNumber.iTypeOfNumber = RMobilePhone::ENationalNumber;
+	entry.iNumber.iTelNumber = _L("12012030");
+	entry.iText = _L("Entry11");
+	TInt usedEntries,totalEntries;
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	for (; usedEntries<totalEntries;++usedEntries)
+		{
+		entry.iIndex=-1;
+		onStore.Write (writeStatus, writePckg);
+		CHECK_EQUALS_L(WaitForRequestWithTimeOut(writeStatus, ETimeMedium),
+				KErrNone, _L("RMobileONStore::Write timed out"));
+		CHECK_EQUALS_L(writeStatus.Int(), KErrNone, _L("RMobileONStore::Write returned an error"));
+		}
+	CHECK_TRUE_L(GetUsedandTotalEntriesL(onStore,phone,usedEntries,totalEntries),_L("RMobileONStore::GetInfo can not get the number of used entries"));
+	CHECK_EQUALS_L(usedEntries,totalEntries, _L("RMobileONStore::GetInfo Unexpected number of iUsedEntries returned" ));
+
+
+	//
+	// SET UP END
+	//
+
+	StartTest ();
+
+	//
+	// TEST START
+	//
+
+
+	// Use the helper class for CRetrieveMobilePhoneONList to read entries from the ON store. 
+	TInt err;
+	CRetrieveMobilePhoneONListExec *helper=CRetrieveMobilePhoneONListHelper::NewL(onStore);
+	CleanupStack::PushL(helper);
+	CMobilePhoneONList *readList = helper->DoGetList(err,ETrue);
+
+	// Wait one second. 
+	User::After(KOneSecond);
+
+	// Cancel the request immediately. 
+	
+	// Check KErrCancel is returned or KErrNone if it was too late to cancel.
+	ASSERT_TRUE(((err== KErrCancel) ||(err== KErrNone)), _L("CRetrieveMobilePhoneONListHelper::DoGetList is not able to get the list"));
+
+
+	//
+	// TEST END
+	//
+
+	StartCleanup();
+
+	
+	// Pop:
+	//  helper
+	//  writeStatus
+	//	onStoreInfoStatus
+	//	backup
+	CleanupStack::PopAndDestroy(4,&backup);
+    
+	return TestStepResult();
+	}
+
+TPtrC CCTSYIntegrationTestONStore0027::GetTestStepName()
+/**
+ * @return The test step name.
+ */
+	{
+	return _L("CCTSYIntegrationTestONStore0027");
+	}
+
+
+TBackupAllEntries::TBackupAllEntries(CCTSYIntegrationTestONStoreBase &aBase,
+		RMobileONStore &aOnStore) : iValid(EFalse), iOnStore(aOnStore), iBase(aBase),
+                                     							iHelper(NULL), iList(NULL)
+/*
+ * Constructor
+ * @param aBase pointer to the test.
+ * @param aOnStore reference to a store session
+ *
+ */
+{
+}
+
+TBool TBackupAllEntries::BackupL()
+/*
+ * This function save the first entry in the storem and return false if its fails
+ *
+ * @return true if the backup was successful
+ *
+ */	
+	{
+	iValid=EFalse;
+    if(iList!=NULL)
+        return iValid;
+    if(iHelper!=NULL)
+        return iValid;
+
+    // Read All the items from the store
+	TInt err;
+	iHelper=CRetrieveMobilePhoneONListHelper::NewL(iOnStore);
+    CleanupStack::PushL(iHelper);
+	iList = iHelper->DoGetList(err);
+    if((err!=KErrNone)||(iList->Enumerate()==0))
+        {
+        iList=NULL;
+        CleanupStack::PopAndDestroy(iHelper);
+        iHelper=NULL;
+        return iValid;
+        }
+    iValid=ETrue;
+	CleanupStack::Pop(1);
+    return iValid;
+	}
+
+void TBackupAllEntries::DoCleanupL(TAny* aPtr)
+/*
+ * This function is a static clean up function to be saved in the cleanup stack. Its restore the saved entry to the first entry in the phone
+ *
+ * @param aPtr a pointer to a TBackupAllEntries instance.
+ *
+ */	
+	{
+	TBackupAllEntries* me = static_cast<TBackupAllEntries*>(aPtr);
+	me->CleanupL();
+	}
+
+void TBackupAllEntries::CleanupL()
+/*
+ * This function restore the saved entry to the first entry in the phone
+ *
+ */	
+	{
+	if(!iValid)
+		return;
+    CleanupStack::PushL(iHelper);
+    TExtEtelRequestStatus deleteAllStatus(iOnStore, EMobilePhoneStoreDeleteAll);
+	CleanupStack::PushL (deleteAllStatus);
+	TExtEtelRequestStatus writeStatus(iOnStore, EMobilePhoneStoreWrite);
+	CleanupStack::PushL (writeStatus);
+
+	iOnStore.DeleteAll (deleteAllStatus);
+    iBase.WaitForRequestWithTimeOut(deleteAllStatus, ETimeMedium);
+    for(TInt i=0;i<iList->Enumerate();++i)
+    	{
+    	RMobileONStore::TMobileONEntryV1Pckg writePckg(iList->GetEntryL (i));
+    	iOnStore.Write (writeStatus, writePckg);
+    	iBase.WaitForRequestWithTimeOut(writeStatus, ETimeMedium);
+    	}
+
+	CleanupStack::PopAndDestroy(3);
+    iHelper=NULL;
+    iList=NULL;
+    iValid=EFalse;
+	}
+
+TBackupAllEntries::operator TCleanupItem()
+/*
+ * This operator create a TCleanupItem to save a pointer to the DoCleanup static function and this in the cleanup stack
+ *
+ */	
+	{
+	return TCleanupItem(DoCleanupL,this);
+	}