diff -r 4697dfb2d7ad -r 238255e8b033 messagingappbase/smsmtm/test/inc/T_SmsSendRecv.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/smsmtm/test/inc/T_SmsSendRecv.h Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,150 @@ +// Copyright (c) 1999-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: +// + +#include + +#include +#include + +_LIT(KSmsSendRecvTestName, "Send and Receive"); + +class CEntryObserver : public CBase, public MMsvEntryObserver + { +public: + void HandleEntryEventL(TMsvEntryEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); + ~CEntryObserver(); +public: + + static CEntryObserver* NewL(CSmsTestUtils& aTestUtils, const TInt& aCurrentMessageNum); + const CMsvEntrySelection& Received() const {return *iReceived;} + TMsvId Received(TInt aItem) const {return iReceived->At(aItem);} + TInt Count() const {return iReceived->Count();} + TMsvId LastReceived() const {return Count() ? Received(Count() - 1) : KErrNotFound;} + TMsvId ItemReceived(TInt aItem) const {return Count() ? Received(aItem) : KErrNotFound;} + +private: + + void CheckReceivedMessageL(TMsvId aId); + CEntryObserver(CSmsTestUtils& aTestUtils, const TInt& aCurrentMessageNum); + + CMsvEntrySelection* iReceived; //< An array containing the received messages + const TInt& iCurrentMessageNum; //< Number of the current message + CSmsTestUtils& iSmsTest; //< Sms Test Util + }; + +const TTimeIntervalMicroSeconds32 KWaitForReceiveIteration = 2000000; +const TTimeIntervalMicroSeconds32 KMaxWaitForMsg = 90000000; +const TTimeIntervalMicroSeconds32 KWaitForWatchersToStart = 20000000; + +const TTimeIntervalMicroSeconds32 KWaitForWatchersToStartDisplayInterval = 5000000; +const TTimeIntervalMicroSeconds32 KWaitForWatchersToDie = 2000000; + +//Command Line Switches +_LIT(KParseAfterReceive, "/p"); +_LIT(KSaveAfterReceive, "/s"); +_LIT(KWaitForever, "/w"); +_LIT(KTestBifs, "/b"); +_LIT(KRunEmsTests, "/e"); // if on, uses ems script instead + +//Test Bifs +_LIT(KSendRecvScript, "sendrecv.script"); +_LIT(KSendRecvEmsScript, "sendrecv_ems.script"); +_LIT(KTestBif1, "Koala.rsc"); +_LIT(KTestBif2, "Giraffe.rsc"); +_LIT(KBifDir, "c:\\system\\bif\\"); +const TTimeIntervalMicroSeconds32 KBifWait = 4000000; + +class CSmsSendRecvTest : public CSmsTestBase + { +public: + static CSmsSendRecvTest* NewLC(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aNextTest); + ~CSmsSendRecvTest(); + +private: + CSmsSendRecvTest(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aNextTest); + + TBool WatchersAlreadyRunningL(); + + void TestSendingL(); + TBool SendNextMessageL(); + void StartWatcherL(); + void TestWaitForReceiveL(); + void TestParseL(); + void DoRunTestParseL(); + + void TestBifsL(); + void TestAddBifL(const TDesC& aBifName); + void TestRemoveBifL(const TDesC& aBifName); + + void ConstructL(); + + void RunL(); + void DoCancel(); + + TInt RunError(TInt aError); + void RunComplete(); + + void ShowMenuL(); + void RunAutoL(); + + void DoRunSendingL(); + void DoRunWaitingToReceiveL(); + void DoWaitL(); + + void WaitForExtraL(); + void DoRunWaitForExtraL(); + + TInt CountRecipientsL(TMsvId aId); + void StoreMessageL(TMsvId aId, const CSmsHeader& aHeader); + + void SendMessageIndicationL(TUint8 aMessageType = TSmsUtilities::EVoiceMessageWaiting, TUint8 aMessageCount=1); + void SendReplaceTypeMessageL(); + TInt GetIndexOfSectionL(const TDesC& aSectionName); + void TestReplyL(); + void SetSmsSettingsL(); + + + CEntryObserver* iEntryObserver; //< An Entry Observer + + TInt iSent; //< Total number of messages sent + TInt iTotal; //< Total number of messages received + + TInt iCountWaits; //< Count to wait + + CTestUtilsWatcherStarter* iWatchers; //< A Watcher + CMsvEntry* iEntryForObserver; //< A Msv Entry + TInt iCurrentMessageNum; //< The number of the current message + TBool iParse; //< A boolean + TBool iSaveToFile; //< A boolean + TBool iWaitForever; //< A boolean + TInt iMsgVCalenderIndex; //< store the index of vCalender received message + + enum TSmsSendTestState + /** @enum TSmsSendTestState + * Enum defining the states of this test harness + */ + { + EStateWaiting, + EStateSending, + EStateWaitingToReceive, + EStateParsing, + EStateMessageReceived, + EStateWaitingToReceiveAnyExtra + } iState; + + RSocketServ iSocketServ; //< A Socket Server + RSocket iSocket; //< A Socket + TBool iTestBifs; + };