diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2014-07-02 16:03:37 +0200 |
---|---|---|
committer | Milian Wolff <milian.wolff@kdab.com> | 2014-07-03 13:44:42 +0200 |
commit | 5418f5795e2fd657efa3ceede749228c1e10d25c (patch) | |
tree | 0d3109f25ab416befbaa44ba26f1380d64b30db6 /tests/qml | |
parent | 3c1884f15ed1120bf36efb918cad0bcb461d5193 (diff) | |
download | qtwebchannel-5418f5795e2fd657efa3ceede749228c1e10d25c.tar.gz |
Add cmake test, adapt test directory layout and point to dev branches.
The auto tests are now located in tests/auto instead of directly in
tests/. This is required to ensure the cmake test is found.
Furthermore, the sync.profile is updated to point to refs/heads/dev,
as we target Qt 5.4 with this new module.
Change-Id: I1e6e99968b7081b5774eaf30319cac1fbaed35c2
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Diffstat (limited to 'tests/qml')
-rw-r--r-- | tests/qml/TestWebView.qml | 81 | ||||
-rw-r--r-- | tests/qml/WebChannelTest.qml | 157 | ||||
-rw-r--r-- | tests/qml/data/bench_init.html | 13 | ||||
-rw-r--r-- | tests/qml/data/disconnect.html | 21 | ||||
-rw-r--r-- | tests/qml/data/grouping.html | 17 | ||||
-rw-r--r-- | tests/qml/data/method.html | 17 | ||||
-rw-r--r-- | tests/qml/data/multiclient.html | 19 | ||||
-rw-r--r-- | tests/qml/data/property.html | 21 | ||||
-rw-r--r-- | tests/qml/data/receiveRaw.html | 15 | ||||
-rw-r--r-- | tests/qml/data/send.html | 17 | ||||
-rw-r--r-- | tests/qml/data/signal.html | 17 | ||||
-rw-r--r-- | tests/qml/data/testsetup.js | 47 | ||||
-rw-r--r-- | tests/qml/data/wrapper.html | 28 | ||||
-rw-r--r-- | tests/qml/qml.cpp | 44 | ||||
-rw-r--r-- | tests/qml/qml.pro | 19 | ||||
-rw-r--r-- | tests/qml/tst_bench.qml | 123 | ||||
-rw-r--r-- | tests/qml/tst_metaobjectpublisher.qml | 272 | ||||
-rw-r--r-- | tests/qml/tst_multiclient.qml | 99 | ||||
-rw-r--r-- | tests/qml/tst_webchannel.qml | 59 |
19 files changed, 0 insertions, 1086 deletions
diff --git a/tests/qml/TestWebView.qml b/tests/qml/TestWebView.qml deleted file mode 100644 index 3b12f38..0000000 --- a/tests/qml/TestWebView.qml +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtTest 1.0 - -import QtWebKit 3.0 -import QtWebKit.experimental 1.0 - -WebView { - id: view - property var lastLoadStatus - - experimental.preferences.developerExtrasEnabled: true - experimental.preferences.navigatorQtObjectEnabled: true - - onLoadingChanged: { - // NOTE: we cannot use spy.signalArguments nor save the loadRequest anywhere, as it gets - // deleted after the slots connected to the signal have finished... i.e. it's a weak pointer, - // not a shared pointer. As such, we have to copy out the interesting data we need later on here... - lastLoadStatus = loadRequest.status - } - - SignalSpy { - id: loadingSpy - target: view - signalName: "onLoadingChanged" - } - - function waitForLoaded() - { - do { - loadingSpy.wait(500); - } while (loading); - return lastLoadStatus == WebView.LoadSucceededStatus; - } - - function clear() - { - url = ""; - loadingSpy.clear() - } -} diff --git a/tests/qml/WebChannelTest.qml b/tests/qml/WebChannelTest.qml deleted file mode 100644 index 9a0baa9..0000000 --- a/tests/qml/WebChannelTest.qml +++ /dev/null @@ -1,157 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtTest 1.0 - -import QtWebChannel 1.0 - -TestCase { - property var lastLoadStatus - property bool useWebViewTransport: false - - // only run after the webchannel has finished initialization - when: webSocketTransport.baseUrl != "" - - WebViewTransport { - id: webViewTransport - webViewExperimental: defaultView.experimental - } - WebSocketTransport { - id: webSocketTransport - } - - TestWebView { - id: defaultView - } - - WebChannel { - id: webChannel - } - property var webChannel: webChannel - - SignalSpy { - id: rawMessageSpy - target: useWebViewTransport ? webViewTransport : webSocketTransport; - signalName: "onMessageReceived" - } - property var rawMessageSpy: rawMessageSpy - property var rawMessageIdx: 0; - - function urlForFile(file) - { - verify(useWebViewTransport || webSocketTransport.baseUrl != "", "webSocketTransport.baseUrl is empty"); - return "data/" + file + (!useWebViewTransport ? "?webChannelBaseUrl=" + webSocketTransport.baseUrl : ""); - } - - // load file in the given view or use the global one by default - function loadUrl(file, view) - { - if (useWebViewTransport) { - webChannel.disconnectFrom(webSocketTransport); - webChannel.connectTo(webViewTransport); - } else { - webChannel.disconnectFrom(webViewTransport); - webChannel.connectTo(webSocketTransport); - } - if (!view) { - view = defaultView; - } - view.url = urlForFile(file); - view.waitForLoaded(); - } - - function cleanup() - { - defaultView.clear(); - rawMessageSpy.clear(); - rawMessageIdx = 0; - } - - function awaitRawMessage() - { - rawMessageSpy.wait(500); - if (rawMessageSpy.signalArguments.length <= rawMessageIdx) { - // still no message received, fail - return null; - } - return rawMessageSpy.signalArguments[rawMessageIdx++][0]; - } - - function awaitMessage() - { - var msg = awaitRawMessage() - if (!msg) { - return msg; - } - return JSON.parse(msg); - } - - function awaitInit() - { - var msg = awaitMessage(); - verify(msg); - verify(msg.data); - verify(msg.data.type); - compare(msg.data.type, qWebChannelMessageTypes.init); - } - - function awaitIdle() - { - var msg = awaitMessage(); - verify(msg); - verify(msg.data); - compare(msg.data.type, qWebChannelMessageTypes.idle); - verify(webChannel.test_clientIsIdle()) - } - - property var qWebChannelMessageTypes: ({ - signal: 1, - propertyUpdate: 2, - init: 3, - idle: 4, - debug: 5, - invokeMethod: 6, - connectToSignal: 7, - disconnectFromSignal: 8, - setProperty: 9, - }); -} diff --git a/tests/qml/data/bench_init.html b/tests/qml/data/bench_init.html deleted file mode 100644 index 7d3af5b..0000000 --- a/tests/qml/data/bench_init.html +++ /dev/null @@ -1,13 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) {}); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/disconnect.html b/tests/qml/data/disconnect.html deleted file mode 100644 index a9a479c..0000000 --- a/tests/qml/data/disconnect.html +++ /dev/null @@ -1,21 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - myObj.mySignal.connect(function(arg) { - channel.exec({label: "mySignalReceived", args: [arg]}); - myObj.mySignal.disconnect(this); - }); - channel.subscribe("report", function() { - channel.exec({label: "report"}); - }); - }); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/grouping.html b/tests/qml/data/grouping.html deleted file mode 100644 index f2d7aec..0000000 --- a/tests/qml/data/grouping.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - window.channel = createWebChannel(function(channel) { - channel.subscribe(QWebChannelMessageTypes.propertyUpdate, function() { - channel.exec({label: "gotPropertyUpdate", values: [myObj.myProperty(), myOtherObj.foo(), myOtherObj.bar()]}); - }); - }); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/method.html b/tests/qml/data/method.html deleted file mode 100644 index 6dbaa90..0000000 --- a/tests/qml/data/method.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - channel.subscribe("invokeMethod", function(arg) { - myObj.myMethod(arg); - }); - }); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/multiclient.html b/tests/qml/data/multiclient.html deleted file mode 100644 index 1573a1a..0000000 --- a/tests/qml/data/multiclient.html +++ /dev/null @@ -1,19 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - foo.ping.connect(function() { - foo.pong(function(value) { - channel.exec({pongAnswer: value}); - }); - }); - }); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/property.html b/tests/qml/data/property.html deleted file mode 100644 index 9565aaa..0000000 --- a/tests/qml/data/property.html +++ /dev/null @@ -1,21 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - channel.exec({label: "init", value: myObj.myProperty()}); - myObj.myPropertyChanged.connect(function() { - channel.exec({label: "changed", value: myObj.myProperty()}); - }); - channel.subscribe("setProperty", function(newValue) { - myObj.myProperty = newValue; - }); - }); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/receiveRaw.html b/tests/qml/data/receiveRaw.html deleted file mode 100644 index 139b2b1..0000000 --- a/tests/qml/data/receiveRaw.html +++ /dev/null @@ -1,15 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - channel.send("foobar"); - }, true /* raw */); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/send.html b/tests/qml/data/send.html deleted file mode 100644 index c60fbf4..0000000 --- a/tests/qml/data/send.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - channel.subscribe("myMessage", function(payload) { - channel.send("myMessagePong:" + payload); - }); - }, true /* raw */); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/signal.html b/tests/qml/data/signal.html deleted file mode 100644 index bdce0c7..0000000 --- a/tests/qml/data/signal.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - myObj.mySignal.connect(function(arg) { - channel.exec({label: "signalReceived", value: arg}); - }); - }); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/data/testsetup.js b/tests/qml/data/testsetup.js deleted file mode 100644 index c0db83a..0000000 --- a/tests/qml/data/testsetup.js +++ /dev/null @@ -1,47 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -window.createWebChannel = function(callback, raw) -{ - var baseUrlMatch = /[?&]webChannelBaseUrl=([A-Za-z0-9\-:/\.]+)/.exec(location.search); - var transport = baseUrlMatch ? baseUrlMatch[1] : navigator.qt; - return new QWebChannel(transport, callback, raw); -} diff --git a/tests/qml/data/wrapper.html b/tests/qml/data/wrapper.html deleted file mode 100644 index a556486..0000000 --- a/tests/qml/data/wrapper.html +++ /dev/null @@ -1,28 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - myFactory.create("testObj", function(obj) { - window[obj.objectName()] = obj; - obj.mySignal.connect(function(arg1, arg2) { - channel.exec({label: "signalReceived", args: [arg1, arg2]}); - }); - obj.myProperty = 42; - obj.myMethod("foobar"); - }); - channel.subscribe("triggerDelete", function() { - testObj.deleteLater(); - }); - channel.subscribe("report", function() { - channel.exec({label:"report", obj: testObj}) - }); - }); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/qml.cpp b/tests/qml/qml.cpp deleted file mode 100644 index 7267842..0000000 --- a/tests/qml/qml.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -** -** 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 <QtQuickTest/quicktest.h> - -QUICK_TEST_MAIN(qml) diff --git a/tests/qml/qml.pro b/tests/qml/qml.pro deleted file mode 100644 index 4a68cd1..0000000 --- a/tests/qml/qml.pro +++ /dev/null @@ -1,19 +0,0 @@ -QT += testlib webchannel -TEMPLATE = app -TARGET = qml - -CONFIG += warn_on qmltestcase - -# TODO: running tests without requiring make install -IMPORTPATH += $$OUT_PWD/../../qml $$PWD - -SOURCES += \ - qml.cpp - -OTHER_FILES += \ - WebChannelTest.qml \ - tst_webchannel.qml \ - tst_metaobjectpublisher.qml \ - tst_bench.qml - -TESTDATA = data/* diff --git a/tests/qml/tst_bench.qml b/tests/qml/tst_bench.qml deleted file mode 100644 index 056dda9..0000000 --- a/tests/qml/tst_bench.qml +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -import QtWebChannel 1.0 - -WebChannelTest { - name: "Bench" - id: test - - Component { - id: component - QtObject { - property var p0 : 0 - property var p1 : 0 - property var p2 : 0 - property var p3 : 0 - property var p4 : 0 - property var p5 : 0 - property var p6 : 0 - property var p7 : 0 - property var p8 : 0 - property var p9 : 0 - function m0(arg1, arg2) {} - function m1(arg1, arg2) {} - function m2(arg1, arg2) {} - function m3(arg1, arg2) {} - function m4(arg1, arg2) {} - function m5(arg1, arg2) {} - function m6(arg1, arg2) {} - function m7(arg1, arg2) {} - function m8(arg1, arg2) {} - function m9(arg1, arg2) {} - signal s0(var arg1, var arg2) - signal s1(var arg1, var arg2) - signal s2(var arg1, var arg2) - signal s3(var arg1, var arg2) - signal s4(var arg1, var arg2) - signal s5(var arg1, var arg2) - signal s6(var arg1, var arg2) - signal s7(var arg1, var arg2) - signal s8(var arg1, var arg2) - signal s9(var arg1, var arg2) - } - } - - property var objects: ({}) - - function initTestCase() - { - for (var i = 0; i < 100; ++i) { - var id = "obj" + i; - var properties = {objectName: id}; - objects[id] = component.createObject(test, properties); - } - - webChannel.registerObjects(objects); - } - - function benchmark_init_baseline() - { - loadUrl("bench_init.html"); - } - - function benchmark_init_webview() - { - useWebViewTransport = true; - loadUrl("bench_init.html"); - // init - awaitMessage(); - // idle - awaitMessage(); - } - - function benchmark_init_websocket() - { - useWebViewTransport = false; - loadUrl("bench_init.html"); - // init - awaitMessage(); - // idle - awaitMessage(); - } -} diff --git a/tests/qml/tst_metaobjectpublisher.qml b/tests/qml/tst_metaobjectpublisher.qml deleted file mode 100644 index e07f105..0000000 --- a/tests/qml/tst_metaobjectpublisher.qml +++ /dev/null @@ -1,272 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -import QtWebChannel 1.0 - -WebChannelTest { - name: "MetaObjectPublisher" - id: test - - property var lastMethodArg - - QtObject { - id: myObj - property int myProperty: 1 - - signal mySignal(var arg) - - function myMethod(arg) - { - lastMethodArg = arg; - } - - WebChannel.id: "myObj" - } - QtObject { - id: myOtherObj - property var foo: 1 - property var bar: 1 - WebChannel.id: "myOtherObj" - } - QtObject { - id: myFactory - property var lastObj - function create(id) - { - lastObj = component.createObject(myFactory, {objectName: id}); - return lastObj; - } - WebChannel.id: "myFactory" - } - - Component { - id: component - QtObject { - property var myProperty : 0 - function myMethod(arg) { - mySignal(arg, myProperty); - } - signal mySignal(var arg1, var arg2) - } - } - - function initTestCase() - { - webChannel.registeredObjects = [myObj, myOtherObj, myFactory]; - } - - function awaitMessageSkipIdle() - { - var msg; - do { - msg = awaitMessage(); - verify(msg); - verify(msg.data); - } while (msg.data.type === qWebChannelMessageTypes.idle); - return msg; - } - - function test_property() - { - myObj.myProperty = 1 - loadUrl("property.html"); - awaitInit(); - var msg = awaitMessageSkipIdle(); - compare(msg.data.label, "init"); - compare(msg.data.value, 1); - compare(myObj.myProperty, 1); - - // change property, should be propagated to HTML client and a message be send there - myObj.myProperty = 2; - msg = awaitMessageSkipIdle(); - compare(msg.data.label, "changed"); - compare(msg.data.value, 2); - compare(myObj.myProperty, 2); - - // now trigger a write from the client side - webChannel.sendMessage("setProperty", 3); - msg = awaitMessageSkipIdle(); - compare(myObj.myProperty, 3); - - // the above write is also propagated to the HTML client - msg = awaitMessageSkipIdle(); - compare(msg.data.label, "changed"); - compare(msg.data.value, 3); - - awaitIdle(); - } - - function test_method() - { - loadUrl("method.html"); - awaitInit(); - awaitIdle(); - - webChannel.sendMessage("invokeMethod", "test"); - - var msg = awaitMessage(); - compare(msg.data.type, qWebChannelMessageTypes.invokeMethod); - compare(msg.data.object, "myObj"); - compare(msg.data.args, ["test"]); - - compare(lastMethodArg, "test") - } - - function test_signal() - { - loadUrl("signal.html"); - awaitInit(); - - var msg = awaitMessage(); - compare(msg.data.type, qWebChannelMessageTypes.connectToSignal); - compare(msg.data.object, "myObj"); - - awaitIdle(); - - myObj.mySignal("test"); - - msg = awaitMessage(); - compare(msg.data.label, "signalReceived"); - compare(msg.data.value, "test"); - } - - function test_grouping() - { - loadUrl("grouping.html"); - awaitInit(); - awaitIdle(); - - // change properties a lot, we expect this to be grouped into a single update notification - for (var i = 0; i < 10; ++i) { - myObj.myProperty = i; - myOtherObj.foo = i; - myOtherObj.bar = i; - } - - var msg = awaitMessage(); - verify(msg); - compare(msg.data.label, "gotPropertyUpdate"); - compare(msg.data.values, [myObj.myProperty, myOtherObj.foo, myOtherObj.bar]); - - awaitIdle(); - } - - function test_wrapper() - { - loadUrl("wrapper.html"); - awaitInit(); - - var msg = awaitMessageSkipIdle(); - compare(msg.data.type, qWebChannelMessageTypes.invokeMethod); - compare(msg.data.object, "myFactory"); - verify(myFactory.lastObj); - compare(myFactory.lastObj.objectName, "testObj"); - - msg = awaitMessageSkipIdle(); - compare(msg.data.type, qWebChannelMessageTypes.connectToSignal); - verify(msg.data.object); - var objId = msg.data.object; - - msg = awaitMessageSkipIdle(); - compare(msg.data.type, qWebChannelMessageTypes.connectToSignal); - compare(msg.data.object, objId); - - msg = awaitMessageSkipIdle(); - compare(msg.data.type, qWebChannelMessageTypes.setProperty); - compare(msg.data.object, objId); - compare(myFactory.lastObj.myProperty, 42); - - msg = awaitMessageSkipIdle(); - compare(msg.data.type, qWebChannelMessageTypes.invokeMethod); - compare(msg.data.object, objId); - compare(msg.data.args, ["foobar"]); - - msg = awaitMessageSkipIdle(); - compare(msg.data.label, "signalReceived"); - compare(msg.data.args, ["foobar", 42]); - - // pass QObject* on the fly and trigger deleteLater from client side - webChannel.sendMessage("triggerDelete"); - - msg = awaitMessageSkipIdle(); - compare(msg.data.type, qWebChannelMessageTypes.invokeMethod); - compare(msg.data.object, objId); - - webChannel.sendMessage("report"); - - msg = awaitMessageSkipIdle(); - compare(msg.data.label, "report"); - compare(msg.data.obj, {}); - } - - function test_disconnect() - { - loadUrl("disconnect.html"); - awaitInit(); - - var msg = awaitMessage(); - compare(msg.data.type, qWebChannelMessageTypes.connectToSignal); - compare(msg.data.object, "myObj"); - - awaitIdle(); - - myObj.mySignal(42); - - msg = awaitMessage(); - compare(msg.data.label, "mySignalReceived"); - compare(msg.data.args, [42]); - - msg = awaitMessage(); - compare(msg.data.type, qWebChannelMessageTypes.disconnectFromSignal); - compare(msg.data.object, "myObj"); - - myObj.mySignal(0); - - // apparently one cannot expect failure in QML, so trigger another message - // and verify no mySignalReceived was triggered by the above emission - webChannel.sendMessage("report"); - - msg = awaitMessage(); - compare(msg.data.label, "report"); - } -} diff --git a/tests/qml/tst_multiclient.qml b/tests/qml/tst_multiclient.qml deleted file mode 100644 index 519a63c..0000000 --- a/tests/qml/tst_multiclient.qml +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -import QtWebChannel 1.0 - -WebChannelTest { - name: "MultiClient" - id: test - - QtObject { - id: foo - property int bar: 0 - - signal ping() - - function pong() - { - return ++bar; - } - - WebChannel.id: "foo" - } - - TestWebView { - id: client1 - } - TestWebView { - id: client2 - } - - function initTestCase() - { - webChannel.registeredObjects = [foo]; - } - - function test_multiclient() - { - loadUrl("multiclient.html", client1); - loadUrl("multiclient.html", client2); - // init, connect & idle messages for two clients - for (var i = 0; i < 3 * 2; ++i) { - awaitMessage(); - } - - foo.ping(); - - // invoke of pong method - awaitMessage(); - awaitMessage(); - - var msg = awaitMessage(); - compare(msg.data.pongAnswer, 1); - msg = awaitMessage(); - compare(msg.data.pongAnswer, 2); - - awaitIdle(); - awaitIdle(); - } -} diff --git a/tests/qml/tst_webchannel.qml b/tests/qml/tst_webchannel.qml deleted file mode 100644 index dddba71..0000000 --- a/tests/qml/tst_webchannel.qml +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -WebChannelTest { - name: "WebChannel" - - function test_receiveRawMessage() - { - loadUrl("receiveRaw.html"); - compare(awaitRawMessage(), "foobar"); - } - - function test_sendMessage() - { - loadUrl("send.html"); - webChannel.sendMessage("myMessage", "foobar"); - compare(awaitRawMessage(), "myMessagePong:foobar"); - } -} |