telephonyserverplugins/common_tsy/test/component/src/cctsyphonebookstorefu.cpp
changeset 19 1f776524b15c
parent 0 3553901f7fa8
child 17 3f227a47ad75
child 23 6b1d113cdff3
--- a/telephonyserverplugins/common_tsy/test/component/src/cctsyphonebookstorefu.cpp	Tue Feb 02 01:41:59 2010 +0200
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyphonebookstorefu.cpp	Fri Mar 19 09:55:57 2010 +0200
@@ -141,33 +141,39 @@
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestDelete00028L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestDelete00029L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestDelete00030L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0001L);     //adn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0001L);     //adn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0001bL);
 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0002L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0003L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0004L);
 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0005L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006L);     //fdn
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006bL);
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006bL);
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006cL);
 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0007L);  
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0008L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0009L);
 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00010L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011L);   //sdn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011L);   //sdn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011bL);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00012L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00013L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00014L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00015L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016L);    //vmbx
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016L);    //vmbx
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016bL);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00017L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00018L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00019L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00020L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00021L);    //bdn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00021L);    //bdn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00021bL);
 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00022L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00023L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00024L);
 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00025L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00026L);    //mbdn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00026L);    //mbdn
+    ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00026bL);
 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00027L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00028L);
 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00029L);
@@ -2121,9 +2127,24 @@
 @SYMTestType CT
 */
 void CCTsyPhoneBookStoreFU::TestGetInfo0001L()
-	{
-    AuxGetInfo1L(KETelIccAdnPhoneBook);	
-	}
+    {
+    AuxGetInfo1L(KETelIccAdnPhoneBook); 
+    }
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0001b
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for ADN phonebook with a slow SIM
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for ADN phonebook
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPhoneBookStoreFU::TestGetInfo0001bL()
+    {
+    AuxGetInfo1bL(KETelIccAdnPhoneBook); 
+    }
 
 
 
@@ -2168,9 +2189,9 @@
 @SYMTestType CT
 */
 void CCTsyPhoneBookStoreFU::TestGetInfo0006L()
-	{
-    AuxGetInfo1L(KETelIccFdnPhoneBook);	    
-	}
+    {
+    AuxGetInfo1L(KETelIccFdnPhoneBook);     
+    }
 
 /**
 @SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0006b
@@ -2236,6 +2257,21 @@
     CleanupStack::PopAndDestroy(4, this); // this, data, completeData, bookStore, cache   
     }
 
+
+/**
+@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0006c
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for FDN phonebook with a slow SIM
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for FDN phonebook
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPhoneBookStoreFU::TestGetInfo0006cL()
+    {
+    AuxGetInfo1bL(KETelIccFdnPhoneBook);     
+    }
+
 /**
 @SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0008
 @SYMComponent  telephony_ctsy
@@ -2277,9 +2313,23 @@
 @SYMTestType CT
 */
 void CCTsyPhoneBookStoreFU::TestGetInfo00011L()
-	{
-    AuxGetInfo1L(KETelIccSdnPhoneBook);	    
-	}
+    {
+    AuxGetInfo1L(KETelIccSdnPhoneBook);     
+    }
+
+/**
+@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00011b
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for SDN phonebook with a slow SIM
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for SDN phonebook
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPhoneBookStoreFU::TestGetInfo00011bL()
+    {
+    AuxGetInfo1bL(KETelIccSdnPhoneBook);     
+    }
 
 
 /**
@@ -2357,9 +2407,23 @@
 @SYMTestType CT
 */
 void CCTsyPhoneBookStoreFU::TestGetInfo00016L()
-	{
-    AuxGetInfo1L(KETelIccVoiceMailBox);	    
-	}
+    {
+    AuxGetInfo1L(KETelIccVoiceMailBox);     
+    }
+
+/**
+@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00016b
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for VMBX phonebook with a slow SIM
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for VMBX phonebook
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPhoneBookStoreFU::TestGetInfo00016bL()
+    {
+    AuxGetInfo1bL(KETelIccVoiceMailBox);     
+    }
 
 
 /**
@@ -2433,9 +2497,23 @@
 @SYMTestType CT
 */
 void CCTsyPhoneBookStoreFU::TestGetInfo00021L()
-	{
-    AuxGetInfo1L(KETelIccBdnPhoneBook);	    
-	}
+    {
+    AuxGetInfo1L(KETelIccBdnPhoneBook);     
+    }
+
+/**
+@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00021b
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for BDN phonebook with slow SIM
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for BDN phonebook
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPhoneBookStoreFU::TestGetInfo00021bL()
+    {
+    AuxGetInfo1bL(KETelIccBdnPhoneBook);     
+    }
 
 
 /**
@@ -2478,9 +2556,23 @@
 @SYMTestType CT
 */
 void CCTsyPhoneBookStoreFU::TestGetInfo00026L()
-	{
-    AuxGetInfo1L(KETelIccMbdnPhoneBook);	    
-	}
+    {
+    AuxGetInfo1L(KETelIccMbdnPhoneBook);        
+    }
+
+/**
+@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00026b
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for MBDN phonebook with slow SIM
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for MBDN phonebook
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsyPhoneBookStoreFU::TestGetInfo00026bL()
+    {
+    AuxGetInfo1bL(KETelIccMbdnPhoneBook);        
+    }
 
 
 
@@ -5446,7 +5538,7 @@
     	ASSERT_EQUALS((TUint16)0, bookInfo.iChangeCounter);	
     	if(!name.CompareF( KETelIccVoiceMailBox ))
     		{
-	    	ASSERT_EQUALS((TUint32)0, bookInfo.iCaps);	
+	    	ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo.iCaps);	
     		}
     	else
     		{
@@ -5502,6 +5594,14 @@
 	    					RMobilePhoneBookStore::KCapsRestrictedWriteAccess),
 	    		bookInfo.iCaps);	
     		}
+        else if( !name.CompareF( KETelIccVoiceMailBox ))
+            {
+            ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo.iCaps);
+            }
+        else if( !name.CompareF( KETelIccMbdnPhoneBook ))
+            {
+            ASSERT_EQUALS(KPBTypeMBDNCaps, bookInfo.iCaps);
+            }
     	else
     		{
 	    	ASSERT_EQUALS((TUint32)0, bookInfo.iCaps);	
@@ -5563,10 +5663,13 @@
     	ASSERT_TRUE(bookInfo.iLocation == bookInfo2.iLocation); 
     	ASSERT_TRUE(bookInfo.iIdentity == bookInfo2.iIdentity); 
     	ASSERT_TRUE(bookInfo.iChangeCounter == bookInfo2.iChangeCounter);   // no write or delete was done
-        if ( !name.CompareF( KETelIccVoiceMailBox ) || 
-        		!name.CompareF( KETelIccMbdnPhoneBook ) )
+        if ( !name.CompareF( KETelIccVoiceMailBox ) )
             {
-        	ASSERT_EQUALS(KCaps, bookInfo2.iCaps);	
+            ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo2.iCaps);  
+            }
+        else if ( !name.CompareF( KETelIccMbdnPhoneBook ) )
+            {
+            ASSERT_EQUALS(KPBTypeMBDNCaps, bookInfo2.iCaps);  
             }
         }
 
@@ -5615,6 +5718,130 @@
     }
     
 
+void CCTsyPhoneBookStoreFU::AuxGetInfo1bL(const TDesC& aName)
+    {
+	// Since we can not get the phone book info from the SIM if the phone book was not initilized, the 
+	// CTSY must make sure that the phone book  was initilize before requesting the info from 
+	// the LTSY. This test test if the CTSY knows to wait for the initilize request to complete 
+	// before requesting to get the phone book info.
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhone2L();
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	RBuf8 data2;
+	CleanupClosePushL(data2);
+
+	TName name(aName);
+	RMobilePhoneBookStore bookStore;
+	CleanupClosePushL(bookStore);
+	
+    TMockLtsyPhoneBookData0 storeInitData(name);
+    storeInitData.SerialiseL(data);
+  	iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data);	
+
+	TInt ret = bookStore.Open(iPhone, name);	
+	
+	ASSERT_EQUALS(KErrNone, ret);	
+	
+	TRequestStatus requestStatus;
+   	TRequestStatus mockLtsyStatus;
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 bookInfo;
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1Pckg bookPckg(bookInfo);
+	bookStore.GetInfo(requestStatus, bookPckg); 	
+	
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());	
+	User::After(KOneSecond);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());	
+	
+
+    CStorageInfoData storageData;
+	SetStorageInfoData(storageData);
+	
+    TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData); 
+    retStoreInitC.SerialiseL(data2);
+    iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data2, 0);
+
+    TInt expected = KErrNone;
+    TInt usedEntries(12);
+    if ( !aName.CompareF( KETelIccAdnPhoneBook ) ||
+            !aName.CompareF( KETelIccFdnPhoneBook ))
+        {
+        data.Close();
+        storeInitData.SerialiseL(data);
+        iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, data);
+        CArrayPtrSeg<CPhoneBookStoreEntry>* cache = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
+        CleanupStack::PushL(cache);
+    
+        TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> storeCacheData(name, cache);
+        data2.Close();
+        storeCacheData.SerialiseL(data2);   
+    
+                  
+        iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, data2, 0);
+        CleanupStack::PopAndDestroy(cache);
+        expected = KErrNotReady;
+        }
+    else if ( ( !aName.CompareF( KETelIccBdnPhoneBook ) ) || (!aName.CompareF( KETelIccMbdnPhoneBook ) ) )
+        {
+        usedEntries = 0;
+        }
+    else
+        {
+        data.Close();
+        TMockLtsyPhoneBookData0 tsyData(name);           
+        tsyData.SerialiseL(data);
+
+        iMockLTSY.ExpectL(EMmTsyPhoneBookStoreGetInfoIPC, data);
+        ASSERT_EQUALS(KRequestPending, requestStatus.Int());    
+        User::After(KOneSecond);
+        ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+        TMockLtsyPhoneBookData1< TInt > styData2(name, usedEntries);
+        data2.Close();    
+        styData2.SerialiseL(data2);
+        iMockLTSY.CompleteL(EMmTsyPhoneBookStoreGetInfoIPC, KErrNone, data2, 10);
+        }
+
+
+    User::WaitForRequest(requestStatus);        
+   	AssertMockLtsyStatusL();
+   	ASSERT_EQUALS(expected, requestStatus.Int());
+   	if ( ( aName.CompareF( KETelIccBdnPhoneBook ) ) && (KErrNone == expected) )
+   	    {
+        ASSERT_TRUE(0 == bookInfo.iName.Compare(name));
+        
+        ASSERT_EQUALS(usedEntries, bookInfo.iUsedEntries);	
+        ASSERT_EQUALS(-1, bookInfo.iTotalEntries);	
+        ASSERT_EQUALS(50, bookInfo.iMaxTextLength);	
+        ASSERT_EQUALS(50, bookInfo.iMaxNumLength);	
+        ASSERT_EQUALS(RMobilePhoneBookStore::ELocationIccMemory, bookInfo.iLocation);	
+        ASSERT_EQUALS((TUint16)0, bookInfo.iChangeCounter);	
+        if( !name.CompareF( KETelIccVoiceMailBox ))
+            {
+            ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo.iCaps);
+            }
+        else if( !name.CompareF( KETelIccMbdnPhoneBook ))
+            {
+            ASSERT_EQUALS(KPBTypeMBDNCaps, bookInfo.iCaps);
+            }
+        else if( !name.CompareF( KETelIccSdnPhoneBook ))
+            {
+            ASSERT_EQUALS((TUint32)RMobilePhoneStore::KCapsReadAccess, bookInfo.iCaps);
+            }
+        else
+            {
+            ASSERT_EQUALS((TUint32)0, bookInfo.iCaps);  
+            }
+	
+   	    }
+	AssertMockLtsyStatusL();
+
+	CleanupStack::PopAndDestroy(4, this); // data, data2, this...	
+    }
+
 
 void CCTsyPhoneBookStoreFU::AuxGetInfo2L(const TDesC& aName)
     {