testfwuis/symbianunittestui/qt/testrunner_s60.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 17 Sep 2010 08:58:49 +0300
changeset 2 453d490c84a5
permissions -rw-r--r--
Revision: 201037

/*
* Copyright (c) 2010 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: Symbian C++ test runner Class.
*
*/

#ifndef TESTRUNNER_S60_H_
#define TESTRUNNER_S60_H_

#include <e32base.h>
#include <badesca.h> 
#include <QStringList>
#include <QString>
#include <symbianunittestuicallback.h>

class CSymbianUnitTestRunner;
class WidgetTestRunner;

class TestRunnerPrivate: public CActive, public MSymbianUnitTestUiCallBack
    {
public: // Constructors and destructor

    static TestRunnerPrivate* NewLC(WidgetTestRunner* aPublicApi);
    static TestRunnerPrivate* NewL(WidgetTestRunner* aPublicApi);
    ~TestRunnerPrivate();
    
protected: // From CActive
    
    void RunL();
    void DoCancel();
    
public: // From MSymbianUnitTestUiCallBack
    
    void InfoMsg( const TDesC& aMessage );
    void InfoMsg( const TDesC& aFormat, const TDesC& aMessage );
    void TestPass(const TDesC& aTestCaseName);
    void TestFailed(const TDesC& aTestCaseName, const TDesC8& aErrMsg);
    
public:
    void RunTests();
    int SetTestDllNames(const QStringList&);
    int SetTestCaseNames(const QStringList&);
    void SetTimeout(const TInt);
    int SetOutputFormat(const QString&);
    int ListTestCases(const QString&, QStringList&);
    void SetAllocFailureSimulation(const TBool);
    
private:
    void SetTestDllNamesL(const QStringList&);
    void SetTestCaseNamesL(const QStringList&);
    void SetOutputFormatL(const QString&);
    void ListTestCasesL(const QString&, QStringList&);
    
private:
    void TestsCount();
    void TestsExecuted();

private: // Constructors

    TestRunnerPrivate(WidgetTestRunner* aPublicApi);
    void ConstructL();
    
private: // Data
    WidgetTestRunner* d_ptr;
    CSymbianUnitTestRunner* iTestRunner;
    TInt iExecutedTestCount;
    TInt iPassedTestsCount;
    TInt iFailedTestsCount;
    
    CDesCArray* iTestDllNames;
    CDesCArray* iTestCaseNames;
    
    // Settings
    TBool iAllocFailureSimulation;
    HBufC* iOutputFormat;
    TInt iTimeout;
    };

#endif /* TESTRUNNER_S60_H_ */