--- a/telephonyserverplugins/common_tsy/test/component/src/cctsysmspstorefu.cpp Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsysmspstorefu.cpp Thu May 06 15:10:38 2010 +0100
@@ -1,547 +1,547 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// The TEFUnit test suite for SMSPStore in the Common TSY.
-//
-//
-
-/**
- @file
-*/
-
-#include "cctsysmspstorefu.h"
-#include <etel.h>
-#include <etelmm.h>
-#include <et_clsvr.h>
-#include <ctsy/mmtsy_names.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#include "tmockltsydata.h"
-#include <ctsy/serviceapi/gsmerror.h>
-#include "cctsyactiveretriever.h"
-#include <mmretrieve.h>
-
-CTestSuite* CCTsySMSPStoreFU::CreateSuiteL(const TDesC& aName)
- {
- SUB_SUITE;
-
- ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0001L);
- ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0002L);
- ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0004L);
- ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0005L);
-
- END_SUITE;
- }
-
-/**
-To push a CleanupItem ont the cleanupstack to close the phone
-*/
-void CCTsySMSPStoreFU::Cleanup(TAny* aSelf)
- {
- static_cast<CCTsySMSPStoreFU*>(aSelf)->DoCleanup();
- }
-
-/**
-Close the Phone a the server connection
-*/
-void CCTsySMSPStoreFU::DoCleanup()
- {
- CActiveScheduler::Install(NULL);
- CCtsyComponentTestBase::DoCleanup();
- }
-
-
-LOCAL_C void FillInSmsParamsAndListL(
- CArrayPtrFlat<TSmsParameters>& aSmsParamsList,
- TSmsParameters& aSmsParams1,
- TSmsParameters& aSmsParams2)
- {
- aSmsParams1.iLocationNumber = 1;
- aSmsParams1.iParameterIndicator = KDestinationAddress|KServiceCentreAddress;
- aSmsParams1.iProtocolId = 2;
- aSmsParams1.iDataCodingScheme = 3;
- aSmsParams1.iValidityPeriod = 4;
- aSmsParams1.iMobileScTON = RMobilePhone::EInternationalNumber;
- aSmsParams1.iMobileScNPI = RMobilePhone::EIsdnNumberPlan;
- aSmsParams1.iMobileDeTON = RMobilePhone::ENationalNumber;
- aSmsParams1.iMobileDeNPI = RMobilePhone::EDataNumberPlan;
- aSmsParams1.iAlphaTagPresent = ETrue;
- aSmsParams1.iServiceCenterAddress.Copy(_L("asta"));
- aSmsParams1.iDestinationAddress.Copy(_L("la"));
- aSmsParams1.iAlphaTagData.Copy(_L("vista"));
-
- aSmsParams2.iLocationNumber = 5;
- aSmsParams2.iParameterIndicator = KProtocolID|KDataCodingScheme|KValidityPeriod;
- aSmsParams2.iProtocolId = 6;
- aSmsParams2.iDataCodingScheme = 7;
- aSmsParams2.iValidityPeriod = 8;
- aSmsParams2.iMobileScTON = RMobilePhone::ENetworkSpecificNumber;
- aSmsParams2.iMobileScNPI = RMobilePhone::ETelexNumberPlan;
- aSmsParams2.iMobileDeTON = RMobilePhone::ESubscriberNumber;
- aSmsParams2.iMobileDeNPI = RMobilePhone::ENationalNumberPlan;
- aSmsParams2.iAlphaTagPresent = EFalse;
- aSmsParams2.iServiceCenterAddress.Copy(_L("I'l"));
- aSmsParams2.iDestinationAddress.Copy(_L("be"));
- aSmsParams2.iAlphaTagData.Copy(_L("back"));
-
- aSmsParamsList.AppendL(&aSmsParams1);
- aSmsParamsList.AppendL(&aSmsParams2);
- }
-
-
-//
-// Actual test cases
-//
-
-
-/**
-@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmspList::Start
-@SYMTestPriority High
-@SYMTestActions Invokes CRetrieveMobilePhoneSmspList::Start
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySMSPStoreFU::TestStart0001L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RMobileSmsMessaging messaging;
- TInt err = messaging.Open(iPhone);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(messaging);
- CRetrieveMobilePhoneSmspList* asyncRetrieveList =
- CRetrieveMobilePhoneSmspList::NewL(messaging);
- CleanupStack::PushL(asyncRetrieveList);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever* activeRetriever =
- CActiveRetriever::NewL(*asyncRetrieveList);
- CleanupStack::PushL(activeRetriever);
- scheduler.AddRetrieverL(*activeRetriever);
-
- //-------------------------------------------------------------------------
- // TEST A: failure to dispatch request to LTSY
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1, KErrNotSupported);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrNotSupported, activeRetriever->iStatus.Int());
- AssertMockLtsyStatusL();
-
- // test for KErrNotFound
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1, KErrNotFound);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrNotFound, activeRetriever->iStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST B: failure on completion of pending request from LTSY->CTSY
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrGeneral);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrGeneral, activeRetriever->iStatus.Int());
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST: completion with empty array
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
-
- CArrayPtrFlat<TSmsParameters>* completeList = new (ELeave) CArrayPtrFlat<TSmsParameters>(1);
- CleanupStack::PushL(completeList);
- TMockLtsyData1<CArrayPtrFlat<TSmsParameters>*> completeLtsyData(completeList);
- completeLtsyData.SerialiseL(data);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
-
- CMobilePhoneSmspList* list = asyncRetrieveList->RetrieveListL();
- CleanupStack::PushL( list );
- ASSERT_EQUALS(0, list->Enumerate());
- CleanupStack::PopAndDestroy(list);
-
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST C: Successful completion request of
- // CRetrieveMobilePhoneSmspList::Start when result is not cached.
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
-
- TSmsParameters entry;
- TSmsParameters entry1;
- FillInSmsParamsAndListL(*completeList, entry, entry1);
- data.Close();
- completeLtsyData.SerialiseL(data);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
-
- list = asyncRetrieveList->RetrieveListL();
- CleanupStack::PushL( list );
-
- ASSERT_EQUALS(2, list->Enumerate());
- const RMobileSmsMessaging::TMobileSmspEntryV1& smspEntry = list->GetEntryL(0);
-
- TInt completeIndex(entry.iLocationNumber);
- ASSERT_EQUALS(completeIndex, smspEntry.iIndex);
- ASSERT_EQUALS(entry.iAlphaTagData, smspEntry.iText);
- TUint32 completeValidParams(entry.iParameterIndicator);
- ASSERT_EQUALS(completeValidParams, smspEntry.iValidParams);
- ASSERT_EQUALS(entry.iMobileDeTON, smspEntry.iDestination.iTypeOfNumber);
- ASSERT_EQUALS(entry.iMobileDeNPI, smspEntry.iDestination.iNumberPlan);
- ASSERT_TRUE( 0 == entry.iDestinationAddress.Compare(smspEntry.iDestination.iTelNumber) );
- ASSERT_EQUALS(entry.iMobileScTON, smspEntry.iServiceCentre.iTypeOfNumber);
- ASSERT_EQUALS(entry.iMobileScNPI, smspEntry.iServiceCentre.iNumberPlan);
- ASSERT_TRUE( 0 == entry.iServiceCenterAddress.Compare(smspEntry.iServiceCentre.iTelNumber) );
-
- const RMobileSmsMessaging::TMobileSmspEntryV1& smspEntry1 = list->GetEntryL(1);
-
- completeIndex = entry1.iLocationNumber;
- ASSERT_EQUALS(completeIndex, smspEntry1.iIndex);
- ASSERT_EQUALS(0, smspEntry1.iText.Length());
- completeValidParams = entry1.iParameterIndicator;
- ASSERT_EQUALS(completeValidParams, smspEntry1.iValidParams);
- ASSERT_EQUALS(entry1.iProtocolId, smspEntry1.iProtocolId);
- ASSERT_EQUALS(entry1.iDataCodingScheme, smspEntry1.iDcs);
- ASSERT_EQUALS(entry1.iValidityPeriod, smspEntry1.iValidityPeriod);
-
- CleanupStack::PopAndDestroy(list);
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // TEST E: Unsolicited completion of CRetrieveMobilePhoneSmspList::Start
- // from LTSY.
- //-------------------------------------------------------------------------
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- completeList->Reset();
- data.Close();
- completeLtsyData.SerialiseL(data);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- AssertMockLtsyStatusL();
-
- // increase coverage
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrGeneral);
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(completeList);
-
- //-------------------------------------------------------------------------
- // TEST: completion with null pointer
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
- completeList = NULL;
- data.Close();
- completeLtsyData.SerialiseL(data);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrGeneral, activeRetriever->iStatus.Int());
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(3); // activeRetriever, asyncRetrieveList, messaging
- CleanupStack::PopAndDestroy(2, this); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of CRetrieveMobilePhoneSmspList::Start
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of CRetrieveMobilePhoneSmspList::Start
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySMSPStoreFU::TestStart0002L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- TRequestStatus mockLtsyStatus;
- iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
- RBuf8 data;
- CleanupClosePushL(data);
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RMobileSmsMessaging messaging;
- TInt err = messaging.Open(iPhone);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(messaging);
- CRetrieveMobilePhoneSmspList* asyncRetrieveList =
- CRetrieveMobilePhoneSmspList::NewL(messaging);
- CleanupStack::PushL(asyncRetrieveList);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever* activeRetriever =
- CActiveRetriever::NewL(*asyncRetrieveList);
- CleanupStack::PushL(activeRetriever);
- scheduler.AddRetrieverL(*activeRetriever);
-
- //-------------------------------------------------------------------------
- // Test cancelling of CRetrieveMobilePhoneSmspList::Start
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
-
- CArrayPtrFlat<TSmsParameters>* completeList = new (ELeave) CArrayPtrFlat<TSmsParameters>(1);
- CleanupStack::PushL(completeList);
- TSmsParameters entry;
- TSmsParameters entry1;
- FillInSmsParamsAndListL(*completeList, entry, entry1);
-
- TMockLtsyData1<CArrayPtrFlat<TSmsParameters>*> completeLtsyData(completeList);
- completeLtsyData.SerialiseL(data);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data, 10);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate(CActiveRetriever::ECaseGeneralCancelCase);
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
-
- // Wait for completion of iMockLTSY.NotifyTerminated
- User::WaitForRequest(mockLtsyStatus);
- ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
- AssertMockLtsyStatusL();
-
- //-------------------------------------------------------------------------
- // phase 2 cancel test case
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate(CActiveRetriever::ECasePhase2Cancel);
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
-
- AssertMockLtsyStatusL();
-
- CleanupStack::PopAndDestroy(4); // completeList, activeRetriever, asyncRetrieveList, messaging
- CleanupStack::PopAndDestroy(2); // data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to CRetrieveMobilePhoneSmspList::Start
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to CRetrieveMobilePhoneSmspList::Start
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySMSPStoreFU::TestStart0004L()
- {
-
-
- 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(telServer2, KMmTsyPhoneName);
- ASSERT_EQUALS(KErrNone, ret);
- CleanupClosePushL(phone2);
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RMobileSmsMessaging messaging;
- TInt err = messaging.Open(iPhone);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(messaging);
- CRetrieveMobilePhoneSmspList* asyncRetrieveList =
- CRetrieveMobilePhoneSmspList::NewL(messaging);
- CleanupStack::PushL(asyncRetrieveList);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever* activeRetriever =
- CActiveRetriever::NewL(*asyncRetrieveList);
- CleanupStack::PushL(activeRetriever);
- scheduler.AddRetrieverL(*activeRetriever);
-
- RMobileSmsMessaging messaging2;
- err = messaging2.Open(phone2);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(messaging2);
- CRetrieveMobilePhoneSmspList* asyncRetrieveList2 =
- CRetrieveMobilePhoneSmspList::NewL(messaging2);
- CleanupStack::PushL(asyncRetrieveList2);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever* activeRetriever2 =
- CActiveRetriever::NewL(*asyncRetrieveList2);
- CleanupStack::PushL(activeRetriever2);
- scheduler.AddRetrieverL(*activeRetriever2);
-
- //-------------------------------------------------------------------------
- // Test A: Test multiple clients requesting CRetrieveMobilePhoneSmspList::Start
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
-
- CArrayPtrFlat<TSmsParameters>* completeList = new (ELeave) CArrayPtrFlat<TSmsParameters>(1);
- CleanupStack::PushL(completeList);
- TSmsParameters entry;
- TSmsParameters entry1;
- FillInSmsParamsAndListL(*completeList, entry, entry1);
-
- TMockLtsyData1<CArrayPtrFlat<TSmsParameters>*> completeLtsyData(completeList);
- completeLtsyData.SerialiseL(data);
- iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data, 10);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
-
- asyncRetrieveList2->Start(activeRetriever2->iStatus);
- activeRetriever2->Activate();
-
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
- ASSERT_EQUALS(KErrServerBusy, activeRetriever2->iStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(4); // completeList, activeRetriever2, asyncRetrieveList2, messaging2
- CleanupStack::PopAndDestroy(3); // activeRetriever, asyncRetrieveList, messaging
- CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
-
- }
-
-
-/**
-@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmspList::Start with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes CRetrieveMobilePhoneSmspList::Start and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySMSPStoreFU::TestStart0005L()
- {
-
- OpenEtelServerL(EUseExtendedError);
- CleanupStack::PushL(TCleanupItem(Cleanup,this));
- OpenPhoneL();
-
- CFilteringActiveScheduler scheduler;
- CActiveScheduler::Install(&scheduler);
-
- RMobileSmsMessaging messaging;
- TInt err = messaging.Open(iPhone);
- ASSERT_EQUALS(KErrNone, err);
- CleanupClosePushL(messaging);
- CRetrieveMobilePhoneSmspList* asyncRetrieveList =
- CRetrieveMobilePhoneSmspList::NewL(messaging);
- CleanupStack::PushL(asyncRetrieveList);
-
- CActiveRetriever::ResetRequestsNumber();
- CActiveRetriever* activeRetriever =
- CActiveRetriever::NewL(*asyncRetrieveList);
- CleanupStack::PushL(activeRetriever);
- scheduler.AddRetrieverL(*activeRetriever);
-
- //-------------------------------------------------------------------------
- // Test A: Test timeout of CRetrieveMobilePhoneSmspList::Start
- //-------------------------------------------------------------------------
-
- iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
-
- asyncRetrieveList->Start(activeRetriever->iStatus);
- activeRetriever->Activate();
- scheduler.StartScheduler();
-
- ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
- ASSERT_EQUALS(KErrTimedOut, activeRetriever->iStatus.Int());
-
- AssertMockLtsyStatusL();
- CleanupStack::PopAndDestroy(3); // activeRetriever, asyncRetrieveList, messaging
- CleanupStack::PopAndDestroy(this);
-
- }
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The TEFUnit test suite for SMSPStore in the Common TSY.
+//
+//
+
+/**
+ @file
+*/
+
+#include "cctsysmspstorefu.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <ctsy/mmtsy_names.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include "tmockltsydata.h"
+#include <ctsy/serviceapi/gsmerror.h>
+#include "cctsyactiveretriever.h"
+#include <mmretrieve.h>
+
+CTestSuite* CCTsySMSPStoreFU::CreateSuiteL(const TDesC& aName)
+ {
+ SUB_SUITE;
+
+ ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0001L);
+ ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0002L);
+ ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0004L);
+ ADD_TEST_STEP_ISO_CPP(CCTsySMSPStoreFU, TestStart0005L);
+
+ END_SUITE;
+ }
+
+/**
+To push a CleanupItem ont the cleanupstack to close the phone
+*/
+void CCTsySMSPStoreFU::Cleanup(TAny* aSelf)
+ {
+ static_cast<CCTsySMSPStoreFU*>(aSelf)->DoCleanup();
+ }
+
+/**
+Close the Phone a the server connection
+*/
+void CCTsySMSPStoreFU::DoCleanup()
+ {
+ CActiveScheduler::Install(NULL);
+ CCtsyComponentTestBase::DoCleanup();
+ }
+
+
+LOCAL_C void FillInSmsParamsAndListL(
+ CArrayPtrFlat<TSmsParameters>& aSmsParamsList,
+ TSmsParameters& aSmsParams1,
+ TSmsParameters& aSmsParams2)
+ {
+ aSmsParams1.iLocationNumber = 1;
+ aSmsParams1.iParameterIndicator = KDestinationAddress|KServiceCentreAddress;
+ aSmsParams1.iProtocolId = 2;
+ aSmsParams1.iDataCodingScheme = 3;
+ aSmsParams1.iValidityPeriod = 4;
+ aSmsParams1.iMobileScTON = RMobilePhone::EInternationalNumber;
+ aSmsParams1.iMobileScNPI = RMobilePhone::EIsdnNumberPlan;
+ aSmsParams1.iMobileDeTON = RMobilePhone::ENationalNumber;
+ aSmsParams1.iMobileDeNPI = RMobilePhone::EDataNumberPlan;
+ aSmsParams1.iAlphaTagPresent = ETrue;
+ aSmsParams1.iServiceCenterAddress.Copy(_L("asta"));
+ aSmsParams1.iDestinationAddress.Copy(_L("la"));
+ aSmsParams1.iAlphaTagData.Copy(_L("vista"));
+
+ aSmsParams2.iLocationNumber = 5;
+ aSmsParams2.iParameterIndicator = KProtocolID|KDataCodingScheme|KValidityPeriod;
+ aSmsParams2.iProtocolId = 6;
+ aSmsParams2.iDataCodingScheme = 7;
+ aSmsParams2.iValidityPeriod = 8;
+ aSmsParams2.iMobileScTON = RMobilePhone::ENetworkSpecificNumber;
+ aSmsParams2.iMobileScNPI = RMobilePhone::ETelexNumberPlan;
+ aSmsParams2.iMobileDeTON = RMobilePhone::ESubscriberNumber;
+ aSmsParams2.iMobileDeNPI = RMobilePhone::ENationalNumberPlan;
+ aSmsParams2.iAlphaTagPresent = EFalse;
+ aSmsParams2.iServiceCenterAddress.Copy(_L("I'l"));
+ aSmsParams2.iDestinationAddress.Copy(_L("be"));
+ aSmsParams2.iAlphaTagData.Copy(_L("back"));
+
+ aSmsParamsList.AppendL(&aSmsParams1);
+ aSmsParamsList.AppendL(&aSmsParams2);
+ }
+
+
+//
+// Actual test cases
+//
+
+
+/**
+@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmspList::Start
+@SYMTestPriority High
+@SYMTestActions Invokes CRetrieveMobilePhoneSmspList::Start
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySMSPStoreFU::TestStart0001L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RMobileSmsMessaging messaging;
+ TInt err = messaging.Open(iPhone);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(messaging);
+ CRetrieveMobilePhoneSmspList* asyncRetrieveList =
+ CRetrieveMobilePhoneSmspList::NewL(messaging);
+ CleanupStack::PushL(asyncRetrieveList);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever* activeRetriever =
+ CActiveRetriever::NewL(*asyncRetrieveList);
+ CleanupStack::PushL(activeRetriever);
+ scheduler.AddRetrieverL(*activeRetriever);
+
+ //-------------------------------------------------------------------------
+ // TEST A: failure to dispatch request to LTSY
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1, KErrNotSupported);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrNotSupported, activeRetriever->iStatus.Int());
+ AssertMockLtsyStatusL();
+
+ // test for KErrNotFound
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1, KErrNotFound);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrNotFound, activeRetriever->iStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST B: failure on completion of pending request from LTSY->CTSY
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrGeneral);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrGeneral, activeRetriever->iStatus.Int());
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST: completion with empty array
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+
+ CArrayPtrFlat<TSmsParameters>* completeList = new (ELeave) CArrayPtrFlat<TSmsParameters>(1);
+ CleanupStack::PushL(completeList);
+ TMockLtsyData1<CArrayPtrFlat<TSmsParameters>*> completeLtsyData(completeList);
+ completeLtsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
+
+ CMobilePhoneSmspList* list = asyncRetrieveList->RetrieveListL();
+ CleanupStack::PushL( list );
+ ASSERT_EQUALS(0, list->Enumerate());
+ CleanupStack::PopAndDestroy(list);
+
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST C: Successful completion request of
+ // CRetrieveMobilePhoneSmspList::Start when result is not cached.
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+
+ TSmsParameters entry;
+ TSmsParameters entry1;
+ FillInSmsParamsAndListL(*completeList, entry, entry1);
+ data.Close();
+ completeLtsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
+
+ list = asyncRetrieveList->RetrieveListL();
+ CleanupStack::PushL( list );
+
+ ASSERT_EQUALS(2, list->Enumerate());
+ const RMobileSmsMessaging::TMobileSmspEntryV1& smspEntry = list->GetEntryL(0);
+
+ TInt completeIndex(entry.iLocationNumber);
+ ASSERT_EQUALS(completeIndex, smspEntry.iIndex);
+ ASSERT_EQUALS(entry.iAlphaTagData, smspEntry.iText);
+ TUint32 completeValidParams(entry.iParameterIndicator);
+ ASSERT_EQUALS(completeValidParams, smspEntry.iValidParams);
+ ASSERT_EQUALS(entry.iMobileDeTON, smspEntry.iDestination.iTypeOfNumber);
+ ASSERT_EQUALS(entry.iMobileDeNPI, smspEntry.iDestination.iNumberPlan);
+ ASSERT_TRUE( 0 == entry.iDestinationAddress.Compare(smspEntry.iDestination.iTelNumber) );
+ ASSERT_EQUALS(entry.iMobileScTON, smspEntry.iServiceCentre.iTypeOfNumber);
+ ASSERT_EQUALS(entry.iMobileScNPI, smspEntry.iServiceCentre.iNumberPlan);
+ ASSERT_TRUE( 0 == entry.iServiceCenterAddress.Compare(smspEntry.iServiceCentre.iTelNumber) );
+
+ const RMobileSmsMessaging::TMobileSmspEntryV1& smspEntry1 = list->GetEntryL(1);
+
+ completeIndex = entry1.iLocationNumber;
+ ASSERT_EQUALS(completeIndex, smspEntry1.iIndex);
+ ASSERT_EQUALS(0, smspEntry1.iText.Length());
+ completeValidParams = entry1.iParameterIndicator;
+ ASSERT_EQUALS(completeValidParams, smspEntry1.iValidParams);
+ ASSERT_EQUALS(entry1.iProtocolId, smspEntry1.iProtocolId);
+ ASSERT_EQUALS(entry1.iDataCodingScheme, smspEntry1.iDcs);
+ ASSERT_EQUALS(entry1.iValidityPeriod, smspEntry1.iValidityPeriod);
+
+ CleanupStack::PopAndDestroy(list);
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // TEST E: Unsolicited completion of CRetrieveMobilePhoneSmspList::Start
+ // from LTSY.
+ //-------------------------------------------------------------------------
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ completeList->Reset();
+ data.Close();
+ completeLtsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ AssertMockLtsyStatusL();
+
+ // increase coverage
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrGeneral);
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(completeList);
+
+ //-------------------------------------------------------------------------
+ // TEST: completion with null pointer
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+ completeList = NULL;
+ data.Close();
+ completeLtsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrGeneral, activeRetriever->iStatus.Int());
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(3); // activeRetriever, asyncRetrieveList, messaging
+ CleanupStack::PopAndDestroy(2, this); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of CRetrieveMobilePhoneSmspList::Start
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of CRetrieveMobilePhoneSmspList::Start
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySMSPStoreFU::TestStart0002L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ TRequestStatus mockLtsyStatus;
+ iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+ RBuf8 data;
+ CleanupClosePushL(data);
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RMobileSmsMessaging messaging;
+ TInt err = messaging.Open(iPhone);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(messaging);
+ CRetrieveMobilePhoneSmspList* asyncRetrieveList =
+ CRetrieveMobilePhoneSmspList::NewL(messaging);
+ CleanupStack::PushL(asyncRetrieveList);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever* activeRetriever =
+ CActiveRetriever::NewL(*asyncRetrieveList);
+ CleanupStack::PushL(activeRetriever);
+ scheduler.AddRetrieverL(*activeRetriever);
+
+ //-------------------------------------------------------------------------
+ // Test cancelling of CRetrieveMobilePhoneSmspList::Start
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+
+ CArrayPtrFlat<TSmsParameters>* completeList = new (ELeave) CArrayPtrFlat<TSmsParameters>(1);
+ CleanupStack::PushL(completeList);
+ TSmsParameters entry;
+ TSmsParameters entry1;
+ FillInSmsParamsAndListL(*completeList, entry, entry1);
+
+ TMockLtsyData1<CArrayPtrFlat<TSmsParameters>*> completeLtsyData(completeList);
+ completeLtsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data, 10);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate(CActiveRetriever::ECaseGeneralCancelCase);
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
+
+ // Wait for completion of iMockLTSY.NotifyTerminated
+ User::WaitForRequest(mockLtsyStatus);
+ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+ //-------------------------------------------------------------------------
+ // phase 2 cancel test case
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate(CActiveRetriever::ECasePhase2Cancel);
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
+
+ AssertMockLtsyStatusL();
+
+ CleanupStack::PopAndDestroy(4); // completeList, activeRetriever, asyncRetrieveList, messaging
+ CleanupStack::PopAndDestroy(2); // data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to CRetrieveMobilePhoneSmspList::Start
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to CRetrieveMobilePhoneSmspList::Start
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySMSPStoreFU::TestStart0004L()
+ {
+
+
+ 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(telServer2, KMmTsyPhoneName);
+ ASSERT_EQUALS(KErrNone, ret);
+ CleanupClosePushL(phone2);
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RMobileSmsMessaging messaging;
+ TInt err = messaging.Open(iPhone);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(messaging);
+ CRetrieveMobilePhoneSmspList* asyncRetrieveList =
+ CRetrieveMobilePhoneSmspList::NewL(messaging);
+ CleanupStack::PushL(asyncRetrieveList);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever* activeRetriever =
+ CActiveRetriever::NewL(*asyncRetrieveList);
+ CleanupStack::PushL(activeRetriever);
+ scheduler.AddRetrieverL(*activeRetriever);
+
+ RMobileSmsMessaging messaging2;
+ err = messaging2.Open(phone2);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(messaging2);
+ CRetrieveMobilePhoneSmspList* asyncRetrieveList2 =
+ CRetrieveMobilePhoneSmspList::NewL(messaging2);
+ CleanupStack::PushL(asyncRetrieveList2);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever* activeRetriever2 =
+ CActiveRetriever::NewL(*asyncRetrieveList2);
+ CleanupStack::PushL(activeRetriever2);
+ scheduler.AddRetrieverL(*activeRetriever2);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test multiple clients requesting CRetrieveMobilePhoneSmspList::Start
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+
+ CArrayPtrFlat<TSmsParameters>* completeList = new (ELeave) CArrayPtrFlat<TSmsParameters>(1);
+ CleanupStack::PushL(completeList);
+ TSmsParameters entry;
+ TSmsParameters entry1;
+ FillInSmsParamsAndListL(*completeList, entry, entry1);
+
+ TMockLtsyData1<CArrayPtrFlat<TSmsParameters>*> completeLtsyData(completeList);
+ completeLtsyData.SerialiseL(data);
+ iMockLTSY.CompleteL(EMobileSmsMessagingGetSmspListPhase1, KErrNone, data, 10);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+
+ asyncRetrieveList2->Start(activeRetriever2->iStatus);
+ activeRetriever2->Activate();
+
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
+ ASSERT_EQUALS(KErrServerBusy, activeRetriever2->iStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(4); // completeList, activeRetriever2, asyncRetrieveList2, messaging2
+ CleanupStack::PopAndDestroy(3); // activeRetriever, asyncRetrieveList, messaging
+ CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this
+
+ }
+
+
+/**
+@SYMTestCaseID BA-CTSY-SMSP-CRMPSL-0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmspList::Start with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes CRetrieveMobilePhoneSmspList::Start and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySMSPStoreFU::TestStart0005L()
+ {
+
+ OpenEtelServerL(EUseExtendedError);
+ CleanupStack::PushL(TCleanupItem(Cleanup,this));
+ OpenPhoneL();
+
+ CFilteringActiveScheduler scheduler;
+ CActiveScheduler::Install(&scheduler);
+
+ RMobileSmsMessaging messaging;
+ TInt err = messaging.Open(iPhone);
+ ASSERT_EQUALS(KErrNone, err);
+ CleanupClosePushL(messaging);
+ CRetrieveMobilePhoneSmspList* asyncRetrieveList =
+ CRetrieveMobilePhoneSmspList::NewL(messaging);
+ CleanupStack::PushL(asyncRetrieveList);
+
+ CActiveRetriever::ResetRequestsNumber();
+ CActiveRetriever* activeRetriever =
+ CActiveRetriever::NewL(*asyncRetrieveList);
+ CleanupStack::PushL(activeRetriever);
+ scheduler.AddRetrieverL(*activeRetriever);
+
+ //-------------------------------------------------------------------------
+ // Test A: Test timeout of CRetrieveMobilePhoneSmspList::Start
+ //-------------------------------------------------------------------------
+
+ iMockLTSY.ExpectL(EMobileSmsMessagingGetSmspListPhase1);
+
+ asyncRetrieveList->Start(activeRetriever->iStatus);
+ activeRetriever->Activate();
+ scheduler.StartScheduler();
+
+ ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+ ASSERT_EQUALS(KErrTimedOut, activeRetriever->iStatus.Int());
+
+ AssertMockLtsyStatusL();
+ CleanupStack::PopAndDestroy(3); // activeRetriever, asyncRetrieveList, messaging
+ CleanupStack::PopAndDestroy(this);
+
+ }