diff -r 8466d47a6819 -r 12c456ceeff2 emailservices/emailstore/tsrc/message_store_test/inc/AsyncTestCaseBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/emailstore/tsrc/message_store_test/inc/AsyncTestCaseBase.h Thu Jan 07 12:38:38 2010 +0200 @@ -0,0 +1,215 @@ +/* +* Copyright (c) 2002 - 2007 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: t_ImsIdsPlugin test module. +* +*/ + + + +#ifndef ASYNC_TESTCASE_BASE_H +#define ASYNC_TESTCASE_BASE_H + +// INCLUDES +#include "StifTestModule.h" +#include +#include +#include + +//Forward declaration + +class CYieldHelper : public CTimer + { + public: + static CYieldHelper* NewL(); + virtual ~CYieldHelper(); + + void Yield( TInt aMicroSeconds ); + + private: + CYieldHelper(); + void ConstructL(); + + // inherited from CActive + virtual void RunL(); + virtual void DoCancel(); + + private: + CActiveSchedulerWait* iYieldWait; + }; + +// CLASS DECLARATION +class RDebugSession : public RSessionBase + { + public: + + // SERVER MUST BE ALREADY RUNNING! + TInt Connect(); + + void Close(); + + void SendBackupRestoreEventL( TUint aEvent ); + + void SendPointSecEventL( TBool aLock ); + + void SimulateLowDiskSpaceL( TUint aLatency ); + + TInt GetEncryptionStateL(); + + void ShutdownServerL(); + }; + + +// CLASS DECLARATION +class CAsyncTestCaseBase : public CTimer + { + public: // Constructors and destructor + + virtual ~CAsyncTestCaseBase(); + + inline TInt Result() { return iResult; } + + protected: + enum TState + { + EStateInit, + EStateExecute, + EStateDone, + }; + + /** + * C++ default constructor. + */ + CAsyncTestCaseBase( CStifLogger* aLogger ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + //steps for preparing the test cases + virtual void BeforeTestL(); + + //abstract method to start executing the real test case + // return ETrue if execution is done + virtual TBool ExecuteL() = 0; + + //steps for after the test cases, make sure this is always run + virtual void AfterTestL(); + + //stop the execution + virtual void Stop(); + + //From CTimer + virtual void RunL(); + virtual TInt RunError(TInt aError); + virtual void DoCancel(); + + void LogHeader( const TDesC& aTestType ); + + void CheckCondition( const TDesC& aCondition, TBool aPassed, TBool aLog=ETrue ); + + void ComparePropertiesL( const CMsgStorePropertyContainer& aProperties1, + const CMsgStorePropertyContainer& aProperties2 ); + + void SimulateLowDiskSpaceL( TUint aLatency ); + void TriggerBackupRestoreEventL( TUint aEvent ); + void TriggerPointSecEventL( TBool aLock ); + void ShutdownServerL(); + void Yield( TInt aMicroSeconds ); + void WaitForServerToTerminate(); + + TUint TestAddIntegerPropertyL( CMsgStorePropertyContainer& aProperties, const TDesC8& aName, TUint32 aValue, TBool aUseAddOrUpdate = EFalse ); + TUint TestAddBoolPropertyL( CMsgStorePropertyContainer& aProperties, const TDesC8& aName, TBool aValue, TBool aUseAddOrUpdate = EFalse ); + TUint TestAddDes8PropertyL( CMsgStorePropertyContainer& aProperties, const TDesC8& aName, const TDesC8& aValue, TBool aUseAddOrUpdate = EFalse ); + TUint TestAddDesPropertyL( CMsgStorePropertyContainer& aProperties, const TDesC8& aName, const TDesC& aValue, TBool aUseAddOrUpdate = EFalse ); + TUint TestAddContainerPropertyL( CMsgStorePropertyContainer& aProperties, const TDesC8& aName, const CMsgStorePropertyContainer& aValue, TBool aUseAddOrUpdate = EFalse ); + TUint TestAddTimePropertyL( CMsgStorePropertyContainer& aProperties, const TDesC8& aName, const TTime& aValue, TBool aUseAddOrUpdate = EFalse ); + TUint TestAddAddressPropertyL( CMsgStorePropertyContainer& aProperties, const TDesC8& aName, const RMsgStoreAddress& aValue, TBool aUseAddOrUpdate = EFalse ); + + void TestRemovePropertyL( CMsgStorePropertyContainer& aProperties, TUint aIndex ); + + void TestUpdateDes8PropertyL( CMsgStorePropertyContainer& aProperties, + TUint aIndex, + const TDesC8& aNewValue, + TBool aUseAddOrUpdate = EFalse ); + + void TestUpdateDesPropertyL( CMsgStorePropertyContainer& aProperties, + TUint aIndex, + const TDesC& aNewValue, + TBool aUseAddOrUpdate = EFalse ); + + void TestUpdateContainerPropertyL( CMsgStorePropertyContainer& aProperties, + TUint aIndex, + CMsgStorePropertyContainer& aNewValue, + TBool aUseAddOrUpdate = EFalse ); + + void TestUpdateBoolPropertyL( CMsgStorePropertyContainer& aProperties, + TUint aIndex, + TBool aNewValue, + TBool aUseAddOrUpdate = EFalse ); + + void TestUpdateIntegerPropertyL( CMsgStorePropertyContainer& aProperties, + TUint aIndex, + TUint32 aNewValue, + TBool aUseAddOrUpdate = EFalse ); + + void TestUpdateTimePropertyL( CMsgStorePropertyContainer& aProperties, + TUint aIndex, + const TTime& aNewValue, + TBool aUseAddOrUpdate = EFalse ); + + void TestUpdateAddressPropertyL( CMsgStorePropertyContainer& aProperties, + TUint aIndex, + const RMsgStoreAddress& aNewValue, + TBool aUseAddOrUpdate = EFalse ); + + void CopyDesToDes8( const TDesC& aDes, TDes8& aDes8 ); + + void CreateFileL( const TDesC& aName, + TUint aTotalLength, + TChar aFillChar, + const TDesC& aString, + TUint aOffset ); + + void CreateRandomMessagesL( CMsgStoreMailBox* aMailBox1, + TMsgStoreId aFolder1Id, + TInt aCount, + TBool aKeepIds = EFalse, + TBool aLog = EFalse ); + + void CreateRandomString( TDes& aString, TInt aLength, TInt64& aSeed ); + + void SetMessageContentL( CMsgStoreMessage* aMessage, const TDesC8& aContent ); + + protected: + // Pointer to logger + CStifLogger* iLog; + + CActiveScheduler* iActiveScheduler; + CMsgStore* iMsgStore; + + TState iState; + TInt iResult; + TInt iCaseId; + + RArray iMatches; + RPointerArray iMessages; + + private: + CYieldHelper* iYieldHelper; + }; + +#endif // ASYNC_TESTCASE_BASE_H + +// End of File