OLD | NEW |
1 "use strict"; | 1 "use strict"; |
2 | 2 |
| 3 function hasFullscreenButton(element) |
| 4 { |
| 5 var size = mediaControlsButtonDimensions(element, "fullscreen-button"); |
| 6 return size[0] > 0 && size[1] > 0; |
| 7 } |
| 8 |
3 function fullscreen_test(controller) | 9 function fullscreen_test(controller) |
4 { | 10 { |
5 async_test(function(t) | 11 async_test(function(t) |
6 { | 12 { |
7 var v1 = document.createElement("video"); | 13 var v1 = document.createElement("video"); |
8 var v2 = document.createElement("video"); | 14 var v2 = document.createElement("video"); |
9 v1.controls = v2.controls = true; | 15 v1.controls = v2.controls = true; |
10 v1.controller = v2.controller = controller; | 16 v1.controller = v2.controller = controller; |
11 v1.src = findMediaFile("video", "content/test"); | 17 v1.src = findMediaFile("video", "content/test"); |
12 v2.src = findMediaFile("audio", "content/test"); | 18 v2.src = findMediaFile("audio", "content/test"); |
13 document.body.appendChild(v1); | 19 document.body.appendChild(v1); |
14 document.body.appendChild(v2); | 20 document.body.appendChild(v2); |
15 | 21 |
16 // load event fires when both video elements are ready | 22 // load event fires when both video elements are ready |
17 window.addEventListener("load", t.step_func(function() | 23 window.addEventListener("load", t.step_func(function() |
18 { | 24 { |
19 // no fullscreen button for a video element with no video track | 25 assert_true(hasFullscreenButton(v1), |
20 assert_button_hidden(v2); | 26 "fullscreen button shown when there is a video track"); |
| 27 assert_false(hasFullscreenButton(v2), |
| 28 "fullscreen button not shown when there is no video tra
ck"); |
21 | 29 |
22 // click the fullscreen button | 30 // click the fullscreen button |
23 var coords = mediaControlsButtonCoordinates(v1, "fullscreen-button")
; | 31 var coords = mediaControlsButtonCoordinates(v1, "fullscreen-button")
; |
24 eventSender.mouseMoveTo(coords[0], coords[1]); | 32 eventSender.mouseMoveTo(coords[0], coords[1]); |
25 eventSender.mouseDown(); | 33 eventSender.mouseDown(); |
26 eventSender.mouseUp(); | 34 eventSender.mouseUp(); |
27 // wait for the fullscreenchange event | 35 // wait for the fullscreenchange event |
28 })); | 36 })); |
29 | 37 |
30 v1.addEventListener("webkitfullscreenchange", t.step_func(function() | 38 v1.addEventListener("webkitfullscreenchange", t.step_func_done()); |
| 39 v2.addEventListener("webkitfullscreenchange", t.unreached_func()); |
| 40 }); |
| 41 } |
| 42 |
| 43 function fullscreen_iframe_test() |
| 44 { |
| 45 async_test(function(t) |
| 46 { |
| 47 var iframe = document.querySelector("iframe"); |
| 48 var doc = iframe.contentDocument; |
| 49 var v = doc.createElement("video"); |
| 50 v.controls = true; |
| 51 v.src = findMediaFile("video", "content/test"); |
| 52 doc.body.appendChild(v); |
| 53 |
| 54 v.addEventListener("loadeddata", t.step_func_done(function() |
31 { | 55 { |
32 t.done(); | 56 assert_equals(hasFullscreenButton(v), iframe.allowFullscreen, |
33 })); | 57 "fullscreen button shown if and only if fullscreen is
allowed"); |
34 | |
35 v2.addEventListener("webkitfullscreenchange", t.step_func(function() | |
36 { | |
37 assert_unreached(); | |
38 })); | 58 })); |
39 }); | 59 }); |
40 } | 60 } |
41 | 61 |
42 function fullscreen_not_supported_test() | 62 function fullscreen_not_supported_test() |
43 { | 63 { |
44 async_test(function(t) | 64 async_test(function(t) |
45 { | 65 { |
46 var v = document.createElement("video"); | 66 var v = document.createElement("video"); |
47 v.controls = true; | 67 v.controls = true; |
48 v.src = findMediaFile("video", "content/test"); | 68 v.src = findMediaFile("video", "content/test"); |
49 document.body.appendChild(v); | 69 document.body.appendChild(v); |
50 | 70 |
51 // load event fires when video elements is ready | 71 v.addEventListener("loadeddata", t.step_func_done(function() |
52 window.addEventListener("load", t.step_func(function() | |
53 { | 72 { |
54 // no fullscreen button for a video element when fullscreen is not | 73 assert_false(hasFullscreenButton(v), |
55 // supported | 74 "fullscreen button not show when fullscreen is not supp
orted"); |
56 assert_button_hidden(v); | |
57 t.done(); | |
58 })); | 75 })); |
59 }); | 76 }); |
60 } | 77 } |
61 | |
62 function assert_button_hidden(elm) | |
63 { | |
64 assert_array_equals(mediaControlsButtonDimensions(elm, "fullscreen-button"),
[0, 0]); | |
65 } | |
OLD | NEW |