summaryrefslogtreecommitdiff
path: root/tests/webkitqml/qmltests/WebView/tst_messaging.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/webkitqml/qmltests/WebView/tst_messaging.qml')
-rw-r--r--tests/webkitqml/qmltests/WebView/tst_messaging.qml89
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)
+ }
+ }
+}