--- 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<CMobilePhoneStoredNetworkList*> 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<CMobilePhoneStoredNetworkList*> 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<CMobilePhoneStoredNetworkList*> 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