stif/StifTFwIf/src/UIStoreContainer.cpp
changeset 38 169364e7e4b4
parent 34 7259cf1302ad
child 45 185201be11b0
--- a/stif/StifTFwIf/src/UIStoreContainer.cpp	Tue Jul 06 16:05:13 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,906 +0,0 @@
-/*
-* 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 module contains implementation of 
-* CStartedTestCase class member functions.
-*
-*/
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <e32svr.h>
-
-#include <stifinternal/UIEngine.h>
-#include <stifinternal/UIEngineContainer.h>
-#include <stifinternal/UIStoreContainer.h>
-#include <stifinternal/UIStore.h>
-
-#include "Logging.h"
-
-
-// EXTERNAL DATA STRUCTURES
-
-// EXTERNAL FUNCTION PROTOTYPES  
-
-// CONSTANTS
-
-// MACROS
-#ifdef LOGGER
-#undef LOGGER
-#endif
-_LIT( KStartedTestCase, "CStartedTestCase" );
-_LIT( KStartedTestSet, "CStartedTestSet" );
-
-
-// LOCAL CONSTANTS AND MACROS
-
-// MODULE DATA STRUCTURES
-
-// LOCAL FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// ==================== LOCAL FUNCTIONS =======================================
-
-// None
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestCase
-
-    Method: NewL
-
-    Description: Create a testcase container.
-
-    Parameters: CTestInfo* aTestInfo: in: Test case info
-                CUIEngineContainer* aContainer: in: container
-
-    Return Values: CStartedTestCase* : pointer to created object
-
-    Errors/Exceptions: Leaves if memory allocation for object fails
-                       Leaves if ConstructL leaves
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CStartedTestCase* CStartedTestCase::NewL( const CTestInfo& aTestInfo, 
-                                          CUIEngineContainer& aContainer )
-    {
-
-    CStartedTestCase* self = new ( ELeave ) CStartedTestCase( aContainer );
-    CleanupStack::PushL( self );
-    self->ConstructL( aTestInfo );
-    CleanupStack::Pop( self );
-    return self;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestCase
-
-    Method: ConstructL
-
-    Description: Second level constructor.
-
-    Parameters: CTestInfo* aTestInfo: Test case info
-    
-    Return Values: None
-
-    Errors/Exceptions: Leaves if CTestInfo copying fails
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CStartedTestCase::ConstructL( const CTestInfo& aTestInfo )
-    {
-
-    iTestInfo = CTestInfo::NewL();
-    iTestInfo->CopyL( aTestInfo );
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestCase
-
-    Method: CStartedTestCase
-
-    Description: Constructor
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CStartedTestCase::CStartedTestCase( CUIEngineContainer& aContainer ):
-    iContainer( &aContainer ),
-    iStatus( CUIStoreIf::EStatusRunning )
-    {
-
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestCase
-
-    Method: CStartedTestCase
-
-    Description: Private Constructor for internal use
-
-    Parameters: CTestInfo* aTestInfo: in: new testinfo
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CStartedTestCase::CStartedTestCase( CTestInfo* aTestInfo, 
-                                    TFullTestResult aResult, 
-                                    TInt aStatus ):
-    iContainer( 0 ),
-    iTestInfo( aTestInfo ),
-    iResult( aResult ),
-    iStatus( aStatus )
-    {
-
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestCase
-
-    Method: ~CStartedTestCase
-
-    Description: Destructor.
-
-    Cancels the asynchronous request, deallocate memory and closes the testcase.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CStartedTestCase::~CStartedTestCase()
-    {
-    
-    delete iTestInfo;
-    iPrints.ResetAndDestroy();
-    iPrints.Close();
-    
-    }
- 
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestCase
-
-    Method: SetResult
-
-    Description: Set the result
-
-    Parameters: const TFullTestResult&     :in:      Result
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CStartedTestCase::SetResult(const TFullTestResult& aResult)
-    {
-
-    iResult = aResult;
-
-    iStatus = CUIStoreIf::EStatusExecuted;
-
-    switch( aResult.iCaseExecutionResultType )
-        {
-        case TFullTestResult::ECaseExecuted:
-            if( aResult.iTestResult.iResult == KErrNone )
-                {
-                iStatus |= CUIStoreIf::EStatusPassed;
-                }
-            else
-                {
-                iStatus |= CUIStoreIf::EStatusFailed;
-                }
-            break;
-        case TFullTestResult::ECaseCancelled:
-        case TFullTestResult::ECaseTimeout:
-        case TFullTestResult::ECaseSuicided:
-            iStatus |= CUIStoreIf::EStatusAborted;
-            break;
-        default:
-            iStatus |= CUIStoreIf::EStatusCrashed;
-            break;
-        }
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestCase
-
-    Method: UIEngineContainer
-
-    Description: Returns the UIEngineContainer
-
-    Parameters: None
-
-    Return Values: CUIEngineContainer& 
-
-    Errors/Exceptions: Panics if called for testcase that is not running
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CUIEngineContainer& CStartedTestCase::UIEngineContainer() const
-    { 
-    
-    if( !( iStatus & CUIStoreIf::EStatusRunning ) ) 
-        {
-        __RDEBUG( _L("CStartedTestCase::UIEngineContainer for test case that is not running"));
-        User::Panic( KStartedTestCase, KErrNotFound );
-        }
-    
-    return *iContainer;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    DESCRIPTION
-
-    This module contains implementation of CStartedTestSet class 
-    member functions.
-
--------------------------------------------------------------------------------
-*/
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: NewL
-
-    Description: Create a testcase container.
-
-    Parameters: const CTestSetInfo& aTestSetInfo: in: test set info
-                CUIStore::TSetType aType: in: set type
-
-    Return Values: CStartedTestSet* : pointer to created object
-
-    Errors/Exceptions: Leaves if memory allocation for object fails
-                       Leaves if ConstructL leaves
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CStartedTestSet* CStartedTestSet::NewL( CUIStore* aUIStore, 
-                                        const CTestSetInfo& aTestSetInfo,
-                                        TSetType aType )
-    {
-
-    CStartedTestSet* self = new ( ELeave ) CStartedTestSet( aUIStore, aType );
-    CleanupStack::PushL( self );
-    self->ConstructL( aTestSetInfo );
-    CleanupStack::Pop( self );
-    return self;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: ConstructL
-
-    Description: Second level constructor.
-
-    Parameters: const CTestSetInfo& aTestSetInfo: in: Test set info
-    
-    Return Values: None
-
-    Errors/Exceptions: Leaves if CTestSetInfo copying fails
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CStartedTestSet::ConstructL( const CTestSetInfo& aTestSetInfo )
-    {
-
-    iTestSetInfo = CTestSetInfo::NewL( aTestSetInfo.Name() );
-    iTestSetInfo->CopyL( aTestSetInfo );
-
-    iOriginalTestSet = const_cast<CTestSetInfo*>(&aTestSetInfo);
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: CStartedTestSet
-
-    Description: Constructor
-
-    Parameters: CUIStore::TSetType aType: in: set type
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CStartedTestSet::CStartedTestSet( CUIStore* aUIStore, 
-                                  TSetType aType ):
-    iUIStore( aUIStore ),
-    iResultSet( EFalse ),
-    iType( aType ),
-    iStatus( CUIStoreIf::ESetRunning ),
-    iNext( 0 ),
-    iRunningCases( 0 ),
-    iOriginalTestSet ( NULL )
-    {
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: ~CStartedTestSet
-
-    Description: Destructor.
-
-    Cancels the asynchronous request, deallocate memory and closes the testcase.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CStartedTestSet::~CStartedTestSet()
-    {
-    
-    delete iTestSetInfo;
-    iTestSetInfo = 0;
-    iTestCases.Reset();
-    iTestCases.Close();
-    
-    }
- 
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: StartNext
-
-    Description: Start next testcase. 
-    
-    Parameters: None
-
-    Return Values: KErrNone: test case started
-                   KErrNotFound: no test cases found.
-                   Other Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CStartedTestSet::StartNext()
-    {
-    TInt ret = KErrNone;
-    
-    TInt count = iTestSetInfo->TestCases().Count();
-    if( iNext >= count )
-        {
-        // All test cases running or completed, no more cases to start
-        return KErrNotFound;
-        }
-    
-    TInt index = 0;
-    if( iType == ESetSequential )
-        {
-        // Get test case index to be executed (when in NotExecutedCasesMode)
-        if(iNotStartedCasesMode)
-            {
-            iNext = iTestSetInfo->GetLastStartedCaseIndex();
-
-            if(iNext >= count)
-                {
-                // All test cases running or completed, no more cases to start
-                return KErrNotFound;
-                }
-
-            iTestSetInfo->SetLastStartedCaseIndex(iNext + 1);
-            if(iOriginalTestSet)
-                {
-                iOriginalTestSet->SetLastStartedCaseIndex(iNext + 1);
-                // Update only if original test set exists
-                iUIStore->UpdateTestSet(*iOriginalTestSet);
-                }
-            }
-
-        // Start next one and return
-        ret = iUIStore->StartTestCase( iTestSetInfo->TestCases()[iNext],
-                                       index );
-        if( ret != KErrNone )
-            {
-            return ret;
-            }
-        iNext++;
-        TRAPD( err,
-            CStartedTestCase& testCase = iUIStore->StartedTestCaseL( index );
-            ret = iTestCases.Append( testCase );
-            );
-        if( err != KErrNone )
-            {
-            User::Panic( KStartedTestSet, err );
-            }
-        }
-    else
-        {
-        // Start all cases
-        for( ; iNext<count; iNext++ )
-            {
-            ret = iUIStore->StartTestCase( iTestSetInfo->TestCases()[iNext],
-                                           index );
-            if( ret != KErrNone )
-                {
-                break;
-                }
-            TRAPD( err,
-                CStartedTestCase& testCase = iUIStore->StartedTestCaseL( index );
-                ret = iTestCases.Append( testCase );
-                iRunningCases++;
-                );
-            if( err != KErrNone )
-                {
-                User::Panic( KStartedTestSet, err );
-                }
-            if( ret != KErrNone )
-                {
-                break;
-                }
-            } 
-        }
-    
-    return ret;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: Abort
-
-    Description: Start next testcase. 
-    
-    Parameters: None
-
-    Return Values: KErrNone: test case started
-                   KErrNotFound: no test cases found.
-                   Other Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CStartedTestSet::Abort()
-    {
-    
-    TInt ret = KErrNotFound;
-    TInt count = iTestCases.Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        if( iTestCases[i].Status() & 
-            CUIStoreIf::EStatusRunning )
-            {
-            ret = iTestCases[i].UIEngineContainer().CancelTest();
-            if( ret != KErrNone )
-                {
-                break;
-                }
-            }
-        }
-    
-    // Prevent execution of remaining cases
-    count = iTestSetInfo->TestCases().Count();
-    iNext = count;
-    
-    return ret;  
-     
-    }
-    
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: IsRunning
-
-    Description: Check if test case running in this test set.
-    
-    Parameters: const CStartedTestCase* aTestCase: in: test case info
-
-    Return Values: ETrue: This test set is running specified test case
-                   EFalse: Not running
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TBool CStartedTestSet::IsRunning( const CStartedTestCase* aTestCase )
-    {
-    
-    TInt count = iTestCases.Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        if( aTestCase == &iTestCases[i] )
-            {
-            return ETrue;
-            }
-        }
-        
-    return EFalse;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: TestCompleted
-
-    Description: Test from this set completed. Start next or 
-                set result for set.
-    
-    Parameters: const CStartedTestCase* aTestCase: in: test case info
-                TFullTestResult aResult: in: test result
-
-    Return Values:  Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CStartedTestSet::TestCompleted( const CStartedTestCase* aTestCase, 
-                                     TFullTestResult aResult )  
-    {
-    
-    TInt count = iTestCases.Count();
-    TInt index = 0;
-    for( ; index<count; index++ )
-        {
-        if( aTestCase == &iTestCases[index] )
-            {
-            break;
-            }
-        }
-    if( index == count )
-        {
-        return KErrNotFound;
-        }
-    
-    // Remove from running test cases
-    iRunningCases--;
-    
-    if( iResultSet == EFalse )
-        {
-        // Check test results
-        if( ( aResult.iCaseExecutionResultType != 
-              TFullTestResult::ECaseExecuted ) ||
-            ( aResult.iTestResult.iResult != KErrNone ) )
-            {
-            iResult = aResult; 
-            iResultSet = ETrue;
-            }
-        }
-        
-    // Start next test case
-    if( StartNext() == KErrNone )
-        {
-        // Test case was started
-        return KErrNone;
-        }
-    
-    if( iRunningCases > 0 )
-        {
-        // Test cases still running in test set
-        return KErrNone;
-        }
-    
-    iStatus = CUIStoreIf::ESetExecuted;
-    if( iResultSet == EFalse )
-        {  
-        // Use the result of last test case all 
-        // test cases where succesfull
-        iResult = aResult;
-        }
-        
-    // Set test case completed 
-    if( ( iResult.iCaseExecutionResultType != 
-          TFullTestResult::ECaseExecuted ) ||
-        ( iResult.iTestResult.iResult != KErrNone ) )
-        {
-        iStatus = CUIStoreIf::ESetFailed;               
-        }   
-    else
-        {
-        iStatus = CUIStoreIf::ESetPassed;
-        }
-        
-    return KErrNone;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: SetNotExecutedCasesMode
-
-    Description: Sets mode in which only not executed tests will be run.
-    
-    Parameters: TBool aNotExecutedCasesMode: desired mode
-
-    Return Values:  None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CStartedTestSet::SetNotStartedCasesMode(TBool aNotStartedCasesMode)
-    {
-    iNotStartedCasesMode = aNotStartedCasesMode;
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: GetOriginalTestSet
-
-    Description: Returns pointer to original test set.
-    
-    Parameters: None
-
-    Return Values:  Pointer to original test set.
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestSetInfo* CStartedTestSet::GetOriginalTestSet()
-    {
-    return iOriginalTestSet;
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStartedTestSet
-
-    Method: NullOriginalTestSet
-
-    Description: Sets pointer to original test set to NULL.
-    
-    Parameters: None
-
-    Return Values:  None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CStartedTestSet::NullOriginalTestSet()
-    {
-    iOriginalTestSet = NULL;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    DESCRIPTION
-
-    This module contains implementation of CTestProgress class 
-    member functions.
-
--------------------------------------------------------------------------------
-*/
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestProgress
-
-    Method: NewL
-
-    Description: Create CTestProgress.
-
-    Parameters: TTestProgress& aProgress: in: info from test module
-
-    Return Values: CTestProgress* : pointer to created object
-
-    Errors/Exceptions: Leaves if memory allocation for object fails
-                       Leaves if ConstructL leaves
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CTestProgress* CTestProgress::NewL( const TTestProgress& aProgress )
-    {
-
-    CTestProgress* self = new ( ELeave ) CTestProgress();
-    CleanupStack::PushL( self );
-    self->ConstructL( aProgress );
-    CleanupStack::Pop( self );
-    return self;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestProgress
-
-    Method: ConstructL
-
-    Description: Second level constructor.
-
-    Parameters: TTestProgress& aProgress: in: print info
-    
-    Return Values: None
-
-    Errors/Exceptions: Leaves if TTestProgress copying fails
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CTestProgress::ConstructL( const TTestProgress& aProgress  )
-    {
-    
-    iPosition = aProgress.iPosition;
-    iDescriptionBuf = aProgress.iDescription.AllocL();
-    iTextBuf = aProgress.iText.AllocL();
-    iDescription.Set( iDescriptionBuf->Des() );
-    iText.Set( iTextBuf->Des() );
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestProgress
-
-    Method: ~CTestProgress
-
-    Description: Destructor.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CTestProgress::~CTestProgress()
-    {
-    
-    delete iTextBuf;
-    delete iDescriptionBuf;
-    
-    }
- 
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestProgress
-
-    Method: ReplaceTextL
-
-    Description: Replace text with ne one.
-
-    Parameters: const TTestProgress& aProgress: in: new info
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CTestProgress::ReplaceTextL( const TTestProgress& aProgress )
-    {
-    
-    HBufC* tmp = iTextBuf;
-    iTextBuf = 0;
-    CleanupStack::PushL( tmp );
-    iTextBuf = aProgress.iText.AllocL();
-    iText.Set( iTextBuf->Des() );
-    CleanupStack::PopAndDestroy( tmp );
-    
-    }
-
-// End of File