test_referer.html (2143B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=584480 5 --> 6 <head> 7 <title>Test for Bug 584480</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 10 <script type="text/javascript" src="manifest.js"></script> 11 </head> 12 <body> 13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=584480">Mozilla Bug </a> 14 <p id="display"></p> 15 <div id="content" style="display: none"> 16 17 </div> 18 <pre id="test"> 19 <script type="application/javascript"> 20 var media = []; 21 22 function checkComplete() { 23 for (var i=0; i<media.length; ++i) { 24 if (!media[i]._complete) { 25 return; 26 } 27 } 28 29 SimpleTest.finish(); 30 } 31 32 function removeNode(v) { 33 v.removeEventListener("error", loadError); 34 v.removeEventListener("loadedmetadata", loadedMetadata); 35 v.remove(); 36 v.src = ""; 37 } 38 39 function loadError(evt) { 40 // If no referer is sent then the sjs returns an error 41 ok(false, "check referer is sent with media request"); 42 evt.target._complete = true; 43 checkComplete(); 44 removeNode(evt.target); 45 } 46 47 function loadedMetadata(evt) { 48 // If a referer is sent then the sjs returns a valid media 49 ok(true, "check referer is sent with media request"); 50 evt.target._complete = true; 51 checkComplete(); 52 removeNode(evt.target); 53 } 54 55 // Create all media objects. 56 for (var i=0; i<gSmallTests.length; ++i) { 57 var test = gSmallTests[i]; 58 var type; 59 if (/^video/.test(test.type)) { 60 type = "video" 61 } else { 62 type = "audio"; 63 } 64 var v = document.createElement(type); 65 if (!v.canPlayType(test.type)) { 66 continue; 67 } 68 // ensure metadata is loaded for default preload is none on b2g 69 v.preload = "metadata"; 70 v.autoplay = "true"; 71 v._complete = false; 72 v.addEventListener("error", loadError); 73 v.addEventListener("loadedmetadata", loadedMetadata); 74 v.src = 'referer.sjs?name=' + test.name + '&type=' + test.type; 75 document.body.appendChild(v); // Will start load. 76 media.push(v); 77 } 78 79 if (!media.length) { 80 todo(false, "No types supported"); 81 } else { 82 SimpleTest.waitForExplicitFinish(); 83 } 84 </script> 85 </pre> 86 87 </body> 88 </html>