ipsservices/tsrc/profiletester/inc/popimapprofiletester.h
branchRCL_3
changeset 26 968773a0b6ef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/tsrc/profiletester/inc/popimapprofiletester.h	Tue Sep 14 20:48:24 2010 +0300
@@ -0,0 +1,324 @@
+/*
+ *  Copyright ?2010-2010 Nokia and/or its subsidiary(-ies).  All rights reserved.
+ *  This material, including documentation and any related computer
+ *  programs, is protected by copyright controlled by Nokia.  All
+ *  rights are reserved.  Copying, including reproducing, storing,
+ *  adapting or translating, any or all of this material requires the
+ *  prior written consent of Nokia.  This material also contains
+ *  confidential information which may not be disclosed to others
+ *  without the prior written consent of Nokia.
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ * 
+ * Description: STIF testclass declaration
+ *
+ */
+
+#ifndef POPIMAPPROFILETESTER_H
+#define POPIMAPPROFILETESTER_H
+
+//  INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <TestclassAssert.h>
+#include <cemailaccounts.h>
+#include <centralrepository.h>
+
+//cmail side
+#include "cfsmailbox.h" //for cmail observer
+#include "cfsmailclient.h"
+#include "cfsmailcommon.h" //for cmail common flags
+#include "timeouttimer.h" //for timeout timer
+#include "baseplugincommonutils.h" //for cleanup
+#include "FreestyleEmailCenRepKeys.h"
+#include "../../../ipssossettings/inc/ipssetwizardsettingscenrepkeys.h"
+
+#include "mfsmaileventobserver.h"
+#include "mfsmailrequestobserver.h"
+#include "mfsmailboxsearchobserver.h"
+
+// CONSTANTS
+#define KIPSSosImap4PluginUid      0x2000e53f
+#define KIPSSosPop3PluginUid       0x2000e53e
+
+const TUint KTenSecondsTime(10);
+const TUint KHalfMinuteTime(30);
+const TUint KOneMinuteTime(60);
+
+// MACROS
+#define TEST_CLASS_VERSION_MAJOR 0
+#define TEST_CLASS_VERSION_MINOR 0
+#define TEST_CLASS_VERSION_BUILD 0
+#define DELANDNULL( a ) { if( a ) { delete a; a = NULL; } }
+
+class CPopImapProfileTester;
+class CTimeoutTimer;
+class CFSMailClient;
+class CFSMailBox;
+class CActiveSchedulerWait;
+
+enum TWaitingState
+    {
+    EWaitingNothing = 0,
+    EWaitingEvent,
+    EWaitingResponse,
+    EWaitingSearchComplete,
+    };
+
+class TAccountSetting
+    {
+public:
+    //Other TInt values
+    // amount of accounts configured  
+    TInt iAccountsConfigured;
+    // maximum accounts reached 1 = yes, 0 = no
+    TInt iMaxAccountsReached;
+    // protocol 0= POP, 1= IMAP  //-->imap
+    TInt iProtocolIndicator;
+    // Incoming security auth 0 = no, 1 = yes
+    TInt iIncomingSecurityAuth;
+    // Incoming security protocol (0 = OFF, 1 = StartTLS, 2 = SSL/TLS)
+    TInt iIncomingSecurityProtocol;
+    // Outgoing security auth 0 = no, 1 = yes
+    TInt iOutgoingSecurityAuth;
+    // Outgoing security protocol (0 = OFF, 1 = StartTLS, 2 = SSL/TLS)
+    TInt iOutgoingSecurityProtocol;
+    // Operators security auth 0 = no, 1 = yes
+    TInt iOperatorSecurityAuth;
+    // Operators Security protocol (0 = OFF, 1 = StartTLS, 2 = SSL/TLS)
+    TInt iOperatorSecurityProtocol;
+    // Operators outgoing port number
+    TInt iOperatorPort;
+
+    TInt iIncomingPort;
+    TInt iOutgoingPort;
+
+    TBuf<10> iAccountType;
+    TBuf<50> iEmailAddress;
+    TBuf<50> iUserName;
+    TBuf<100> iPassWord;
+    TBuf<50> iIncomingServer;
+    TBuf<50> iOutgoingServer;
+    TBuf<20> iMailboxName;
+
+    /****
+     * Using the default value
+     */
+    TBuf<5> iWizardAccountType;
+    TBuf<2> iOperatorOutgoingServer;
+    TBool iHideUserNameInSetting;
+    TBuf<10> iAccessPoint;
+    };
+
+NONSHARABLE_CLASS(CPopImapProfileTester) : public CScriptBase,
+        public MFSMailEventObserver,
+        public MFSMailRequestObserver,
+        public MFSMailBoxSearchObserver,
+        public MTimeoutObserver
+
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     */
+    static CPopImapProfileTester* NewL(CTestModuleIf& aTestModuleIf);
+
+    /**
+     * Destructor.
+     */
+    virtual ~CPopImapProfileTester();
+
+public:
+    // New functions
+
+
+public:
+    // Functions from base classes
+
+    /**
+     * From CScriptBase Runs a script line.
+     * @since 
+     * @param aItem Script line containing method name and parameters
+     * @return Symbian OS error code
+     */
+    virtual TInt RunMethodL(CStifItemParser& aItem);
+
+    // from MFSMailEventObserver
+    void EventL(TFSMailEvent aEvent, TFSMailMsgId aMailbox, TAny* aParam1,
+            TAny* aParam2, TAny* aParam3);
+
+    // from MFSMailRequestObserver
+    void RequestResponseL(TFSProgress aEvent, TInt aRequestId);
+
+    // from MFSMailBoxSearchObserver
+    void MatchFoundL(CFSMailMessage* aMatchMessage);
+    void SearchCompletedL();
+    void ClientRequiredSearchPriority(TInt *apRequiredSearchPriority);
+
+    //from MTimeoutObserver
+    void TimeoutNotify();
+
+protected:
+    // New functions
+
+
+protected:
+    // Functions from base classes
+
+
+private:
+
+    /**
+     * C++ default constructor.
+     */
+    CPopImapProfileTester(CTestModuleIf& aTestModuleIf);
+
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     */
+    void ConstructL();
+
+    /**
+     * Frees all resources allocated from test methods.
+     * @since 
+     */
+    void Delete();
+
+    // _______________________ Test Methods __________________________
+
+    // Ordinary test cases
+    TInt SetupAccountL(CStifItemParser& /* aItem */);
+    TInt GoOnlineL(CStifItemParser& /* aItem */);
+    TInt GoOfflineL(CStifItemParser& /* aItem */);
+    TInt RefreshNowL(CStifItemParser& /* aItem */);
+    TInt CancelSyncL(CStifItemParser& /* aItem */);
+    TInt ListStandardFoldersL(CStifItemParser& /* aItem */);
+
+    // list folders from all mailboxes
+    TInt ListFoldersL(CStifItemParser& /* aItem */);
+    // lists  messages in folders of each found mailbox
+    TInt ListMessagesL(CStifItemParser& /* aItem */);
+    // Fetch the specified messages
+    TInt FetchMessagesL(CStifItemParser& /* aItem */);
+    // Send out a mail
+    TInt SendMessageL(CStifItemParser& /* aItem */);
+    // Basic operation of user for creating email
+    TInt BasicMsgOperationsL(CStifItemParser& /* aItem */);
+    // Copy or move message between folders
+    TInt CopyMoveMsgsL(CStifItemParser& /* aItem */);
+    // Search data from messages
+    TInt SearchL(CStifItemParser& /* aItem */);
+    // Add a attachment to new email
+    TInt AttachmentHandlingL(CStifItemParser& /* aItem */);
+    // check if the mailbox is a nokia branding one.
+    TInt BrandingL(CStifItemParser& /* aItem */);
+    // Delete message from Inbox
+    TInt DeleteMsgsL(CStifItemParser& /* aItem */);
+    //remove mailbox
+    TInt RemoveAccountL(CStifItemParser& /* aItem */);
+
+    /**
+     * Method used to log version of test class
+     */
+    void SendTestClassVersion();
+
+    CFSMailMessage* CreatePlainTextMsgL(const TDesC& aSubject,
+            const TDesC& aMsgText);
+    TInt MoveMessageToFolderL(CFSMailMessage& aMsg, TFSFolderType aFolderType);
+
+    TInt GetMessagesFromFolderL(RPointerArray<CFSMailMessage>& aMessages,
+            CFSMailFolder* aFolder, TFSMailDetails aDet,
+            TFSMailSortField aSort, TUint aCount);
+
+    TInt WaitForEvent(TFSMailEvent aWaitedEvent, TAny *aEventParam1 = NULL,
+            TAny *aEventParam2 = NULL, TInt aTimeout = 60);
+
+    TInt WaitForResponse(TFSProgress::TFSProgressStatus aWaitedResponse,
+            TInt aTimeout = 60);
+
+    void OpComplete();
+
+    TInt InitMailboxL();
+
+    TInt DeleteTestMsgL(TDesC& aFolderName);
+    TInt ReadAccountSettings(TAccountSetting& aAccountSetting);
+
+    TInt WriteToWizardCRL(TAccountSetting aAccountSetting);
+
+    void LogEvent(const TDesC& aLogText, TFSMailEvent aEvents, TAny* aParam1,
+            TAny* aParam2, TAny* /*aParam3*/);
+    void LogTFSProgress(const TDesC& aLogText,
+            const TFSProgress::TFSProgressStatus aProgress, TInt aReqId);
+
+    void LogTSSMailSyncState(const TDesC& aLogText,
+            const TSSMailSyncState aState);
+
+    TInt DoSearch(const RPointerArray<TDesC>& aSearchStrings,
+            const TFSMailSortCriteria& aSortCriteria, TInt aTimeout);
+
+    TInt SendMsgL(CFSMailMessage& aMsg, const TDesC &aSubject,
+            TFSMailMsgId& aGotMsgId);
+
+    TInt GetFolderNameFromId(TFSMailMsgId aFolderId, TDes& aFolderName);
+
+    TFSMailMsgId GetFolderIdFromName(const TDesC& aFolderName);
+
+    TBool ParseEventParams(TAny *aEventParam1, TAny *aEventParam2);
+
+    CFSMailFolder* FindFolder(const TDesC& aFolderName);
+
+public:
+    // Data
+
+
+protected:
+    // Data
+
+
+private:
+    // Data
+    TBool iEventSynchronousCall;
+    CFSMailClient* iMailClient;
+
+    CFSMailBox* iIPSMailbox;
+
+    //variables for mfsMailEvent
+    TBool iTimeout;
+    TInt iErr;
+
+    CTimeoutTimer* iTimeoutTimer;
+    TFSMailEvent iCurrWaitedEvent;
+    TAny* iEventParam1;
+    TAny* iEventParam2;
+
+    TFSProgress::TFSProgressStatus iCurrWaitedResponse;
+
+    //OWN: Active scheduler wait and Cb received indication
+    CActiveSchedulerWait* iWait;
+    TWaitingState iWaitingState;
+    TFSMailMsgId iPluginId;
+
+    //checking status of searching
+    TBool iSearchOngoing;
+    TInt iSearchMatches;
+
+public:
+    // Friend classes
+
+protected:
+    // Friend classes
+
+private:
+    // Friend classes
+
+
+    };
+
+#endif      // POPIMAPPROFILETESTER_H
+// End of File