test_media_sniffer.html (1895B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: sniffing</title> 5 <meta charset='utf-8'> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 <script type="text/javascript" src="manifest.js"></script> 9 </head> 10 <body> 11 <pre id="test"> 12 <script class="testbody" type="text/javascript"> 13 var manager = new MediaTestManager; 14 15 function finish_test(element) { 16 element.removeEventListener("error", onerror); 17 removeNodeAndSource(element); 18 manager.finished(element.token); 19 } 20 21 function onmetadataloaded(e) { 22 var t = e.target; 23 ++t.srcIndex; 24 ok(true, "The media loads when loaded via " + t.src); 25 if (t.srcIndex < t.srcList.length) { 26 t.src = t.srcList[t.srcIndex]; 27 } else { 28 finish_test(t); 29 } 30 } 31 32 function onerror(e) { 33 var t = e.target; 34 t.removeEventListener('error', onerror); 35 ok(false, "The media could not be loaded." + t.src + "\n"); 36 finish_test(t); 37 } 38 39 function startTest(test, token) { 40 var elemType = /^audio/.test(test.type) ? "audio" : "video"; 41 var element = document.createElement(elemType); 42 // This .sjs file serve the media file without Content-Type header, or with a 43 // specific Content-Type header. 44 var baseSrc = 'contentType.sjs?file=' + test.name; 45 element.srcList = [ 46 baseSrc + "&nomime", 47 baseSrc + "&type=application/octet-stream", 48 baseSrc + "&type=audio/wav", 49 baseSrc + "&type=text/html", 50 baseSrc + "&type=absolute_nonsense" 51 ]; 52 element.srcIndex = 0; 53 element.src = element.srcList[element.srcIndex]; 54 element.token = token; 55 element.controls = true; 56 element.preload = "metadata"; 57 document.body.appendChild(element); 58 manager.started(token); 59 element.addEventListener("loadedmetadata", onmetadataloaded); 60 element.addEventListener("error", onerror); 61 } 62 63 manager.runTests(gSnifferTests, startTest); 64 </script> 65 </pre> 66 </body> 67 </html>