diff -r 7259cf1302ad -r 169364e7e4b4 stif/StifTFwIf/src/UIStoreContainer.cpp --- 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 -#include - -#include -#include -#include -#include - -#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(&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( ; iNextStartTestCase( 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; iTestCases().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 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