1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 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)
}
}
}
|