OLD | NEW |
1 <!doctype html> | 1 <!DOCTYPE html> |
2 <html> | 2 <title>Test that the document's load event is delayed until a video's meta data
is available.</title> |
3 <head> | 3 <script src="../resources/testharness.js"></script> |
4 <title>delay document 'load' event test</title> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <style> video { border: 3px solid red; } </style> | 5 <script src="media-file.js"></script> |
6 <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 | 6 <video id="video1"></video> |
7 (Please avoid writing new tests using video-test.js) --> | 7 <video id="video2"></video> |
8 <script src=video-test.js></script> | 8 <video id="video3"><source></source></video> |
9 <script src=media-file.js></script> | 9 <script> |
10 <script> | 10 async_test(function(t) { |
11 var video; | 11 assertVideoNoSrcNoLoad(document.getElementById("video1")); |
12 | 12 |
13 function testMovieWithNoSource(elem) | 13 var video = document.getElementById("video2"); |
14 { | 14 video.src = findMediaFile("video", "content/test"); |
15 video = elem; // Need it in a global for testExpected() to see
it. | 15 assertVideoSrcNoLoad(video); |
16 consoleWrite("<em>no 'src'.</em>"); | |
17 testExpected("video.networkState", HTMLMediaElement.prototype.NE
TWORK_EMPTY, "=="); | |
18 testExpected("video.readyState", HTMLMediaElement.prototype.HAVE
_NOTHING, "=="); | |
19 } | |
20 | 16 |
21 function testMovieWithSource(elem, hasLoaded, msg) | 17 var source = document.querySelector("source"); |
22 { | 18 source.src = findMediaFile("video", "content/test"); |
23 video = elem; // Need it in a global for testExpected() to see
it. | 19 assertVideoSrcNoLoad(document.getElementById("video3")); |
24 consoleWrite(msg); | |
25 if (hasLoaded) { | |
26 // The movie should have loaded at least to HAVE_CURRENT_DAT
A | |
27 testExpected("video.networkState", HTMLMediaElement.prototyp
e.NETWORK_NO_SOURCE, "!="); | |
28 testExpected("video.networkState", HTMLMediaElement.prototyp
e.NETWORK_IDLE, ">="); | |
29 testExpected("video.readyState", HTMLMediaElement.prototype.
HAVE_CURRENT_DATA, ">="); | |
30 } else { | |
31 testExpected("video.networkState", HTMLMediaElement.prototyp
e.NETWORK_NO_SOURCE, "=="); | |
32 testExpected("video.readyState", HTMLMediaElement.prototype.
HAVE_NOTHING, "=="); | |
33 } | |
34 } | |
35 | 20 |
36 function loaded() | 21 window.onload = t.step_func_done(function() { |
37 { | 22 assertVideoNoSrcNoLoad(document.getElementById("video1")); |
38 consoleWrite("<br><b>document <em>'load'<" + "/em> event handler
</b>"); | 23 assertVideoSrcLoad(document.getElementById("video2")); |
| 24 assertVideoSrcLoad(document.getElementById("video3")); |
| 25 }); |
39 | 26 |
40 testMovieWithNoSource(document.getElementById('video-1')); | 27 function assertVideoNoSrcNoLoad(video) { |
41 testMovieWithSource(document.getElementById('video-2'), true, "<
br><em>with 'src' attribute.</em>"); | 28 // Video should not load as there is no "src". |
42 testMovieWithSource(document.getElementById('video-3'), true, "<
br><em>with <source> element.</em>"); | 29 assert_equals(video.networkState, HTMLMediaElement.NETWORK_EMPTY); |
| 30 assert_equals(video.readyState, HTMLMediaElement.HAVE_NOTHING); |
| 31 } |
43 | 32 |
44 if (window.testRunner) | 33 function assertVideoSrcNoLoad(video) { |
45 testRunner.notifyDone(); | 34 // Video loading has just triggered. |
46 } | 35 assert_equals(video.networkState, HTMLMediaElement.NETWORK_NO_SOURCE); |
47 </script> | 36 assert_equals(video.readyState, HTMLMediaElement.HAVE_NOTHING); |
48 </head> | 37 } |
49 <body onload="loaded()"> | |
50 <video id="video-1"></video> | |
51 <video id="video-2"></video> | |
52 <video id="video-3"><source id="source-1"></video> | |
53 | 38 |
54 <p>Test the document's load event is delayed until a movie's meta data i
s available.</p> | 39 function assertVideoSrcLoad(video) { |
55 | 40 // The Video should have loaded at least to HAVE_CURRENT_DATA |
56 <script> | 41 assert_not_equals(video.networkState, HTMLMediaElement.NETWORK_NO_SOURCE
); |
57 consoleWrite("<br><b>inline script</b>"); | 42 assert_greater_than_equal(video.networkState, HTMLMediaElement.NETWORK_I
DLE); |
58 | 43 assert_greater_than_equal(video.readyState, HTMLMediaElement.HAVE_CURREN
T_DATA); |
59 testMovieWithNoSource(document.getElementById('video-1')); | 44 } |
60 | 45 }); |
61 video = document.getElementById('video-2'); | 46 </script> |
62 video.src = findMediaFile("video", "content/test"); | |
63 testMovieWithSource(video, false, "<br><em>with 'src' attribute.</em
>"); | |
64 | |
65 source = document.getElementById('source-1'); | |
66 source.src = findMediaFile("video", "content/test"); | |
67 testMovieWithSource(document.getElementById('video-3'), false, "<br>
<em>with <source> element.</em>"); | |
68 document.getElementById('video-3').load(); | |
69 </script> | |
70 | |
71 </body> | |
72 </html> | |
OLD | NEW |