telephonyserverplugins/common_tsy/test/component/src/cctsyonstorefu.cpp
changeset 19 1f776524b15c
parent 0 3553901f7fa8
child 24 6638e7f4bd8f
child 56 ab72d5c1d770
--- a/telephonyserverplugins/common_tsy/test/component/src/cctsyonstorefu.cpp	Tue Feb 02 01:41:59 2010 +0200
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyonstorefu.cpp	Fri Mar 19 09:55:57 2010 +0200
@@ -32,6 +32,8 @@
 #include "cctsyactiveretriever.h"
 #include <mmretrieve.h>
 
+const TInt KOneSecond=1000000;  // Used in a time out function, 1 second (in microSeconds)
+
 CTestSuite* CCTsyONStoreFU::CreateSuiteL(const TDesC& aName)
 	{
 	SUB_SUITE;
@@ -61,7 +63,10 @@
 	ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestDelete0003L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestDelete0004L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestDelete0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001L);
+    ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001L);
+    ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001bL);
+    ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001cL);
+    ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001dL);
 	ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0002L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0003L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0004L);
@@ -1199,6 +1204,7 @@
     ASSERT_EQUALS(KErrNone, ret);
     CleanupClosePushL(onStore);
 
+    // Test 1: Bad package size
     TRequestStatus requestStatus;
     RMobileNamStore::TMobileNamEntryV1 info;    // bad param 
     RMobileNamStore::TMobileNamEntryV1Pckg infoPckg(info);
@@ -1208,6 +1214,16 @@
     User::WaitForRequest(requestStatus);
     ASSERT_EQUALS(KErrArgument, requestStatus.Int());
 
+    // Test 2: Bad index
+    RMobileONStore::TMobileONEntryV1 info2;  
+    RMobileONStore::TMobileONEntryV1Pckg infoPckg2(info2);
+    info2.iIndex = -2; // bad param
+    
+    onStore.Read(requestStatus, infoPckg2);
+
+    User::WaitForRequest(requestStatus);
+    ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+    
     AssertMockLtsyStatusL();
 
     CleanupStack::PopAndDestroy(2); // this, onStore
@@ -1602,32 +1618,26 @@
 	ASSERT_EQUALS(KErrNone, ret);
 	CleanupClosePushL(onStore);
 
+	// Test 1: Bad index
 	TRequestStatus requestStatus;
     RMobileONStore::TMobileONEntryV1 info;  
     RMobileONStore::TMobileONEntryV1Pckg infoPckg(info);
     
     info.iIndex = -2;   //bad index
 	    
-    TMockLtsyData1<RMobileONStore::TMobileONEntryV1> tsyData(info);
-    tsyData.SerialiseL(expData);
-
-    const TInt KLocation(2);
-    TInt location(KLocation);
-
-    TMockLtsyData1<TInt> tsyData2(location);           
-    tsyData2.SerialiseL(completeData);
-
-	iMockLTSY.ExpectL(EMmTsyONStoreWriteIPC, expData);
-	iMockLTSY.CompleteL(EMmTsyONStoreWriteIPC, KErrNone, completeData);
-	
     onStore.Write(requestStatus, infoPckg);
-    
     User::WaitForRequest(requestStatus);  
     
-	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 160401);	
-          
-	ASSERT_EQUALS(KLocation, info.iIndex);	
-	ASSERT_TRUE(KErrNone != requestStatus.Int());	
+    ASSERT_EQUALS(KErrArgument, requestStatus.Int());
+	
+	// Test 2: Bad package
+    RMobileNamStore::TMobileNamEntryV1 info2;    // bad param 
+    RMobileNamStore::TMobileNamEntryV1Pckg infoPckg2(info2);
+    
+    onStore.Write(requestStatus, infoPckg);
+    User::WaitForRequest(requestStatus);  
+    
+    ASSERT_EQUALS(KErrArgument, requestStatus.Int());
 
 	AssertMockLtsyStatusL();
 
@@ -2093,6 +2103,12 @@
 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
 	OpenPhoneL();
 
+	// Open ADN phonebook
+    TName name(KETelIccAdnPhoneBook);
+    RMobilePhoneBookStore bookStore;
+    OpenPhoneBookStoreL(bookStore, name, iPhone);
+    CleanupClosePushL(bookStore);
+
 	RBuf8 expData;
 	CleanupClosePushL(expData);
 
@@ -2177,50 +2193,490 @@
 
 	AssertMockLtsyStatusL();
 	
-	//-------------------------------------------------------------------------
-	// TEST F: DEF132954: GetInfo fails when another phonebook's initialisation
-	// is in progress.
-	//-------------------------------------------------------------------------
-	
-	TName name(KETelIccAdnPhoneBook);
-	RMobilePhoneBookStore bookStore;
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	    	
-	RBuf8 data2;
-	CleanupClosePushL(data2);
-	    	
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-              
-	//EMmTsyPhoneBookStoreInitIPC
-	TMockLtsyPhoneBookData0 storeInitData(name);
-	storeInitData.SerialiseL(data);
-	        
-	iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data);		
-	
-	//Open
-	ret = bookStore.Open(iPhone, name);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(bookStore);
-	
-	User::WaitForRequest(mockLtsyStatus);        	
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
-	
-	onStore.GetInfo(requestStatus, storePckg);		
-	    
-	User::WaitForRequest(requestStatus);        
-	ASSERT_EQUALS(KErrNotReady, requestStatus.Int());
-
-	AssertMockLtsyStatusL(); 	
-		    		
-	CleanupStack::PopAndDestroy(3); //data, data2, bookStore
-	
-	CleanupStack::PopAndDestroy(4, this); // this, etc...
+	CleanupStack::PopAndDestroy(5, this); // this, etc...
 	}
 
 
 /**
+@SYMTestCaseID BA-CTSY-PBON-OSGI-0001b
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileONStore::GetInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyONStoreFU::TestGetInfo0001bL()
+    {
+	// Since we can not get the ON store info from the SIM if the ADN storage was not initilized, the 
+	// CTSY must make sure that the ADN storage was initilize before requesting to get the ON store info from 
+	// the LTSY. This test test if the CTSY knows to create a new ADN and wait for the initilization to complete.
+    OpenEtelServerL(EUseExtendedError);
+    CleanupStack::PushL(TCleanupItem(Cleanup,this));
+    OpenPhoneL();
+
+    RBuf8 expData;
+    CleanupClosePushL(expData);
+
+    RBuf8 completeData;
+    CleanupClosePushL(completeData);
+
+    RMobileONStore  onStore;
+    TInt ret = onStore.Open(iPhone);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(onStore);
+        
+        
+    TRequestStatus requestStatus;
+    RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+    RMobileONStore::TMobileONStoreInfoV1Pckg storePckg(storeInfo);
+    
+    TName name(KETelIccAdnPhoneBook);
+    expData.Close();
+    TMockLtsyPhoneBookData0 storeInitData(name);
+    storeInitData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, expData);   
+
+    onStore.GetInfo(requestStatus, storePckg);      
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    User::After(KOneSecond);
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    CStorageInfoData storageData;
+    SetStorageInfoData(storageData);
+    
+    ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion());
+    
+    TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData);
+    completeData.Close();
+    retStoreInitC.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, completeData, 0);
+
+    //EMmTsyPhoneBookStoreCacheIPC
+    CArrayPtrSeg<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
+    CleanupStack::PushL(cache);
+    
+    TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> storeCacheData(name, cache);
+    completeData.Close();
+    storeCacheData.SerialiseL(completeData);   
+    expData.Close();
+    storeInitData.SerialiseL(expData);
+    
+                  
+    iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, expData);
+    iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, completeData, 0);
+    
+    TInt readIndex(-1);
+    TMockLtsyData1<TInt> tsyData(readIndex);
+    expData.Close();
+    tsyData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMmTsyONStoreGetInfoIPC, expData);
+
+    ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion());
+
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    User::After(KOneSecond);
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+    const TInt KNumOfEntries = 11;
+    const TInt KUsedEntries = 21;
+    const TInt KNameLen = 31;
+    const TInt KNumLen = 41;
+    TServiceType serviceType = {KNumOfEntries, KUsedEntries, KNameLen, KNumLen};
+    TMockLtsyData1<TServiceType> tsyData2(serviceType);           
+    completeData.Close();
+    tsyData2.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMmTsyONStoreGetInfoIPC, KErrNone, completeData);
+    
+    
+    User::WaitForRequest(requestStatus);        
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());   
+        
+    ASSERT_EQUALS(RMobilePhoneStore::EOwnNumberStore, storeInfo.iType);
+    ASSERT_EQUALS(KONStoreCaps, storeInfo.iCaps);
+    ASSERT_TRUE(0 == storeInfo.iName.Compare(KETelOwnNumberStore));
+    ASSERT_EQUALS(KUsedEntries, storeInfo.iUsedEntries);
+    ASSERT_EQUALS(KNumOfEntries, storeInfo.iTotalEntries);
+    ASSERT_EQUALS(KNumLen, storeInfo.iNumberLen);
+    ASSERT_EQUALS(KNameLen, storeInfo.iTextLen);
+        
+    CleanupStack::PopAndDestroy(5, this); // this, etc...
+    }
+
+/**
+@SYMTestCaseID BA-CTSY-PBON-OSGI-0001c
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store and another store is initilize
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileONStore::GetInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyONStoreFU::TestGetInfo0001cL()
+    {
+	// Since we can not get the ON store info from the SIM if the ADN storage was not initilized, the 
+	// CTSY must make sure that the ADN storage was initilize before requesting to get the ON store info from 
+	// the LTSY. This test test if the CTSY knows what to do when another storage creation was initilize but not completed.
+    OpenEtelServerL(EUseExtendedError);
+    CleanupStack::PushL(TCleanupItem(Cleanup,this));
+    OpenPhoneL();
+
+    RBuf8 expData;
+    CleanupClosePushL(expData);
+
+    RBuf8 completeData;
+    CleanupClosePushL(completeData);
+
+    RMobileONStore  onStore;
+    TInt ret = onStore.Open(iPhone);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(onStore);
+        
+        
+    TRequestStatus requestStatus;
+    RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+    RMobileONStore::TMobileONStoreInfoV1Pckg storePckg(storeInfo);
+    
+    TName mbdnName(KETelIccMbdnPhoneBook);
+    expData.Close();
+    TMockLtsyPhoneBookData0 storeInitData(mbdnName);
+    storeInitData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, expData);
+    
+    RMobilePhoneBookStore mbdnBookStore;
+    CleanupClosePushL(mbdnBookStore);
+    ASSERT_EQUALS(KErrNone, mbdnBookStore.Open(iPhone, KETelIccMbdnPhoneBook));
+    
+
+    onStore.GetInfo(requestStatus, storePckg);      
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    User::After(KOneSecond);
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    CStorageInfoData storageData;
+    SetStorageInfoData(storageData);
+    
+    ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion());
+    
+    TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(mbdnName, storageData);
+    completeData.Close();
+    retStoreInitC.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, completeData, 0);
+
+    //EMmTsyPhoneBookStoreCacheIPC
+    CArrayPtrSeg<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
+    CleanupStack::PushL(cache);
+    
+    TName adnName(KETelIccAdnPhoneBook);
+    TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> storeCacheData(adnName, cache);
+    completeData.Close();
+    storeCacheData.SerialiseL(completeData);   
+    TMockLtsyPhoneBookData0 adnStoreInitData(adnName);
+    expData.Close();
+    adnStoreInitData.SerialiseL(expData);
+    
+                  
+    iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, expData);
+    iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, completeData, 0);
+    
+    TInt readIndex(-1);
+    TMockLtsyData1<TInt> tsyData(readIndex);
+    expData.Close();
+    tsyData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMmTsyONStoreGetInfoIPC, expData);
+
+    ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion());
+
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    User::After(KOneSecond);
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+    const TInt KNumOfEntries = 12;
+    const TInt KUsedEntries = 23;
+    const TInt KNameLen = 3;
+    const TInt KNumLen = 14;
+    TServiceType serviceType = {KNumOfEntries, KUsedEntries, KNameLen, KNumLen};
+    TMockLtsyData1<TServiceType> tsyData2(serviceType);           
+    completeData.Close();
+    tsyData2.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMmTsyONStoreGetInfoIPC, KErrNone, completeData);
+    
+    
+    User::WaitForRequest(requestStatus);        
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());   
+        
+    ASSERT_EQUALS(RMobilePhoneStore::EOwnNumberStore, storeInfo.iType);
+    ASSERT_EQUALS(KONStoreCaps, storeInfo.iCaps);
+    ASSERT_TRUE(0 == storeInfo.iName.Compare(KETelOwnNumberStore));
+    ASSERT_EQUALS(KUsedEntries, storeInfo.iUsedEntries);
+    ASSERT_EQUALS(KNumOfEntries, storeInfo.iTotalEntries);
+    ASSERT_EQUALS(KNumLen, storeInfo.iNumberLen);
+    ASSERT_EQUALS(KNameLen, storeInfo.iTextLen);
+        
+    CleanupStack::PopAndDestroy(6, this); // this, etc...
+    }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBON-OSGI-0001d
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store and SIM is not ready
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileONStore::GetInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyONStoreFU::TestGetInfo0001dL()
+    {
+	// Since we can not get the ON store info from the SIM if the ADN storage was not initilized, the 
+	// CTSY must make sure that the ADN storage was initilize before requesting to get the ON store info from 
+	// the LTSY. We can not initilize the storage if the SIM is not ready. This test test if the CTSY knows 
+	// to wait for the SIM to be ready, the wait for the storage to complete the initilization and only then to
+	// ask the ON storage info from the LTSY.
+    OpenEtelServerL(EUseExtendedError);
+    CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+    RBuf8 expData;
+    CleanupClosePushL(expData);
+
+    RBuf8 completeData;
+    CleanupClosePushL(completeData);
+
+    // Open the phone
+    RMobilePhone::TMobilePhoneNetworkInfoV8 homeNetwork;
+    homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma;
+    homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent;
+    homeNetwork.iBandInfo = RMobilePhone::EBandUnknown;
+    homeNetwork.iCountryCode = _L("234");
+    homeNetwork.iCdmaSID = _L("");
+    homeNetwork.iAnalogSID = _L("");
+    homeNetwork.iNetworkId = _L("23499");
+    homeNetwork.iDisplayTag = _L("symbian");
+    homeNetwork.iShortName = _L("symbian");
+    homeNetwork.iLongName = _L("symbian mobile");
+    homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran;
+    homeNetwork.iEgprsAvailableIndicator = ETrue;
+    homeNetwork.iHsdpaAvailableIndicator = ETrue;
+    homeNetwork.iHsupaAvailableIndicator = ETrue;
+    TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkInfoV8> homeNetworkData(homeNetwork);
+    homeNetworkData.SerialiseL(completeData);
+
+    TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName);
+    ASSERT_EQUALS(KErrNone, err);
+
+    err=iMockLTSY.Connect();
+    ASSERT_EQUALS(KErrNone, err);
+
+    // EMmTsyBootNotifyModemStatusReadyIPC
+    ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion());
+    iMockLTSY.CompleteL(EMmTsyBootNotifyModemStatusReadyIPC,KErrNone);
+
+    // EMobilePhoneGetNetworkRegistrationStatus
+    iMockLTSY.ExpectL(EMobilePhoneGetNetworkRegistrationStatus);
+    iMockLTSY.CompleteL(EMobilePhoneGetNetworkRegistrationStatus,KErrNone,0);
+    // EMmTsyBootNotifySimStatusReadyIPC
+    iMockLTSY.ExpectL(EMmTsyBootNotifySimStatusReadyIPC);
+
+    ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion());
+    
+    
+    
+
+    
+    RMobileONStore  onStore;
+    TInt ret = onStore.Open(iPhone);
+    ASSERT_EQUALS(KErrNone, ret);
+    CleanupClosePushL(onStore);
+        
+        
+    TRequestStatus requestStatus;
+    RMobileONStore::TMobileONStoreInfoV1 storeInfo;
+    RMobileONStore::TMobileONStoreInfoV1Pckg storePckg(storeInfo);
+    
+    onStore.GetInfo(requestStatus, storePckg);      
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    User::After(KOneSecond);
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion());
+
+    TRequestStatus mockLtsyStatus;
+    iMockLTSY.NotifyTerminated(mockLtsyStatus);
+    iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0);
+                        
+    // EMobilePhoneGetHomeNetwork
+    iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork);
+    iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,completeData,0);
+
+    // EMmTsyPhoneGetPin1DisableSupportedIPC
+    iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC);
+    
+    // EMmTsySimRefreshRegisterIPC
+    iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC);
+    
+    // EMobilePhoneGetServiceTable
+    RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable;
+    TMockLtsyData1<RMobilePhone::TMobilePhoneServiceTable> serviceTableData(serviceTable);
+    expData.Close();
+    serviceTableData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, expData);
+  
+    TName name(KETelIccAdnPhoneBook);
+    expData.Close();
+    TMockLtsyPhoneBookData0 storeInitData(name);
+    storeInitData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, expData);   
+
+
+    CStorageInfoData storageData;
+    SetStorageInfoData(storageData);
+    
+    
+    TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData);
+    completeData.Close();
+    retStoreInitC.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, completeData, 0);
+
+
+    // EMobilePhoneGetALSLine
+    iMockLTSY.ExpectL(EMobilePhoneGetALSLine);
+  
+    iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC);
+  
+    // EMobilePhoneGetIccMessageWaitingIndicators
+    iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators);
+
+    //ECustomCheckAlsPpSupportIPC
+    iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC);
+
+    //EMobilePhoneGetCustomerServiceProfile
+    iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile);
+    
+    
+    // Complete for EMmTsyPhoneGetPin1DisableSupportedIPC 
+    TBool pin1DisableSupport = ETrue;
+    TMockLtsyData1<TBool> pin1DisableSupportData(pin1DisableSupport);
+    completeData.Close();
+    pin1DisableSupportData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,completeData,0);
+
+    // Complete for EMmTsySimRefreshRegisterIPC
+    iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0);       
+
+    // Complete for EMobilePhoneGetServiceTable
+    RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult;
+    serviceTableResult.iServices1To8  = 0xFF;
+    serviceTableResult.iServices9To16 = 0xFF;
+    serviceTableResult.iServices17To24= 0xFF;
+    serviceTableResult.iServices25To32= 0xFF;
+    serviceTableResult.iServices33To40= 0xFF;
+    serviceTableResult.iServices41To48= 0xFF;
+    serviceTableResult.iServices49To56= 0xFF;
+    TMockLtsyData1<RMobilePhone::TMobilePhoneServiceTableV1> serviceTableResultData(serviceTableResult);
+    completeData.Close();
+    serviceTableResultData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,completeData,0);
+    
+    
+    // Complete for EMobilePhoneGetALSLine
+    RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary;
+    TMockLtsyData1<RMobilePhone::TMobilePhoneALSLine> alsLineData(alsLine);
+    completeData.Close();
+    alsLineData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,completeData,0);
+
+    
+    
+    // Complete for EMobilePhoneGetIccMessageWaitingIndicators
+    RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators;
+    TMockLtsyData1<RMobilePhone::TMobilePhoneMessageWaitingV1>
+                                    indicatorsData(expectedMessageIndicators);
+    completeData.Close();
+    indicatorsData.SerialiseL(completeData); 
+    iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, completeData);
+    
+    //Complete for ECustomCheckAlsPpSupportIPC
+    RMmCustomAPI::TAlsSupport alsSupport(RMmCustomAPI::EAlsSupportOff); 
+    TMockLtsyData1< RMmCustomAPI::TAlsSupport > alsSupportData(alsSupport);
+    completeData.Close();   
+    alsSupportData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData);
+    
+    // Complete for EMobilePhoneGetCustomerServiceProfile
+    RMobilePhone::TMobilePhoneCspFileV1 completeCsp;
+    completeCsp.iCallOfferingServices = 1;
+    completeCsp.iCallRestrictionServices = 2;
+    completeCsp.iOtherSuppServices = 3;
+    completeCsp.iCallCompletionServices = 4;
+    completeCsp.iTeleservices = 5;
+    completeCsp.iCphsTeleservices = 6;
+    completeCsp.iCphsFeatures = 7;
+    completeCsp.iNumberIdentServices = 8;
+    completeCsp.iPhase2PlusServices = 9;
+    completeCsp.iValueAddedServices = 10;
+    TMockLtsyData1<RMobilePhone::TMobilePhoneCspFileV1> completeLtsyData(completeCsp);
+    completeData.Close();
+    completeLtsyData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMobilePhoneGetCustomerServiceProfile, KErrNone, completeData, 10); 
+
+    
+    //EMmTsyPhoneBookStoreCacheIPC
+    CArrayPtrSeg<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
+    CleanupStack::PushL(cache);
+    
+    TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> storeCacheData(name, cache);
+    completeData.Close();
+    storeCacheData.SerialiseL(completeData);   
+    TMockLtsyPhoneBookData0 adnStoreInitData(name);
+    expData.Close();
+    adnStoreInitData.SerialiseL(expData);
+    
+                  
+    iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, expData);
+    iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, completeData, 0);
+    
+    TInt readIndex(-1);
+    TMockLtsyData1<TInt> tsyData(readIndex);
+    expData.Close();
+    tsyData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMmTsyONStoreGetInfoIPC, expData);
+
+    ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion());
+
+    User::WaitForRequest(mockLtsyStatus);
+    AssertMockLtsyStatusL();
+
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    User::After(KOneSecond);
+    ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+    
+    const TInt KNumOfEntries = 11;
+    const TInt KUsedEntries = 21;
+    const TInt KNameLen = 31;
+    const TInt KNumLen = 41;
+    TServiceType serviceType = {KNumOfEntries, KUsedEntries, KNameLen, KNumLen};
+    TMockLtsyData1<TServiceType> tsyData2(serviceType);           
+    completeData.Close();
+    tsyData2.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMmTsyONStoreGetInfoIPC, KErrNone, completeData);
+    
+    
+    User::WaitForRequest(requestStatus);        
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());   
+        
+    ASSERT_EQUALS(RMobilePhoneStore::EOwnNumberStore, storeInfo.iType);
+    ASSERT_EQUALS(KONStoreCaps, storeInfo.iCaps);
+    ASSERT_TRUE(0 == storeInfo.iName.Compare(KETelOwnNumberStore));
+    ASSERT_EQUALS(KUsedEntries, storeInfo.iUsedEntries);
+    ASSERT_EQUALS(KNumOfEntries, storeInfo.iTotalEntries);
+    ASSERT_EQUALS(KNumLen, storeInfo.iNumberLen);
+    ASSERT_EQUALS(KNameLen, storeInfo.iTextLen);
+        
+    CleanupStack::PopAndDestroy(5, this); // this, etc...
+    }
+
+/**
 @SYMTestCaseID BA-CTSY-PBON-OSGI-0002
 @SYMComponent  telephony_ctsy
 @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileONStore::GetInfo
@@ -2236,6 +2692,12 @@
 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
 	OpenPhoneL();
 
+    // Open ADN phonebook
+    TName name(KETelIccAdnPhoneBook);
+    RMobilePhoneBookStore bookStore;
+    OpenPhoneBookStoreL(bookStore, name, iPhone);
+    CleanupClosePushL(bookStore);
+
 	TRequestStatus mockLtsyStatus;
 	iMockLTSY.NotifyTerminated(mockLtsyStatus);
 
@@ -2281,7 +2743,7 @@
 	User::WaitForRequest(mockLtsyStatus);
 	AssertMockLtsyStatusL();
 	
-	CleanupStack::PopAndDestroy(4); // expData, this
+	CleanupStack::PopAndDestroy(5); // expData, this
 	
 	}
 
@@ -2357,6 +2819,12 @@
 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
 	OpenPhoneL();
 
+    // Open ADN phonebook
+    TName name(KETelIccAdnPhoneBook);
+    RMobilePhoneBookStore bookStore;
+    OpenPhoneBookStoreL(bookStore, name, iPhone);
+    CleanupClosePushL(bookStore);
+
 	RTelServer telServer2;
 	TInt ret = telServer2.Connect();
 	ASSERT_EQUALS(KErrNone, ret);
@@ -2442,7 +2910,7 @@
 	
 	AssertMockLtsyStatusL();
 	
-	CleanupStack::PopAndDestroy(7, this); 
+	CleanupStack::PopAndDestroy(8, this); 
 	}