blob: 2d9247b265d74233bf99efeff1703616d88b2236 (
plain)
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
|
import QtQuick 2.2
import QtTest 1.0
import QtWebEngine 1.9
TestWebEngineView {
id: view
width: 320
height: 320
property bool acceptRequest: false
onFullScreenRequested: function(request) {
view.acceptRequest ? request.accept() : request.reject()
}
SignalSpy {
id: spyRequest
target: view
signalName: 'fullScreenRequested'
}
TestCase {
name: 'FullScreenRequest'
when: windowShown
function init() {
spyRequest.clear()
}
function test_request_data() {
return [
{ tag: 'accept', accept: true },
{ tag: 'reject', accept: false },
]
}
function test_request(data) {
view.acceptRequest = data.accept
view.settings.fullscreenSupportEnabled = true
// full screen request is only allowed by user gesture, so emulate key press
view.loadHtml(
'<html><body onkeypress="onKeyPress()"><a id="a">WRYYYY</a><script>' +
'function onKeyPress() {' +
' document.webkitIsFullScreen'+
' ? document.webkitExitFullscreen()' +
' : document.documentElement.webkitRequestFullScreen()' +
'} </script></body></html>')
view.waitForLoadSucceeded()
verify(!view.isFullScreen)
let result = null
view.runJavaScript('document.webkitFullscreenEnabled', function(r) { result = r })
tryVerify(function() { return result === true })
result = null
view.runJavaScript('document.webkitIsFullScreen', function(r) { result = r })
tryVerify(function() { return result === false })
// will trigger full screen request through key press
keyClick(Qt.Key_Space)
spyRequest.wait()
compare(spyRequest.count, 1)
verify(spyRequest.signalArguments[0][0].toggleOn)
compare(data.accept, view.isFullScreen)
view.runJavaScript('document.webkitIsFullScreen', function(r) { result = r })
tryVerify(function() { return result === data.accept })
if (data.accept) {
// expected to toggle from current state
keyClick(Qt.Key_Space)
spyRequest.wait()
compare(spyRequest.count, 2)
verify(!spyRequest.signalArguments[1][0].toggleOn)
view.runJavaScript('document.webkitIsFullScreen', function(r) { result = r })
tryVerify(function() { return result === false })
verify(!view.isFullScreen)
}
}
}
}
|