stif/StifTFwIf/src/UIStore.cpp
branchRCL_3
changeset 40 07b41fa8d1dd
parent 39 3406c99bc375
child 43 ca8a1b6995f6
--- a/stif/StifTFwIf/src/UIStore.cpp	Thu Jul 15 20:25:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4842 +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 CUIStore 
-* and CModule class member functions.
-*
-*/
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <e32svr.h>
-#include <f32file.h>
-#include <e32uid.h>
-#include <collate.h>
-
-#include <StifLogger.h>
-
-#include "Logging.h"
-#include <stifinternal/UIStore.h>
-#include <stifinternal/UIEngine.h>
-#include <stifinternal/UIStoreContainer.h>
-#include "UIStorePopup.h"
-#include <stifinternal/UIEngineContainer.h>
-
-
-// EXTERNAL DATA STRUCTURES
-
-// EXTERNAL FUNCTION PROTOTYPES  
-
-// CONSTANTS
-//@spe _LIT(KNameTxt,"TEST FRAMEWORK");
-//@spe _LIT(KNameBase,"BASE");
-_LIT( KUIStore, "CUiStore" );
-_LIT( KUIStoreIf, "CUiStoreIf" );
-//_LIT( KUIStoreDefaultDir, "C:\\TestFramework\\" );
-
-_LIT( KUIStoreSetStart, "[TestSetStart]" );
-_LIT( KUIStoreSetEnd, "[TestSetEnd]" );
-_LIT( KUIStoreSetCaseStart, "[TestSetCaseStart]" );
-_LIT( KUIStoreSetCaseEnd, "[TestSetCaseEnd]" );
-_LIT( KUIStoreCaseModuleName, "ModuleName=" );
-_LIT( KUIStoreTestCaseTitle, "Title=" );
-_LIT( KUIStoreTestCaseFile, "TestCaseFile="); 
-_LIT( KUIStoreTestCaseNum, "TestCaseNum=");
-_LIT( KUIStoreCaseExpectedResult, "ExpectedResult=");
-_LIT( KUIStoreCasePriority, "Priority="); 
-_LIT( KUIStoreCaseTimeout, "Timeout=");
-_LIT( KUIStoreLastStartedCaseIndex, "LastStartedCaseIndex=");
-
-
-_LIT( KUIStoreDefaultRebootFile, "TestFrameworkUIReboot.txt" );
-_LIT( KUIStoreStartTest, "[StartTestCase]" );
-_LIT( KUIStoreStartTestEnd, "[StartTestCaseEnd]" );
-
-_LIT( KUIStoreCaseStatus, "TestCaseStatus=");
-_LIT( KUIStoreCaseExecutionResult, "TestCaseExecutionResult=");
-_LIT( KUIStoreCaseResult, "TestCaseResult=");
-_LIT( KUIStoreCaseStartTime, "TestCaseStartTime=");
-_LIT( KUIStoreCaseEndTime, "TestCaseEndTime=");
-
-const TInt KRcpHeaderLen = 16;        
-const TInt KFixedStartedCaseIndex = 10;
-
-// MACROS
-#ifdef LOGGER
-#undef LOGGER
-#endif
-#define LOGGER iLogger
-
-// LOCAL CONSTANTS AND MACROS
-static const TUid KUidTestModule = { 0x101FB3E7 };
-
-// MODULE DATA STRUCTURES
-
-// LOCAL FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-
-// ==================== LOCAL FUNCTIONS =======================================
-
-// None
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: NewL
-
-    Description: Construct the CUIStore class
-
-    Parameters: None
-
-    Return Values: CUIStore*                    New object
-
-    Errors/Exceptions: Leaves if memory allocation fails or
-                       ConstructL leaves.
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CUIStore* CUIStore::NewL( CUIStoreIf* aUIStoreIf )
-    {
-    
-    CUIStore* self = new ( ELeave ) CUIStore( aUIStoreIf );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ConstructL
-
-    Description: Second level constructor.
-
-    Construct the console
-    Construct module and case containers
-    Retrieve command line parameters
-    Connect to test engine
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: Leaves if memory allocation fails or fileserver or
-                       test engine can't be connected.
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::ConstructL( )
-    {
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: CUIStore
-
-    Description: Constructor.
-    Initialize non-zero member variables.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CUIStore::CUIStore( CUIStoreIf* aUIStoreIf ):
-    iUIStoreIf( aUIStoreIf ),
-    iUpdateNeeded( ETrue ),
-    iActivePopupPriority( EPopupPriorityLow )
-    {
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ~CUIStore
-
-    Description: Destructor
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CUIStore::~CUIStore( )
-    {	
-
-    iFileList.ResetAndDestroy();
-    iFileList.Close(); 
-    iStartedTestSets.ResetAndDestroy();
-    iStartedTestSets.Close();  
-
-    iStartedTestCases.ResetAndDestroy();
-    iStartedTestCases.Close();
-    
-    iTestSets.ResetAndDestroy();
-    iTestSets.Close();  
-
-    iTestCases.ResetAndDestroy();
-    iTestCases.Close();
-    
-    iPopups.ResetAndDestroy();
-    iPopups.Close();
-        
-    delete iUIEngine;    
-    iUIEngine = 0;
-
-    }
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIf
-
-    Method: Open
-
-    Description: Open test engine.
-
-    Parameters: TDesC& aTestFrameworkIni: in: Initialization file to Test Framework
-
-    Return Values: Symbian OS error: Error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C  TInt CUIStore::Open( const TDesC& aTestFrameworkIni )
-    {
-    
-    if( aTestFrameworkIni.Length() > KMaxFileName )
-        {
-        return KErrArgument;
-        }
-    
-    TRAPD( err, 
-        iUIEngine = CUIEngine::NewL( this );
-        );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-    
-    TFileName ini( aTestFrameworkIni );
-    // Check given ini file
-    TRAP( err, CheckIniL( ini ) );
-    
-    // Store folder of initialization file to open it again when looking for filters
-    RDebug::Print(_L("CUIStore stores name of ini file [%S]"), &ini);
-    iTestFrameworkIni.Copy(ini);
-    
-    return iUIEngine->Open( ini );
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: Close
-
-    Description: Close test engine.
-
-    Parameters: None
-
-    Return Values: TInt KErrNone: Always returned KErrNone
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::Close()
-    {
-    
-    TInt ret = KErrNone;
-    if( iUIEngine != NULL )
-        {
-        ret = iUIEngine->Close();
-    
-        delete iUIEngine;    
-        iUIEngine = 0;
-        }
-        
-    return ret;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: AddTestModule
-
-    Description: Add test module to module list of test engine
-
-    Parameters: TDesC& aModuleName: in: Testmodule, which is added to module list
-                TDesC& aIniFile: in: Initialization file to the test module
-
-    Return Values: Symbian OS error: Error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::AddTestModule( const TDesC& aModuleName, 
-                                       const TDesC& aIniFile )
-    {
-
-    TInt ret = iUIEngine->AddTestModule( aModuleName, aIniFile );
-         
-    RefreshAllCases();
-    
-    return ret;
-         
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: RemoveTestModule
-
-    Description: Add test module to module list of test engine
-
-    Parameters: TDesC& aModuleName: in: Testmodule, which is removed of module list
-
-    Return Values: Symbian OS error: Error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::RemoveTestModule( const TDesC& aModuleName )
-    {
-
-    TInt ret = iUIEngine->RemoveTestModule( aModuleName );
-     
-    RefreshAllCases();
-    
-    return ret;
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: AddTestCaseFile
-
-    Description: Add test case file to test case file list of test engine
-
-    Parameters: TDesC& aModuleName: in: Testmodule, which own test cases of test case list.
-                TDesC& aCaseFile: in: Test case list, which is added to test case list
-
-    Return Values: Symbian OS error: Error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::AddTestCaseFile( const TDesC& aModuleName, 
-                                         const TDesC& aCaseFile )
-    {
-
-    TInt ret = iUIEngine->AddTestCaseFile( aModuleName, aCaseFile );
-     
-    RefreshAllCases();
-    
-    return ret;
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: RemoveTestCaseFile
-
-    Description: Remove test case file of test case file list of test engine
-
-    Parameters: TDesC& aModuleName: in: Testmodule, which own test cases of test case list
-                TDesC& aCaseFile: in: Test case list, which is removed of test case list
-
-    Return Values: Symbian OS error: Error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::RemoveTestCaseFile( const TDesC& aModuleName, 
-                                            const TDesC& aCaseFile )
-    {   
-    
-    TInt ret = iUIEngine->RemoveTestCaseFile( aModuleName, aCaseFile );
-         
-    RefreshAllCases();
-    
-    return ret;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: StartTestCase
-
-    Description: Start selected test case identified with CTestInfo.
-                anIndex contains index in StartedTestCase array, 
-                which is valid only during execution of calling 
-                function.
-
-    Parameters: const CTestInfo& aTestInfo: in: Test case info
-                TInt& anIndex: out: Index to StartedTestCaseArray returned 
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::StartTestCase( const CTestInfo& aTestInfo, 
-                                       TInt& anIndex )
-    {
-    
-    CUIEngineContainer* container = NULL;
-    TInt ret = iUIEngine->StartTestCase( container, aTestInfo );
-    
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    
-    CStartedTestCase* testCase = NULL;
-    TRAP( ret,
-        testCase = CStartedTestCase::NewL( aTestInfo, *container );
-       );
-    if( ret != KErrNone )
-        {
-        iUIEngine->AbortStartedTestCase( container );
-        return ret;
-        }
-        
-    ret = iStartedTestCases.Append( testCase );
-    if( ret != KErrNone )
-        {
-        iUIEngine->AbortStartedTestCase( container );
-        delete testCase;
-        return ret;
-        }
-    
-    anIndex =  iStartedTestCases.Find( testCase );
-    
-    if( anIndex < 0 )
-        {
-        User::Panic( KUIStore, KErrNotFound );
-        }
-    
-    iUIStoreIf->Update( testCase, testCase->Status() ); 
-                
-    return KErrNone;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: TestCases
-
-    Description: Return array of existing test cases.
-
-    Parameters: RRefArray<CTestInfo>& aTestCases: out: Array of test cases
-                TDesC& aTestModule: in: Test module name (optional)
-                TDesC& aTestCaseFile: in: Test case file name (optional) 
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::TestCases( RRefArray<CTestInfo>& aTestCases, 
-                                   const TDesC& aTestModule,
-                                   const TDesC& aTestCaseFile ) 
-    {
-    
-    TInt ret = UpdateCases();
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    TInt count = iTestCases.Count();
-    for( TInt i = 0; i < count; i++ )
-        {
-        if( ( aTestModule.Length() > 0 ) &&
-            ( iTestCases[i]->ModuleName() != aTestModule ) )
-            {
-            continue;
-            }
-        else if( ( aTestCaseFile.Length() > 0 ) &&
-                 ( iTestCases[i]->TestCaseFile() != aTestCaseFile ) )
-            {
-            continue;
-            }
-        aTestCases.Append( *iTestCases[i] );
-        }
-    
-    return KErrNone;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: StartedTestCaseL
-
-    Description: Return started (running/runned) test case
-
-    Parameters: CStartedTestCase& aTestCase: out: Test case information
-                TInt anIndex: in: test case index in StartedTestCaseArray
-
-    Return Values: Reference to CStartedTestCase object
-
-    Errors/Exceptions: Leaves if anIndex out of range
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/      
-EXPORT_C CStartedTestCase& CUIStore::StartedTestCaseL( TInt anIndex )
-    {
-    
-    TInt count = iStartedTestCases.Count();
-    if( ( anIndex >= count ) ||
-        ( anIndex < 0 ) )
-        {
-        User::Leave( KErrNotFound );
-        }
-        
-    return *iStartedTestCases[anIndex];
-         
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: StartedTestCases
-
-    Description: Return started (running/runned) test cases
-
-    Parameters: RRefArray<CStartedTestCase>& aTestCases: out: array of test cases
-                TExecutionStatus aStatus: in: test case status (optional)
-                TDesC& aTestModule: in: test module name (optional)
-                TDesC& aTestCaseFile: in: test case file name (optional)
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/            
-EXPORT_C TInt CUIStore::StartedTestCases( RRefArray<CStartedTestCase>& aTestCases,
-                                          TInt aStatus,
-                                          const TDesC& aTestModule,
-                                          const TDesC& aTestCaseFile )
-    {
-    
-    TInt count = iStartedTestCases.Count();
-    for( TInt i = 0; i < count; i++ )
-        {
-        if( ( aTestModule.Length() > 0 ) &&
-            ( iStartedTestCases[i]->TestInfo().ModuleName() != aTestModule ) )
-            {
-            continue;
-            }
-        else if( ( aTestCaseFile.Length() > 0 ) &&
-                 ( iStartedTestCases[i]->TestInfo().TestCaseFile() != aTestCaseFile ) )
-            {
-            continue;
-            }
-        else if( ( aStatus != CUIStoreIf::EStatusAll) &&
-                 !( iStartedTestCases[i]->Status() & aStatus ) )
-            {
-            continue;
-            }
-        if( aTestCases.Append( *iStartedTestCases[i] ) != KErrNone )
-            {
-            return KErrNoMemory;
-            }
-        }
-    
-    
-    return KErrNone;
-    
-    }
-            
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: Modules
-
-    Description: Return modules array
-
-    Parameters: RRefArray<CModule>& aTestModules: out: modules array
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/     
-EXPORT_C TInt CUIStore::Modules( RRefArray<TDesC>& aTestModules )
-    {
-
-    TInt ret = UpdateCases();
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-
-    // Go through test cases and search if there are new modules 
-    // and add them to aTestModules array 
-    TInt caseCount = iTestCases.Count();
-    TInt moduleCount = 0;
-    TInt caseIndex = 0;
-    TInt moduleIndex = 0;
-    for ( caseIndex = 0; caseIndex < caseCount; caseIndex++ )
-        {
-        // First check modules
-        moduleCount = aTestModules.Count();
-        for ( moduleIndex = 0; moduleIndex < moduleCount; moduleIndex++ )
-            {
-            if( iTestCases[caseIndex]->ModuleName() == 
-                aTestModules[moduleIndex] )
-                {
-                break;
-                }
-            }
-        if ( moduleIndex == moduleCount )
-            {
-            // New module found
-            if( aTestModules.Append( iTestCases[caseIndex]->ModuleName() ) !=
-                KErrNone )
-                {
-                return KErrNoMemory;
-                } 
-            }
-        }
-
-    return KErrNone;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: TestCaseFiles
-
-    Description: Return test case files
-
-    Parameters: RRefArray<TDesC>& aTestCaseFiles: out: Array of test case files
-                TDesC& aTestModule: in: test module name (optional)
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/     
-EXPORT_C TInt CUIStore::TestCaseFiles( RRefArray<TDesC>& aTestCaseFiles,
-                                       const TDesC& aTestModule  )
-    {
-    
-    TInt ret = UpdateCases();
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-
-    // Go through test cases and search if there are new test case files 
-    // for specified test module and add them to aTestCaseFiles array 
-    TInt caseCount = iTestCases.Count();
-    TInt fileCount = 0;
-    TInt caseIndex = 0;
-    TInt fileIndex = 0;
-    for ( caseIndex = 0; caseIndex < caseCount; caseIndex++ )
-        {
-        if( ( aTestModule.Length() > 0 ) &&
-            ( aTestModule != iTestCases[caseIndex]->ModuleName() ) )
-            {
-            // Test case file is not for specified module
-            continue;
-            }
-            
-        // First check modules
-        fileCount = aTestCaseFiles.Count();
-        for ( fileIndex = 0; fileIndex < fileCount; fileIndex++ )
-            {
-            if( iTestCases[caseIndex]->TestCaseFile() == 
-                aTestCaseFiles[fileIndex] )
-                {
-                break;
-                }
-            }
-        if ( fileIndex == fileCount )
-            {
-            // New test case file found
-            if( aTestCaseFiles.Append( iTestCases[caseIndex]->TestCaseFile() ) !=
-                KErrNone )
-                {
-                return KErrNoMemory;
-                } 
-            }
-        }
-
-    return KErrNone;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: LoadAllModules
-
-    Description: Loads all TestFramework test modules from \system\libs\ directories 
-                of all drives. In Secure Platform from \sys\bin directories.
-
-    Parameters: None
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::LoadAllModules()
-    {
-    
-    RPointerArray<TDesC> testModules;
-    
-    TInt ret = ListAllModules( testModules );
-    if( ret == KErrNone )
-        {
-        for (TInt i= 0; i < testModules.Count(); i++)
-            {
-            iLogger->Log( _L("Add test module: %S"), testModules[i] );
-            ret = iUIEngine->AddTestModule( *testModules[i], KNullDesC );
-            if( ret != KErrNone )
-                {
-                iLogger->Log( _L("Add test module %S failed %d"), 
-                    testModules[i], ret );
-                break;
-                }
-            }
-        }
-    RefreshAllCases();
-    
-    testModules.ResetAndDestroy();
-    testModules.Close();
-    
-    return ret;
-
-    }    
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ListAllModules
-
-    Description: Lists all TestFramework test modules from \system\libs\ directories 
-                of all drives. In Secure Platform from \sys\bin directories.
-
-    Parameters: None
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::ListAllModules( RPointerArray<TDesC>& aModuleNames )
-    {
-    
-    TRAPD( err, ListAllModulesL( aModuleNames ); );
-    return err;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ListAllModulesL
-
-    Description: Lists all TestFramework test modules from \system\libs\ directories 
-                of all drives. In Secure Platform from \sys\bin directories.
-
-    Parameters: None
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-void CUIStore::ListAllModulesL( RPointerArray<TDesC>& aModuleNames )
-    {
-
-    TFileName libDirectory;
-    RFs fsSession;
-    TFileName fullName;
-
-    // Connect to file server
-	User::LeaveIfError( fsSession.Connect() ); // Start session
-	CleanupClosePushL( fsSession );
-
-    TDriveList drivelist; 
-	User::LeaveIfError( fsSession.DriveList(drivelist) );
-	// A TDriveList (the list of available drives), is an array of 
-	// 26 bytes. Each byte with a non zero value signifies that the 
-	// corresponding drive is available.
-
-    // 0x10000079, 0x1000008d, 0x101FB3E7
-    TUidType anEntryUid( KDynamicLibraryUid, 
-                         KSharedLibraryUid, 
-                         KUidTestModule ); 
-    TInt driveNumber; 
-	TChar driveLetter;
-
-    CDir* testModules = NULL;
-    
-	for( driveNumber=EDriveA; driveNumber<=EDriveZ; driveNumber++ )
-		{
-		if( !drivelist[driveNumber] ) 
-			{
-			// If drive-list entry is zero, drive is not available
-			continue;
-			}
-        User::LeaveIfError(fsSession.DriveToChar(driveNumber,driveLetter));
-
-        libDirectory.Zero();
-        libDirectory.Append( driveLetter );
-        libDirectory.Append( _L(":\\sys\\bin\\*") );
-        
-        iLogger->Log( _L("Searching modules from %S"), &libDirectory );
-
-        fsSession.GetDir( libDirectory, anEntryUid, ESortNone, testModules );
-
-        if( !testModules )
-            {
-            // Continue if no test modules found
-            continue;
-            }
-        TInt count = testModules->Count();
-        for (TInt i= 0; i < count; i++)
-            {           
-            fullName = (*testModules)[i].iName;
-            
-            fullName.LowerCase();
-            // Remove optional '.DLL' from file name
-            TParse parse;
-            parse.Set( fullName, NULL, NULL );
-    
-            if ( parse.Ext() == _L(".dll") )
-                {
-                const TInt len = parse.Ext().Length();
-                fullName.Delete( fullName.Length()-len, len );
-                }
-                        
-            // Exclude internal test modules (testcombiner, testscripter, suevent)
-            _LIT(KTestCombiner, "testcombiner");
-            _LIT(KTestScripter, "testscripter");
-            _LIT(KSUEvent, "suevent");
-            if(fullName != KTestCombiner && fullName != KSUEvent && fullName != KTestScripter)
-                { 
-                HBufC* name = fullName.AllocLC();
-                iLogger->Log( _L("Found: %S"), name );
-                User::LeaveIfError( aModuleNames.Append( name ) );
-                CleanupStack::Pop( name );
-                }
-            }
-        delete testModules;
-        testModules = NULL;
-		}
-    
-    CleanupStack::PopAndDestroy(); // fsSession 
-    
-    } 
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: CreateTestSet
-
-    Description: Create new test set.
-
-    Parameters: TDesC& aSetName: in: test set name (Max length is KMaxName)
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::CreateTestSet( const TDesC& aSetName )
-    {
-    
-    TPtrC setName;
-    TFileName tmp;
-    TInt ret = ParseTestSetName( aSetName, setName, tmp );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-        
-    CTestSetInfo* setInfo = NULL;
-    if( FindSetByName( setName, setInfo ) == KErrNone )
-        {
-        return KErrAlreadyExists;
-        }
-    TRAPD( err, 
-        setInfo = CTestSetInfo::NewL( setName );
-        );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-    if( iTestSets.Append( setInfo ) != KErrNone )
-        {
-        delete setInfo;
-        return KErrNoMemory;
-        }
-            
-    return KErrNone;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: RemoveTestSet
-
-    Description: Remove active test set.
-
-    Parameters: TDesC& aSetName: in: test set name (Max length is KMaxName)
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::RemoveTestSet( const TDesC& aSetName )
-    {
-    TInt err = UnloadTestSet( aSetName );
-    if ( err != KErrNone )
-        {
-        return err;
-        }
-    
-    TFileName setfile;
-    setfile.Append(KUIStoreDefaultDir);
-    setfile.Append(aSetName);
-    RFs fs;
-    err = fs.Connect();
-    if( err != KErrNone )
-        {
-        fs.Close();
-        return err;
-        }
-    err = fs.Delete( setfile );
-    if ( err != KErrNone )
-        {
-        fs.Close();
-        return err;    
-        }
-    
-    return KErrNone;   
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: UnloadTestSet
-
-    Description: Unloads active test set.
-
-    Parameters: TDesC& aSetName: in: test set name (Max length is KMaxName)
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::UnloadTestSet( const TDesC& aSetName )
-    {    
-    TPtrC setName;
-    TFileName tmp;
-    TInt ret = ParseTestSetName( aSetName, setName, tmp );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    
-    TInt count = iTestSets.Count();
-    TInt index = 0;
-    for( ; index < count; index++ )
-        {
-        if( iTestSets[index]->Name() == setName )
-            {
-            break;
-            }
-        }
-    if( index == count ) 
-        { 
-        return KErrNotFound;
-        }
-
-    CTestSetInfo* setInfo = iTestSets[index];
-    iTestSets.Remove( index );
-    
-    // If started test set keeps info about currently removed test set
-    // then remove also this info
-    CStartedTestSet *stset;
-    for(index = 0; index < iStartedTestSets.Count(); index++)
-        {
-        stset = iStartedTestSets[index];
-        if(stset->GetOriginalTestSet() == setInfo)
-            {
-            stset->NullOriginalTestSet();
-            }
-        }
-    
-    delete setInfo;
-    
-    return KErrNone;    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: TestSets
-
-    Description: Query test sets.
-
-    Parameters:RRefArray<CTestSetInfo>& aSetInfos: out: list of test sets
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::TestSets( RRefArray<CTestSetInfo>& aSetInfos )
-    {
-    
-    TInt count = iTestSets.Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        if( aSetInfos.Append( *iTestSets[i] ) != KErrNone )
-            {
-            return KErrNoMemory;
-            }
-        }
-    return KErrNone;
-    
-    }       
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: TestSets
-
-    Description: Query test sets.
-
-    Parameters:RRefArray<CTestSetInfo>& aSetInfos: out: list of test sets
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C const CTestSetInfo& CUIStore::TestSetL( const TDesC& aSetName  )
-    {
-    
-    TPtrC setName;
-    TFileName tmp;
-    User::LeaveIfError( ParseTestSetName( aSetName, setName, tmp ) );
-        
-    CTestSetInfo* setInfo = NULL;
-    User::LeaveIfError( FindSetByName( setName, setInfo ) );
-    return *setInfo;
-    
-    }                
-        
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: AddToTestSet
-
-    Description: Add test case to test set.
-
-    Parameters: TDesC& aSetName: out: test set name
-                CTestInfo& aTestInfo: in: test case to add
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::AddToTestSet( const TDesC& aSetName, 
-                                      const CTestInfo& aTestInfo )
-    {
-    
-    TPtrC setName;
-    TFileName tmp;
-    TInt ret = ParseTestSetName( aSetName, setName, tmp );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-        
-    CTestSetInfo* setInfo = NULL;
-    ret = FindSetByName( setName, setInfo );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    
-    return setInfo->AddTestCase( aTestInfo );
-        
-    }       
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: InsertToTestSet
-
-    Description: Insert test case to test set.
-
-    Parameters: TDesC& aSetName: out: test set name
-                CTestInfo& aTestInfo: in: test case to add
-                TInt aPos: in: position to add
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CUIStore::InsertToTestSet( const TDesC& aSetName, 
-                                         const CTestInfo& aTestInfo,
-                                         TInt aPos  )
-    {
-    
-    TPtrC setName;
-    TFileName tmp;
-    TInt ret = ParseTestSetName( aSetName, setName, tmp );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-        
-    CTestSetInfo* setInfo = NULL;
-    ret = FindSetByName( setName, setInfo );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    
-    return setInfo->InsertTestCase( aTestInfo, aPos );
-        
-    }       
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: RemoveFromTestSet
-
-    Description: Remove test case from test set.
-
-    Parameters: TDesC& aSetName: out: test set name
-                CTestInfo& aTestInfo: in: test case to remove
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::RemoveFromTestSet( const TDesC& aSetName, 
-                                           const CTestInfo& aTestInfo )
-    {
-    
-    TPtrC setName;
-    TFileName tmp;
-    TInt ret = ParseTestSetName( aSetName, setName, tmp );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-        
-    CTestSetInfo* setInfo = NULL;
-    ret = FindSetByName( setName, setInfo );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    
-    return setInfo->RemoveTestCase( aTestInfo );
-    
-    }       
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: SaveTestSet
-
-    Description: Save test set. Deprecated, SaveTestSet2 to be used instead 
-
-    Parameters: TDesC&:  out: test set name
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::SaveTestSet( const TDesC& /* aSetName */ )
-    {  
-        
-    return KErrNotSupported;
-    
-    }  
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: SaveTestSet2
-
-    Description: Save test set.
-
-    Parameters: TDes& aSetName: out: test set name
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::SaveTestSet2( TDes& aSetName )
-    {
-    
-    RRefArray<TDesC> testsets;
-    
-    GetTestSetsList(testsets);
-    TBool isexist(EFalse);
-    for(TInt i=0;i<testsets.Count();i++)
-    {
-       if(testsets[i]==aSetName)
-           {
-           isexist=ETrue;
-           break;
-           }
-    
-    }
-    testsets.Reset();
-    if(!isexist)
-    {
-        TTime current;
-        TDateTime date_rep;
-        current.HomeTime();
-        date_rep = current.DateTime();
-        TBuf<32> currSetName;
-        _LIT(f_ext,".set");
-        
-        //create "test set name" string
-        currSetName.AppendNum(date_rep.Year());
-        currSetName.Append('_');
-        currSetName.AppendNum(date_rep.Month()+1); // Incrimination necessary, because Day and Month fields of TDateTime class are 0 based
-        currSetName.Append('_');
-        currSetName.AppendNum(date_rep.Day()+1);
-        currSetName.Append('_');
-        currSetName.AppendNum(date_rep.Hour());
-        currSetName.Append('_');
-        currSetName.AppendNum(date_rep.Minute());
-        currSetName.Append('_');
-        currSetName.AppendNum(date_rep.Second());
-        currSetName.Append(f_ext);
-        
-        for(TInt i=0;i<iTestSets.Count();i++)
-        {
-            if(iTestSets[i]->Name()==aSetName)
-                {
-                iTestSets[i]->RenameTestSet(currSetName);
-                
-                }
-        
-        }
-        
-        
-        
-        aSetName.Zero();
-        aSetName.Copy(currSetName);
-       
-        
-    
-    }
-    TPtrC setName;
-    TFileName tmp;
-
-    
-
-    TInt ret = ParseTestSetName( aSetName, setName, tmp );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-        
-    CTestSetInfo* setInfo = NULL;
-    ret = FindSetByName( setName, setInfo );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-     
-    TRAPD( err,
-        SaveTestSetL( *setInfo, aSetName );
-        );
-    
-   
-    
-    return err;
-    
-    }  
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: LoadTestSet
-
-    Description: Load test set.
-
-    Parameters: TDesC& aSetName: out: test set name
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::LoadTestSet( const TDesC& aSetName )
-    {
-    TPtrC setName;
-    TFileName tmp;
-    TInt ret = ParseTestSetName( aSetName, setName, tmp );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    CTestSetInfo* setInfo= NULL;
-    
-    FindSetByName( setName, setInfo );
-    if(setInfo != NULL)
-        {
-        return KErrNone;
-        }
-    
-    TRAPD( err, 
-        setInfo = CTestSetInfo::NewL( aSetName );
-        );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-    if( iTestSets.Append( setInfo ) != KErrNone )
-        {
-        delete setInfo;
-        return KErrNoMemory;
-        }
-
-    TRAP( err,
-        LoadTestSetL( setName, aSetName );
-        );
-    
-     if( err != KErrNone && err != KErrAlreadyExists )
-        {
-        RemoveTestSet( setName );
-        }
-            
-    return err;
-    
-    }       
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: UpdateTestSet
-
-    Description: Updates (on storage) earlier saved test set.
-
-    Parameters: CTestSetInfo& aSetInfo: in: test set
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::UpdateTestSet(CTestSetInfo& aSetInfo)
-    {
-    TRAPD(err,
-          UpdateTestSetL(aSetInfo, aSetInfo.Name());
-         );
-         
-    return err;
-    }  
-        
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: StartTestSet
-
-    Description: Start selected test set identified with CTestSetInfo.
-
-    Parameters: const CTestSetInfo& aTestSetInfo: in: Started test set
-                TInt& anIndex: out index in StartedTestSet array, 
-                    which is valid only during execution of calling 
-                    function.
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TInt CUIStore::StartTestSet( const CTestSetInfo& aTestSetInfo,
-                                      TInt& anIndex,
-                                      CStartedTestSet::TSetType aType )
-    {
-    return StartTestSet(aTestSetInfo, anIndex, aType, EFalse);    
-    }       
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: StartTestSet
-
-    Description: Start selected test set identified with CTestSetInfo.
-
-    Parameters: const CTestSetInfo& aTestSetInfo: in: Started test set
-                TInt& anIndex: out index in StartedTestSet array, 
-                    which is valid only during execution of calling 
-                    function.
-                TSetType aType: sequential or paraller
-                TBool aNotExecutedCasesMode: only test case which haven't been
-                    executed yet
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TInt CUIStore::StartTestSet( const CTestSetInfo& aTestSetInfo,
-                                      TInt& anIndex,
-                                      CStartedTestSet::TSetType aType,
-                                      TBool aNotStartedCasesMode )
-    {
-    
-    TInt ret = KErrNone;
-    
-    CStartedTestSet* set = NULL;
-    TRAPD( err, 
-        set = CStartedTestSet::NewL( this, aTestSetInfo, aType );
-        );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-
-    if( iStartedTestSets.Append( set ) != KErrNone )
-        {
-        delete set;
-        return KErrNoMemory;
-        } 
-
-    // Set mode in which only still not executed test cases will be run.
-    // It applies only to sequential execution.
-    set->SetNotStartedCasesMode(aNotStartedCasesMode);
-    
-    ret = set->StartNext();
-        
-    anIndex = iStartedTestSets.Find( set );
-    if( anIndex < 0 )
-        {
-        User::Panic( KUIStore, KErrNotFound );
-        }
-    // Check that testset starting was successful
-    if( ret != KErrNone )
-        {
-        iStartedTestSets.Remove( anIndex );
-        anIndex = KErrNotFound; // safety
-        delete set;
-        return ret;
-        }
-    
-    return KErrNone;
-    
-    }       
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: AbortTestSet
-
-    Description: Abort running test set.
-
-    Parameters: None
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::AbortTestSet( CStartedTestSet& aSetInfo )
-    {
-        
-    return aSetInfo.Abort();
-    
-    } 
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: StartedTestSetL
-
-    Description: Return started (running/runned) test set.
-
-    Parameters: TInt anIndex: out index in StartedTestSet array 
-                        
-    Return Values: CStartedTestSet&: reference to test set
-
-    Errors/Exceptions: Leaves on error.
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/  
-EXPORT_C CStartedTestSet& CUIStore::StartedTestSetL( TInt anIndex)
-    {
-    
-    if( anIndex < 0 ||
-        anIndex >= iStartedTestSets.Count() )
-        {
-        User::Leave( KErrNotFound );
-        }
-    
-    return *iStartedTestSets[ anIndex ];
-    
-    }       
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: StartedTestSets
-
-    Description: Return started (running/runned) test cases
-
-    Parameters: RRefArray<CStartedTestSet>& aTestCases: out: list of test sets
-                TInt aStatus: in: status of queried sets
-                        
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::StartedTestSets( RRefArray<CStartedTestSet>& aTestSets,
-                                         TInt aStatus )
-    {    
-    
-    TInt count = iStartedTestSets.Count();
-    
-    for( TInt i = 0; i < count; i++ )
-        {
-        if( ( aStatus != CUIStoreIf::ESetAll) &&
-            !( iStartedTestSets[i]->Status() & aStatus ) )
-            {
-            continue;
-            }
-        if( aTestSets.Append( *iStartedTestSets[i] ) != KErrNone )
-            {
-            return KErrNoMemory;
-            }
-        }        
-        
-    return KErrNone;
-    
-    }           
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: LoadSavedTestCases
-
-    Description: Load saved testcases.
-
-    Parameters: None
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::LoadSavedTestCases()
-    {
-    
-    TRAPD( err,
-        LoadExecutedTestCasesL();
-        );
-    
-    return err;
-    
-    }       
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: GetTestSetsList
-
-    Description: Returns menu item text.
-
-    Parameters: const TInt                :in:      Menu index
-
-    Return Values: const TDesC&                     Menu line text
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CUIStore::GetTestSetsList( RRefArray<TDesC>& aArray )
-    {
-    RFs fileReader;
-    CDir* dirContents = NULL;
-    _LIT(KSetPattern,".set");
-    TInt entNum = 0;
-    TInt ret = 0;
-    HBufC* fName = NULL;
-
-    
-    ret = fileReader.Connect();
-
-    if (ret != KErrNone)
-    	return ret;
-    
-    
-    ret = fileReader.GetDir(KUIStoreDefaultDir,
-    						KEntryAttNormal | KEntryAttHidden | KEntryAttSystem,
-    						ESortByName | EDirsFirst | EAscending,
-    						dirContents);
-    fileReader.Close();	
-    if (ret != KErrNone)
-    	{    		
-	    delete dirContents;
-	    return ret;
-	    }
-    entNum = dirContents->Count();
-    for (int i = 0;i<entNum;i++)
-    	{
-    	if ((!dirContents->operator[](i).IsDir())&&
-    		 dirContents->operator[](i).iName.Find(KSetPattern)!=KErrNotFound)
-    			{
-    			  TRAPD( err, fName = HBufC::NewL(64) );		       			             
-    			  if( err != KErrNone )
-    			    {
-    			      delete dirContents;
-    			      return err;
-    			    }    		 	
-    		    *fName =  dirContents->operator[](i).iName;
-    		 	ret = iFileList.Append(fName);
-    		 	if (ret != KErrNone)
-    		 		{
-    					delete fName;
-    					delete dirContents;
-    					return ret;	
-    		 		}
-    		 	ret = aArray.Append(*fName);
-			 	if (ret != KErrNone)
-    		 		{
-    					delete fName;
-    					delete dirContents;
-    					return ret;	
-    		 		}
-
-    			}    
-    	}
-    delete dirContents;
-    return KErrNone; 
-
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: FindSetByName
-
-    Description: Finds test set by name.
-
-    Parameters: const TDesC& aSetName: in: set name 
-                CTestSetInfo*& aSetInfo: out: pointer to test set
-                        
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::FindSetByName( const TDesC& aSetName, 
-                              CTestSetInfo*& aSetInfo )
-    {
-    
-    TInt count = iTestSets.Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        if( iTestSets[i]->Name() == aSetName )
-            {
-            aSetInfo = iTestSets[i];
-            return KErrNone;
-            }
-        }
-    
-    return KErrNotFound;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: FindSetByCase
-
-    Description: Finds test set by name.
-
-    Parameters:  const CStartedTestCase* aTestCase: in: running test case 
-                 CStartedTestSet*& aSet: out: set running test case
-                        
-    Return Values: KErrNotFound: test case is not runned by any test set
-                   KErrNone: test case was runned by aSet
-                   
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::FindStartedSetByCase( const CStartedTestCase* aTestCase, 
-                                     CStartedTestSet*& aSet  )
-    {
-    
-    TInt count = iStartedTestSets.Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        if( iStartedTestSets[i]->IsRunning( aTestCase ) )
-            {
-            aSet = iStartedTestSets[i];
-            return KErrNone;
-            }
-        }
-    
-    return KErrNotFound;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: LoadTestSetL
-
-    Description: Load test set.
-
-    Parameters: TDesC& aSetName: out: test set name
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::LoadTestSetL( const TDesC& aSetName, const TDesC& /*aSetFileName*/ )
-    {
-    
-    TPtrC tmp;
-    TInt num;
-    TInt high;
-    TInt64 interval;
-    
-    CStifParser* parser = CStifParser::NewL( KUIStoreDefaultDir, aSetName );
-
-        
-    CleanupStack::PushL( parser );
-    
-    CStifSectionParser* section = 
-        parser->SectionL( KUIStoreSetStart, KUIStoreSetEnd );
-    CleanupStack::PushL( section );
-    
-    CStifItemParser* item;
-
-    // Get started test case (if possible)
-    TUint lastStartedCaseIndex = 0;
-    item = section->GetItemLineL(KUIStoreLastStartedCaseIndex);
-    if(item)
-        {
-        CleanupStack::PushL(item);
-        TInt r = item->GetInt(KUIStoreLastStartedCaseIndex, lastStartedCaseIndex);
-        CleanupStack::PopAndDestroy(item);
-        if(r != KErrNone)
-            {
-            __TRACE(KInit, (_L("Could not read [%S] from test set file. Result [%d]."), &KUIStoreLastStartedCaseIndex, r));
-            }
-        }
-    else
-        {
-        __TRACE(KInit, (_L("Could not find [%S] from test set file."), &KUIStoreLastStartedCaseIndex));
-        }
-
-    
-    CTestSetInfo* setInfo = NULL;
-    User::LeaveIfError( FindSetByName( aSetName, setInfo ) );
-    
-    // Update started case
-    setInfo->SetLastStartedCaseIndex(lastStartedCaseIndex);
-    
-    CTestInfo* testInfo = CTestInfo::NewL();
-    CleanupStack::PushL( testInfo );    
-
-    CStifSectionParser* subSection = 
-        section->SubSectionL( KUIStoreSetCaseStart, KUIStoreSetCaseEnd );
-    
-    while( subSection )
-        {
-        CleanupStack::PushL( subSection );    
-        
-        // Get module name
-        // Mandatory, leave if not found
-        User::LeaveIfError( 
-            subSection->GetLine( KUIStoreCaseModuleName, tmp, ENoTag ) );
-        testInfo->SetModuleName( tmp );
-    
-        // Get test case title
-        // Mandatory, leave if not found
-        User::LeaveIfError( 
-            subSection->GetLine( KUIStoreTestCaseTitle, tmp, ENoTag ) );
-        testInfo->SetTestCaseTitle( tmp );
-        
-        // Get test case file
-        num = subSection->GetLine( KUIStoreTestCaseFile, tmp, ENoTag );
-        if( ( num == KErrNone ) &&
-            ( tmp.Length() > 0 ) )
-            {
-            // Optional
-            testInfo->SetTestCaseFile( tmp );
-            }
-        
-        // Get test case number
-        item = subSection->GetItemLineL( KUIStoreTestCaseNum );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreTestCaseNum, num ));
-        testInfo->SetTestCaseNumber( num );
-        CleanupStack::PopAndDestroy( item );    
-        
-        // Get test case priority
-        item = subSection->GetItemLineL( KUIStoreCasePriority );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreCasePriority, num ));
-        testInfo->SetPriority( num );
-        CleanupStack::PopAndDestroy( item ); 
-        
-        // Get test case timeout
-        item = subSection->GetItemLineL( KUIStoreCaseTimeout );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreCaseTimeout, num ));
-        User::LeaveIfError( item->GetNextInt( high ));
-        //@js<--remove--> interval.Set( high, num );
-        interval = MAKE_TINT64( high, num );
-        TTimeIntervalMicroSeconds timeout( interval );
-        testInfo->SetTimeout( timeout );
-        CleanupStack::PopAndDestroy( item ); 
-        
-        User::LeaveIfError( setInfo->AddTestCase( *testInfo ) );
-        
-        CleanupStack::PopAndDestroy( subSection );    
-        subSection = 
-            section->NextSubSectionL( KUIStoreSetCaseStart, KUIStoreSetCaseEnd );
-        } 
-        
-    CleanupStack::PopAndDestroy( testInfo );    
-    CleanupStack::PopAndDestroy( section );
-    CleanupStack::PopAndDestroy( parser );
-    
-    const RRefArray<const CTestInfo>& testCases = setInfo->TestCases();
-    LoadTestModulesAndTestCaseFilesL( testCases );
-     
-    }     
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: SaveTestSetL
-
-    Description: Save test set.
-
-    Parameters: CTestSetInfo& aSetInfo: in: test set
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::SaveTestSetL( CTestSetInfo& aSetInfo, const TDesC& aSetFileName )
-    {
-    //Extract path
-    TParse p;
-    p.Set(aSetFileName, NULL, NULL);
-    TPtrC path =  p.DriveAndPath(); // gives path for test set
-    TPtrC fn = p.NameAndExt(); // gives filename with extension
-    if(path.Length() == 0)
-        {
-        path.Set(KUIStoreDefaultDir);
-        }
-
-    //Create file server
-    RFs fs;
-    User::LeaveIfError(fs.Connect());
-    CleanupClosePushL(fs);
-
-    //Create or open file
-    RFile file;
-    TFileName filename = path;
-    filename.Append(fn);
-    
-    TInt r = file.Replace(fs, filename, EFileWrite);
-    if(r != KErrNone)
-        {
-        User::Leave(r);
-        }
-    else
-        {
-        CleanupClosePushL(file);
-        
-        RBuf buffer;
-        buffer.Create(256);
-        CleanupClosePushL(buffer);
-        
-        // Saving
-        buffer.Format(_L("%S"), &KUIStoreSetStart);
-        WriteLineL(file, buffer);
-
-        // Saving test set causes reset of index
-        aSetInfo.SetLastStartedCaseIndex(0);
-        buffer.Format(_L("%S "), &KUIStoreLastStartedCaseIndex);
-        buffer.AppendNumFixedWidth(aSetInfo.GetLastStartedCaseIndex(), EDecimal, KFixedStartedCaseIndex);
-        WriteLineL(file, buffer);
-
-        // Saving test cases
-        TInt count = aSetInfo.TestCases().Count();
-        for(TInt i = 0; i < count; i++)
-            {
-            WriteLineL(file, KNullDesC);
-            buffer.Format(_L("%S"), &KUIStoreSetCaseStart);
-            WriteLineL(file, buffer);
-            
-            buffer.Format(_L("%S %S"), &KUIStoreCaseModuleName, &aSetInfo.TestCases()[i].ModuleName());
-            WriteLineL(file, buffer);
-            buffer.Format(_L("%S %S"), &KUIStoreTestCaseTitle, &aSetInfo.TestCases()[i].TestCaseTitle());
-            WriteLineL(file, buffer);
-            if(aSetInfo.TestCases()[i].TestCaseFile().Length() > 0)
-                {
-                buffer.Format(_L("%S %S"), &KUIStoreTestCaseFile, &aSetInfo.TestCases()[i].TestCaseFile());
-            WriteLineL(file, buffer);
-                }
-            buffer.Format(_L("%S %d"), &KUIStoreTestCaseNum, aSetInfo.TestCases()[i].TestCaseNum());
-            WriteLineL(file, buffer);
-            buffer.Format(_L("%S %d"), &KUIStoreCasePriority, aSetInfo.TestCases()[i].Priority());
-            WriteLineL(file, buffer);
-            buffer.Format(_L("%S %d %d"), &KUIStoreCaseTimeout, I64LOW(aSetInfo.TestCases()[i].Timeout().Int64()), 
-                                                                I64HIGH(aSetInfo.TestCases()[i].Timeout().Int64()));
-            WriteLineL(file, buffer);
-            buffer.Format(_L("%S %d"), &KUIStoreCaseExpectedResult, aSetInfo.TestCases()[i].ExpectedResult());
-            WriteLineL(file, buffer);
-            buffer.Format(_L("%S"), &KUIStoreSetCaseEnd);    
-            WriteLineL(file, buffer);
-            }
-
-        WriteLineL(file, KNullDesC);
-        buffer.Format(_L("%S"), &KUIStoreSetEnd);
-        WriteLineL(file, buffer);
-
-        CleanupStack::PopAndDestroy(&buffer);
-        CleanupStack::PopAndDestroy(&file);
-        }
-    CleanupStack::PopAndDestroy(&fs);        
-    }           
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: UpdateTestSetL
-
-    Description: Updates information in test set file.
-
-    Parameters: CTestSetInfo& aSetInfo: in: test set
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: Leaves when writing to file fails
-                       Leaves when file.seek fails
-                       Leaves when can't connect to file server
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::UpdateTestSetL(CTestSetInfo& aSetInfo, const TDesC& aSetFileName)
-    {
-    // Get path
-    TParse p;
-    p.Set(aSetFileName, NULL, NULL);
-    TPtrC path = p.DriveAndPath(); // gives path for test set
-    TPtrC fn = p.NameAndExt(); // gives filename with extension
-    if(path.Length() == 0)
-        {
-        path.Set(KUIStoreDefaultDir);
-        }
-
-    //Create file server
-    RFs fs;
-    User::LeaveIfError(fs.Connect());
-    CleanupClosePushL(fs);
-
-    //Create or open file
-    RFile file;
-    TFileName filename = path;
-    filename.Append(fn);
-    TInt foundpos = KErrNotFound;
-    
-    TInt r = file.Open(fs, filename, EFileWrite);
-    if(r != KErrNone)
-        {
-        User::Leave(r);
-        }
-    else
-        {
-        CleanupClosePushL(file);
-
-        //Search for line
-        RBuf buffer;
-        buffer.Create(256);
-        CleanupClosePushL(buffer);
-
-        //Prepare file
-        TInt pos = 0;
-        User::LeaveIfError(file.Seek(ESeekStart, pos));
-        
-        //Read file
-        ReadLineL(file, buffer);
-        while(buffer.Length() > 0)
-            {
-            // Keep remembering current position
-            if(buffer.Find(KUIStoreLastStartedCaseIndex) == 0)
-                {
-                foundpos = pos;
-                break;
-                }
-            // What is current position
-            pos = 0;
-            User::LeaveIfError(file.Seek(ESeekCurrent, pos));
-            // Read next line from file
-            ReadLineL(file, buffer);
-            }
-
-        if(foundpos != KErrNotFound)
-            {
-            // Position was found. Just update that line (save index of last 
-            // started test case)
-            RBuf8 b;
-            b.Create(40);
-            CleanupClosePushL(b);
-
-            b.Copy(KUIStoreLastStartedCaseIndex);
-            b.Append(_L8(" "));
-            b.AppendNumFixedWidth(aSetInfo.GetLastStartedCaseIndex(), EDecimal, KFixedStartedCaseIndex);
-            User::LeaveIfError(file.Seek(ESeekStart, foundpos));
-            User::LeaveIfError(file.Write(b));
-            CleanupStack::PopAndDestroy(&b);
-            }
-
-        CleanupStack::PopAndDestroy(&buffer);
-        CleanupStack::PopAndDestroy(&file);
-        }
-    CleanupStack::PopAndDestroy(&fs);        
-    
-    if(foundpos == KErrNotFound)
-        {
-        // Position of KUIStoreLastStartedCaseIndex could not be found.
-        // Store the whole file.
-        SaveTestSetL(aSetInfo, aSetFileName);
-        }
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ReadLineL
-
-    Description: Read the whole line from the file. If there is enough space,
-                 the whole content of line will be returned in buffer.
-
-    Parameters: RFile& file: in: file to be read
-                TDes8& buffer: out: buffer to be returned
-    
-    Return Values: None
-
-    Errors/Exceptions: Leaves if RFile::Read method fails
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::ReadLineL(RFile &file, TDes& buffer)
-    {
-    TBuf8<1> c;
-    TBuf<1> c16;
-    buffer.Copy(KNullDesC);
-    
-    User::LeaveIfError(file.Read(c));
-    while(c.Length() > 0)
-        {
-        // There is still place to write to the dest buffer
-        if(buffer.Length() < buffer.MaxLength())
-            {
-            c16.Copy(c);
-            buffer.Append(c16);
-            }
-        // Stop reading if end of line
-        if(c[0] == 0x0A)
-            {
-            break;
-            }
-        User::LeaveIfError(file.Read(c));
-        }
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: WriteLineL
-
-    Description: Write given line to the file and adds end of line.
-
-    Parameters: RFile& file: in: file to be written
-                TDesC& buffer: in: buffer to be written
-    
-    Return Values: None
-
-    Errors/Exceptions: Leaves if RFile::Write method fails
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::WriteLineL(RFile &file, const TDesC& buffer)
-    {
-    if(buffer.Length() > 0)
-        {
-        // Create 8-bit buffer
-        RBuf8 buf;
-        buf.Create(buffer.Length());
-        CleanupClosePushL(buf);
-    
-        buf.Copy(buffer);
-    
-        // Write buffer to file + end of line
-        User::LeaveIfError(file.Write(buf));
-
-        // Delete 8-bit buffer
-        CleanupStack::PopAndDestroy(&buf);
-        }
-
-    // Write end of line
-    TBuf8<2> eoline;
-    eoline.Copy(_L("\r\n"));
-    User::LeaveIfError(file.Write(eoline));
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: LoadTestModulesL
-
-    Description: Load test modules. 
-
-    Parameters: CTestSetInfo& aSetInfo: in: test set
-    
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::LoadTestModulesAndTestCaseFilesL( 
-    const RRefArray<const CTestInfo>& aTestCases )
-    {
-    
-    RRefArray<TDesC> testCaseFiles;
-    RRefArray<TDesC> testModules;
-    CleanupClosePushL( testCaseFiles );
-    CleanupClosePushL( testModules );
-    
-    User::LeaveIfError( Modules( testModules ) );
-    
-    TInt cCount = aTestCases.Count();
-    TInt mCount = 0;
-    TInt mInd=0;
-    TInt fCount = 0;
-    TInt fInd=0;
-    for( TInt cInd=0; cInd<cCount; cInd++ )
-        {
-        mCount = testModules.Count();
-        for( mInd=0; mInd<mCount; mInd++ )
-            {
-            if( aTestCases[cInd].ModuleName() == testModules[mInd] )
-                {
-                // Test module already loaded
-                break;
-                }
-            }
-        if( mInd == mCount )
-            {
-            // Not found, load test module
-            if( AddTestModule( aTestCases[cInd].ModuleName() ) == KErrNone )
-                {
-                User::LeaveIfError( 
-                    testModules.Append( aTestCases[cInd].ModuleName() ) );
-                }
-            }                
-        if( aTestCases[cInd].TestCaseFile().Length() == 0 )
-            {
-            // Test case file is not used, continue
-            continue;
-            }    
-        testCaseFiles.Reset();
-        User::LeaveIfError( 
-            TestCaseFiles( testCaseFiles, aTestCases[cInd].ModuleName() ));
-        fCount = testCaseFiles.Count();
-        for( fInd=0; fInd<fCount; fInd++ )
-            {
-            if( aTestCases[cInd].TestCaseFile() == testCaseFiles[fInd] )
-                {
-                // Testcasefile already loaded
-                break;
-                }
-            }  
-        if( fInd == fCount )
-            {  
-            // Load test module
-            if( AddTestCaseFile( aTestCases[cInd].ModuleName(),
-                                 aTestCases[cInd].TestCaseFile() ) == KErrNone )
-                {
-                User::LeaveIfError( 
-                    testCaseFiles.Append( aTestCases[cInd].TestCaseFile() ) );
-                }
-            }
-        }   
-
-    CleanupStack::PopAndDestroy(); // testModules
-    CleanupStack::PopAndDestroy(); // testCaseFiles
-        
-    }
-                               
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: TestExecuted
-
-    Description: Test case executed callback from UI engine.
-    
-    Parameters:  CUIEngineContainer* const aContainer: in: Execution container
-                 TFullTestResult& aFullTestResult: in: test result
-    
-    Return Values: None
-    
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/    
-void CUIStore::TestExecuted ( CUIEngineContainer* aContainer,
-                              TFullTestResult& aFullTestResult )
-    {
-    
-    CStartedTestCase* testCase = NULL;
-    
-    if( FindByContainer( aContainer, testCase ) != KErrNone )
-        {
-        __TRACE( KError, ( CStifLogger::EError, _L("CUIStore::TestExecuted: Not found")));
-        return;
-        }
-    CStartedTestSet* set = NULL;
-    TInt setStatus = 0;
-    if( FindStartedSetByCase( testCase, set ) == KErrNone )
-        {
-        setStatus = set->Status();
-        set->TestCompleted( testCase, aFullTestResult );        
-        setStatus |= set->Status();
-        }
-        
-    // Check and delete all pending popup windows for test case
-    TInt count = iPopups.Count();
-    for( TInt i = 0; i<count; i++ )
-        {
-        if( iPopups[i]->Container() == aContainer )
-            {
-            delete iPopups[i];
-            iPopups.Remove( i );
-            }
-        }
-        
-    // Get old status 
-    TInt status = testCase->Status();
-    // Set result
-    testCase->SetResult( aFullTestResult );
-    // Get new status 
-    status |= testCase->Status();
-    // Add set status flags
-    status |= setStatus;
-    
-    iUIStoreIf->Update( testCase, status ); 
-    
-    return;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: PrintProg
-
-    Description: Progress information from test case execution, 
-            callback from UI engine.
-    
-    Parameters:  CUIEngineContainer* const aContainer: in: Execution container
-                 TTestProgress& aProgress: in: print info
-    
-    Return Values: Symbian OS error code
-
-    
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-TInt CUIStore::PrintProg ( CUIEngineContainer* aContainer,
-                           TTestProgress& aProgress )
-    {
-    if( aContainer == NULL )
-        {
-        return KErrArgument;
-        }
-    if( ( aProgress.iDescription.Length() == 0 ) &&
-        ( aProgress.iText.Length() == 0 ) )
-    
-        {
-        return KErrArgument;
-        }
-        
-    CStartedTestCase* testCase = NULL;
-    
-    if( FindByContainer( aContainer, testCase ) != KErrNone )
-        {
-        __TRACE( KError, ( CStifLogger::EError, _L("CUIStore::TestExecuted: Not found")));
-        return KErrNotFound;
-        }
-
-    TInt position = KErrNotFound;
-    TInt smallPos = KErrNotFound;
-
-    // Search the array to find the position
-    const TInt count = testCase->PrintArray().Count();
-    for (TInt i = 0; i < count; i++)
-        {
-
-        // Check if that item is already on list
-        if ( testCase->PrintArray()[i]->iDescription == aProgress.iDescription &&
-             testCase->PrintArray()[i]->iPosition    == aProgress.iPosition )
-            {
-            // Set it to be updated
-            position = i;
-            break;
-            }
-
-        // Found a smaller priority item from list
-        if ( aProgress.iPosition <  testCase->PrintArray()[i]->iPosition )
-            {              
-            smallPos = i;
-            break;
-            }
-        }
-
-    // Either update item in array or add new item to array
-    if ( position != KErrNotFound )
-        {
-        // Replace existing text
-        testCase->PrintArray()[position]->ReplaceTextL( aProgress );
-        }
-    else 
-        {
-        CTestProgress* prog = NULL;
-        TRAPD( err,
-            // Allocate new
-            prog = CTestProgress::NewL( aProgress );
-            );
-        if( err != KErrNone )
-            {
-            return err;
-            }
-        if ( smallPos != KErrNotFound )
-            {
-            if( testCase->PrintArray().Insert( prog, smallPos ) != KErrNone )
-                {
-                delete prog;
-                return KErrNoMemory;
-                }
-            }
-        else 
-            {
-            if( testCase->PrintArray().Append( prog ) != KErrNone )
-                {
-                delete prog;
-                return KErrNoMemory;
-                }
-            }
-        }
-        
-    iUIStoreIf->Update( testCase, CUIStoreIf::EPrintUpdate ); 
-    
-    return KErrNone;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: PrintProg
-
-    Description: Error information from Test framework, 
-            callback from UI engine.
-    
-    Parameters:  CUIEngineContainer* const aContainer: in: Execution container
-                 TErrorNotification& aError: in: error info
-    
-    Return Values: Symbian OS error code
-    
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/    
-TInt CUIStore::ErrorPrint( TErrorNotification& aError )
-    {
-
-    if( aError.iText.Length() == 0 )
-        {
-        return KErrArgument;
-        }
-    
-    iUIStoreIf->Error( aError );
-        
-    return KErrNone;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: RemoteMsg
-
-    Description: Remote protocol control messages handling.
-
-    Parameters: const TDesC& aMessage: in: Remote message
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::RemoteMsg( CUIEngineContainer* aContainer,
-                          const TDesC& aMessage)
-    {
-
-    if( ( aMessage.Length() == 0 ) ||
-        ( aContainer == NULL ) )
-        {
-        return KErrArgument;
-        }
-    
-    TInt ret = KErrNone;
-
-    TInt error = KErrNone;
-    CStifTFwIfProt* msg = NULL;
-    CStifTFwIfProt* resp = NULL;
-    TRAPD( err, msg = CStifTFwIfProt::NewL(); );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-    TRAP( err, resp = CStifTFwIfProt::NewL(); );
-    if( err != KErrNone )
-        {
-        delete msg;
-        return err;
-        }
-    
-    // Parse received message
-    TRAP( err, 
-        error = msg->SetL( aMessage ) 
-    );
-    if( err != KErrNone )
-        {
-        __TRACE( KError, ( _L( "CUIStore::RemoteMsg: message header parsing failed [%d]"), err ) );
-        delete msg;
-        delete resp;
-        return err;
-        }
-
-    // Create response 
-    TRAP( err, resp->CreateL(); );
-    if( err != KErrNone )
-        {
-        delete msg;
-        delete resp;
-        return err;
-        }                
-
-    resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgResponse );
-    
-    if( error != KErrNone )
-        {
-        __TRACE( KError, ( _L( "CUIStore::RemoteMsg: message parsing failed [%d]"), error ) );
-        resp->AppendId( SETID( (TInt32)DevId(), 0 ) );
-        resp->AppendId( msg->SrcId() );
-        resp->Append( CStifTFwIfProt::MsgType, msg->iMsgType );
-        resp->Append( CStifTFwIfProt::RespParam, CStifTFwIfProt::ERespResult, error );
-        
-        aContainer->RemoteReceive( resp->Message() );
-        
-        // Error reported with protocol message, return success
-        delete msg;
-        delete resp;
-        return KErrNone;
-        }                    
-    
-    TBool sendResp = ETrue;
-                        
-    switch( msg->iMsgType )
-        {
-        case CStifTFwIfProt::EMsgReserve:
-            {
-            // Check IDs
-            if( ( msg->SrcDevId() == 0 ) ||
-                ( msg->SrcTestId() == 0 ) )
-                {
-                __TRACE( KError, ( _L( "CUIStore::RemoteMsg: reserve for illegal srcid received") ) );
-                error = KErrGeneral;
-                }
-            if( msg->DstId() != 0 ) 
-                {
-                // Not a broadcast 
-                if( ( msg->DstDevId() != DevId() ) ||
-                    ( msg->DstTestId() != 0 ) )  
-                    {
-                    __TRACE( KError, ( _L( "CUIStore::RemoteMsg: reserve for illegal dstid received") ) );
-                    error = KErrGeneral;
-                    }
-                }                
-                
-            resp->AppendId( SETID( (TInt32)DevId(), 0 ) );
-            resp->AppendId( msg->SrcId() );
-            resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgReserve );
-            if( error != KErrNone )
-                {
-                resp->Append( CStifTFwIfProt::RespParam, CStifTFwIfProt::ERespResult, error );
-                }
-            }
-            break;
-        case CStifTFwIfProt::EMsgRelease:
-            {
-            // Check protocol ids
-            if( ( msg->SrcDevId() == 0 ) ||
-                ( msg->SrcTestId() == 0 ) ||
-                ( msg->DstTestId() != 0 ) )
-                {
-                __TRACE( KError, ( _L( "CUIStore::RemoteMsg: release for illegal srcid or dstid received") ) );
-                error = KErrGeneral;
-                }   
-            else if( msg->DstDevId() != DevId() ) 
-                {
-                __TRACE( KError, ( _L( "CUIStore::RemoteMsg: release for illegal dstid received") ) );
-                error = KErrNotFound;
-                }   
-
-            resp->AppendId( msg->DstId() );
-            resp->AppendId( msg->SrcId() );
-            resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRelease );
-            
-            if( error != KErrNone )
-                {
-                resp->Append( CStifTFwIfProt::RespParam, CStifTFwIfProt::ERespResult, error );
-                }            
-            }
-            break;
-        case CStifTFwIfProt::EMsgRemote:
-            {
-            // Check protocol ids
-            if( ( msg->SrcDevId() == 0 ) ||
-                ( msg->SrcTestId() == 0 ) ||
-                ( msg->DstDevId() == 0 ) )
-                {
-                __TRACE( KError, ( _L( "CUIStore::RemoteMsg: remote for illegal srcid or dstid received") ) );
-                error = KErrGeneral;
-                }
-            else
-                {               
-                __TRACE( KError, ( _L( "CUIStore::RemoteMsg: received remote call") ) );
-                
-                error = MsgRemote( aContainer, *msg, *resp );
-                }
-                
-            if( error != KErrNone )
-                {
-                resp->AppendId( msg->DstId() );
-                resp->AppendId( msg->SrcId() );
-                resp->Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote );
-                resp->Append( msg->iCmdDes );
-                resp->Append( CStifTFwIfProt::RespParam,     
-                             CStifTFwIfProt::ERespResult, 
-                             error );
-                }
-            else
-                {
-                sendResp = EFalse;
-                }
-                                
-            }
-            break;
-        case CStifTFwIfProt::EMsgResponse:            
-        default:
-            __TRACE( KError, ( _L( "CUIStore::RemoteMsg: invalid message")) );
-            ret = KErrNotSupported;
-        }
-
-    if( ( ret == KErrNone ) && sendResp ) 
-         {
-        aContainer->RemoteReceive( resp->Message() );
-        }
-        
-    delete msg;
-    delete resp;
-    
-    return ret;
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: MsgRemote
-
-    Description: Remote command
-    
-    Parameters: const TDesC& aMessage: in:
-
-    Return Values: KErrNotSupported
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::MsgRemote( CUIEngineContainer* aContainer, 
-                          CStifTFwIfProt& aReq, 
-                          CStifTFwIfProt& aResp )
-    {
-    
-    TInt ret = KErrNone;    
-        
-    switch( aReq.iCmdType )
-        {
-        case CStifTFwIfProt::ECmdRun:
-            ret = MsgRemoteRun( aContainer, aReq, aResp );
-            break;
-        case CStifTFwIfProt::ECmdPause:
-        case CStifTFwIfProt::ECmdResume:
-        case CStifTFwIfProt::ECmdCancel:
-            ret = MsgRemoteTestCtl( aContainer, aReq, aResp );
-            break;
-        case CStifTFwIfProt::ECmdRequest:
-        case CStifTFwIfProt::ECmdRelease:
-            ret = MsgRemoteEventCtl( aContainer, aReq, aResp );            
-            break;
-        case CStifTFwIfProt::ECmdSendReceive:
-            {
-            ret = MsgRemoteSendReceive( aContainer, aReq, aResp );
-            break;
-            }
-        default:
-            {
-            CStifTFwIfProt* resp = NULL;
-            TRAPD( err, 
-                resp = CStifTFwIfProt::NewL(); 
-                resp->CreateL();
-                );
-            if( err != KErrNone )
-                {
-                delete resp;
-                return err;
-                }
-            resp->SetMsgType( CStifTFwIfProt::EMsgResponse );
-            resp->SetSrcId( aReq.DstId() );
-            resp->SetDstId( aReq.SrcId() );
-            resp->SetRespType( CStifTFwIfProt::EMsgRemote );
-            // Command type must be set separately, 
-            // because it is unspecified in this case
-            resp->iCmdType = aReq.iCmdType;
-            resp->Append( aReq.iCmdDes );
-                
-            ret = RemotePopup( aContainer, aReq.Message(), resp );
-
-            if( ret != KErrNone )
-                {
-                delete resp;
-                }
-            }
-            break;
-        }
-    
-    return ret;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: AtsRemoteRun
-
-    Description: Remote run message
-    
-    Parameters: const TDesC& aMessage: in:
-
-    Return Values: KErrNotSupported
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/        
-TInt CUIStore::MsgRemoteRun( CUIEngineContainer* aContainer,
-                             CStifTFwIfProt& aReq, 
-                             CStifTFwIfProt& /* aResp */)
-    {
-    
-    TInt ret = KErrNone;    
-    TUint16 testid = 0;
-    
-    if( ( aReq.DstDevId() == 0 ) ||
-        ( aReq.DstTestId() != 0 ) ) 
-        {
-        // Protocol violation
-        __TRACE( KError, ( _L( "AtsReceive: remote run for illegal dstid received") ) );
-        return KErrGeneral;
-        }
-
-    if ( aReq.DstDevId() != DevId() ) 
-        {
-        // Not our protocol message
-        __TRACE( KError, ( _L( "AtsReceive: remote run for illegal dstdevid received") ) );
-        return KErrNotFound;
-        }
-
-    
-    if( aReq.iModule.Length() == 0 )
-        {
-        __TRACE( KError, ( _L("No mandatory test module name given as run parameter") ) );        
-        ret = KErrNotFound;
-        }    
-    else if( aReq.iTestCaseNumber < 0 )
-        {
-        __TRACE( KError, ( _L("No mandatory test case number given as run parameter") ) );        
-        ret = KErrNotFound;
-        }    
-    
-    testid = 1;
-    CStifTFwIfProt* resp = NULL;
-    TRAPD( err, 
-        resp = CStifTFwIfProt::NewL(); 
-        resp->CreateL();
-        );
-    if( err != KErrNone )
-        {
-        delete resp;
-        return err;
-        }
-
-    CStifTFwIfProt* resp2 = NULL;
-    TRAP( err, 
-        resp2 = CStifTFwIfProt::NewL(); 
-        resp2->CreateL();
-        );
-    if( err != KErrNone )
-        {
-        delete resp2;
-        return err;
-        }              
-
-    resp->SetMsgType( CStifTFwIfProt::EMsgResponse );
-    resp->SetSrcId( SETID( (TInt32)DevId(), testid ) );
-    resp->SetDstId( aReq.SrcId() );
-    resp->SetRespType( CStifTFwIfProt::EMsgRemote );
-    resp->SetCmdType( CStifTFwIfProt::ECmdRun );        
-
-    resp2->SetMsgType( CStifTFwIfProt::EMsgResponse );
-    resp2->SetSrcId( SETID( (TInt32)DevId(), testid ) );
-    resp2->SetDstId( aReq.SrcId() );
-    resp2->SetRespType( CStifTFwIfProt::EMsgRemote );
-    resp2->SetCmdType( CStifTFwIfProt::ECmdRun );        
-   
-    // Remote run started popup call
-    ret = RemotePopup( aContainer, aReq.Message(), resp, EPopupPriorityHighest );
-    if( ret != KErrNone )
-        {
-        delete resp;
-        }
-    
-    // Remote run result popup call
-    ret = RemotePopup( aContainer, aReq.Message(), resp2 );
-    if( ret != KErrNone )
-        {
-        delete resp2;
-        }
-    
-    return ret;            
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: MsgRemoteTestCtl
-
-    Description: Remote test control message
-    
-    Parameters: const TDesC& aMessage: in:
-
-    Return Values: KErrNotSupported
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/        
-TInt CUIStore::MsgRemoteTestCtl( CUIEngineContainer* aContainer,
-                                 CStifTFwIfProt& aReq, 
-                                 CStifTFwIfProt& /*aResp*/ )
-    {
-    
-    TInt ret = KErrNone;    
-   
-    if( ( aReq.DstDevId() == 0 ) ||
-        ( aReq.DstTestId() == 0 ) ) 
-        {
-        // Protocol violation
-        __TRACE( KError, ( _L( "AtsReceive: remote test control for illegal dstid received") ) );
-        return KErrGeneral;
-        }
-
-    if ( aReq.DstDevId() != DevId() ) 
-        {
-        // Not our protocol message
-        __TRACE( KError, ( _L( "AtsReceive: remote test control for illegal dstdevid received") ) );
-        return KErrNotFound;
-        }
-    
-    CStifTFwIfProt* resp = NULL;
-    TRAPD( err, 
-        resp = CStifTFwIfProt::NewL(); 
-        resp->CreateL();
-        );
-    if( err != KErrNone )
-        {
-        delete resp;
-        return err;
-        }
-        
-    resp->SetMsgType( CStifTFwIfProt::EMsgResponse );
-    resp->SetSrcId( aReq.DstId() );
-    resp->SetDstId( aReq.SrcId() );
-    resp->SetRespType( CStifTFwIfProt::EMsgRemote );
-    resp->SetCmdType( aReq.iCmdType );
-    
-    ret = RemotePopup( aContainer, aReq.Message(), resp );
-
-    if( ret != KErrNone )
-        {
-        delete resp;
-        }
-
-    return ret;
-    
-    }    
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: MsgRemoteEventCtl
-
-    Description: Remote run message
-    
-    Parameters: const TDesC& aMessage: in:
-
-    Return Values: KErrNotSupported
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/        
-TInt CUIStore::MsgRemoteEventCtl( CUIEngineContainer* aContainer,
-                                  CStifTFwIfProt& aReq, 
-                                  CStifTFwIfProt& aResp )
-    {
-    
-    if( ( aReq.DstDevId() == 0 ) ||
-        ( aReq.DstTestId() != 0 ) ) 
-        {
-        // Protocol violation
-        __TRACE( KError, ( _L( "AtsReceive: remote event control for illegal dstid received") ) );
-        return KErrGeneral;
-        }
-
-    if ( aReq.DstDevId() != DevId() ) 
-        {
-        // Not our protocol message
-        __TRACE( KError, ( _L( "AtsReceive: remote event control for illegal dstdevid received") ) );
-        return KErrNotFound;
-        }
-        
-    if( aReq.iEventName.Length() == 0 )
-        {
-        __TRACE( KError, ( _L("No event name given") ) );        
-        return KErrNotFound;
-    }
-    
-    TInt ret = KErrNone;
-                    
-    switch( aReq.iCmdType )
-        {
-        case CStifTFwIfProt::ECmdRequest:
-            {
-            // Send event active information
-            CStifTFwIfProt* resp = NULL;
-            TRAP( ret, 
-                resp = CStifTFwIfProt::NewL(); 
-                resp->CreateL(); );
-            if( ret != KErrNone )
-                {
-                delete resp;
-                return ret;
-                }
-                
-            resp->SetMsgType( CStifTFwIfProt::EMsgResponse );
-            resp->SetSrcId( aReq.DstId() );
-            resp->SetDstId( aReq.SrcId() );
-            resp->SetRespType( CStifTFwIfProt::EMsgRemote );
-            resp->SetCmdType( CStifTFwIfProt::ECmdRequest );
-            resp->Append( CStifTFwIfProt::EventStatus, 
-                          CStifTFwIfProt::EEventSet );
-            resp->Append( aReq.iEventName );
-            ret = RemotePopup( aContainer, aReq.Message(), resp, EPopupPriorityNormal );                
-
-            if( ret != KErrNone )
-                {
-                delete resp;
-                }
-                    
-            aResp.AppendId( aReq.DstId() );
-            aResp.AppendId( aReq.SrcId() );
-            aResp.Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote );
-            aResp.Append( CStifTFwIfProt::CmdType, CStifTFwIfProt::ECmdRequest );
-            if( ret == KErrNone )
-                {
-                aResp.Append( CStifTFwIfProt::EventStatus, 
-                              CStifTFwIfProt::EEventActive );
-                aResp.Append( aReq.iEventName );
-                }
-            else 
-                {
-                aResp.Append( CStifTFwIfProt::EventStatus, 
-                              CStifTFwIfProt::EEventError );
-                aResp.Append( aReq.iEventName );                              
-                aResp.Append( CStifTFwIfProt::EventStatusParams, 
-                             CStifTFwIfProt::EEventResult,
-                             ret );
-                }
-
-            ret = aContainer->RemoteReceive( aResp.Message() );    
-            ret = KErrNone;          
-            }
-            break;
-        case CStifTFwIfProt::ECmdRelease:
-            {
-            // Check and delete all pending event popup windows for test case
-            TInt count = iPopups.Count();
-            for( TInt i = 0; i<count; i++ )
-                {
-                if( ( iPopups[i]->Container() == aContainer ) &&
-                    iPopups[i]->IsEventPopup() )
-                    {
-                    delete iPopups[i];
-                    iPopups.Remove( i );
-                    }
-                }
-                
-            aResp.AppendId( aReq.DstId() );
-            aResp.AppendId( aReq.SrcId() );
-            aResp.Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote );
-            aResp.Append( CStifTFwIfProt::CmdType, CStifTFwIfProt::ECmdRelease );
-            aResp.Append( aReq.iEventName );
-
-            ret = aContainer->RemoteReceive( aResp.Message() );    
-            ret = KErrNone;          
-            
-            }
-            break;
-        default:
-            return KErrNotSupported;
-        }
-        
-    return ret;
-    
-    }    
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: MsgRemoteSendReceive
-
-    Description: Asynchronous remote sendreceive message
-    
-    Parameters: CUIEngineContainer* aContainer: in:
-                CStifTFwIfProt& aReq: in
-                CStifTFwIfProt& aResp: in
-
-    Return Values: KErrNotSupported
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/        
-TInt CUIStore::MsgRemoteSendReceive( CUIEngineContainer* aContainer,
-                             CStifTFwIfProt& aReq, 
-                             CStifTFwIfProt& aResp )
-    {
-    
-    TInt ret = KErrNone;    
-    // TUint16 testid = 0;
-    
-    if( ( aReq.DstDevId() == 0 ) ||
-        ( aReq.DstTestId() != 0 ) ) 
-        {
-        // Protocol violation
-        __TRACE( KError, ( _L( "AtsReceive: remote run for illegal dstid received") ) );
-        return KErrGeneral;
-        }
-
-    if ( aReq.DstDevId() != DevId() ) 
-        {
-        // Not our protocol message
-        __TRACE( KError, ( _L( "AtsReceive: remote run for illegal dstdevid received") ) );
-        return KErrNotFound;
-        }
-
-    // testid = 1;
-    CStifTFwIfProt* resp = NULL;
-    TRAPD( err, 
-        resp = CStifTFwIfProt::NewL(); 
-        resp->CreateL();
-        );
-    if( err != KErrNone )
-        {
-        delete resp;
-        return err;
-        }
-        
-    resp->SetMsgType( CStifTFwIfProt::EMsgResponse );
-    //resp->SetSrcId( SETID( DevId(), testid ) );
-    resp->SetSrcId( aReq.DstId() );
-    resp->SetDstId( aReq.SrcId() );
-    resp->SetRespType( CStifTFwIfProt::EMsgRemote );
-    resp->SetCmdType( CStifTFwIfProt::ECmdSendReceive );        
-   
-    ret = RemotePopup( aContainer, aReq.Message(), resp );
-    if( ret != KErrNone )
-        {
-        delete resp;
-        }
-        
-    aResp.AppendId( aReq.DstId() );
-    aResp.AppendId( aReq.SrcId() );
-    aResp.Append( CStifTFwIfProt::MsgType, CStifTFwIfProt::EMsgRemote );
-    aResp.Append( CStifTFwIfProt::CmdType, CStifTFwIfProt::ECmdSendReceive );
-    if( ret != KErrNone )
-        {
-        aResp.Append( CStifTFwIfProt::RunStatus, 
-                      CStifTFwIfProt::ERunError );
-        aResp.Append( CStifTFwIfProt::RunStatusParams, 
-                      CStifTFwIfProt::ERunResult, ret );
-        }
-    else
-        {
-        aResp.Append( CStifTFwIfProt::RunStatus, 
-                      CStifTFwIfProt::ERunStarted );
-        }
-
-    // Send response
-    aContainer->RemoteReceive( aResp.Message() );
-    
-    // Response is created, return success
-    ret = KErrNone;        
-    
-    return ret;
-            
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: GoingToReboot
-
-    Description: Reboot indication handling.
-
-    Parameters: CUIEngineContainer* aContainer: in: Container
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::GoingToReboot( CUIEngineContainer* /* aContainer */,
-                              TRequestStatus& aStatus )
-    {
-    
-    _LIT( KDateString,"%H%T%S.%C" ); 
-       
-    const TInt KTimeFieldLength = 30;
-    TBuf<KTimeFieldLength> time;
-    
-    // Store info 
-    CStifLogger* logger = CStifLogger::NewL( KUIStoreDefaultDir,
-                                             KUIStoreDefaultRebootFile,
-                                             CStifLogger::EData,
-                                             CStifLogger::EFile,
-                                             ETrue,
-                                             EFalse,
-                                             EFalse,
-                                             EFalse,
-                                             EFalse,
-                                             ETrue );
-    
-    CleanupStack::PushL( logger );
-    TInt count = iStartedTestCases.Count();
-    for( TInt index=0; index<count; index++ )
-        {
-        logger->Log( _L("%S\r\n"), &KUIStoreStartTest );
-        
-        // First test case info
-        logger->Log( _L("%S %S\r\n"), &KUIStoreCaseModuleName, 
-            &iStartedTestCases[index]->TestInfo().ModuleName() );
-        logger->Log( _L("%S %S\r\n"), &KUIStoreTestCaseTitle, 
-            &iStartedTestCases[index]->TestInfo().TestCaseTitle() );
-        if( iStartedTestCases[index]->TestInfo().TestCaseFile().Length() > 0 )
-            {
-            logger->Log( _L("%S %S\r\n"), &KUIStoreTestCaseFile, 
-                &iStartedTestCases[index]->TestInfo().TestCaseFile() );
-            }
-        logger->Log( _L("%S %d\r\n"), &KUIStoreTestCaseNum, 
-            iStartedTestCases[index]->TestInfo().TestCaseNum() );
-        logger->Log( _L("%S %d\r\n"), &KUIStoreCasePriority, 
-            iStartedTestCases[index]->TestInfo().Priority() );
-         //@js<--remove--> logger->Log( _L("%S %d %d\r\n"), &KUIStoreCaseTimeout,            
-         //@js<--remove--> iStartedTestCases[index]->TestInfo().Timeout().Int64().Low(),
-         //@js<--remove--> iStartedTestCases[index]->TestInfo().Timeout().Int64().High() );
-        logger->Log( _L("%S %d %d\r\n"), &KUIStoreCaseTimeout,            
-            I64LOW(iStartedTestCases[index]->TestInfo().Timeout().Int64()),
-            I64HIGH(iStartedTestCases[index]->TestInfo().Timeout().Int64()));     
-            
-        logger->Log( _L("%S %d\r\n"), &KUIStoreCaseExpectedResult, 
-            iStartedTestCases[index]->TestInfo().ExpectedResult() );    
-        
-        logger->Log( _L("%S %d\r\n"), &KUIStoreCaseStatus, 
-            iStartedTestCases[index]->Status() );    
-
-        logger->Log( _L("%S %d %d\r\n"), &KUIStoreCaseExecutionResult, 
-            iStartedTestCases[index]->Result().iCaseExecutionResultType,
-            iStartedTestCases[index]->Result().iCaseExecutionResultCode );    
-        logger->Log( _L("%S %d %S\r\n"), &KUIStoreCaseResult, 
-            iStartedTestCases[index]->Result().iTestResult.iResult,
-            &iStartedTestCases[index]->Result().iTestResult.iResultDes );    
-        
-        // Start time
-        iStartedTestCases[index]->Result().iStartTime.FormatL(
-                    time, KDateString );
-        logger->Log( _L("%S %S\r\n"), &KUIStoreCaseStartTime, &time );
-
-        // Start time
-        iStartedTestCases[index]->Result().iEndTime.FormatL(
-                    time, KDateString );
-        logger->Log( _L("%S %S\r\n"), &KUIStoreCaseEndTime, &time );
-
-        logger->Log( _L("%S\r\n\r\n"), &KUIStoreStartTestEnd );
-        }
-    
-    CleanupStack::PopAndDestroy( logger );
-    
-    // Show popup
-    TKeyCode key;
-    iUIStoreIf->PopupMsg( _L("GoingToReboot"), 
-                          _L("Press any key to continue"), 
-                          KRebootPopupTimeout, key, aStatus );
-    
-    return KErrNone;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: LoadExecutedTestCasesL
-
-    Description: Load all executed testcases saved before reboot.
-    
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: Leaves on error
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::LoadExecutedTestCasesL()
-    {
-    TPtrC tmp;
-    TInt num = 0;
-    TInt high = 0;
-    TInt64 interval;
-    TFullTestResult result;
-    TInt status = 0;
-    CStifItemParser* item = NULL;
-    TInt ret = KErrNone;
-
-    CStifParser* parser = NULL;
-    TRAP( ret,
-        parser = CStifParser::NewL( KUIStoreDefaultDir,
-                                    KUIStoreDefaultRebootFile );
-        );
-    if( ret != KErrNone )
-        {
-        // reboot file not found
-        return; 
-        }
-    CleanupStack::PushL( parser );
-   
-    __TRACE( KInit, ( _L( "Reboot file is found(%S%S). Reboot testing ongoing..." ), &KUIStoreDefaultDir, &KUIStoreDefaultRebootFile ) );
-
-    CTestInfo* testInfo = NULL;    
-     
-    CStifSectionParser* section = 
-        parser->SectionL( KUIStoreStartTest, KUIStoreStartTestEnd );
-   
-    while( section )
-        {
-        CleanupStack::PushL( section );    
-        
-        testInfo = CTestInfo::NewL();
-        CleanupStack::PushL( testInfo ); 
-    
-        // Get module name
-        // Mandatory, leave if not found
-        User::LeaveIfError( 
-            section->GetLine( KUIStoreCaseModuleName, tmp, ENoTag ) );
-        testInfo->SetModuleName( tmp );
-    
-        // Get test case title
-        // Mandatory, leave if not found
-        User::LeaveIfError( 
-            section->GetLine( KUIStoreTestCaseTitle, tmp, ENoTag ) );
-        testInfo->SetTestCaseTitle( tmp );
-        
-        // Get test case file
-        num = section->GetLine( KUIStoreTestCaseFile, tmp, ENoTag );
-        if( ( num == KErrNone ) &&
-            ( tmp.Length() > 0 ) )
-            {
-            // Optional
-            testInfo->SetTestCaseFile( tmp );
-            }
-        else
-            {
-            testInfo->SetTestCaseFile( KNullDesC );
-            }
-        
-        // Get test case number
-        item = section->GetItemLineL( KUIStoreTestCaseNum );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreTestCaseNum, num ));
-        testInfo->SetTestCaseNumber( num );
-        CleanupStack::PopAndDestroy( item );    
-        
-        // Get test case priority
-        item = section->GetItemLineL( KUIStoreCasePriority );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreCasePriority, num ));
-        testInfo->SetPriority( num );
-        CleanupStack::PopAndDestroy( item ); 
-        
-        // Get test case timeout
-        item = section->GetItemLineL( KUIStoreCaseTimeout );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreCaseTimeout, num ));
-        User::LeaveIfError( item->GetNextInt( high ));
-        //interval.Set( high, num );
-        interval = MAKE_TINT64( high, num );      
-        TTimeIntervalMicroSeconds timeout( interval );
-        testInfo->SetTimeout( timeout );
-        CleanupStack::PopAndDestroy( item ); 
-        
-        // Get test case status
-        item = section->GetItemLineL( KUIStoreCaseStatus );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreCaseStatus, status ));
-        CleanupStack::PopAndDestroy( item ); 
-
-        // Get test case execution result
-        item = section->GetItemLineL( KUIStoreCaseExecutionResult );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreCaseExecutionResult, num ));
-        result.iCaseExecutionResultType = ( TFullTestResult::TCaseExecutionResult) num;
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetNextInt( result.iCaseExecutionResultCode ));
-        CleanupStack::PopAndDestroy( item );
-        
-        // Get test case result
-        item = section->GetItemLineL( KUIStoreCaseResult );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetInt( KUIStoreCaseResult, 
-                                          result.iTestResult.iResult ));
-        // Not mandatory
-        TBool first = ETrue;
-        result.iTestResult.iResultDes.Zero();
-        ret = item->GetNextString( tmp );
-        while( ret == KErrNone )
-            {
-            if( result.iTestResult.iResultDes.Length() + tmp.Length() + 1 > result.iTestResult.iResultDes.MaxLength() )
-                {
-                User::Leave( KErrGeneral );
-                }
-            if(!first)
-                result.iTestResult.iResultDes.Append(_L(" "));
-            result.iTestResult.iResultDes.Append( tmp );
-            first = EFalse;
-            ret = item->GetNextString( tmp );
-            }
-        /*
-        ret = item->GetNextString( tmp );
-        if( ret == KErrNone )
-            {
-            if( tmp.Length() > result.iTestResult.iResultDes.MaxLength() )
-                {
-                User::Leave( KErrGeneral );
-                }
-            result.iTestResult.iResultDes.Copy( tmp );
-            }
-        */
-        CleanupStack::PopAndDestroy( item ); 
-
-        // Get test start time
-        item = section->GetItemLineL( KUIStoreCaseStartTime );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetString( KUIStoreCaseStartTime, tmp ));
-        result.iStartTime.Set( tmp );
-        CleanupStack::PopAndDestroy( item ); 
-
-        // Get test end time
-        item = section->GetItemLineL( KUIStoreCaseEndTime );
-        CleanupStack::PushL( item );
-        // Mandatory, leave if not found
-        User::LeaveIfError( item->GetString( KUIStoreCaseEndTime, tmp ));
-        result.iEndTime.Set( tmp );
-        CleanupStack::PopAndDestroy( item ); 
-             
-        if( status != CUIStoreIf::EStatusRunning )
-            {
-            // Add executed test cases to list
-            CStartedTestCase* startedCase = 
-                new( ELeave )CStartedTestCase( testInfo, result, status );
-            User::LeaveIfError( iStartedTestCases.Append( startedCase ) );            
-            CleanupStack::Pop( testInfo );            
-
-            // Fill data with test case info and send to test engine
-            TTestInfo *info = new (ELeave) TTestInfo;
-            CleanupStack::PushL(info);
-            info->iModuleName.Copy(testInfo->ModuleName());
-            info->iConfig.Copy(testInfo->TestCaseFile());
-            info->iTestCaseInfo.iCaseNumber = testInfo->TestCaseNum();
-            info->iTestCaseInfo.iTitle.Copy(testInfo->TestCaseTitle());
-            info->iTestCaseInfo.iTimeout = testInfo->Timeout();
-            info->iTestCaseInfo.iPriority = testInfo->Priority();
-            
-            iUIEngine->TestEngine().AddTestCaseResultToTestReport(*info, result, KErrNone);
-            CleanupStack::PopAndDestroy(info);
-            } 
-        else
-            {
-            // Restart testcase that was running when reset was done
-            CUIEngineContainer* container = NULL;
-            User::LeaveIfError(  
-                iUIEngine->StartTestCase( container, *testInfo ) );
-            
-            CStartedTestCase* testCase = NULL;
-            TRAPD( retVal,
-                testCase = CStartedTestCase::NewL( *testInfo, *container );
-               );
-            if( retVal != KErrNone )
-                {
-                iUIEngine->AbortStartedTestCase( container );
-                User::Leave( retVal );
-                }
-                
-            retVal = iStartedTestCases.Append( testCase );
-            if( retVal != KErrNone )
-                {
-                iUIEngine->AbortStartedTestCase( container );
-                delete testCase;
-                User::Leave( retVal );
-                }
-
-            CleanupStack::PopAndDestroy( testInfo );
-
-            }
-        
-        CleanupStack::PopAndDestroy( section );    
-        section = 
-            parser->NextSectionL( KUIStoreStartTest, KUIStoreStartTestEnd );
-        } 
-    
-    CleanupStack::PopAndDestroy( parser );
-    
-    // Delete file
-    RFs rf;
-    TInt retVal = rf.Connect();
-	if( retVal != KErrNone )
-		{
-		User::Leave( retVal );
-		}
-		
-    TFileName file( KUIStoreDefaultDir );
-    file.Append( KUIStoreDefaultRebootFile );
-    rf.Delete( file );
-    rf.Close();
-    
-    return;
-    }    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: FindByContainer
-
-    Description: Find test case with UIEngine Container pointer.
-    
-    Parameters:  CUIEngineContainer* const aContainer: in: Execution container
-                 CStartedTestCase*& aTestCase: out: Testcase info
-    
-    Return Values: Symbian OS error code
-    
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/ 
-TInt CUIStore::FindByContainer( CUIEngineContainer* const aContainer,
-                                CStartedTestCase*& aTestCase )
-    {
-    
-    TInt count = iStartedTestCases.Count();
-    TInt index = 0;
-    for( ; index < count; index++ )
-        {
-        if( ( iStartedTestCases[index]->Status() & 
-              CUIStoreIf::EStatusRunning ) &&
-            ( &iStartedTestCases[index]->UIEngineContainer() ==
-              aContainer ) )
-            {
-            aTestCase = iStartedTestCases[index];
-            return KErrNone;
-            }
-        }
-    
-    return KErrNotFound;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: UpdateCases
-
-    Description: Refreshs iTestCases array ie. fetches test cases from 
-                test framework
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::UpdateCases()
-    {
-    
-    if( iUpdateNeeded )
-        {
-        TInt handle = iUIStoreIf->PopupMsg( 
-            _L("Updating"), _L("Test cases"), 60 );
-        iTestCases.ResetAndDestroy();
-        TRAPD( ret, 
-            ret = iUIEngine->GetTestCasesL( iTestCases );
-            );
-        iUpdateNeeded = EFalse;
-        // Close popup
-        iUIStoreIf->Close( handle );
-        if( iTestCases.Count() == 0 )
-            {
-            iUIStoreIf->PopupMsg( _L("No test cases found"), 
-                                  _L("e.g. check TestEngine log"), 
-                                  3 );
-            }
-        return ret;
-        }
-    
-    return KErrNone;
-            
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: CheckIniL
-
-    Description: Check ini file
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::CheckIniL( TFileName& aIni )
-    {
-    
-    RFs fs;
-    User::LeaveIfError( fs.Connect() );
-    RFile file;
-    TInt err = KErrNone;
-    TErrorNotification error;
-    error.iModule.Copy( KUIStore );
-
-    TStifUtil::CorrectFilePathL( aIni );
-    
-    if ( aIni.Length() != 0 )
-        {
-        err = file.Open ( fs, aIni, EFileRead );
-
-        if ( err == KErrNone )
-            {
-            // Use the file given as command line parameter
-            iUIStoreIf->PopupMsg( _L("Using given ini-file"), 
-                                  KNullDesC, 0 );
-            file.Close();
-            fs.Close(); 
-            return;
-            }
-        else
-            { 
-            error.iText.Copy( _L("Can't open given ini-file") );
-            iUIStoreIf->Error( error );  
-            aIni.Zero();       
-            }
-        }
-        
-    // Try to locate default ini file from every drive
-    TDriveList drivelist; 
-	User::LeaveIfError( fs.DriveList(drivelist) );
-	// A TDriveList (the list of available drives), is an array of 
-	// 26 bytes. Each byte with a non zero value signifies that the 
-	// corresponding drive is available.
-
-    TInt driveNumber; 
-	TChar driveLetter;
-
-	for( driveNumber=EDriveA; driveNumber<=EDriveZ; driveNumber++ )
-		{
-		if( !drivelist[driveNumber] ) 
-			{
-			// If drive-list entry is zero, drive is not available
-			continue;
-			}
-        User::LeaveIfError(
-            fs.DriveToChar( driveNumber, driveLetter ));
-        
-        aIni.Zero();
-        aIni.Append( driveLetter );
-        aIni.Append( _L(":") );
-        aIni.Append( KDefaultIni );
-
-        // Try to open
-        err = file.Open ( fs, aIni, EFileRead );
-
-        if ( err == KErrNone )
-            {
-            // Use default file
-            file.Close();
-            TFileName info( _L("Using default ini-file ") );
-            if( info.MaxLength()-info.Length() >  aIni.Length() )
-                {
-                // Show also filename if fits to descriptor
-                info.Append( aIni );
-                }
-            iUIStoreIf->PopupMsg( info, KNullDesC, 0 );
-            break;
-            }
-        }
-    if( err != KErrNone )
-        {
-        iUIStoreIf->PopupMsg( _L("Starting without ini-file"), 
-                              KNullDesC,  0);
-        aIni.Zero();            
-        }
-
-    fs.Close();    
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ParseTestSetName
-
-    Description: Parses test set name from test set filename.
-
-    Parameters: const TDesC& aSetFileName: in: Test set filename
-                TPtrC& aSetName: out: testset name
-                TFileName& aFileName: in: filenamebuffer
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::ParseTestSetName( const TDesC& aSetFileName, 
-                                 TPtrC& aSetName,
-                                 TFileName& aFileName )
-    {
-    if( aSetFileName.Length() > KMaxFileName )
-        {
-        return KErrArgument;
-        }
-    
-    aFileName.Copy( aSetFileName );
-    TParsePtr p( aFileName );
-    aSetName.Set( p.NameAndExt() ); // gives test set name without path
-    
-    if( aSetName.Length() > KMaxName )
-        {
-        return KErrArgument;
-        }
-    
-    return KErrNone;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: RemotePopup
-
-    Description: Do remote message popup 
-
-    Parameters: const TDesC& aReq: in: request
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::RemotePopup( CUIEngineContainer* aContainer,
-                            const TDesC& aMsg, 
-                            CStifTFwIfProt* aResp,
-                            TPopupPriority aPopupPriority )
-    {
-    TInt ret = KErrNone;
-    
-    CUIStorePopup* popup = NULL;
-    TRAP( ret, popup = CUIStorePopup::NewL( this, aContainer, aResp, aPopupPriority, aMsg ); );
-    if( ret != KErrNone )
-        {
-        return ret;
-        }
-    ret = iPopups.Append( popup );
-    if( ret != KErrNone )
-        {
-        delete popup;
-        return ret;
-        }
-                
-    // We'll put new popup to the top if there are no popups active or if
-    // currently active popup has lower priority than the new one               
-    if( !iPopupActive || iActivePopupPriority > popup->GetPriority() ) 
-        {       
-        SetRemotePopupFromQueue();
-        }
-
-    return ret;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: SetRemotePopupFromQueue
-
-    Description: Prints the highest priority popup to the UI from the popup 
-    queue
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft @js
-
--------------------------------------------------------------------------------
-*/
-
-void CUIStore::SetRemotePopupFromQueue()
-    {
-    CUIStorePopup* popup = NULL;
-    
-    if(iPopups.Count() > 0 )
-        {        
-        TInt highest = 0;
-        
-        // Let's get the highest priority popup and print it to the UI
-        for( TInt x=0; x<iPopups.Count(); x++)
-            {            
-            if( iPopups[x]->GetPriority() < iPopups[highest]->GetPriority() )    
-                {
-                highest = x;
-                }
-            }
-        
-        popup = iPopups[highest];
-        
-        if( popup == NULL )
-            {
-            // Some weird error
-            iPopupActive = EFalse;
-            return;        
-            }
-        
-        // Change the active popup priority        
-        iActivePopupPriority = popup->GetPriority();             
-                
-        // Create proper popup        
-        if( popup->GetPriority() == EPopupPriorityHighest )
-            {                                 
-            popup->Start( popup->GetMessage().Right( popup->GetMessage().Length() - KRcpHeaderLen ),
-                _L("Press any key to send 'remote run started' message"));                                  
-            }
-        else if( popup->GetPriority() == EPopupPriorityNormal )
-            {
-            popup->Start( popup->GetMessage().Right( popup->GetMessage().Length() - KRcpHeaderLen ),
-                _L("Press any key to set event") );        
-            }
-        else if( popup->GetPriority() == EPopupPriorityLow )
-            {           
-            popup->Start( popup->GetMessage().Right( popup->GetMessage().Length() - KRcpHeaderLen ),
-                _L("Press 1-9 to return negative error value, a to switch to another remote run result popup, or any other key to return 0") );                                    
-            }
-            
-        iPopupActive = ETrue;                                
-        }
-    }
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ShuffleRemoteRunResultPopups
-
-    Description: Shuffle remote run result popups 
-
-    Parameters: CUIStorePopup* aPopup (currently active popup)
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft @js
-
--------------------------------------------------------------------------------
-*/
-void CUIStore::ShuffleRemoteRunResultPopups( CUIStorePopup* aPopup )
-    {    
-    TInt nextPopupId = -1;
-    
-    for( TInt x=0; x<iPopups.Count(); x++)
-        {            
-        // Lets find the next remote run result priority popup
-        if( iPopups[x]->GetPriority() == EPopupPriorityLow && iPopups[x] != aPopup )    
-            {
-            nextPopupId = x;
-            break;
-            }
-        }
-    
-    if( nextPopupId == -1 )            
-        {
-        // We'll print error message popup, because there weren't any other remote run 
-        // result popups active
-
-        iUIStoreIf->PopupMsg( 
-            _L("Error! There weren't any other remote run result popups active."), 
-            _L(""), 
-            5 );        
-        User::After( 5000000 );
-        iPopups.Append( aPopup );
-        SetRemotePopupFromQueue();
-        return;
-        }
-
-    // We'll add the popup to the end of the array    
-    TInt ret = iPopups.Append( aPopup );
-        
-    if( ret != KErrNone )
-        {
-        delete aPopup;
-        return;
-        }
-        
-    // Print the next popup from queue
-    SetRemotePopupFromQueue();
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: RemotePopup
-
-    Description: Do remote message popup 
-
-    Parameters: const TDesC& aReq: in: request
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CUIStore::RemotePopupComplete( CUIStorePopup* aPopup, 
-                                    TInt aError,
-                                    CUIEngineContainer* aContainer,
-                                    CStifTFwIfProt* aResp,
-                                    TKeyCode aKeyCode )
-    {
-    
-    TInt ret = KErrNone;
-    TInt index = iPopups.Find( aPopup );
-    if( index < 0 )
-        {
-        User::Panic( KUIStore, KErrGeneral );
-        }
-    iPopups.Remove( index );   
-
-    iPopupActive = EFalse;
-    iActivePopupPriority = EPopupPriorityLow;
-
-    if( aError != KErrNone )
-        {
-        ret = aError;
-        }
-    else
-        {
-        TChar c( aKeyCode );
-        if( c.IsDigit() )
-            {
-            // Solve return value
-            ret = -( aKeyCode - '0' );
-            }
-        else
-            {
-            ret = KErrNone;
-            }
-        }
-    // If aResp is given, send it
-    if( aResp )
-        {     
-        switch( aResp->iCmdType )
-            {
-            case CStifTFwIfProt::ECmdRun:
-                {
-                TChar response( aKeyCode );  
-                RDebug::Print(_L("CUIStore::RemotePopupComplete: user pressed key %c"), (char)response);
-                  
-                if( aPopup->GetPriority() == EPopupPriorityHighest )
-                    {                                        
-                    // User has given response to remote run started- popup
-                    aResp->Append( CStifTFwIfProt::RunStatus, 
-                      CStifTFwIfProt::ERunStarted );                      
-                    }                
-                else if( aPopup->GetPriority() == EPopupPriorityLow &&  response=='a' )
-                    {                                        
-                    // User wants to change current remote run result popup to other
-                    // remote run result popup. 
-                    
-                    ShuffleRemoteRunResultPopups( aPopup );                             
-                    return KErrNone;
-                    }
-                else 
-                    {                                    
-                    // The test case result was given
-                    aResp->Append( CStifTFwIfProt::RunStatus, 
-                               CStifTFwIfProt::ERunReady );
-                    if( ret != KErrNone )
-                        {
-                        aResp->Append( CStifTFwIfProt::RunStatusParams, 
-                                       CStifTFwIfProt::ERunResult, ret );
-                        }                   
-                    }
-                break;
-                }
-            case CStifTFwIfProt::ECmdSendReceive:
-                {
-                aResp->Append( CStifTFwIfProt::RunStatus, 
-                               CStifTFwIfProt::ERunReady );
-                if( ret != KErrNone )
-                    {
-                    aResp->Append( CStifTFwIfProt::RunStatusParams, 
-                                   CStifTFwIfProt::ERunResult, ret );
-                    }
-                break;
-                }
-            case CStifTFwIfProt::ECmdPause:
-            case CStifTFwIfProt::ECmdResume:
-            case CStifTFwIfProt::ECmdCancel:
-            case CStifTFwIfProt::ECmdRequest:
-            case CStifTFwIfProt::ECmdRelease:
-            default:
-                if( ret != KErrNone )
-                    {
-                    aResp->Append( CStifTFwIfProt::RespParam, 
-                                   CStifTFwIfProt::ERespResult, 
-                                   ret );
-                    }
-                break;
-            }
-        
-        ret = aContainer->RemoteReceive( aResp->Message() ); 
-        }
-                
-    delete aPopup;      
-    
-    SetRemotePopupFromQueue();
-    
-    return ret;
-              
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStore
-
-    Method: ReadFiltersL
-
-    Description: Reads filters from test framework initialization file.
-        
-    Parameters: RPointerArray<TDesC>& aFilters: array to be filled
-
-    Return Values: None
-
-    Errors/Exceptions: 
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C void CUIStore::ReadFiltersL(RPointerArray<TDesC>& aFilters)
-    {
-    // Clean array
-    aFilters.ResetAndDestroy();
-    
-    // Locate file
-    _LIT(KFilterSectionStart, "[Filters]");
-    _LIT(KFilterSectionEnd, "[End_Filters]");
-    _LIT(KFilterDefinition, "filter=");
-
-    // Parse initialization file
-    TInt err = KErrNone;
-    CStifParser* parser;
-    
-    RDebug::Print(_L("STIF: Try to read filters from [%S]"), &iTestFrameworkIni);
-    parser = CStifParser::NewL(KNullDesC, iTestFrameworkIni);
-    CleanupStack::PushL(parser);
-
-    // Parser created (file exists), create section parser
-    CStifSectionParser* section;
-    section = parser->SectionL(KFilterSectionStart, KFilterSectionEnd);
-    if(section)
-        {
-        CleanupStack::PushL(section);
-            
-        // Get item lines
-        CStifItemParser* item = section->GetItemLineL(KFilterDefinition, ENoTag);
-            
-        TPtrC ptr;
-            
-        while(item)
-            {
-            CleanupStack::PushL(item);
-                
-            // Read filter value
-            err = item->GetString(KNullDesC, ptr);
-            if(err == KErrNone)
-                {
-                HBufC* filter = ptr.AllocLC();
-                User::LeaveIfError(aFilters.Append(filter));
-                CleanupStack::Pop();
-                }
-                
-            CleanupStack::PopAndDestroy(item);
-            item = NULL;
-            item = section->GetNextItemLineL(KFilterDefinition, ENoTag);
-            }
-            
-        CleanupStack::PopAndDestroy(section);
-        }
-        
-    // Clean
-    CleanupStack::PopAndDestroy(parser);
-
-    // If there are some filters added, first filter has to be "No filter"
-    if(aFilters.Count() > 0)
-        {
-        RDebug::Print(_L("STIF: Filters loaded"));
-        _LIT(KNoFilter, "No filter");
-        HBufC* name = KNoFilter().AllocLC();
-        User::LeaveIfError(aFilters.Insert(name, 0));
-        CleanupStack::Pop(name);    
-        }
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    DESCRIPTION
-
-    This module contains implementation of CUIStoreIf class member functions.
-
--------------------------------------------------------------------------------
-*/
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStoreIf
-
-    Method: ConstructL
-
-    Description: Second phase constructor.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: Leaves if..
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C void CUIStoreIf::ConstructL( )
-    {
-    
-    iUIStore = CUIStore::NewL( this );
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStoreIf
-
-    Method: CUIStoreIf
-
-    Description: Constructor.
-    
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CUIStoreIf::CUIStoreIf( )
-    {
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStoreIf
-
-    Method: ~CUIStoreIf
-
-    Description: Destructor
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CUIStoreIf::~CUIStoreIf()
-    {	
-    
-    delete iUIStore;
-    iUIStore = NULL;
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CUIStoreIf
-
-    Method: UIStore
-
-    Description: Returns reference to CUIStore object, which handles test 
-                 cases and test modules.
-        
-    Parameters: None
-
-    Return Values: CUIStore reference
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CUIStore& CUIStoreIf::UIStore()
-    {
-    
-    __ASSERT_ALWAYS( iUIStore, User::Panic( KUIStoreIf, KErrNotFound ) );
-        
-    return *iUIStore;
-        
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    DESCRIPTION
-
-    This module contains implementation of CTestSetInfo class member functions.
-
--------------------------------------------------------------------------------
-*/
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: NewL
-
-    Description: Construct the CTestSetInfo class
-
-    Parameters: None
-
-    Return Values: CTestSetInfo*                    New object
-
-    Errors/Exceptions: Leaves if memory allocation fails or
-                       ConstructL leaves.
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CTestSetInfo* CTestSetInfo::NewL( const TDesC& aName )
-    {
-    
-    CTestSetInfo* self = new ( ELeave ) CTestSetInfo();
-    CleanupStack::PushL( self );
-    self->ConstructL( aName );
-    CleanupStack::Pop( self );
-
-    return self;
-
-    }
-            
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: ConstructL
-
-    Description: Second phase constructor.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: Leaves if..
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CTestSetInfo::ConstructL( const TDesC& aName )
-    {
-    
-    iName = aName.AllocL();
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: CTestSetInfo
-
-    Description: Constructor.
-    
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CTestSetInfo::CTestSetInfo()
-    {
-    iLastStartedCaseIndex = 0;
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: ~CTestSetInfo
-
-    Description: Destructor
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-CTestSetInfo::~CTestSetInfo()
-    {	
-    
-    iTestCases.ResetAndDestroy();
-    iTestCaseRefs.Reset();
-    iTestCases.Close();
-    iTestCaseRefs.Close();
-    
-    delete iName;
-    iName = NULL;
-    
-    }
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: AddTestCase
-
-    Description: Add test case to test set.
-        
-    Parameters: const CTestInfo& aTestInfo: in: test info
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CTestSetInfo::AddTestCase( const CTestInfo& aTestInfo )
-    {
-    
-    CTestInfo* testInfo = NULL;
-    
-    TRAPD( err, 
-        testInfo = CTestInfo::NewL();
-        testInfo->CopyL( aTestInfo );
-        );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-
-    if( iTestCaseRefs.Append( *testInfo ) != KErrNone )
-        {
-        delete testInfo;
-        return KErrNoMemory;        
-        }
-    if( iTestCases.Append( testInfo ) != KErrNone ) 
-        {
-        iTestCaseRefs.Remove( iTestCaseRefs.Count()-1 );
-        delete testInfo;
-        return KErrNoMemory;
-        }
-
-    return KErrNone;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: InsertTestCase
-
-    Description: Insert test case to test set.
-        
-    Parameters: const CTestInfo& aTestInfo: in: test info
-                TInt aPos: in: position to add
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CTestSetInfo::InsertTestCase( const CTestInfo& aTestInfo, TInt aPos )
-    {
-    
-    if( ( aPos < 0 ) ||
-        ( aPos >= iTestCases.Count() ) )
-        {
-        return KErrArgument;
-        }
-    
-    CTestInfo* testInfo = NULL;
-    
-    TRAPD( err, 
-        testInfo = CTestInfo::NewL();
-        testInfo->CopyL( aTestInfo );
-        );
-    if( err != KErrNone )
-        {
-        return err;
-        }
-     
-    if( iTestCaseRefs.Insert( *testInfo, aPos ) != KErrNone )
-        {
-        delete testInfo;
-        return KErrNoMemory;        
-        }
-    if( iTestCases.Insert( testInfo, aPos ) != KErrNone )
-        {
-        iTestCaseRefs.Remove( aPos );
-        delete testInfo;
-        return KErrNoMemory;
-        }
-    
-    return err;
-        
-    }
-        
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: RemoveTestCase
-
-    Description: Remove test case from test set.
-        
-    Parameters: const CTestInfo& aTestInfo: in: test info
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CTestSetInfo::RemoveTestCase( const CTestInfo& aTestInfo )
-    {
-    
-    TInt count = iTestCases.Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        if( aTestInfo == *iTestCases[i] )
-            {
-            CTestInfo* testInfo = iTestCases[i];
-            iTestCases.Remove( i );
-            iTestCaseRefs.Remove( i );
-            delete testInfo;
-            return KErrNone;
-            }
-        }
-
-    return KErrNotFound;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: CopyL
-
-    Description: Remove test case from test set.
-        
-    Parameters: const CTestInfo& aTestInfo: in: test info
-
-    Return Values: Symbian OS error code
-
-    Errors/Exceptions: None
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-void CTestSetInfo::CopyL( const CTestSetInfo& aTestSetInfo )
-    {
-    
-    iTestCaseRefs.Reset();
-    iTestCases.ResetAndDestroy();
-    
-    TInt count = aTestSetInfo.TestCases().Count();
-    for( TInt i=0; i<count; i++ )
-        {
-        User::LeaveIfError( AddTestCase( aTestSetInfo.TestCases()[i] ) );
-        }
-    
-    delete iName;
-    iName = 0;    
-    iName = aTestSetInfo.Name().AllocL(); 
-    
-    iLastStartedCaseIndex = aTestSetInfo.iLastStartedCaseIndex;
-         
-    }    
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: SetLastStartedCaseIndex
-
-    Description: Sets the info which test case has been started lately.
-        
-    Parameters: TInt aCaseStarted: index of started test case
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CTestSetInfo::SetLastStartedCaseIndex(TUint aLastStartedCaseIndex)
-    {
-    iLastStartedCaseIndex = aLastStartedCaseIndex;
-    }    
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: GetLastStartedCaseIndex
-
-    Description: Gets the info which test case has been started lately.
-        
-    Parameters: None
-
-    Return Values: TInt: index of lately started test case
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-TUint CTestSetInfo::GetLastStartedCaseIndex(void)
-    {
-    return iLastStartedCaseIndex;
-    }    
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestSetInfo
-
-    Method: RenameTestSet
-
-    Description:  rename test set
-        
-    Parameters: aTestSetName : new TestSetName
-
-    Return Values: TInt: KErrNone if success.
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CTestSetInfo::RenameTestSet(const TDesC& aTestSetName)
-    {
-    delete iName;
-    iName=NULL;
-    iName=aTestSetName.AllocL();
-    }
-// ================= OTHER EXPORTED FUNCTIONS =================================
-
-// End of File