test_bug313646.html (1562B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=313646 5 --> 6 <head> 7 <title>Test for Bug 313646</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=313646">Mozilla Bug 313646</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 313646 */ 21 22 // dom/base/test/bug313646.txt 23 24 SimpleTest.waitForExplicitFinish(); 25 26 var count1 = 0; 27 var count2 = 0; 28 var count3 = 0; 29 var count4 = 0; 30 var innerXHRDone = 0; 31 var req = new XMLHttpRequest(); 32 req.onreadystatechange = function(evt) { 33 ++window["count" + evt.target.readyState]; 34 35 // Do something a bit evil, start a new sync XHR in 36 // readyStateChange listener. 37 var innerXHR = new XMLHttpRequest(); 38 innerXHR.onreadystatechange = function(e) { 39 if (e.target.readyState == 4) { 40 ++innerXHRDone; 41 } 42 } 43 innerXHR.open("GET","bug313646.txt", false); 44 innerXHR.send(); 45 } 46 47 // make the synchronous request 48 req.open("GET","bug313646.txt", false); 49 req.send(); 50 51 ok(count1, "XMLHttpRequest wasn't in state 1"); 52 is(count2, 0, "XMLHttpRequest shouldn't have been in state 2"); 53 is(count3, 0, "XMLHttpRequest shouldn't have been in state 3"); 54 ok(count4, "XMLHttpRequest wasn't in state 4"); 55 is(innerXHRDone, 2, "There should have been 2 inner XHRs."); 56 57 SimpleTest.finish(); 58 59 </script> 60 </pre> 61 </body> 62 </html>