| <html> |
| <head> |
| <script src="media-file.js"></script> |
| <script src="video-test.js"></script> |
| <script> |
| var playCalled = false; |
| |
| function canplaythrough() |
| { |
| consoleWrite(""); |
| if (!playCalled) |
| consoleWrite("*** FAIL: media data loaded before play() was called ***<br>"); |
| |
| endTest(); |
| } |
| |
| function play() |
| { |
| consoleWrite("** 250ms timer fired"); |
| testExpected("video.readyState", HTMLMediaElement.HAVE_CURRENT_DATA, "<"); |
| testExpected("video.buffered.length", 0, "=="); |
| playCalled = true; |
| run("video.play()"); |
| consoleWrite(""); |
| } |
| |
| function loadedmetadata() |
| { |
| testExpected("video.readyState", HTMLMediaElement.HAVE_CURRENT_DATA, "<"); |
| |
| // Wait 250ms before play()ing to make sure setting src did not kick off the load. |
| consoleWrite("** Pausing...<br>"); |
| setTimeout(play, 250); |
| consoleWrite(""); |
| } |
| |
| function start() |
| { |
| if (!window.internals) { |
| failTest('This test requires window.internals.'); |
| return; |
| } |
| |
| findMediaElement(); |
| consoleWrite("** setting video.src"); |
| video.src = findMediaFile("video", "content/test"); |
| |
| testExpected("video.preload", "auto"); |
| waitForEvent('loadedmetadata', loadedmetadata); |
| waitForEvent('canplaythrough', canplaythrough); |
| failTestIn(2000); |
| run("internals.setMediaElementRestrictions(video, 'AutoPreloadingNotPermitted')"); |
| consoleWrite(""); |
| } |
| </script> |
| </head> |
| |
| <body onload="start()"> |
| <video controls preload=auto></video> |
| <p>Test that "no auto-loading restriction" only allows metadata to load in spite of preload='auto'.</p> |
| </body> |
| </html> |