telephonyserverplugins/common_tsy/test/component/src/cctsyphonebookstorefu.cpp
branchRCL_3
changeset 8 3f227a47ad75
parent 5 7ef16719d8cb
child 9 2492a6e4aed7
equal deleted inserted replaced
7:fe8b59ab9fa0 8:3f227a47ad75
   154 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0008L);
   154 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0008L);
   155 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0009L);
   155 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0009L);
   156 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00010L);
   156 	//ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00010L);
   157     ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011L);   //sdn
   157     ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011L);   //sdn
   158     ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011bL);
   158     ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011bL);
       
   159     ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011cL);
   159 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00012L);
   160 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00012L);
   160 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00013L);
   161 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00013L);
   161 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00014L);
   162 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00014L);
   162 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00015L);
   163 	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00015L);
   163     ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016L);    //vmbx
   164     ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016L);    //vmbx
  2329 void CCTsyPhoneBookStoreFU::TestGetInfo00011bL()
  2330 void CCTsyPhoneBookStoreFU::TestGetInfo00011bL()
  2330     {
  2331     {
  2331     AuxGetInfo1bL(KETelIccSdnPhoneBook);     
  2332     AuxGetInfo1bL(KETelIccSdnPhoneBook);     
  2332     }
  2333     }
  2333 
  2334 
       
  2335 /**
       
  2336 @SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00011c
       
  2337 @SYMComponent  telephony_ctsy
       
  2338 @SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for SDN phonebook when multiple phonebooks are opened simultaneously
       
  2339 @SYMTestPriority High
       
  2340 @SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for SDN phonebook
       
  2341 @SYMTestExpectedResults Pass
       
  2342 @SYMTestType CT
       
  2343 */
       
  2344 void CCTsyPhoneBookStoreFU::TestGetInfo00011cL()
       
  2345     {
       
  2346     AuxGetInfo1cL();
       
  2347     }
  2334 
  2348 
  2335 /**
  2349 /**
  2336 @SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00012
  2350 @SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00012
  2337 @SYMComponent  telephony_ctsy
  2351 @SYMComponent  telephony_ctsy
  2338 @SYMTestCaseDesc Test support cancelling in CTSY for RMobilePhoneBookStore::GetInfo for SDN phonebook
  2352 @SYMTestCaseDesc Test support cancelling in CTSY for RMobilePhoneBookStore::GetInfo for SDN phonebook
  5840 	AssertMockLtsyStatusL();
  5854 	AssertMockLtsyStatusL();
  5841 
  5855 
  5842 	CleanupStack::PopAndDestroy(4, this); // data, data2, this...	
  5856 	CleanupStack::PopAndDestroy(4, this); // data, data2, this...	
  5843     }
  5857     }
  5844 
  5858 
       
  5859 void CCTsyPhoneBookStoreFU::AuxGetInfo1cL()
       
  5860     {
       
  5861 	//
       
  5862 	// Open three phonebooks: ADN, FDN, SDN. Check that SDN phonebook is initialised correctly.
       
  5863 	//
       
  5864 	OpenEtelServerL(EUseExtendedError);
       
  5865 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
       
  5866 	OpenPhone2L();
       
  5867 
       
  5868 	RBuf8 dataS7;
       
  5869 	CleanupClosePushL(dataS7);
       
  5870 	RBuf8 dataS8;
       
  5871 	CleanupClosePushL(dataS8);
       
  5872 	RBuf8 dataS9;
       
  5873 	CleanupClosePushL(dataS9);	
       
  5874 	
       
  5875 	RBuf8 data2;
       
  5876 	CleanupClosePushL(data2);
       
  5877 
       
  5878 	TName nameS7(KETelIccAdnPhoneBook);
       
  5879 	RMobilePhoneBookStore bookStoreS7;
       
  5880 	CleanupClosePushL(bookStoreS7);
       
  5881 
       
  5882 	TName nameS8(KETelIccFdnPhoneBook);
       
  5883 	RMobilePhoneBookStore bookStoreS8;
       
  5884 	CleanupClosePushL(bookStoreS8);
       
  5885 
       
  5886 	TName nameS9(KETelIccSdnPhoneBook);
       
  5887 	RMobilePhoneBookStore bookStoreS9;
       
  5888 	CleanupClosePushL(bookStoreS9);
       
  5889 	
       
  5890 	/*
       
  5891 	Test scenario:
       
  5892 		We open three bookstores: S7, S8, S9 (in that order).
       
  5893 		We then call GetInfo on S9.
       
  5894 	
       
  5895 	LTSY must receive (>>) and complete (<<) the following requests in the following sequence:
       
  5896 	>> EMmTsyPhoneBookStoreInitIPC (S7)
       
  5897 	<< EMmTsyPhoneBookStoreInitIPC (S7)
       
  5898 	>> EMmTsyPhoneBookStoreCacheIPC (S7)
       
  5899 	>> EMmTsyPhoneBookStoreCacheIPC (S8)
       
  5900 	>> EMmTsyPhoneBookStoreGetInfoIPC (S9)
       
  5901 	<< EMmTsyPhoneBookStoreCacheIPC (S7)
       
  5902 	<< EMmTsyPhoneBookStoreCacheIPC (S8)
       
  5903 	<< EMmTsyPhoneBookStoreGetInfoIPC (S9) 	
       
  5904 	*/
       
  5905 	
       
  5906 	TMockLtsyPhoneBookData0 storeInitData(nameS7);
       
  5907     storeInitData.SerialiseL(dataS7);
       
  5908     iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, dataS7);	
       
  5909 
       
  5910     // Open all phonebook store sessions. This will cause an Init request being sent down to LTSY,
       
  5911     // followed by Cache requests for S7 and S8 when initialisation completes.
       
  5912   	TInt ret = bookStoreS7.Open(iPhone, nameS7);
       
  5913   	ret = bookStoreS8.Open(iPhone, nameS8);
       
  5914 	ret = bookStoreS9.Open(iPhone, nameS9);	
       
  5915 	 
       
  5916 	ASSERT_EQUALS(KErrNone, ret);	
       
  5917 	
       
  5918 	TRequestStatus requestStatus;
       
  5919    	TRequestStatus mockLtsyStatus;
       
  5920 	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 bookInfo;
       
  5921 	RMobilePhoneBookStore::TMobilePhoneBookInfoV1Pckg bookPckg(bookInfo);
       
  5922 	bookStoreS9.GetInfo(requestStatus, bookPckg); 	
       
  5923 	
       
  5924 	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
       
  5925 	// check that CTSY waits for initialisation to complete 
       
  5926 	// before completing the GetInfo client request
       
  5927 	User::After(KOneSecond);
       
  5928 	ASSERT_EQUALS(KRequestPending, requestStatus.Int());	
       
  5929 	
       
  5930 	// prepare initialisation completion data
       
  5931     CStorageInfoData storageData;
       
  5932 	SetStorageInfoData(storageData);
       
  5933 	TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(nameS7, storageData);
       
  5934     retStoreInitC.SerialiseL(data2);
       
  5935 
       
  5936     // complete the Init request. This will trigger cache requests 
       
  5937     // for S7 and S8 from CTSY to LTSY.
       
  5938     iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data2, 0);
       
  5939 
       
  5940 	dataS7.Close();
       
  5941 	TMockLtsyPhoneBookData0 tsyDataS7(nameS7);           
       
  5942 	tsyDataS7.SerialiseL(dataS7);        
       
  5943 	iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, dataS7);
       
  5944 	
       
  5945 	dataS8.Close();
       
  5946 	TMockLtsyPhoneBookData0 tsyDataS8(nameS8);           
       
  5947 	tsyDataS8.SerialiseL(dataS8);
       
  5948 	iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, dataS8);
       
  5949 	
       
  5950     // GetInfo request should still be pending
       
  5951     ASSERT_EQUALS(KRequestPending, requestStatus.Int());
       
  5952 
       
  5953     // Prepare the cache responses, and tell MockLTSY to complete them
       
  5954 	CArrayPtrSeg<CPhoneBookStoreEntry>* cacheS7 = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
       
  5955 	CleanupStack::PushL(cacheS7);
       
  5956 
       
  5957 	TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> storeCacheDataS7(nameS7, cacheS7);
       
  5958 	data2.Close();
       
  5959 	storeCacheDataS7.SerialiseL(data2);   
       
  5960 
       
  5961 	iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, data2, 0);
       
  5962 	CleanupStack::PopAndDestroy(cacheS7);
       
  5963 	
       
  5964 	CArrayPtrSeg<CPhoneBookStoreEntry>* cacheS8 = new(ELeave) CArrayPtrSeg<CPhoneBookStoreEntry>( 1 );
       
  5965 	CleanupStack::PushL(cacheS8);
       
  5966 
       
  5967 	TMockLtsyPhoneBookData1<CArrayPtrSeg<CPhoneBookStoreEntry>*> storeCacheDataS8(nameS8, cacheS8);
       
  5968 	data2.Close();
       
  5969 	storeCacheDataS8.SerialiseL(data2);   
       
  5970 			  
       
  5971 	iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, data2, 0);
       
  5972 	CleanupStack::PopAndDestroy(cacheS8);
       
  5973 	
       
  5974 	dataS9.Close();
       
  5975 	TMockLtsyPhoneBookData0 tsyDataS9(nameS9);           
       
  5976 	tsyDataS9.SerialiseL(dataS9);
       
  5977 	
       
  5978 	// Next to come from CTSY to LTSY will be the GetInfo request for S9
       
  5979 	iMockLTSY.ExpectL(EMmTsyPhoneBookStoreGetInfoIPC, dataS9);
       
  5980 	ASSERT_EQUALS(KRequestPending, requestStatus.Int());    
       
  5981 	
       
  5982 	// prepare response and complete
       
  5983 	TInt usedEntries(12);
       
  5984 	TMockLtsyPhoneBookData1< TInt > styData2(nameS9, usedEntries);
       
  5985 	data2.Close();    
       
  5986 	styData2.SerialiseL(data2);
       
  5987 	iMockLTSY.CompleteL(EMmTsyPhoneBookStoreGetInfoIPC, KErrNone, data2, 10);
       
  5988    
       
  5989 	User::WaitForRequest(requestStatus); // GetInfo
       
  5990    	ASSERT_EQUALS(KErrNone, requestStatus.Int());
       
  5991  
       
  5992  	// check that returned values are correct
       
  5993     ASSERT_TRUE(0 == bookInfo.iName.Compare(nameS9));
       
  5994     ASSERT_EQUALS(usedEntries, bookInfo.iUsedEntries);	
       
  5995     ASSERT_EQUALS(-1, bookInfo.iTotalEntries);	
       
  5996     ASSERT_EQUALS(50, bookInfo.iMaxTextLength);	
       
  5997     ASSERT_EQUALS(50, bookInfo.iMaxNumLength);	
       
  5998     ASSERT_EQUALS(RMobilePhoneBookStore::ELocationIccMemory, bookInfo.iLocation);	
       
  5999     ASSERT_EQUALS((TUint16)0, bookInfo.iChangeCounter);	
       
  6000     ASSERT_EQUALS((TUint32)RMobilePhoneStore::KCapsReadAccess, bookInfo.iCaps);
       
  6001     
       
  6002    	
       
  6003    	// final check and cleanup
       
  6004    	AssertMockLtsyStatusL();
       
  6005 	CleanupStack::PopAndDestroy(8, this); // data, data2, this...
       
  6006     }
  5845 
  6007 
  5846 void CCTsyPhoneBookStoreFU::AuxGetInfo2L(const TDesC& aName)
  6008 void CCTsyPhoneBookStoreFU::AuxGetInfo2L(const TDesC& aName)
  5847     {
  6009     {
  5848 	OpenEtelServerL(EUseExtendedError);
  6010 	OpenEtelServerL(EUseExtendedError);
  5849 	CleanupStack::PushL(TCleanupItem(Cleanup,this));
  6011 	CleanupStack::PushL(TCleanupItem(Cleanup,this));