contacts_plat/predictivesearch_client_api/tsrc/PsClientTestSuite/inc/PsClientTestSuite.h
branchRCL_3
changeset 63 f4a778e096c2
child 64 c1e8ba0c2b16
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contacts_plat/predictivesearch_client_api/tsrc/PsClientTestSuite/inc/PsClientTestSuite.h	Wed Sep 01 12:29:52 2010 +0100
@@ -0,0 +1,349 @@
+/*
+* 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: Header file for client test suite
+*
+*/
+
+
+#ifndef PS_CLIENT_TEST_SUITE_H
+#define PS_CLIENT_TEST_SUITE_H
+
+// SYSTEM INCLUDES
+#include <StifLogger.h>
+#include <TestScripterInternal.h>
+#include <StifTestModule.h>
+#include <MPsResultsObserver.h>
+#include <CPcsDefs.h>
+
+// USER INCLUDES
+#include "TestSuiteInputData.h"
+#include "psclienttestsuitedefs.h"
+
+// FORWARD DECLARATIONS
+class CPcsTestContactsHandler;
+class CPsQuery;
+class CPSRequestHandler;
+class CPsSettings;
+
+
+// CLASS DECLARATION
+
+/*** CPsClientTestSuite test class for STIF Test Framework TestScripter.
+* @since S60 v3.2
+*/
+
+NONSHARABLE_CLASS(CPsClientTestSuite) : public CScriptBase,  public MPsResultsObserver
+{
+    public:  // Constructors and destructor
+
+        /**
+        * First phase constructor constructor.
+        */
+        static CPsClientTestSuite* NewL( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CPsClientTestSuite();
+
+    public: // Functions from base classes
+
+        /**
+        * From CScriptBase Runs a script line.
+        *
+        * @param aItem Script line containing method name and parameters
+        * @return Symbian OS error code
+        */
+        virtual TInt RunMethodL( CStifItemParser& aItem );
+
+    public: // Function from base class MPsResultsObserver
+
+        /**
+        * HandlePsResultsUpdateL.
+        * Handle updates from the Ps server.
+        *
+        * @param searchResults Search results returned from the server.
+        * @param searchSeqs List of matching character sequences.
+        */
+        void HandlePsResultsUpdate(RPointerArray<CPsClientData>& searchResults,
+                                   RPointerArray<CPsPattern>& searchSeqs);
+
+        /**
+        * HandlePsError.
+        * Handle errors from the server.
+        *
+        * @param aErrorCode Search errors returned from the server.
+        */
+        void HandlePsError(TInt aErrorCode);
+
+        /**
+        * CachingStatus
+        * Gets called when caching is completed.
+        * Observers need to implement this function accordingly
+        * to take action after cache completion
+        *
+        * @param aStatus - caching status,
+        *   20 - Caching completes succesfully,
+        *   30 - Caching completed with errors
+        * @param aError - Any error that occurred while caching. KErrNone if no error else the error code
+        */
+        void CachingStatus(TCachingStatus& aStatus, TInt& aError);
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CPsClientTestSuite( CTestModuleIf& aTestModuleIf );
+
+        /**
+        * Symbian 2nd phase constructor.
+        */
+        void ConstructL();
+
+        /**
+        * Frees all resources allocated from test methods.
+        */
+        void Delete();
+
+    private:  //Test cases
+
+        /**
+        * This method writes the test case title to the log file
+        */
+        TInt WriteTitleToLog( );
+
+        /**
+        * This test case creates contacts in the phonebook
+        *
+        * @param aItem Script line containing parameters.
+        */
+        TInt CreateContactsL( CStifItemParser& aItem );
+
+        /**
+        * This test case creates groups in the phonebook. It creats only
+        * empty groups, i.e the groups do not have any members.
+        *
+        * @param aItem Script line containing parameters.
+        */
+        TInt CreateGroupsInPhoneL( CStifItemParser& aItem );
+
+        /**
+        * This test case fires a search query to the psengine
+        *
+        * @param aItem Script line containing parameters.
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt SearchCacheL( CStifItemParser& aItem );
+
+        /**
+        * This test case cancels a search query to the psengine
+        *
+        * @param aItem Script line containing parameters.
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt CancelSearchL( CStifItemParser& aItem );
+
+        /**
+        * This test case searches for a query in the given input string
+        *
+        * @param aItem Script line containing parameters.
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt SearchOnInputStringL(CStifItemParser& aItem);
+
+        /**
+        * This test case searches for a query with LookupMatch
+        * and ensures the result string is correct
+        *
+        * @param aItem Script line containing parameters.
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt SearchLookupMatchStringL(CStifItemParser& aItem);
+
+        /**
+        * This test case requests the Adaptive Grid
+        * and ensures the result string is correct
+        *
+        * @param aItem Script line containing parameters.
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt CheckAdaptiveStringL(CStifItemParser& aItem);
+
+        /**
+        * This method deletes all the contacts in the phonebook
+        *
+        * @param aItem Script line containing parameters.
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt DeleteAllContactsInPhonebookL(CStifItemParser& aItem);
+
+        /**
+        * This method checks the caching status
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt CheckCachingStatusL();
+
+        /**
+        * This method checks the version of the ps server
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt CheckVersion();
+
+        /**
+        * This method checks if a particular language is supported by the ps server
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt TestIsLanguageSupportedL(CStifItemParser& aItem);
+
+        /**
+        * This method waits for time equal to the input parameter
+        *
+        * @param aInterval  The wait interval
+        */
+        void RTimerWait(TTimeIntervalMicroSeconds32 aInterval);
+
+        /**
+        * This method checks gets all the contents from a particular URI (as specified in the configuration)
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt GetAllContentsL( CStifItemParser& aItem );
+
+        /**
+        * This method searches in a particular group. The group name is given as a
+        * configuration parameter.
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt SearchWithInGroupL(CStifItemParser& aItem );
+
+        /**
+        * This method tests the sort order
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt TestSortOrderL( CStifItemParser& aItem );
+
+        /**
+        * This method tests the sort order for error case
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt TestSortOrderErrCaseL( CStifItemParser& aItem );
+
+        /**
+        * This method removes the observer from ps searchengine
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt RemoveObserverL(CStifItemParser& aItem);
+
+        /**
+        * Tests if contact Id returns correct vpbklink
+        *
+        * @return -  - error status - KErrNone if test case is successful
+        */
+        TInt ConvertToVpbkLinkL(CStifItemParser& aItem);
+
+        /**
+        * Tests for bookmarked contacts
+        *
+        * @return error status - KErrNone if test case is successful
+        */
+        TInt AddMarkedContactsTestL(CStifItemParser& aItem);
+
+        /**
+        * Tests for data order
+        *
+        * @return error status - KErrNone if test case is successful
+        */
+        TInt TestDataOrderL(CStifItemParser& aItem);
+
+        /**
+        * Tests for data order
+        *
+        * @return error status - KErrNone if test case is successful
+        */
+        TInt TestDataOrderForErrL(CStifItemParser& aItem);
+
+        /**
+        * This method shuts the server down
+        *
+        * @return - error status - KErrNone if test case is successful
+        */
+        TInt ShutDownL();
+
+    private: // Data
+
+        /**
+        * The input data parser
+        * own
+        */
+        CTestSuiteInputData* iInputParsedData;
+
+        /**
+        * The search query
+        */
+        CPsQuery *iPsQuery;
+
+        /**
+        * The CPSRequestHandler instance
+        */
+        CPSRequestHandler* iPsClientHandler;
+
+        /**
+        * The search settings
+        */
+        CPsSettings* iSettings ;
+
+        /**
+        * The error return status
+        */
+        TInt iReturnStatus;
+
+        /**
+        * The group Id of the group name entered in the configuration file
+        */
+        TInt iGroupToBeSearchedId;
+
+        /**
+        * The current operation being performed
+        */
+        TTestCase iCurrentOperation;
+
+        /**
+        * RTimer variable to set the timer before RunL calls any function.
+        * This is required to allow other threads to run since contact fetch
+        * is CPU intensive task.
+        */
+        RTimer iTimer;
+
+        /**
+        * The caching status of the psengine
+        */
+        TCachingStatus iCachingStatus;
+
+        /**
+        * The marked contacts
+        */
+        RPointerArray<CPsClientData> iMarkedContacts;
+};
+
+#endif // PS_CLIENT_TEST_SUITE_H
+
+// End of File