<!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>