stif/StifTFwIf/src/UIEngineContainer.cpp
changeset 38 169364e7e4b4
parent 34 7259cf1302ad
child 45 185201be11b0
--- a/stif/StifTFwIf/src/UIEngineContainer.cpp	Tue Jul 06 16:05:13 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,612 +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: CUIEngine: This object executes test cases from STIF 
-* Test Framework.
-*
-*/
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <e32svr.h>
-#include <stifinternal/UIEngine.h>
-#include <stifinternal/UIEngineContainer.h>
-#include "UIEnginePrinter.h"
-#include "UIEngineRunner.h"
-#include "UIEngineRemote.h"
-#include "Logging.h"
-
-
-// EXTERNAL DATA STRUCTURES
-// None
-
-// EXTERNAL FUNCTION PROTOTYPES  
-// None
-
-// CONSTANTS
-// None
-
-// MACROS
-#ifdef LOGGER
-#undef LOGGER
-#endif
-#define LOGGER iUIEngine->iLogger
-
-// LOCAL CONSTANTS AND MACROS
-// None
-
-// MODULE DATA STRUCTURES
-// None
-
-// LOCAL FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-// None
-
-// ==================== LOCAL FUNCTIONS ======================================= 
-// None
-
-// ================= MEMBER FUNCTIONS =========================================
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: CUIEngineContainer
-
-    Description: Default constructor
-
-    C++ default constructor can NOT contain any code, that
-    might leave.
-
-    Parameters:  CUIEngine* aUIEngine: in: Pointer to CUIEngine interface
-                 TTestInfo& aTestInfo: in: Test information
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CUIEngineContainer::CUIEngineContainer( CUIEngine* aUIEngine,
-                                   const TTestInfo& aTestInfo,
-                                   RTestEngineServer& aTestEngineServ,
-                                   RTestEngine& aTestEngine ) :
-    iUIEngine( aUIEngine ),
-    iTestInfo( aTestInfo ),
-    iTestInfoPckg( iTestInfo ),
-    iState( ENotStarted )
-    {
-    __TRACE( KPrint, (  _L( "CUIEngineContainer::CUIEngineContainer.") ) );
-
-    // Get handles to test engine
-    iTestEngineServ = aTestEngineServ;
-    iTestEngine = aTestEngine;
-
-    __ASSERT_ALWAYS( aUIEngine, User::Panic( _L("Null pointer"), KErrGeneral ) );
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: ConstructL
-
-    Description: Symbian OS second phase constructor
-
-    Symbian OS default constructor can leave
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: Leaves if called Open method returns error
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIEngineContainer::ConstructL()
-    {
-    __TRACE( KPrint, (  _L( "CUIEngineContainer::ConstructL.") ) );
-
-    // Open test case
-    User::LeaveIfError( iTestCase.Open( iTestEngineServ, iTestInfoPckg ) );
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: NewL
-
-    Description: Two-phased constructor.
-
-    Parameters: CUIEngine* aUIEngine: in: pointer to CUIEngine Interface
-                TTestInfo& aTestInfo: in: Test info
-
-    Return Values: CUIEngineRunner* : pointer to created runner object
-
-    Errors/Exceptions: Leaves if memory allocation for CUIEngineRunner fails
-                       Leaves if ConstructL leaves
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CUIEngineContainer* CUIEngineContainer::NewL( CUIEngine* aUIEngine,
-                                            const TTestInfo& aTestInfo,
-                                            RTestEngineServer& aTestEngineServ,
-                                            RTestEngine& aTestEngine )
-    {
-    CUIEngineContainer* self =  
-        new ( ELeave ) CUIEngineContainer( aUIEngine,
-                                            aTestInfo,
-                                            aTestEngineServ,
-                                            aTestEngine );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: ~CUIEngineContainer
-
-    Description: Destructor
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/    
-CUIEngineContainer::~CUIEngineContainer()
-    {
-    
-    __TRACE( KPrint, (  _L( "CUIEngineContainer::~CUIEngineContainer.") ) );
-
-    delete iPrinter;
-    delete iRunner;
-    delete iRemote;
-    
-    // Close test case
-    iTestCase.Close();
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: StartContinerL
-
-    Description: StartContinerL call CUIEngineRunner to starting test case execution
-
-    Parameters: None
-
-    Return Values: TInt KErrNone: Always returned KErrNone
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIEngineContainer::StartContainerL()
-    {
-    
-    __TRACE( KPrint, ( _L( "CUIEngineContainer::StartContainerL. Running test case: %S"), 
-        &( iTestInfo.iTestCaseInfo.iTitle ) ) );
-        
-    // Start printer
-    iPrinter = CUIEnginePrinter::NewL( this );
-    iPrinter->StartL( iTestCase );
-
-    // Start remote
-    iRemote = CUIEngineRemote::NewL( this );
-    iRemote->StartL( iTestCase );
-
-    // Start runner
-    iRunner = CUIEngineRunner::NewL( this );
-    iRunner->StartL( iTestCase );
-
-    // Update state of test case
-    iState = ERunning;
-
-    __TRACE( KPrint, ( _L( "CUIEngineContainer::StartContainerL: started") ) );
-
-    return KErrNone;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: CancelTest
-
-    Description: CancelTest cancels test case execution
-
-    Parameters: None
-
-    Return Values: TInt KErrNone: Always returned KErrNone
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIEngineContainer::CancelTest()
-    {
-
-    if ( iState == ERunning || iState == EPaused )
-        {
-        __TRACE( KPrint, ( _L( "CUIEngineContainer::CancelTest") ) );
-
-        // Cancel test case execution
-        iTestCase.CancelAsyncRequest( ETestCaseRunTestCase );
-        
-        }
-
-    return KErrNone;
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: PauseTest
-
-    Description: PauseTest pauses test case execution
-
-    Parameters: None
-
-    Return Values: Symbian OS error: Error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIEngineContainer::PauseTest()
-    {
-    TInt ret(KErrNone);
-
-    if ( iState == ERunning )
-        {
-        ret = iTestCase.Pause();
-
-        __TRACE( KPrint, ( _L( "CUIEngineContainer::PauseTest. Ret = %d"), ret ) );
-
-        if ( ret == KErrNone)
-            {
-            iState = EPaused;
-            }
-        }
-
-    return ret;
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: ResumeTest
-
-    Description: PauseTest resumes test case execution
-
-    Parameters: None
-
-    Return Values: Symbian OS error: Error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIEngineContainer::ResumeTest()
-    {
-    TInt ret(KErrNone);
-
-    if ( iState == EPaused )
-        {
-        ret = iTestCase.Resume();
-
-        __TRACE( KPrint, ( _L( "CUIEngineContainer::ResumeTest. Ret = %d"), ret ) );
-
-        if ( ret == KErrNone)
-            {
-            iState = ERunning;
-            }
-        }
-
-    return ret;
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: TestCaseExecuted
-
-    Description: TestCaseExecuted informs that test case is executed
-
-    Parameters: TFullTestResult& aFullTestResult: in: Full information of 
-                test case execution. Includes also test case results
-
-    Return Values: None
-
-    Errors/Exceptions: TInt KErrNone: Always returned KErrNone
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIEngineContainer::TestCaseExecuted( TFullTestResult& aFullTestResult, 
-                                           TInt aStatus )
-    {
-        
-    iState = EExecuted;
-
-    // Set execution result
-    if( ( KErrNone != aStatus ) &&
-        ( aFullTestResult.iCaseExecutionResultCode == KErrNone ) &&
-        ( aFullTestResult.iTestResult.iResult == KErrNone ) )
-        {
-        aFullTestResult.iTestResult.iResultDes.Copy( 
-            _L("Completed with error") );
-        aFullTestResult.iCaseExecutionResultType = 
-            TFullTestResult::ECaseErrorFromModule;
-        aFullTestResult.iCaseExecutionResultCode = aStatus;
-        }
-
-    __TRACE( KPrint, ( _L( "CUIEngineContainer::TestCaseExecuted.") ) );
-
-    // Test execution is not completed before all prints are 
-    // delivered to UI.
-    if( !iPrinter->IsRunning() || 
-        ( aStatus != KErrNone ) || 
-        ( aFullTestResult.iCaseExecutionResultCode != KErrNone ) )
-        {        
-        // Call TestExecuted of CUIEngine interface
-        iUIEngine->TestExecuted(this, aFullTestResult);
-        // 1. This method is called from CUIEngineRunner::RunL() and it is 
-        // last operation => no other call to CUIEngineContainer class.
-        // 2. TestExecuted() method takes this pointer. Inside TestExecuted()
-        // will be deleted the this pointer => iUIEngine not valid anymore.
-        // 1 and 2 => Do not handle any CUIEngineContainer variable here
-        // because memory is not valid anymore.
-        //e.g. iState = EFinished; // illegal operation here->crash
-
-        }
-        
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: PrintProgress
-
-    Description: PrintProgress prints information from test case
-
-    Parameters: TTestProgress& aProgress: in: Progress info
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIEngineContainer::PrintProgress( TTestProgress& aProgress )
-    {
-    if( iState == ERunning )
-        {
-        // Only running cases may print
-        iUIEngine->PrintProg( this, aProgress );
-        }
-    else
-        {
-        __TRACE( KPrint, 
-            ( _L("%S: %S"), &aProgress.iDescription, &aProgress.iText ) );
-        }
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: PrintsDone
-
-    Description: Signals that printing is completed
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIEngineContainer::PrintsDone()
-    {
-    if( iState == EExecuted )
-        {
-        // Call TestExecuted of CUIEngine interface
-        iUIEngine->TestExecuted(this, iRunner->FullResult() );
-        }
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: RemoteSend
-
-    Description: RemoteSend forwards remote protocol messages from master
-
-    Parameters: 
-    
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIEngineContainer::RemoteSend( const TDesC& aRemoteMsg, 
-                                     TInt /* aStatus */ )
-    {
-
-    __TRACE( KPrint, ( _L( "CUIEngineContainer::RemoteSend.") ) );
-
-    // Save master id if doesn't exists already
-    if( iMasterId == 0 )
-        {
-        CStifTFwIfProt* msg = NULL;
-        TRAPD( err, 
-            msg = CStifTFwIfProt::NewL(); 
-            msg->SetL( aRemoteMsg );
-            );
-        if( err != KErrNone )
-            {
-            delete msg;
-            // oom
-            return;
-            }
-        iMasterId = msg->SrcId();
-        delete msg;
-        }
-            
-    // Call AtsSend of CUIEngine interface
-    iUIEngine->RemoteMsg( this, aRemoteMsg );
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: GoingToReboot
-
-    Description: Inform UI that phone is going to rebooted
-
-    Parameters: 
-    
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIEngineContainer::GoingToReboot( TRequestStatus& aStatus )
-    {
-
-    __TRACE( KPrint, ( _L( "CUIEngineContainer::GoingToReboot.") ) );
-    
-    // Forward            
-    return iUIEngine->GoingToReboot( this, aStatus );
-
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIEngineContainer
-
-    Method: RemoteReceive
-
-    Description: RemoteReceive forwards remote protocol messages to master
-
-    Parameters: 
-    
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIEngineContainer::RemoteReceive( const TDesC& aRemoteMsg )
-    {
-
-    __TRACE( KPrint, ( _L( "CUIEngineContainer::RemoteReceive.") ) );
-    
-    // Check master test case status, FIX110
-    if( iState != ERunning )
-        {
-        __TRACE( KError, ( _L( "Master case not running") ) );
-
-        return KErrNotFound;
-        }
-    
-    HBufC8* buf = HBufC8::New( aRemoteMsg.Length() );
-    if( buf == NULL )
-        { 
-        return KErrNoMemory;
-        }
-      
-    TPtr8 tmp = buf->Des();
-    tmp.Copy( aRemoteMsg );     
-    TInt ret = iTestCase.NotifyRemoteMsg( tmp, EStifCmdReceive );
-    delete buf;
-  
-    return ret;
-    
-    }
-
-// ================= OTHER EXPORTED FUNCTIONS ================================= 
-
-// End of File