<!doctype html> <html> <head> <title>XMLHttpRequest: implements EventTarget</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <link rel="help" href="https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget" data-tested-assertations=".." /> <!-- Obviously, most of the stuff actually being tested here is covered in the DOM events spec, not in the XHR spec --> </head> <body> <div id="log"></div> <script> var test = async_test(), x = null, expected = ["a1", "b1", "c1", "a2", "b2", "c2", "a3", "c3", "a4", "c4"], result = [] function callback(e) { result.push("b" + x.readyState) test.step(function() { if(x.readyState == 3) assert_unreached() }) } test.step(function() { x = new XMLHttpRequest() x.onreadystatechange = function() { test.step(function() { result.push("a" + x.readyState) }) } x.addEventListener("readystatechange", callback, false) x.addEventListener("readystatechange", function() { test.step(function() { result.push("c" + x.readyState) if(x.readyState == 2) x.removeEventListener("readystatechange", callback, false) if(x.readyState == 4) { assert_array_equals(result, expected) test.done() } }) }, false) x.open("GET", "folder.txt") x.send(null) }) </script> </body> </html>