<!DOCTYPE HTML>
<html>
  <!--
       https://bugzilla.mozilla.org/show_bug.cgi?id=1250148
     -->
  <head>
    <meta charset="utf-8">
    <title>Test for Bug 1250148 - FormData and HTML submission compatibility</title>
    <script src="/tests/SimpleTest/SimpleTest.js"></script>
    <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  </head>
  <body>
    <form id="form" enctype="multipart/form-data"><input type="file" name="test" /></form>
    <script type="application/javascript">

SimpleTest.waitForExplicitFinish();

var f = document.getElementById('form');
var fd = new FormData(f);
var get = fd.get("test");
ok(get instanceof File, "We want a File object.");
is(get.name, "", "We want a File with an empty name.");
is(
  get.type,
  "application/octet-stream",
  "We want a File with type application/octet-stream."
);
is(get.size, 0, "We want a File with an empty body.");

var getAll = fd.getAll("test");
ok(Array.isArray(getAll), "We want an array with 1 empty File.");
is(getAll.length, 1, "We want an array with 1 empty File.");
is(
  getAll[0],
  get,
  "We want the File returned from getAll to be that returned from get."
);

var xhr = new XMLHttpRequest();
xhr.open("POST", "file_bug1250148.sjs", true);
xhr.onload = function() {
  var obj = JSON.parse(xhr.responseText);

  ok(Array.isArray(obj), "XHR response is an array.");
  is(obj.length, 1, "XHR response array contains 1 result.");

  ok("headers" in obj[0], "XHR response has an header value");

  ok("Content-Disposition" in obj[0].headers, "XHR response.headers array has a Content-Desposition value");
  is(obj[0].headers["Content-Disposition"], "form-data; name=\"test\"; filename=\"\"", "Correct Content-Disposition");

  ok("Content-Type" in obj[0].headers, "XHR response.headers array has a Content-Type value");
  is(obj[0].headers["Content-Type"], "application/octet-stream", "Correct Content-Type");

  ok("body" in obj[0], "XHR response has a body value");
  is(obj[0].body, "", "Correct body value");

  SimpleTest.finish();
}
xhr.send(fd);

    </script>
  </body>
</html>
