https://github.com/web-platform-tests/wpt
Raw File
Tip revision: add926c9ab105c2ae283dbd4045bc0918add1d71 authored by Anne van Kesteren on 27 August 2018, 16:32:58 UTC
add more tests
Tip revision: add926c
constructing-form-data-set.html
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="help" href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#constructing-the-form-data-set">
<link ref="help" href="https://xhr.spec.whatwg.org/#dom-formdata">
<link rel="help" href="https://fetch.spec.whatwg.org/#concept-bodyinit-extract">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<iframe name="frame1" id="frame1"></iframe>
<form accept-charset="iso-8859-1" target="frame1" action="/common/blank.html" id="form1">
  <input type="hidden" name="_charset_">
</form>

<iframe name="frame2" id="frame2"></iframe>
<form target="frame2" action="/common/blank.html" id="form2">
  <input type="text" name="foo">
  <button type="close" name="close" value="true">close</button>
  <button type="button" name="button" value="true">button</button>
  <button type="reset" name="reset" value="true">reset</button>
  <button type="submit" name="submit" value="true">submit</button>
</form>

<script>

const form1 = document.getElementById('form1'),
      form2 = document.getElementById('form2'),
      frame1 = document.getElementById('frame1'),
      frame2 = document.getElementById('frame2');

test(() => {
  const formData = new FormData(form1);
  assert_equals(formData.get('_charset_'), 'UTF-8');
}, 'FormData constructor always produces UTF-8 _charset_ value.');

async_test(t => {
  frame1.onload = t.step_func_done(() => {
    assert_not_equals(frame1.contentDocument.URL.indexOf('_charset_=windows-1252'), -1);
  });
  form1.submit();
}, '_charset_ control sets the expected encoding name.');

async_test(t => {
  frame2.onload = t.step_func_done(() => {
    assert_equals(frame2.contentDocument.URL.split("?")[1], 'foo=&submit=true');
  });
  form2.submit.click();
}, 'The button cannot be setted if it is not a submitter.');

</script>
back to top