contacts_plat/predictivesearch_client_api/tsrc/PsClientTestSuite/inc/PsClientTestSuite.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contacts_plat/predictivesearch_client_api/tsrc/PsClientTestSuite/inc/PsClientTestSuite.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,350 @@
+/*
+* 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 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