summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/XMLHttpRequest/event-readystatechange-loaded.htm
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/XMLHttpRequest/event-readystatechange-loaded.htm')
-rw-r--r--testing/web-platform/tests/XMLHttpRequest/event-readystatechange-loaded.htm38
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/web-platform/tests/XMLHttpRequest/event-readystatechange-loaded.htm b/testing/web-platform/tests/XMLHttpRequest/event-readystatechange-loaded.htm
new file mode 100644
index 000000000..4368f8c9a
--- /dev/null
+++ b/testing/web-platform/tests/XMLHttpRequest/event-readystatechange-loaded.htm
@@ -0,0 +1,38 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>XMLHttpRequest: the LOADING state change should only happen once</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[10]/dt[1]">
+ <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following::dt[7] following::a[contains(@href,'#switch-loading')]/..">
+ <link rel="help" href="https://xhr.spec.whatwg.org/#switch-loading" data-tested-assertations="following::ol[1]/li[1] following::ol[1]/li[2]">
+</head>
+
+<div id="log"></div>
+
+<script>
+
+var test = async_test();
+
+test.step(function() {
+ var client = new XMLHttpRequest();
+ var countedLoading = 0;
+
+ client.onreadystatechange = test.step_func(function() {
+ if (client.readyState === 3) {
+ countedLoading += 1;
+ }
+
+ if (client.readyState === 4) {
+ assert_equals(countedLoading, 1, "LOADING state change may only be emitted once");
+
+ test.done();
+ }
+ });
+
+ client.open("GET", "resources/trickle.py?count=10"); // default timeout in trickle.py is 1/2 sec, so this request will take 5 seconds to complete
+ client.send(null);
+});
+</script>