diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/cmake/CMakeLists.txt | 4 | ||||
-rw-r--r-- | tests/auto/qml/Client.qml | 2 | ||||
-rw-r--r-- | tests/auto/qml/qml.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qml/qml.pro | 8 | ||||
-rw-r--r-- | tests/auto/qml/testwebchannel.cpp | 65 | ||||
-rw-r--r-- | tests/auto/qml/testwebchannel.h | 62 | ||||
-rw-r--r-- | tests/auto/qml/tst_bench.qml | 3 | ||||
-rw-r--r-- | tests/auto/qml/tst_metaobjectpublisher.qml | 3 | ||||
-rw-r--r-- | tests/auto/qml/tst_multiclient.qml | 3 | ||||
-rw-r--r-- | tests/auto/qml/tst_webchannel.qml | 3 | ||||
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.cpp | 20 | ||||
-rw-r--r-- | tests/auto/webchannel/webchannel.pro | 2 |
12 files changed, 158 insertions, 19 deletions
diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt index 1d588ac..f912bf0 100644 --- a/tests/auto/cmake/CMakeLists.txt +++ b/tests/auto/cmake/CMakeLists.txt @@ -9,6 +9,10 @@ find_package(Qt5Core REQUIRED) include("${_Qt5CTestMacros}") +# Qt5Qml is an optional dependency of QWebChannel headers. Make sure we find it +# in the test. +set(Qt5_MODULE_TEST_DEPENDS Qml) + test_module_includes( WebChannel QWebChannel ) diff --git a/tests/auto/qml/Client.qml b/tests/auto/qml/Client.qml index 609fbac..2a47395 100644 --- a/tests/auto/qml/Client.qml +++ b/tests/auto/qml/Client.qml @@ -149,7 +149,7 @@ Item { verify(msg); verify(msg.data); compare(msg.data.type, Client.QWebChannelMessageTypes.idle); - verify(webChannel.test_clientIsIdle()) + verify(webChannel.clientIsIdle()) } function awaitMessageSkipIdle() diff --git a/tests/auto/qml/qml.cpp b/tests/auto/qml/qml.cpp index 0612bdb..9e3989c 100644 --- a/tests/auto/qml/qml.cpp +++ b/tests/auto/qml/qml.cpp @@ -47,10 +47,12 @@ #endif #include "testtransport.h" +#include "testwebchannel.h" int main(int argc, char **argv) { qmlRegisterType<TestTransport>("QtWebChannel.Tests", 1, 0, "TestTransport"); + qmlRegisterType<TestWebChannel>("QtWebChannel.Tests", 1, 0, "TestWebChannel"); return quick_test_main(argc, argv, "qml", QUICK_TEST_SOURCE_DIR); } diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro index ddef2cb..b0c52b5 100644 --- a/tests/auto/qml/qml.pro +++ b/tests/auto/qml/qml.pro @@ -1,4 +1,4 @@ -QT += testlib webchannel +QT += testlib core-private webchannel-private TEMPLATE = app TARGET = qml @@ -9,10 +9,12 @@ IMPORTPATH += $$OUT_PWD/../../../qml $$PWD SOURCES += \ qml.cpp \ - testtransport.cpp + testtransport.cpp \ + testwebchannel.cpp HEADERS += \ - testtransport.h + testtransport.h \ + testwebchannel.h OTHER_FILES += \ WebChannelTest.qml \ diff --git a/tests/auto/qml/testwebchannel.cpp b/tests/auto/qml/testwebchannel.cpp new file mode 100644 index 0000000..2d31b87 --- /dev/null +++ b/tests/auto/qml/testwebchannel.cpp @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtWebChannel module 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 +** 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, 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. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "testwebchannel.h" + +#include <private/qwebchannel_p.h> +#include <private/qmetaobjectpublisher_p.h> + +QT_BEGIN_NAMESPACE + +TestWebChannel::TestWebChannel(QObject *parent) + : QQmlWebChannel(parent) +{ + +} + +TestWebChannel::~TestWebChannel() +{ + +} + +bool TestWebChannel::clientIsIdle() const +{ + return QWebChannel::d_func()->publisher->clientIsIdle; +} + +QT_END_NAMESPACE diff --git a/tests/auto/qml/testwebchannel.h b/tests/auto/qml/testwebchannel.h new file mode 100644 index 0000000..a172493 --- /dev/null +++ b/tests/auto/qml/testwebchannel.h @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com> +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtWebChannel module 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 +** 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, 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. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef TESTWEBCHANNEL_H +#define TESTWEBCHANNEL_H + +#include <QtWebChannel/QQmlWebChannel> + +QT_BEGIN_NAMESPACE + +class TestWebChannel : public QQmlWebChannel +{ + Q_OBJECT + +public: + explicit TestWebChannel(QObject *parent = 0); + virtual ~TestWebChannel(); + + Q_INVOKABLE bool clientIsIdle() const; +}; + +QT_END_NAMESPACE + +#endif // TESTWEBCHANNEL_H diff --git a/tests/auto/qml/tst_bench.qml b/tests/auto/qml/tst_bench.qml index 833720e..e1354d7 100644 --- a/tests/auto/qml/tst_bench.qml +++ b/tests/auto/qml/tst_bench.qml @@ -43,6 +43,7 @@ import QtQuick 2.0 import QtTest 1.0 import QtWebChannel 1.0 +import QtWebChannel.Tests 1.0 import "qrc:///qwebchannel/qwebchannel.js" as Client TestCase { @@ -53,7 +54,7 @@ TestCase { id: client } - WebChannel { + TestWebChannel { id: webChannel transports: [client.serverTransport] } diff --git a/tests/auto/qml/tst_metaobjectpublisher.qml b/tests/auto/qml/tst_metaobjectpublisher.qml index 880b30d..62b9866 100644 --- a/tests/auto/qml/tst_metaobjectpublisher.qml +++ b/tests/auto/qml/tst_metaobjectpublisher.qml @@ -43,6 +43,7 @@ import QtQuick 2.0 import QtTest 1.0 import QtWebChannel 1.0 +import QtWebChannel.Tests 1.0 import "qrc:///qwebchannel/qwebchannel.js" as Client TestCase { @@ -95,7 +96,7 @@ TestCase { } } - WebChannel { + TestWebChannel { id: webChannel transports: [client.serverTransport] registeredObjects: [myObj, myOtherObj, myFactory] diff --git a/tests/auto/qml/tst_multiclient.qml b/tests/auto/qml/tst_multiclient.qml index 6c4b9b7..739ace7 100644 --- a/tests/auto/qml/tst_multiclient.qml +++ b/tests/auto/qml/tst_multiclient.qml @@ -43,6 +43,7 @@ import QtQuick 2.0 import QtTest 1.0 import QtWebChannel 1.0 +import QtWebChannel.Tests 1.0 import "qrc:///qwebchannel/qwebchannel.js" as Client TestCase { @@ -70,7 +71,7 @@ TestCase { WebChannel.id: "foo" } - WebChannel { + TestWebChannel { id: webChannel transports: [client1.serverTransport, client2.serverTransport] registeredObjects: [foo] diff --git a/tests/auto/qml/tst_webchannel.qml b/tests/auto/qml/tst_webchannel.qml index 3c404d3..0443802 100644 --- a/tests/auto/qml/tst_webchannel.qml +++ b/tests/auto/qml/tst_webchannel.qml @@ -43,6 +43,7 @@ import QtQuick 2.0 import QtTest 1.0 import QtWebChannel 1.0 +import QtWebChannel.Tests 1.0 import "qrc:///qwebchannel/qwebchannel.js" as Client TestCase { @@ -52,7 +53,7 @@ TestCase { id: client } - WebChannel { + TestWebChannel { id: webChannel transports: [client.serverTransport] } diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp index 10baaa3..632d055 100644 --- a/tests/auto/webchannel/tst_webchannel.cpp +++ b/tests/auto/webchannel/tst_webchannel.cpp @@ -83,7 +83,7 @@ void TestWebChannel::testRegisterObjects() QHash<QString, QObject*> objects; objects[QStringLiteral("plain")] = &plain; objects[QStringLiteral("channel")] = &channel; - objects[QStringLiteral("publisher")] = channel.d->publisher; + objects[QStringLiteral("publisher")] = channel.d_func()->publisher; objects[QStringLiteral("test")] = this; channel.registerObjects(objects); @@ -95,7 +95,7 @@ void TestWebChannel::testInfoForObject() obj.setObjectName("myTestObject"); QWebChannel channel; - const QJsonObject info = channel.d->publisher->classInfoForObject(&obj); + const QJsonObject info = channel.d_func()->publisher->classInfoForObject(&obj); QCOMPARE(info.keys(), QStringList() << "enums" << "methods" << "properties" << "signals"); @@ -227,19 +227,19 @@ void TestWebChannel::testInvokeMethodConversion() { int method = metaObject()->indexOfMethod("setInt(int)"); QVERIFY(method != -1); - QVERIFY(!channel.d->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); + QVERIFY(!channel.d_func()->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); QCOMPARE(m_lastInt, args.at(0).toInt()); } { int method = metaObject()->indexOfMethod("setDouble(double)"); QVERIFY(method != -1); - QVERIFY(!channel.d->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); + QVERIFY(!channel.d_func()->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); QCOMPARE(m_lastDouble, args.at(0).toDouble()); } { int method = metaObject()->indexOfMethod("setVariant(QVariant)"); QVERIFY(method != -1); - QVERIFY(!channel.d->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); + QVERIFY(!channel.d_func()->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); QCOMPARE(m_lastVariant, args.at(0).toVariant()); } } @@ -265,7 +265,7 @@ void TestWebChannel::benchClassInfo() QBENCHMARK { foreach (const QObject *object, objects) { - channel.d->publisher->classInfoForObject(object); + channel.d_func()->publisher->classInfoForObject(object); } } } @@ -278,7 +278,7 @@ void TestWebChannel::benchInitializeClients() QObject parent; channel.registerObjects(createObjects(&parent)); - QMetaObjectPublisher *publisher = channel.d->publisher; + QMetaObjectPublisher *publisher = channel.d_func()->publisher; QBENCHMARK { publisher->initializeClients(); @@ -302,15 +302,15 @@ void TestWebChannel::benchPropertyUpdates() } channel.registerObjects(objects); - channel.d->publisher->initializeClients(); + channel.d_func()->publisher->initializeClients(); QBENCHMARK { foreach (BenchObject *obj, objectList) { obj->change(); } - channel.d->publisher->clientIsIdle = true; - channel.d->publisher->sendPendingPropertyUpdates(); + channel.d_func()->publisher->clientIsIdle = true; + channel.d_func()->publisher->sendPendingPropertyUpdates(); } } diff --git a/tests/auto/webchannel/webchannel.pro b/tests/auto/webchannel/webchannel.pro index 71036dd..40b324e 100644 --- a/tests/auto/webchannel/webchannel.pro +++ b/tests/auto/webchannel/webchannel.pro @@ -1,4 +1,4 @@ -QT = core webchannel-private testlib +QT = core-private webchannel-private testlib CONFIG += testcase strict_flags warn_on |