--- /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 <StifLogger.h>
+#include <NormalHardcodedAssert.h>
+#include <msgstoreapi.h>
+
+//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<TMsgStoreId> iMatches;
+ RPointerArray<CMsgStoreMessage> iMessages;
+
+ private:
+ CYieldHelper* iYieldHelper;
+ };
+
+#endif // ASYNC_TESTCASE_BASE_H
+
+// End of File