| <!DOCTYPE html> | |
| <!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). --> | |
| <html> | |
| <head> | |
| <title>Various MediaSource HTMLMediaElement preload tests.</title> | |
| <link rel="author" title="Matthew Wolenetz" href="mailto:wolenetz@chromium.org"/> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| </head> | |
| <body> | |
| <script> | |
| function attachWithPreloadTest(preload) | |
| { | |
| async_test(function(test) | |
| { | |
| var video = document.createElement("video"); | |
| var mediaSource = new MediaSource(); | |
| var mediaSourceURL = URL.createObjectURL(mediaSource); | |
| video.preload = preload; | |
| document.body.appendChild(video); | |
| test.add_cleanup(function() { | |
| document.body.removeChild(video); | |
| URL.revokeObjectURL(mediaSourceURL); | |
| }); | |
| mediaSource.addEventListener("sourceopen", test.step_func_done()); | |
| video.src = mediaSourceURL; | |
| }, "sourceopen occurs with element preload=" + preload); | |
| } | |
| attachWithPreloadTest("auto"); | |
| attachWithPreloadTest("metadata"); | |
| attachWithPreloadTest("none"); | |
| function errorWithPreloadTest(preload, bogusURLStyle) | |
| { | |
| async_test(function(test) | |
| { | |
| var mediaSource = new MediaSource(); | |
| var bogusURL = URL.createObjectURL(mediaSource); | |
| if (bogusURLStyle == "corrupted") { | |
| var goodURL = bogusURL; | |
| test.add_cleanup(function() { URL.revokeObjectURL(goodURL); }); | |
| bogusURL += "0"; | |
| } else if (bogusURLStyle == "revoked") { | |
| URL.revokeObjectURL(bogusURL); | |
| } else { | |
| assert_unreached("invalid case"); | |
| } | |
| var video = document.createElement("video"); | |
| video.preload = preload; | |
| document.body.appendChild(video); | |
| test.add_cleanup(function() { document.body.removeChild(video); }); | |
| mediaSource.addEventListener("sourceopen", test.unreached_func("'sourceopen' should not be fired")); | |
| video.onerror = test.step_func_done(); | |
| video.src = bogusURL; | |
| }, "error occurs with bogus blob URL (" + bogusURLStyle + " MediaSource object URL) and element preload=" + preload); | |
| } | |
| errorWithPreloadTest("auto", "revoked"); | |
| errorWithPreloadTest("metadata", "revoked"); | |
| errorWithPreloadTest("auto", "corrupted"); | |
| errorWithPreloadTest("metadata", "corrupted"); | |
| </script> | |
| </body> | |
| </html> |