https://github.com/web-platform-tests/wpt
Raw File
Tip revision: a3e01e5be250ecebeeefc5e5faf65a8a47f89e64 authored by James Graham on 13 February 2017, 10:16:48 UTC
Pass --enable-experimental-web-platform-features to Chrome instability checker
Tip revision: a3e01e5
event-readystatechange-loaded.htm
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>XMLHttpRequest: the LOADING state change may be emitted multiple times</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, 10, "LOADING state change may be emitted multiple times");

            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>
back to top