diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit.html | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit.html b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit.html new file mode 100644 index 0000000000..6e71d958d6 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-remove-jssubmit.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#form-submission-2"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<iframe name="frame" id="frame"></iframe> +<form id="form" target="frame" action="does_not_exist.html"> + <input id="input" name="name" value="foo"> + <button id="submitbutton" type="submit">Submit</button> +</form> + +<script> +async_test(t => { + window.addEventListener('load', () => { + const frame = document.getElementById('frame'); + frame.addEventListener('load', t.step_func_done(() => { + const expected = (new URL("does_not_exist.html?name=bar", location.href)).href; + assert_equals(frame.contentWindow.location.href, expected); + })); + + const form = document.getElementById('form'); + const input = document.getElementById('input'); + const submitButton = document.getElementById('submitbutton'); + submitButton.addEventListener('click', event => { + submitButton.remove(); + form.submit(); + input.value = "bar"; + form.submit(); + input.value = "baz"; + }); + + submitButton.click(); + }); +}, 'This test will pass if a form navigation successfully occurs when clicking a <button type=submit> element with a onclick event handler which removes the button and then calls form.submit().'); +</script> |