diff -r bbd31066657e -r 8bb370ba6d1d testexecfw/stf/api/api_platform/inc/UIStore.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecfw/stf/api/api_platform/inc/UIStore.h Fri Apr 09 10:46:28 2010 +0800 @@ -0,0 +1,586 @@ +/* +* Copyright (c) 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: This file contains the header file of the CUIStore +* class +* +*/ + +#ifndef UISTORE_H +#define UISTORE_H + + +// INCLUDES +#include +#include + +#include +#include +#include + +#include + +// CONSTANTS +_LIT( KDefaultIni, "\\testframework\\testframework.ini" ); + +// Timeout for popups +const TInt KDefaultPopupTimeout = 2100; // 35s. Note this is maximun time in + // current implementation(used in + // After()-method, 32bit). +// Timeout for popups +const TInt KRebootPopupTimeout = 1; + +// MACROS + +// DATA TYPES + +// Menu update type + +// FUNCTION PROTOTYPES +// +// FORWARD DECLARATIONS +class CUIStoreIf; +class CStartedTestCase; +class CUIEngine; +class CTestInfo; +class CUIEngineContainer; +class CStartedTestSet; +class CUIStorePopup; + +// DESCRIPTION +// CUIStore class +class CUIStore + :public CUIIf + { + public: // Enumerations + + private: // Enumerations + + // Popup priorities + enum TPopupPriority + { + EPopupPriorityHighest, + EPopupPriorityNormal, + EPopupPriorityLow + }; + + public: // Constructors and destructor + + /** + * NewL is first phase of two-phased constructor. + */ + static CUIStore* NewL( CUIStoreIf* iUIStoreIf ); + + /** + * Destructor of CUIStore. + */ + ~CUIStore(); + + + public: // New functions + + /** + * Used to open TestFramework. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt Open( const TDesC& aTestFrameworkIni = KNullDesC ); + + /** + * Used to close TestFramework. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt Close(); + + /** + * Used to add test module to test framework. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt AddTestModule( const TDesC& aModuleName, + const TDesC& aIniFile = KNullDesC ); + + /** + * Used to remove test module to test framework. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt RemoveTestModule( const TDesC& aModuleName ); + + /** + * Used to add test case file for test module. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt AddTestCaseFile( const TDesC& aModuleName, + const TDesC& aCaseFile ); + + /** + * Used to remove test case file from test module. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt RemoveTestCaseFile( const TDesC& aModuleName, + const TDesC& aCaseFile ); + + /** + * Start selected test case identified with CTestInfo. + * anIndex contains index in StartedTestCase array, + * which is valid only during execution of calling + * function. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt StartTestCase( const CTestInfo& aTestInfo, + TInt& anIndex ); + + /** + * Return array of existing test cases. + */ + IMPORT_C TInt TestCases( RRefArray& aTestCases, + const TDesC& aTestModule = (TDesC&) KNullDesC(), + const TDesC& aTestCaseFile = (TDesC&) KNullDesC() ); + + + + /** + * Return started (running/runned) test case + */ + IMPORT_C CStartedTestCase& StartedTestCaseL( TInt anIndex ); + + /** + * Return started (running/runned) test cases + */ + IMPORT_C TInt StartedTestCases( RRefArray& aTestCases, + TInt aStatus = CUIStoreIf::EStatusAll, + const TDesC& aTestModule = (TDesC&) KNullDesC(), + const TDesC& aTestCaseFile = (TDesC&) KNullDesC() ); + + /** + * Return modules array + */ + IMPORT_C TInt Modules( RRefArray& aTestModules ); + + /** + * Return test case files + */ + IMPORT_C TInt TestCaseFiles( RRefArray& aTestCaseFiles, + const TDesC& aTestModule = (TDesC&) KNullDesC() ); + + + /** + * Loads all TestFramework test modules from \sys\bin\ directories + * of all drives. + */ + IMPORT_C TInt LoadAllModules(); + + /** + * Lists all TestFramework test modules from \sys\bin\ directories + * of all drives. + */ + IMPORT_C TInt ListAllModules( RPointerArray& aModuleNames ); + + + /** + * Test set support. + */ + + /** + * Create new test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt CreateTestSet( const TDesC& aSetName ); + + /** + * Remove active test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt RemoveTestSet( const TDesC& aSetName ); + + /** + * Query test sets. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt TestSets( RRefArray& aSetInfos ); + + /** + * Query test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C const CTestSetInfo& TestSetL( const TDesC& aSetName ); + + /** + * Add test case to test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt AddToTestSet( const TDesC& aSetName, const CTestInfo& aTestInfo ); + + /** + * Insert test case to test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt InsertToTestSet( const TDesC& aSetName, + const CTestInfo& aTestInfo, + TInt aPos ); + + /** + * Remove test case from test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt RemoveFromTestSet( const TDesC& aSetName, const CTestInfo& aTestInfo ); + + /** + * Save test set. Depreceated, SaveTestSet2 to be used instead + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt SaveTestSet( const TDesC& aSetName ); + + /** + * Save test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt CUIStore::SaveTestSet2( TDes& aSetName ); + /** + * Load test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt LoadTestSet( const TDesC& aSetName ); + + /** + * Load saved test cases. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt LoadSavedTestCases(); + + /** + * Start selected test set identified with CTestSetInfo. + * anIndex contains index in StartedTestSet array, + * which is valid only during execution of calling + * function. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt StartTestSet( const CTestSetInfo& aTestSetInfo, + TInt& anIndex, + CStartedTestSet::TSetType aType = + CStartedTestSet::ESetSequential ); + IMPORT_C TInt StartTestSet( const CTestSetInfo& aTestSetInfo, + TInt& anIndex, + CStartedTestSet::TSetType aType, + TBool aNotStartedCasesMode); + + /** + * Abort running test set. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt AbortTestSet( CStartedTestSet& aSetInfo ); + + /** + * Return started (running/runned) test set + * + * Returns Symbian OS error code. + */ + IMPORT_C CStartedTestSet& StartedTestSetL( TInt anIndex ); + + /** + * Return started (running/runned) test cases + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt StartedTestSets( RRefArray& aTestCases, + TInt aStatus = CUIStoreIf::ESetAll ); + + /** + * Updates information stored about test set in file. + * + * Returns Symbian OS error code. + */ + IMPORT_C TInt UpdateTestSet(CTestSetInfo& aSetInfo); + + /** + * Reads filters (if any) from initialization file. + */ + IMPORT_C void ReadFiltersL(RPointerArray& aFilters); + + /** + * Creates list of available Test Sets. + * + * Returns Symbian OS error code. + */ + + IMPORT_C TInt GetTestSetsList( RRefArray& aArray ); + + + public: // Functions from base classes + + + protected: // New functions + // None + + protected: // Functions from base classes + // None + + private: + + /** + * C++ default constructor. + */ + CUIStore( CUIStoreIf* iUIStoreIf ); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + /** + * Test case executed. + * + * Returns Symbian OS error code. + */ + void TestExecuted ( CUIEngineContainer* aContainer, + TFullTestResult& aFullTestResult ); + + /** + * Progress information from Test case execution. + * + * Returns Symbian OS error code. + */ + TInt PrintProg ( CUIEngineContainer* aContainer, + TTestProgress& aProgress ); + + /** + * Error information from Test framework. + * + * Returns Symbian OS error code. + */ + TInt ErrorPrint( TErrorNotification& aError ); + + /** + * Remote protocol messages handler. + */ + TInt RemoteMsg( CUIEngineContainer* aContainer, + const TDesC& aMessage ); + /** + * Reboot indication handler. + */ + TInt GoingToReboot( CUIEngineContainer* aContainer, + TRequestStatus& aStatus ); + + TInt MsgRemote( CUIEngineContainer* aContainer, + CStifTFwIfProt& aReq, + CStifTFwIfProt& aResp ); + TInt MsgRemoteRun( CUIEngineContainer* aContainer, + CStifTFwIfProt& aReq, + CStifTFwIfProt& aResp ); + TInt MsgRemoteTestCtl( CUIEngineContainer* aContainer, + CStifTFwIfProt& aReq, + CStifTFwIfProt& aResp ); + TInt MsgRemoteEventCtl( CUIEngineContainer* aContainer, + CStifTFwIfProt& aReq, + CStifTFwIfProt& aResp ); + + /** + * Asynchronous remote sendreceive message. + */ + TInt MsgRemoteSendReceive( CUIEngineContainer* aContainer, + CStifTFwIfProt& aReq, + CStifTFwIfProt& aResp ); + + /** + * Initialize logger from UI engine. + */ + inline void InitializeLogger( CStifLogger* aLogger ) + { iLogger = aLogger; }; + + /** + * Set update flag. + */ + inline void RefreshAllCases() + { iUpdateNeeded = ETrue; }; + + /** + * Update test case list if required. + */ + TInt UpdateCases(); + + /** + * Try to locate default initialization file. + */ + void CheckIniL( TFileName& aIni ); + + /** + * Find testcase by container. + */ + TInt FindByContainer( CUIEngineContainer* const aContainer, + CStartedTestCase*& aTestCase ); + + /** + * Loads all TestFramework test modules from \sys\bin\ directories . + */ + void LoadAllModulesL(); + + /** + * Lists all TestFramework test modules from \sys\bin\ directories. + */ + void ListAllModulesL( RPointerArray& aModuleNames ); + + /** + * Find test set by name. + */ + TInt FindSetByName( const TDesC& aSetName, CTestSetInfo*& aSetInfo ); + + /** + * Find test set by CStartedTestCase. + */ + TInt FindStartedSetByCase( const CStartedTestCase* aTestCase, + CStartedTestSet*& aSet ); + + /** + * Load test set. + */ + void LoadTestSetL( const TDesC& aSetName, const TDesC& aSetFileName ); + + /** + * Save test set. + */ + void SaveTestSetL( CTestSetInfo& aSetInfo, const TDesC& aSetFileName ); + + /** + * Updates in file information about test set. + */ + void UpdateTestSetL(CTestSetInfo& aSetInfo, const TDesC& aSetFileName); + + /** + * Read the whole line from the file. + */ + void ReadLineL(RFile &file, TDes& buffer); + + /** + * Write given line to the file and adds end of line. + */ + void WriteLineL(RFile &file, const TDesC& buffer); + + /** + * Load saved executed test cases. + * + * Returns Symbian OS error code. + */ + void LoadExecutedTestCasesL(); + + /** + * Load test modules and test case files used in + * aTestCases if not already done. + */ + void LoadTestModulesAndTestCaseFilesL( const RRefArray& aTestCases ); + + /** + * Parse test set name from test set file name. + */ + TInt ParseTestSetName( const TDesC& aSetFileName, TPtrC& aSetName, TFileName& aFileName ); + + /** + * Do remote popup. Added aPopupPriority parameter for prioritizing popups @js + */ + TInt RemotePopup( CUIEngineContainer* aContainer, + const TDesC& aReq, + CStifTFwIfProt* aResp, + TPopupPriority aPopupPriority = EPopupPriorityLow); + + /** + * Callback from UIStorePopup. + */ + TInt RemotePopupComplete( CUIStorePopup* aPopup, + TInt aError, + CUIEngineContainer* aContainer, + CStifTFwIfProt* aResp, + TKeyCode aKeyCode ); + /** + * Return slave id. + */ + inline TInt16 DevId(){ return 1; }; + + /** + * Prints the highest priority popup from queue + */ + void SetRemotePopupFromQueue(); + + /** + * Shuffles remote run result popups + */ + void ShuffleRemoteRunResultPopups( CUIStorePopup* aPopup ); + + public: //Data + // Logger + CStifLogger* iLogger; + + protected: // Data + // None + + private: // Data + RPointerArray iFileList; + // Pointer to UI (up) + CUIStoreIf* iUIStoreIf; + + // Pointer to UI engine (down) + CUIEngine* iUIEngine; + + // Available test cases + RPointerArray iTestCases; + // Started test cases + RPointerArray iStartedTestCases; + + // Available test sets + RPointerArray iTestSets; + // Started test sets + RPointerArray iStartedTestSets; + + RPointerArray iPopups; + + // Flag for update for test case list required + TBool iUpdateNeeded; + + // Tells if popup is already active + TBool iPopupActive; + + // Priority of the currently active popup + TPopupPriority iActivePopupPriority; + + TFileName iTestFrameworkIni; + + public: // Friend classes + // None + + protected: // Friend classes + // None + + private: // Friend classes + friend class CUIStorePopup; + + }; + +#endif // UISTORE_H + +// End of File