diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2014-07-03 19:17:02 +0200 |
---|---|---|
committer | Milian Wolff <milian.wolff@kdab.com> | 2014-07-15 11:31:48 +0200 |
commit | 003596fad52690127afca0d7025b62bad7fd013e (patch) | |
tree | 7b68f95ce3a519018b309990f85bf7e044307fe9 /tests/auto/qml | |
parent | 125c5f7dc270ab58e5f876cf8bc8aaf56d9e8f1b (diff) | |
download | qtwebchannel-003596fad52690127afca0d7025b62bad7fd013e.tar.gz |
Make the QWebChannel QML API publically accessible.
This is required for proper QtWebKit/QtWebEngine integration, as
otherwise these modules would have to redo a lot of the QtWebChannel
QML API. Furthermore, without this, we could not use the WebChannel.id
attached property everywhere, independent of the web browser technology.
Change-Id: I032a9326841d505c2f77959a240bbfc71e94b6e8
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto/qml')
-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 |
9 files changed, 143 insertions, 8 deletions
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] } |