<!DOCTYPE html>
<html>
<head>
    <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[4] following::ol[1]/li[4]/dl[1]/dd[5]" />
    <link rel="help" href="https://xhr.spec.whatwg.org/#interface-formdata" data-tested-assertations="following::*[contains(@id,'dom-formdata')]/following::ol[1]/li[1] following::*[contains(@id,'dom-formdata')]/following::ol[1]/li[3] following::*[contains(@id,'dom-formdata-append')]/following::ul[1]/li[1] following::*[contains(@id,'dom-formdata-append')]/following::ul[1]/li[2]" />
    <link rel="help" href="https://xhr.spec.whatwg.org/#the-response-attribute"  data-tested-assertations="following::ol[1]/li[3]"/>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <title>XmlHttpRequest: The send() method: FormData data</title>
</head>

<body>
    <div id="log"></div>

    <script type="text/javascript">
        var test = async_test();

        test.step(function()
        {
            var xhr = new XMLHttpRequest();
            var form = new FormData();
            form.append("id", "0");
            form.append("value", "zero");

            xhr.onreadystatechange = function()
            {
                test.step(function ()
                {
                    if (xhr.readyState == 4)
                    {
                        assert_equals(xhr.status, 200);
                        assert_equals(xhr.response, "id:0;value:zero;");
                        test.done();
                    }
                });
            };

            xhr.open("POST", "./resources/form.py", true);
            xhr.send(form);
        });
    </script>
</body>
</html>
