test_null_baseuri.html (2159B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Bug 1121857 - document.baseURI should not get blocked if baseURI is null</title> 5 <!-- Including SimpleTest.js so we can use waitForExplicitFinish !--> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 </head> 9 <body> 10 <p id="display"></p> 11 <div id="content" style="visibility: hidden"> 12 <iframe style="width:100%;" id="testframe"></iframe> 13 </div> 14 15 <script class="testbody" type="text/javascript"> 16 17 /* Description of the test: 18 * Creating a 'base' element and appending that element 19 * to document.head. After setting baseTag.href and finally 20 * removing the created element from the head, the baseURI 21 * should be the inital baseURI of the page. 22 */ 23 24 const TOTAL_TESTS = 3; 25 var test_counter = 0; 26 27 // a postMessage handler to communicate the results back to the parent. 28 window.addEventListener("message", receiveMessage); 29 30 function receiveMessage(event) 31 { 32 // make sure the base-uri before and after the test is the initial base uri of the page 33 if (event.data.test === "initial_base_uri") { 34 ok(event.data.baseURI.startsWith("http://mochi.test"), "baseURI should be 'http://mochi.test'!"); 35 } 36 // check that appending the child and setting the base tag actually affects the base-uri 37 else if (event.data.test === "changed_base_uri") { 38 ok(event.data.baseURI === "http://www.base-tag.com/", "baseURI should be 'http://www.base-tag.com'!"); 39 } 40 // we shouldn't get here, but just in case, throw an error. 41 else { 42 ok(false, "unrecognized test!"); 43 } 44 45 if (++test_counter === TOTAL_TESTS) { 46 SimpleTest.finish(); 47 } 48 } 49 50 function startTest() { 51 var src = "file_testserver.sjs"; 52 // append the file that should be served 53 src += "?file=" + escape("tests/dom/security/test/csp/file_null_baseuri.html"); 54 // using 'unsafe-inline' since we load the testcase using an inline script 55 // within file_null_baseuri.html 56 src += "&csp=" + escape("default-src * 'unsafe-inline';"); 57 58 document.getElementById("testframe").src = src; 59 } 60 61 62 SimpleTest.waitForExplicitFinish(); 63 startTest(); 64 65 </script> 66 </body> 67 </html>