<!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>
