test_meta_refresh_referrer.html (2374B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta name='referrer' content='origin'> 6 <title>Test for referrer of meta refresh request when network.http.referer.sendFromRefresh is disabled.</title> 7 <script src="/tests/SimpleTest/SimpleTest.js"></script> 8 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 9 10 <script type="application/javascript"> 11 12 SimpleTest.waitForExplicitFinish(); 13 var advance = function() { tests.next(); }; 14 15 /** 16 * Listen for notifications from the child. 17 */ 18 window.addEventListener("message", function(event) { 19 if (event.data == "childLoadComplete") { 20 advance(); 21 } 22 }); 23 24 var tests = (function*() { 25 var iframe = document.getElementById("testframe"); 26 27 // reset counter to make the test pass --repeat test 28 yield reset(); 29 30 // load the test frame 31 yield iframe.src = 32 '/tests/dom/base/test/iframe_meta_refresh.sjs?action=test&load=refresh'; 33 34 // check the test result 35 yield checkResults(referrerHeaderChecker); 36 37 // complete. 38 SimpleTest.finish(); 39 })(); 40 41 function referrerHeaderChecker(results) { 42 var expected = {'count': 2, 'referrers': ['origin', 'none']}; 43 is(results.count, expected.count, "Correct number of referrer header"); 44 is(results.referrers[0], expected.referrers[0], "Correct load referrer header"); 45 is(results.referrers[1], expected.referrers[1], "Correct refresh referrer header"); 46 47 advance(); 48 } 49 50 /** 51 * helper to perform an XHR. 52 */ 53 function doXHR(url, onSuccess, onFail) { 54 var xhr = new XMLHttpRequest(); 55 xhr.onload = function () { 56 if (xhr.status == 200) { 57 onSuccess(xhr); 58 } else { 59 onFail(xhr); 60 } 61 }; 62 xhr.open('GET', url, true); 63 xhr.send(null); 64 } 65 66 /** 67 * Grabs the results via XHR and passes to checker. 68 */ 69 function checkResults(checker) { 70 doXHR('/tests/dom/base/test/iframe_meta_refresh.sjs?action=results', 71 function(xhr) { 72 checker(JSON.parse(xhr.responseText)); 73 }, 74 function(xhr) { 75 ok(false, "Can't get results from server."); 76 }); 77 } 78 79 /** 80 * Reset the counter. 81 */ 82 function reset() { 83 doXHR('/tests/dom/base/test/iframe_meta_refresh.sjs?action=reset', 84 advance, 85 function(xhr) { 86 ok(false, "error in reset state"); 87 SimpleTest.finish(); 88 }); 89 } 90 91 </script> 92 </head> 93 94 <body onload="tests.next();"> 95 <iframe id="testframe"></iframe> 96 97 </body> 98 </html></html>