test_bug372964-2.html (1730B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=372964 5 --> 6 <head> 7 <title>Test for Bug 372964</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 10 </head> 11 <body> 12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=372964">Mozilla Bug 372964</a> 13 <p id="display"></p> 14 <div id="content" style="display: none"> 15 16 </div> 17 <pre id="test"> 18 <script class="testbody" type="text/javascript"> 19 20 /** Test for Bug 372964 */ 21 22 var eventCount = 0; 23 24 function runTest() { 25 var ifr = document.getElementsByTagName("iframe")[0]; 26 var xhr = new ifr.contentWindow.XMLHttpRequest(); 27 xhr.addEventListener("foo", ifr.contentWindow.listener); 28 var event = ifr.contentDocument.createEvent("Events"); 29 event.initEvent("foo", true, true); 30 xhr.dispatchEvent(event); 31 is(eventCount, 1, "Should have handled an event"); 32 ifr.contentDocument.open(); 33 ifr.contentDocument.close(); 34 event = ifr.contentDocument.createEvent("Events"); 35 event.initEvent("foo", true, true); 36 xhr.dispatchEvent(event); 37 is(eventCount, 2, 38 "Should have handled the event because open()/close() keep the active document"); 39 ifr.onload = function() { 40 event = ifr.contentDocument.createEvent("Events"); 41 event.initEvent("foo", true, true); 42 xhr.dispatchEvent(event); 43 is(eventCount, 2, 44 "Shouldn't have handled an event because the context has changed"); 45 SimpleTest.finish(); 46 }; 47 ifr.contentWindow.location = "about:blank"; 48 } 49 50 SimpleTest.waitForExplicitFinish(); 51 addLoadEvent(runTest); 52 53 </script> 54 </pre> 55 <iframe srcdoc="<script>function listener() { ++parent.eventCount; } </script>"></iframe> 56 </body> 57 </html>