| <!doctype html> |
| <html> |
| <head> |
| <script src=media-file.js></script> |
| <script src=video-test.js></script> |
| </head> |
| <body> |
| <video controls></video> |
| <p>Test to ensure that a media file blocked by the resource load delegate generates an error |
| and does not block the document's 'load' event.</p> |
| |
| <script> |
| var events = []; |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.setWillSendRequestReturnsNull(true); |
| } else |
| consoleWrite("<b><em>This test can only be run in DumpRenderTree!</em></b><br><br>"); |
| |
| function finish() |
| { |
| consoleWrite("EVENT(loadstart)"); |
| consoleWrite("EVENT(error)"); |
| testExpected("video.error", null, "!="); |
| testExpected("video.error.code", MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED); |
| testExpected("video.networkState", HTMLMediaElement.NETWORK_NO_SOURCE); |
| consoleWrite(""); |
| endTest(); |
| }; |
| |
| function handleEvent(evt) |
| { |
| // Wait until all three events we listen for have been received before testing. |
| // Media events are dispatched asynchronously so we can't assume they will fire |
| // before window.onload. |
| if (events.indexOf(evt.type) == -1) |
| events.push(evt.type); |
| if (events.length == 3) |
| finish(); |
| } |
| |
| findMediaElement(); |
| |
| window.addEventListener('load', handleEvent); |
| video.addEventListener('loadstart', handleEvent); |
| video.addEventListener('error', handleEvent); |
| |
| testExpected("video.networkState", HTMLMediaElement.NETWORK_EMPTY); |
| consoleWrite(""); |
| var mediaFile = findMediaFile("video", "content/test"); |
| video.src = mediaFile; |
| </script> |
| |
| </body> |
| </html> |