--- 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