Doc: Enabling Qt QML linking to Qt Quick.
[profile/ivi/qtdeclarative.git] / src / qmltest / quicktestresult_p.h
index fdadf9c..a189731 100644 (file)
@@ -1,38 +1,38 @@
 /****************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
 **
 ** This file is part of the test suite of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
 ** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
 ** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
 **
 **
 ** $QT_END_LICENSE$
 #include <QtCore/qstring.h>
 #include <QtCore/qstringlist.h>
 #include <QtCore/qscopedpointer.h>
+#include <QtQuick/qquickitem.h>
+#include <QtQml/private/qv8engine_p.h>
 
 QT_BEGIN_NAMESPACE
 
+class QUrl;
 class QuickTestResultPrivate;
 
 class Q_QUICK_TEST_EXPORT QuickTestResult : public QObject
 {
     Q_OBJECT
-    Q_ENUMS(FunctionType RunMode)
+    Q_ENUMS(RunMode)
     Q_PROPERTY(QString testCaseName READ testCaseName WRITE setTestCaseName NOTIFY testCaseNameChanged)
     Q_PROPERTY(QString functionName READ functionName WRITE setFunctionName NOTIFY functionNameChanged)
-    Q_PROPERTY(FunctionType functionType READ functionType WRITE setFunctionType NOTIFY functionTypeChanged)
     Q_PROPERTY(QString dataTag READ dataTag WRITE setDataTag NOTIFY dataTagChanged)
     Q_PROPERTY(bool failed READ isFailed)
-    Q_PROPERTY(bool dataFailed READ isDataFailed)
     Q_PROPERTY(bool skipped READ isSkipped WRITE setSkipped NOTIFY skippedChanged)
     Q_PROPERTY(int passCount READ passCount)
     Q_PROPERTY(int failCount READ failCount)
@@ -71,16 +72,6 @@ public:
     QuickTestResult(QObject *parent = 0);
     ~QuickTestResult();
 
-    // Values must match QTestResult::TestLocation.
-    enum FunctionType
-    {
-        NoWhere = 0,
-        DataFunc = 1,
-        InitFunc = 2,
-        Func = 3,
-        CleanupFunc = 4
-    };
-
     // Values must match QBenchmarkIterationController::RunMode.
     enum RunMode
     {
@@ -94,14 +85,10 @@ public:
     QString functionName() const;
     void setFunctionName(const QString &name);
 
-    FunctionType functionType() const;
-    void setFunctionType(FunctionType type);
-
     QString dataTag() const;
     void setDataTag(const QString &tag);
 
     bool isFailed() const;
-    bool isDataFailed() const;
 
     bool isSkipped() const;
     void setSkipped(bool skip);
@@ -121,25 +108,31 @@ public Q_SLOTS:
     void initTestTable();
     void clearTestTable();
 
+    void finishTestData();
+    void finishTestDataCleanup();
     void finishTestFunction();
 
-    void fail(const QString &message, const QString &file, int line);
+    void stringify(QQmlV8Function *args);
+
+    void fail(const QString &message, const QUrl &location, int line);
     bool verify(bool success, const QString &message,
-                const QString &file, int line);
+                const QUrl &location, int line);
     bool compare(bool success, const QString &message,
-                 const QString &val1, const QString &val2,
-                 const QString &file, int line);
-    void skip(const QString &message, const QString &file, int line);
+                 const QVariant &val1, const QVariant &val2,
+                 const QUrl &location, int line);
+    bool fuzzyCompare(const QVariant &actual, const QVariant &expected, qreal delta);
+    void skip(const QString &message, const QUrl &location, int line);
     bool expectFail(const QString &tag, const QString &comment,
-                    const QString &file, int line);
+                    const QUrl &location, int line);
     bool expectFailContinue(const QString &tag, const QString &comment,
-                            const QString &file, int line);
-    void warn(const QString &message, const QString &file, int line);
+                            const QUrl &location, int line);
+    void warn(const QString &message, const QUrl &location, int line);
 
     void ignoreWarning(const QString &message);
 
     void wait(int ms);
     void sleep(int ms);
+    bool waitForRendering(QQuickItem *item, int timeout = 5000);
 
     void startMeasurement();
     void beginDataRun();
@@ -152,17 +145,19 @@ public Q_SLOTS:
     void nextBenchmark();
     void stopBenchmark();
 
+    QObject *grabImage(QQuickItem *item);
+
 public:
     // Helper functions for the C++ main() shell.
     static void parseArgs(int argc, char *argv[]);
     static void setProgramName(const char *name);
+    static void setCurrentAppname(const char *appname);
     static int exitCode();
 
 Q_SIGNALS:
     void programNameChanged();
     void testCaseNameChanged();
     void functionNameChanged();
-    void functionTypeChanged();
     void dataTagChanged();
     void skippedChanged();