diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/msgtest/testutils/base/inc/MsvTestUtils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgtest/testutils/base/inc/MsvTestUtils.h Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,280 @@ +// Copyright (c) 2000-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: +// + +#ifndef MSV_TEST_UTILS_H_ +#define MSV_TEST_UTILS_H_ + +#include "msvtestutilsbase.h" +#include +#include +#include + +// Forward Declarations + +class CBaseServerMtm; +class CServerMtmDllRegistry; +class CMtmRegistryControl; +class TTaskInfo; + +// Constants + +#define KMtmDir _L("c:\\system\\mtm\\") + +// used for writing to logs +#define KFileNameBodies _L("Entry_RichTextBodies.txt") +#define KFileNameFiles _L("Entry_Files.txt") +#define KFileNameEntryStructure _L("Entry_Structure.txt") + +#define KRfc822Files _L("c:\\mailtest\\rfc822\\Rfc_*.txt") + +_LIT(KMsvTestUtilsNewLine, "\n"); + + +/** +@internalComponent +*/ +const TInt KMsvTestUidPhonePwrValue=0x100052C5; +const TUid KMsvTestUidPhonePwr={KMsvTestUidPhonePwrValue}; + +/** +@internalComponent +*/ +enum TMsvTestPhoneStatus + { + EMsvTestPhoneOff = 0, + EMsvTestPhoneOn + }; + +/** +@internalComponent +*/ +const TInt KMsvTestUidSIMStatusValue =0x100052C6; +const TUid KMsvTestUidSIMStatus ={KMsvTestUidSIMStatusValue}; + +/** +@internalComponent +*/ +enum TMsvTestSIMStatus + { + EMsvTestSimOk, + EMsvTestSimNotPresent, + EMsvTestSimRejected + }; + +/** +@internalComponent +*/ +const TInt KMsvTestUidNetworkStatusValue=0x100052C7; +const TUid KMsvTestUidNetworkStatus ={KMsvTestUidNetworkStatusValue}; + +/** +@internalComponent +*/ +enum TMsvTestNetworkStatus + { + EMsvTestNetworkAvailable, + EMsvTestNetworkUnAvailable + }; + + +// +// +// TestMsvOperationTimer +// +// + +class TestMsvOperationTimer : public CTimer + { +public: + IMPORT_C static TestMsvOperationTimer* NewLC(CConsoleBase* aConsole, CMsvOperation* aMsvOperation, RTest& aRTest); + + IMPORT_C void RunL(); + IMPORT_C void DoCancel(); + IMPORT_C void ConstructL(); + IMPORT_C void IssueRequest(); + + CConsoleBase* iConsole; + CMsvOperation* iMsvOperation; + TTimeIntervalMicroSeconds32 iPeriod; + +protected: + TInt iCount; + TBool iClosing; + RTest iRTest; + IMPORT_C TestMsvOperationTimer(CConsoleBase* aConsole, CMsvOperation* aMsvOperation, RTest& aRTest); + }; + +// +// +// TMsvTestDllInfo +// +// + +class TMsvTestDllInfo + { + public: + inline TMsvTestDllInfo(const TDesC& aFileName, TInt aOrdinal = 1, TVersion aVersion = TVersion(2,0,0)); + TFileName iFileName; + TInt iOrdinal; + TVersion iVersion; + }; + +// +// +// enum TMsvTestUtilsCreationFlags +// +// + +enum TMsvTestUtilsCreationFlags + { + ETuNone = 0x0000, + ETuCreateTestDirectories = 0x0001, + ETuCleanMessageFolder = 0x0002, + ETuDeleteMtmRegistry = 0x0004, + ETuCreateServerMtmReg = 0x0008, + ETuInstallMtmGroup = 0x0010, + ETuDeleteService = 0x0020, + ETuCreateService = 0x0040, //NewL may leave if service already exists + ETuGoClientSide = 0x0080, + ETuGoServerSide = 0x0100, + ETuAllClientSide = ETuCleanMessageFolder + | ETuDeleteMtmRegistry + | ETuCreateTestDirectories + | ETuDeleteService + | ETuCreateService + | ETuGoClientSide, + ETuAllServerSide = ETuAllClientSide + & ~ETuGoClientSide + | ETuGoServerSide, + ETuMinimalClientSide = ETuCreateTestDirectories + | ETuDeleteService + | ETuCreateService + | ETuGoClientSide, + ETuMinimalServerSide = ETuMinimalClientSide + & ~ETuGoClientSide + | ETuGoServerSide, + ETuKeepLogFile = 0x10000 + }; + +// +// +// CMsvTestUtils +// +// + +class CMsvTestUtils : public CTestUtils + { +public: + IMPORT_C void GoClientSideL(); + IMPORT_C void GoServerSideL(); + IMPORT_C virtual void Reset(); + IMPORT_C void CreateRegistryObjectAndControlL(); + IMPORT_C void CleanMessageFolderL(); + IMPORT_C void CreateAllTestDirectories(); + + IMPORT_C void FindChildrenL(TMsvId aFolderToTraverse, TBool aReplace = ETrue, TBool aOtherFiles = ETrue); + IMPORT_C void FindChildrenL(TMsvId aFolderToTraverse, const TFileName& aFilepath, TBool aReplace = ETrue, TBool aOtherFiles = ETrue); + + //CMsvEntry and CMsvServerEntry functions + inline void CreateEntryL(TMsvEntry& aEntry); + inline void CreateAndSetEntryL(TMsvEntry& aEntry); + inline void DeleteEntryL(TMsvId aId); + inline void ChangeEntryL(TMsvEntry& aEntry); + inline void SetEntryL(TMsvId aId); + inline TMsvEntry Entry(); + inline CMsvStore* EditStoreL(); + inline CMsvStore* ReadStoreL(); + inline CMsvEntrySelection* ChildrenWithTypeLC(TUid aType); + inline CMsvEntrySelection* ChildrenWithMtmLC(TUid aMtm); + inline void SetSortTypeL(TMsvSelectionOrdering aOrder); + + virtual void InstantiateClientMtmsL() = 0; + virtual void InstantiateServerMtmsL() = 0; + virtual void DeleteServicesL() = 0; + virtual void CreateServicesL() = 0; + virtual void FindExistingServicesL() = 0; + virtual void InstallMtmGroupsL() = 0; + virtual void CreateServerMtmRegsL() = 0; + + //Returns TMsvEntry.iDate for aEntryId, and the time it is scheduled for on the task scheduler + IMPORT_C TInt ScheduleTime(TMsvId aEntryId, TTime& rEntryTime, TTime& rTaskSchedulerTime, TTaskInfo& rTaskInfo); + IMPORT_C TInt AppendScheduleTimeL(TMsvId aEntryId, TDes& rOutput); + IMPORT_C void SpecifyRfc822Dir(const TFileName& aFilePath); + + IMPORT_C void NavigateMessageStoreL(TMsvId aStart = KMsvRootIndexEntryId); + +protected: + IMPORT_C CMsvTestUtils(RTest& aRTest); + IMPORT_C ~CMsvTestUtils(); + + IMPORT_C virtual void ConstructL(TUint aCreationFlags = ETuNone); + + //MTM Functions + IMPORT_C void InstallMtmGroupL(const TDesC& aDatFile); + IMPORT_C void CreateServerMtmRegL(const TUid aMsgType, const TDesC& aHumanReadableName, const TMsvTestDllInfo& aServerMtm, const TMsvTestDllInfo& aClientMtm, const TMsvTestDllInfo& aUiMtm, const TMsvTestDllInfo& aUiDataMtm, const TUid aGroup, const TDesC& aDatFile); + IMPORT_C CBaseMtm* InstantiateClientMtmL(TUid aMtmType, TMsvId aServiceId); + IMPORT_C CBaseServerMtm* InstantiateServerMtmL(TUid aMtmType, TMsvId aServiceId); + + //Service Functions + IMPORT_C TMsvId CreateServiceL(const TUid aMtm, TBool aReadOnly = EFalse, TBool aVisible = EFalse); + IMPORT_C void DeleteServiceL(TUid aMtm); + IMPORT_C void ServiceIdL(TUid aMtm, TMsvId& rFirstId, CMsvEntrySelection* rServiceIds = NULL); + + IMPORT_C void WriteBodyDataL(TMsvId aId, const TFileName& aFilepath, CMsvStore& fileStore, TBool aReplace); + IMPORT_C void WriteFileDataL(TMsvId aId, const TFileName& aFileName, const TFileName& aLogFilepath, TBool aReplace); + IMPORT_C virtual void ListChildrenL(RFile& aFile, CDir& rfcFileList, TInt& aCount, TInt& aEntryCount, TBool aReplace = ETrue, TBool aOtherFiles = ETrue); + IMPORT_C void SpecifyLogsDir(const TFileName& aFilePath); + + IMPORT_C virtual void SetFolderType(TMsvEntry& entry, TPtrC& type); + + virtual void DisplayChildDetailsL(const TMsvEntry& /*aEntry*/) {}; + IMPORT_C void DisplayChildL(const TMsvEntry& entry); + +private: + void ListChildrenL(TBool aReplace, TBool aOtherFiles, RFile& aFile, CDir& rfcFileList); + void DoScheduleTimeL(TMsvId aEntryId, TTime& rEntryTime, TTime& rTaskSchedulerTime, TTaskInfo& rTaskInfo); + + void ShowChildrenL(const CMsvEntry& aEntry, TInt aStart, TInt& aMore, TInt aMaxCount = 10); + TInt DoNavigateMessageStoreL(TMsvId& aParent, TInt& aStart); + +public: + CMsvSession* iMsvSession; + CMsvEntry* iMsvEntry; + CMsvServerEntry* iServerEntry; + CClientMtmRegistry* iClientMtmRegistry; + TBuf<2> iDriveName ; + +protected: + enum TClientOrServerSide + { + ENeither, + EClientSide, + EServerSide + } iClientServer; + + TBool iRegistryObjectAndControlCreated; + CMsvServer* iMsvServer; + CServerMtmDllRegistry* iServerMtmDllRegistry; + CMtmRegistryControl* iMtmRegistryControl; + TMsvDummyObserver* iDummyObserver; + TFileName iLogsDir; + TFileName iRfc822Dir; + TInt iFileCount; + + }; + +#include + +#endif