diff options
Diffstat (limited to 'tests/webkitqml/qmltests/WebView/tst_messaging.qml')
-rw-r--r-- | tests/webkitqml/qmltests/WebView/tst_messaging.qml | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/tests/webkitqml/qmltests/WebView/tst_messaging.qml b/tests/webkitqml/qmltests/WebView/tst_messaging.qml new file mode 100644 index 000000000..9f16bb8b6 --- /dev/null +++ b/tests/webkitqml/qmltests/WebView/tst_messaging.qml @@ -0,0 +1,89 @@ +import QtQuick 2.0 +import QtTest 1.0 +import QtWebKit 3.0 +import QtWebKit.experimental 1.0 +import "../common" + +Item { + TestWebView { + id: webView + property variant lastMessage + experimental.preferences.navigatorQtObjectEnabled: true + experimental.onMessageReceived: { + lastMessage = message + } + } + + TestWebView { + id: otherWebView + property variant lastMessage + experimental.preferences.navigatorQtObjectEnabled: true + experimental.onMessageReceived: { + lastMessage = message + } + } + + TestWebView { + id: disabledWebView + property bool receivedMessage + experimental.preferences.navigatorQtObjectEnabled: false + experimental.onMessageReceived: { + receivedMessage = true + } + } + + SignalSpy { + id: messageSpy + target: webView.experimental + signalName: "messageReceived" + } + + SignalSpy { + id: otherMessageSpy + target: otherWebView.experimental + signalName: "messageReceived" + } + + TestCase { + name: "WebViewMessaging" + property url testUrl: Qt.resolvedUrl("../common/messaging.html") + + function init() { + messageSpy.clear() + webView.lastMessage = null + otherMessageSpy.clear() + otherWebView.lastMessage = null + } + + function test_basic() { + webView.url = testUrl + verify(webView.waitForLoadSucceeded()) + webView.experimental.postMessage("HELLO") + messageSpy.wait() + compare(webView.lastMessage.data, "OLLEH") + compare(webView.lastMessage.origin.toString(), testUrl.toString()) + } + + function test_twoWebViews() { + webView.url = testUrl + otherWebView.url = testUrl + verify(webView.waitForLoadSucceeded()) + verify(otherWebView.waitForLoadSucceeded()) + webView.experimental.postMessage("FIRST") + otherWebView.experimental.postMessage("SECOND") + messageSpy.wait() + otherMessageSpy.wait() + compare(webView.lastMessage.data, "TSRIF") + compare(otherWebView.lastMessage.data, "DNOCES") + } + + function test_disabled() { + disabledWebView.url = testUrl + verify(!disabledWebView.experimental.preferences.navigatorQtObjectEnabled) + verify(disabledWebView.waitForLoadSucceeded()) + disabledWebView.experimental.postMessage("HI") + wait(1000) + verify(!disabledWebView.receivedMessage) + } + } +} |