diff -r 1ac40e087278 -r 17af172ffa5f telephonyserverplugins/common_tsy/test/component/src/cctsynetworkcontrolfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsynetworkcontrolfu.cpp Thu Jul 15 19:58:53 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsynetworkcontrolfu.cpp Thu Aug 19 11:03:36 2010 +0300 @@ -102,17 +102,20 @@ ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestStorePreferredNetworksListL0001aL); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestStorePreferredNetworksListL0001bL); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestStorePreferredNetworksListL0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestStorePreferredNetworksListL0004L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestRetrieveMobilePhonePreferredNetworks0001L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestRetrieveMobilePhonePreferredNetworks0001aL); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestRetrieveMobilePhonePreferredNetworks0001bL); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestRetrieveMobilePhonePreferredNetworks0001cL); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestRetrieveMobilePhonePreferredNetworks0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestRetrieveMobilePhonePreferredNetworks0004L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestGetNetworkRegistrationStatus0001L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestGetNetworkRegistrationStatus0002L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestGetNetworkRegistrationStatus0004L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestGetNetworkRegistrationStatus0005L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestNotifyPreferredNetworksListChange0001L); - ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestNotifyPreferredNetworksListChange0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestNotifyPreferredNetworksListChange0002L); + ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestNotifyPreferredNetworksListChange0004L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestNotifyNetworkSelectionSettingChange0001L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestNotifyNetworkSelectionSettingChange0002L); ADD_TEST_STEP_ISO_CPP(CCTsyNetworkControlFU, TestNotifyNetworkSelectionSettingChange0004L); @@ -5270,7 +5273,7 @@ prefNetworks[2].iCountryCode = _L("262"); prefNetworks[2].iNetworkId = _L("03"); - for( TInt i=0; i < 3; i++ ) + for( TInt i=0; i < 3; ++i ) { list->AddEntryL(prefNetworks[i]); } @@ -5340,11 +5343,16 @@ @SYMTestCaseID BA-CTSY-NTWC-MSPNL-0001b @SYMPREQ 417-71654 @SYMComponent telephony_ctsy -@SYMTestCaseDesc Test support in CTSY for RMobilePhone::StorePreferredNetworksListL with error +@SYMTestCaseDesc Test support in CTSY for RMobilePhone::StorePreferredNetworksListL + with error and with duplicate LTSY complete message @SYMTestPriority High @SYMTestActions 1. Invoke RMobilePhone::StorePreferredNetworksListL. - 2. LTSY returns error. -@SYMTestExpectedResults Test code receives error. + 2. LTSY returns error. + 3. Test code receives error. + 3. Invoke RMobilePhone:StorePreferredNetworksListL. + 4. LTSY returns duplicate complete message with KErrNone + 5. Duplicate complete message is ignored and test code receives KErrNone. +@SYMTestExpectedResults All tests pass. @SYMTestType CT */ void CCTsyNetworkControlFU::TestStorePreferredNetworksListL0001bL() @@ -5386,17 +5394,28 @@ AssertMockLtsyStatusL(); ASSERT_EQUALS(KErrUnknown, requestStatus.Int()); - // Invoke Store request - LTSY returns KErrNotSupported + // Invoke Store request - LTSY returns duplicate complete messages with KErrNone iMockLTSY.ExpectL(ECtsyPhoneStorePreferredNetworksListReq, data); - iMockLTSY.CompleteL(ECtsyPhoneStorePreferredNetworksListComp, KErrNotSupported); + iMockLTSY.CompleteL(ECtsyPhoneStorePreferredNetworksListComp, KErrNone); + iMockLTSY.CompleteL(ECtsyPhoneStorePreferredNetworksListComp, KErrNone); + + iPhone.StorePreferredNetworksListL(requestStatus, list); + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + // Invoke Store request - LTSY returns KErrNotSupported + + iMockLTSY.ExpectL(ECtsyPhoneStorePreferredNetworksListReq, data, KErrNotSupported); iPhone.StorePreferredNetworksListL(requestStatus, list); User::WaitForRequest(requestStatus); AssertMockLtsyStatusL(); ASSERT_EQUALS(KErrNotSupported, requestStatus.Int()); - + CleanupStack::PopAndDestroy(3, this); // list, data, this } @@ -5444,7 +5463,7 @@ iMockLTSY.ExpectL(ECtsyPhoneStorePreferredNetworksListReq, data); iMockLTSY.CompleteL(ECtsyPhoneStorePreferredNetworksListComp, KErrNone); - + iPhone.StorePreferredNetworksListL(requestStatus, list); // Cancel outstanding request @@ -5459,6 +5478,84 @@ } /** +@SYMTestCaseID BA-CTSY-NTWC-MSPNL-0004 +@SYMPREQ 417-71654 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::StorePreferredNetworksListL +@SYMTestPriority High +@SYMTestActions 1. Invoke RMobilePhone::StorePreferredNetworksListL. + 2. Invoke RMobilePhone::StorePreferredNetworksListL from second client. +@SYMTestExpectedResults Second cleint receives KErrServerBusy. +@SYMTestType CT +*/ +void CCTsyNetworkControlFU::TestStorePreferredNetworksListL0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus requestStatus; + + // Open second client + RTelServer telServer2; + TInt ret = telServer2.Connect(); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(telServer2); + + RMobilePhone phone2; + ret = phone2.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + TRequestStatus requestStatus2; + + // --- prepare data --- + + CMobilePhoneStoredNetworkList* list = CMobilePhoneStoredNetworkList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePreferredNetworkEntryV3 prefNetwork; + + prefNetwork.iAccess = RMobilePhone::KNetworkAccessGsm; + prefNetwork.iCountryCode = _L("262"); + prefNetwork.iNetworkId = _L("01"); + + list->AddEntryL(prefNetwork); + + TMockLtsyData1 listData(list); + listData.SerialiseL(data); + + // Invoke Store request + + iMockLTSY.ExpectL(ECtsyPhoneStorePreferredNetworksListReq, data); + + iPhone.StorePreferredNetworksListL(requestStatus, list); + + // Invoke store request from second client + + phone2.StorePreferredNetworksListL(requestStatus2, list); + + // Wait for second request + User::WaitForRequest(requestStatus2); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + + iMockLTSY.CompleteL(ECtsyPhoneStorePreferredNetworksListComp, KErrNone); + + // Wait for first request + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + CleanupStack::PopAndDestroy(5, this); // list, phone2, telServer2, data, this + + } + +/** @SYMTestCaseID BA-CTSY-NTWC-CRMPPN-0001 @SYMPREQ 417-71654 @SYMComponent telephony_ctsy @@ -5540,7 +5637,7 @@ // retrieveMobilePhonePreferredNetworks CActiveScheduler::Install(NULL); -/* + // Add new entry to the list RMobilePhone::TMobilePreferredNetworkEntryV3 prefNetwork2; @@ -5565,7 +5662,7 @@ AssertMockLtsyStatusL(); ASSERT_EQUALS(KErrNone, requestStatus.Int()); -*/ + CleanupStack::PopAndDestroy(3, this); // list, data, this } @@ -5661,7 +5758,7 @@ // retrieveMobilePhonePreferredNetworks CActiveScheduler::Install(NULL); -/* + // Remove the last entry from the list list->DeleteEntryL(1); @@ -5680,7 +5777,7 @@ User::WaitForRequest(requestStatus); AssertMockLtsyStatusL(); ASSERT_EQUALS(KErrNone, requestStatus.Int()); - */ + CleanupStack::PopAndDestroy(3, this); // list, data, this } @@ -5816,8 +5913,7 @@ // Invoke Retrieve request - LTSY returns KErrNotSupported - iMockLTSY.ExpectL(ECtsyPhoneGetPreferredNetworksReq); - iMockLTSY.CompleteL(ECtsyPhoneGetPreferredNetworksComp, KErrNotSupported, data); + iMockLTSY.ExpectL(ECtsyPhoneGetPreferredNetworksReq, KErrNotSupported); retrieveMobilePhonePreferredNetworks->Start(activeRetriever->Status()); activeRetriever->Activate(); @@ -5911,6 +6007,105 @@ } /** +@SYMTestCaseID BA-CTSY-NTWC-CRMPPN-0004 +@SYMPREQ 417-71654 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to CRetrieveMobilePhonePreferredNetworks::Start +@SYMTestPriority High +@SYMTestActions 1. Invoke CRetrieveMobilePhonePreferredNetworks::Start. + 2. Invoke CRetrieveMobilePhonePreferredNetworks::Start from second client. +@SYMTestExpectedResults Second client receives KErrInUse. +@SYMTestType CT +*/ +void CCTsyNetworkControlFU::TestRetrieveMobilePhonePreferredNetworks0004L() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + // Open second client + RTelServer telServer2; + TInt ret = telServer2.Connect(); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(telServer2); + + RMobilePhone phone2; + ret = phone2.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + // --- prepare data --- + + CMobilePhoneStoredNetworkList* list = CMobilePhoneStoredNetworkList::NewL(); + CleanupStack::PushL(list); + + CFilteringActiveScheduler scheduler; + CActiveScheduler::Install(&scheduler); + + // Create first retriever + + CRetrieveMobilePhonePreferredNetworks* retrieveMobilePhonePreferredNetworks = + CRetrieveMobilePhonePreferredNetworks::NewL(iPhone); + CleanupStack::PushL(retrieveMobilePhonePreferredNetworks); + + CActiveRetriever::ResetRequestsNumber(); + CActiveRetriever* activeRetriever = + CActiveRetriever::NewL(*retrieveMobilePhonePreferredNetworks); + CleanupStack::PushL(activeRetriever); + scheduler.AddRetrieverL(*activeRetriever); + + // Create second retriever + + CRetrieveMobilePhonePreferredNetworks* retrieveMobilePhonePreferredNetworks2 = + CRetrieveMobilePhonePreferredNetworks::NewL(phone2); + CleanupStack::PushL(retrieveMobilePhonePreferredNetworks2); + + CActiveRetriever::ResetRequestsNumber(); + CActiveRetriever* activeRetriever2 = + CActiveRetriever::NewL(*retrieveMobilePhonePreferredNetworks2); + CleanupStack::PushL(activeRetriever2); + scheduler.AddRetrieverL(*activeRetriever2); + + TMockLtsyData1 completeLtsyData(list); + completeLtsyData.SerialiseL(data); + + TRequestStatus mockLtsyStatus; + iMockLTSY.ExpectL(ECtsyPhoneGetPreferredNetworksReq); + iMockLTSY.CompleteL(ECtsyPhoneGetPreferredNetworksComp, KErrNone, data); + + // Invoke Retrieve request + + retrieveMobilePhonePreferredNetworks->Start(activeRetriever->Status()); + activeRetriever->Activate(); + + // Invoke Retrieve request from second client + + retrieveMobilePhonePreferredNetworks->Start(activeRetriever2->Status()); + activeRetriever2->Activate(); + + scheduler.StartScheduler(); + + ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber()); + ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int()); + ASSERT_EQUALS(KErrInUse, activeRetriever2->iStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4, + retrieveMobilePhonePreferredNetworks); // activeRetriever2 + // retrieveMobilePhonePreferredNetworks2 + // activeRetriever + // retrieveMobilePhonePreferredNetworks + + CActiveScheduler::Install(NULL); + + CleanupStack::PopAndDestroy(5, this); // list, phone2, telServer2, data, this + + } + +/** @SYMTestCaseID BA-CTSY-NTWC-MGNRS-0001 @SYMPREQ 1551 @SYMCR 1595 @@ -6342,6 +6537,10 @@ TRequestStatus mockLtsyStatus; iMockLTSY.NotifyTerminated(mockLtsyStatus); + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrCancel, requestStatus.Int()); + // Invoke Store request iMockLTSY.ExpectL(ECtsyPhoneStorePreferredNetworksListReq, data); @@ -6358,15 +6557,106 @@ AssertMockLtsyStatusL(); ASSERT_EQUALS(KErrNone, storeRequestStatus.Int()); - User::WaitForRequest(requestStatus); + // Start timer and check if any notification is received + + TRequestStatus waitStatus = KRequestPending; + RTimer timer; + timer.CreateLocal(); + CleanupClosePushL(timer); + timer.After(waitStatus, TTimeIntervalMicroSeconds32(KOneSecond)); // Wait 1 sec + + User::WaitForRequest(requestStatus, waitStatus); AssertMockLtsyStatusL(); + ASSERT_EQUALS(KErrNone, waitStatus.Int()); // timer fired ASSERT_EQUALS(KErrCancel, requestStatus.Int()); - - CleanupStack::PopAndDestroy(3, this); // list, data, this + + CleanupStack::PopAndDestroy(4, this); // timer, list, data, this } /** +@SYMTestCaseID BA-CTSY-NTWC-MNPNLC-0004 +@SYMPREQ 417-71654 +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobilePhone::NotifyPreferredNetworksListChange +@SYMTestPriority High +@SYMTestActions 1. Invoke RMobilePhone::NotifyPreferredNetworksListChange. + 1. Invoke RMobilePhone::NotifyPreferredNetworksListChange from second client. + 2. Invoke RMobilePhone::StorePreferredNetworksListL. +@SYMTestExpectedResults Clients receive preferred network list notification +@SYMTestType CT +*/ +void CCTsyNetworkControlFU::TestNotifyPreferredNetworksListChange0004L() + { + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + // Open second client + RTelServer telServer2; + TInt ret = telServer2.Connect(); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(telServer2); + + RMobilePhone phone2; + ret = phone2.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(phone2); + + TRequestStatus requestStatus; + TRequestStatus requestStatus2; + + // --- prepare data --- + + CMobilePhoneStoredNetworkList* list = CMobilePhoneStoredNetworkList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePreferredNetworkEntryV3 prefNetwork; + + prefNetwork.iAccess = RMobilePhone::KNetworkAccessGsm; + prefNetwork.iCountryCode = _L("262"); + prefNetwork.iNetworkId = _L("01"); + + list->AddEntryL(prefNetwork); + + TMockLtsyData1 listData(list); + listData.SerialiseL(data); + + // Invoke Notify request + + iPhone.NotifyPreferredNetworksListChange(requestStatus); + + // Invoke Notify request for second client + + phone2.NotifyPreferredNetworksListChange(requestStatus2); + + // Invoke Store request + + iMockLTSY.ExpectL(ECtsyPhoneStorePreferredNetworksListReq, data); + iMockLTSY.CompleteL(ECtsyPhoneStorePreferredNetworksListComp, KErrNone); + + TRequestStatus storeRequestStatus; + iPhone.StorePreferredNetworksListL(storeRequestStatus, list); + + User::WaitForRequest(storeRequestStatus); + ASSERT_EQUALS(KErrNone, storeRequestStatus.Int()); + AssertMockLtsyStatusL(); + + User::WaitForRequest(requestStatus); + User::WaitForRequest(requestStatus2); + + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); + + CleanupStack::PopAndDestroy(5, this); // list, phone2, telServer2, data, this + + } + +/** @SYMTestCaseID BA-CTSY-NTWC-MNNSSC-0001 @SYMPREQ 1551 @SYMComponent telephony_ctsy