mediasource-preload.html (3098B)
1 <!DOCTYPE html> 2 <!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). --> 3 <html> 4 <head> 5 <title>Various MediaSource HTMLMediaElement preload tests.</title> 6 <link rel="author" title="Matthew Wolenetz" href="mailto:wolenetz@chromium.org"/> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 </head> 10 <body> 11 <script> 12 function attachWithPreloadTest(preload) 13 { 14 async_test(function(test) 15 { 16 var video = document.createElement("video"); 17 var mediaSource = new MediaSource(); 18 var mediaSourceURL = URL.createObjectURL(mediaSource); 19 20 video.preload = preload; 21 document.body.appendChild(video); 22 test.add_cleanup(function() { 23 document.body.removeChild(video); 24 URL.revokeObjectURL(mediaSourceURL); 25 }); 26 27 mediaSource.addEventListener("sourceopen", test.step_func_done()); 28 video.src = mediaSourceURL; 29 }, "sourceopen occurs with element preload=" + preload); 30 } 31 32 attachWithPreloadTest("auto"); 33 attachWithPreloadTest("metadata"); 34 attachWithPreloadTest("none"); 35 36 function errorWithPreloadTest(preload, bogusURLStyle) 37 { 38 async_test(function(test) 39 { 40 var mediaSource = new MediaSource(); 41 var bogusURL = URL.createObjectURL(mediaSource); 42 43 if (bogusURLStyle == "corrupted") { 44 var goodURL = bogusURL; 45 test.add_cleanup(function() { URL.revokeObjectURL(goodURL); }); 46 bogusURL += "0"; 47 } else if (bogusURLStyle == "revoked") { 48 URL.revokeObjectURL(bogusURL); 49 } else { 50 assert_unreached("invalid case"); 51 } 52 53 var video = document.createElement("video"); 54 video.preload = preload; 55 document.body.appendChild(video); 56 test.add_cleanup(function() { document.body.removeChild(video); }); 57 58 mediaSource.addEventListener("sourceopen", test.unreached_func("'sourceopen' should not be fired")); 59 60 video.onerror = test.step_func_done(); 61 video.src = bogusURL; 62 }, "error occurs with bogus blob URL (" + bogusURLStyle + " MediaSource object URL) and element preload=" + preload); 63 } 64 65 errorWithPreloadTest("auto", "revoked"); 66 errorWithPreloadTest("metadata", "revoked"); 67 68 errorWithPreloadTest("auto", "corrupted"); 69 errorWithPreloadTest("metadata", "corrupted"); 70 </script> 71 </body> 72 </html>