1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/media/test/test_referer.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,87 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<!-- 1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=584480 1.8 +--> 1.9 +<head> 1.10 + <title>Test for Bug 584480</title> 1.11 + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.12 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 1.13 + <script type="text/javascript" src="manifest.js"></script> 1.14 +</head> 1.15 +<body> 1.16 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=584480">Mozilla Bug </a> 1.17 +<p id="display"></p> 1.18 +<div id="content" style="display: none"> 1.19 + 1.20 +</div> 1.21 +<pre id="test"> 1.22 +<script type="application/javascript"> 1.23 +var media = []; 1.24 + 1.25 +function checkComplete() { 1.26 + for (var i=0; i<media.length; ++i) { 1.27 + if (!media[i]._complete) { 1.28 + return; 1.29 + } 1.30 + } 1.31 + 1.32 + SimpleTest.finish(); 1.33 +} 1.34 + 1.35 +function removeNode(v) { 1.36 + v.removeEventListener("error", loadError, false); 1.37 + v.removeEventListener("loadedmetadata", loadedMetadata, false); 1.38 + v.remove(); 1.39 + v.src = ""; 1.40 +} 1.41 + 1.42 +function loadError(evt) { 1.43 + // If no referer is sent then the sjs returns an error 1.44 + ok(false, "check referer is sent with media request"); 1.45 + evt.target._complete = true; 1.46 + checkComplete(); 1.47 + removeNode(evt.target); 1.48 +} 1.49 + 1.50 +function loadedMetadata(evt) { 1.51 + // If a referer is sent then the sjs returns a valid media 1.52 + ok(true, "check referer is sent with media request"); 1.53 + evt.target._complete = true; 1.54 + checkComplete(); 1.55 + removeNode(evt.target); 1.56 +} 1.57 + 1.58 +// Create all media objects. 1.59 +for (var i=0; i<gSmallTests.length; ++i) { 1.60 + var test = gSmallTests[i]; 1.61 + var type; 1.62 + if (/^video/.test(test.type)) { 1.63 + type = "video" 1.64 + } else { 1.65 + type = "audio"; 1.66 + } 1.67 + var v = document.createElement(type); 1.68 + if (!v.canPlayType(test.type)) { 1.69 + continue; 1.70 + } 1.71 + // ensure metadata is loaded for default preload is none on b2g 1.72 + v.preload = "metadata"; 1.73 + v._complete = false; 1.74 + v.addEventListener("error", loadError, false); 1.75 + v.addEventListener("loadedmetadata", loadedMetadata, false); 1.76 + v.src = 'referer.sjs?name=' + test.name + '&type=' + test.type; 1.77 + document.body.appendChild(v); // Will start load. 1.78 + media.push(v); 1.79 +} 1.80 + 1.81 +if (media.length == 0) { 1.82 + todo(false, "No types supported"); 1.83 +} else { 1.84 + SimpleTest.waitForExplicitFinish(); 1.85 +} 1.86 +</script> 1.87 +</pre> 1.88 + 1.89 +</body> 1.90 +</html>