content/media/test/test_media_sniffer.html

Fri, 16 Jan 2015 04:50:19 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 04:50:19 +0100
branch
TOR_BUG_9701
changeset 13
44a2da4a2ab2
permissions
-rw-r--r--

Replace accessor implementation with direct member state manipulation, by
request https://trac.torproject.org/projects/tor/ticket/9701#comment:32

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

mercurial