stif/stif_plat/inc/UIStoreContainer.h
branchRCL_3
changeset 59 8ad140f3dd41
parent 0 a03f92240627
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stif/stif_plat/inc/UIStoreContainer.h	Wed Oct 13 16:17:58 2010 +0300
@@ -0,0 +1,349 @@
+/*
+* 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 
+* CTestCaseRunnner, CTestCasePrinter and CStartedTestCase
+*
+*/
+
+#ifndef UISTORECASECONTAINER_H
+#define UISTORECASECONTAINER_H
+
+
+//  INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <StifTestInterface.h>
+
+#include <stifinternal/RRefArray.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CUIEngineContainer;
+class CTestInfo;
+class CUIStore;
+class CTestSetInfo;
+
+// DESCRIPTION
+// CTestProgress defines the progress information from Test Module.
+class CTestProgress
+    :public CBase 
+    {
+    public:
+        static CTestProgress* NewL( const TTestProgress& aProgress );
+
+        ~CTestProgress();
+        
+        void ReplaceTextL( const TTestProgress& aProgress );
+    
+    private:
+        void ConstructL( const TTestProgress& aProgress );
+
+    public:
+        // "Priority" of the progress information.
+        TInt iPosition;
+        // Description of the data to be printed.
+        TPtrC iDescription;
+        // The actual progress information.
+        TPtrC iText;
+    
+    private:
+        // Description of the data to be printed.
+        HBufC* iDescriptionBuf;
+        // The actual progress information.
+        HBufC* iTextBuf;
+
+    };
+
+// DESCRIPTION
+// CStartedTestCase contains active objects that handles one test case
+class CStartedTestCase 
+    :public CBase  
+    {
+    public: // Enumerations
+
+    private: // Enumerations
+
+    public:  // Constructors and destructor
+
+        /**
+        * NewL is first phase of two-phased constructor.
+        */
+        static CStartedTestCase* NewL( const CTestInfo& aTestInfo, 
+                                       CUIEngineContainer& aContainer );
+
+        /**
+        * Destructor of CStartedTestCase.
+        */
+        virtual ~CStartedTestCase();
+
+    public: // New functions
+    
+        /**
+        * Get Engine container handle.
+        */
+        IMPORT_C CUIEngineContainer& UIEngineContainer() const;
+            
+        /**
+        * Set case result
+        */
+        void SetResult( const TFullTestResult& aResult );
+
+        /**
+        * Get test case info.
+        */    
+        inline CTestInfo const& TestInfo() const
+            { return *iTestInfo; }; 
+               
+        /**
+        * Return the result
+        */
+        inline const TFullTestResult& Result() const
+            { return iResult; };
+
+        /**
+        * Return the print array
+        */
+        inline RPointerArray<CTestProgress>& PrintArray()
+            { return iPrints; };
+        inline const RPointerArray<CTestProgress>& PrintArray() const
+            { return iPrints; };
+        
+        /**
+        * Get status.
+        */
+        inline TInt Status() const { return iStatus; }
+
+    public: // Functions from base classes
+
+    protected:  // New functions
+
+    protected:  // Functions from base classes
+
+    private:   // Functions from base classes
+        
+        /** 
+        * C++ default constructor.
+        */
+        CStartedTestCase( CUIEngineContainer& aContainer );
+       
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL( const CTestInfo& aTestInfo );
+        
+        /**
+        * Private constructor for internal use.
+        */
+        CStartedTestCase( CTestInfo* aTestInfo, 
+                          TFullTestResult aResult, 
+                          TInt aStatus  );
+        
+    public:      //Data
+        /**
+        * Backpointer that can be utilized by UI, not used from UI Engine.
+        */
+        TAny*       iBackPtr;
+    
+    protected:  // Data
+        // None
+
+    private:    // Data
+        CUIEngineContainer*             iContainer;
+        CTestInfo*                      iTestInfo;
+        TFullTestResult                 iResult;   // Test case result
+        
+        RPointerArray<CTestProgress>    iPrints;   // Prints from case
+
+        // Execution status (flags from CUIStoreIf::TUpdateFlags)
+        TInt                            iStatus;
+        
+    public:     // Friend classes
+        // None
+
+    protected:  // Friend classes
+        // None
+
+    private:    // Friend classes
+        friend class CUIStore;
+
+    };
+
+// DESCRIPTION
+// CStartedTestSet contains test set information
+class CStartedTestSet 
+    :public CBase  
+    {
+    public: // Enumerations
+        enum TSetType
+            {
+            ESetSequential,
+            ESetParallel,
+            };
+
+    private: // Enumerations
+
+    public:  // Constructors and destructor
+
+        /**
+        * NewL is first phase of two-phased constructor.
+        */
+        static CStartedTestSet* NewL( CUIStore* aUIStore, 
+                                      const CTestSetInfo& aTestSetInfo,
+                                      TSetType aType );
+
+        /**
+        * Destructor of CStartedTestCase.
+        */
+        virtual ~CStartedTestSet();
+
+    public: // New functions
+    
+        /**
+        * Get test case info.
+        */    
+        inline CTestSetInfo const& TestSetInfo() const
+            { return *iTestSetInfo; }; 
+               
+        /**
+        * Return the result
+        */
+        inline const TFullTestResult& Result() const
+            { return iResult; };
+
+        /**
+        * Get status.
+        */
+        inline TInt Status() const { return iStatus; }
+        
+        /**
+        * Get test cases runned/running in test set.
+        */
+        inline const RRefArray<CStartedTestCase>& TestCases() const
+            { return iTestCases; };
+        
+        /**
+        * Get type.
+        */ 
+        inline TSetType Type(){ return iType; };        
+        
+        /**
+        * Start next testcase. Returns KErrNotFound if does not exits.
+        */ 
+        TInt StartNext();
+        
+        /**
+        * Abort running testcases.
+        */ 
+        TInt Abort();
+        
+        /**
+        * Check if test case running in this test set.
+        */
+        TBool IsRunning( const CStartedTestCase* aTestCase ); 
+        
+        /**
+        * Test from this set completed.
+        */
+        TInt TestCompleted( const CStartedTestCase* aTestCase, 
+                            TFullTestResult aResult );
+                            
+        /**
+        * Sets mode in which only not executed tests will be run.
+        */
+        void SetNotStartedCasesMode(TBool aNotStartedCasesMode);
+        
+        /**
+        * Returns pointer to original test set.
+        */
+        CTestSetInfo* GetOriginalTestSet();
+
+        /**
+        * Sets pointer to original test set to NULL.
+        */
+        void NullOriginalTestSet();
+
+    public: // Functions from base classes
+
+    protected:  // New functions
+
+    protected:  // Functions from base classes
+
+    private:   // Functions from base classes
+        /** 
+        * C++ default constructor.
+        */
+        CStartedTestSet( CUIStore* aUIStore, TSetType aType );
+
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL( const CTestSetInfo& aTestSetInfo );
+
+    public:      //Data
+        /**
+        * Backpointer that can be utilized by UI, not used from UI Engine.
+        */
+        TAny*       iBackPtr;
+    
+    protected:  // Data
+        // None
+
+    private:    // Data
+        // Backpointer
+        CUIStore*                       iUIStore;
+        
+        CTestSetInfo*                   iTestSetInfo;
+        TFullTestResult                 iResult;   // Test case result
+        TBool                           iResultSet;
+        
+        RRefArray<CStartedTestCase>     iTestCases;
+        
+        TSetType                        iType;
+
+        // Execution status (flags from CUIStoreIf::TUpdateFlags)
+        TInt                            iStatus;
+        
+        // Next case to start        
+        TInt                            iNext;
+        // Number of running cases
+        TInt                            iRunningCases;
+        
+        // In this mode only not executed tests will be run
+        TBool                           iNotStartedCasesMode;
+        
+        // Original test set
+        CTestSetInfo*                   iOriginalTestSet;
+        
+    public:     // Friend classes
+        // None
+
+    protected:  // Friend classes
+        // None
+
+    private:    // Friend classes
+        // None
+
+    };
+
+#endif // UISTORECASECONTAINER_H
+
+// End of File