diff -r 000000000000 -r e686773b3f54 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 +#include +#include +#include +#include + +// 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& searchResults, + RPointerArray& 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 iMarkedContacts; + +}; + +#endif // PS_CLIENT_TEST_SUITE_H + +// End of File