diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-children.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-children.html | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-children.html b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-children.html new file mode 100644 index 0000000000..9cec2bd875 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-submit-children.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<iframe name=frame1 id=frame1></iframe> +<form id=form1 target=frame1 action="does_not_exist.html"> + <div id=parentdiv> + <button id=submitbutton type=submit> + <div id=buttonchilddiv> + button child div text + </div> + </button> + </div> +</form> + +<script> +async_test(t => { + window.addEventListener('load', () => { + const frame1 = document.getElementById('frame1'); + frame1.addEventListener('load', t.step_func_done(() => {})); + + const submitButton = document.getElementById('submitbutton'); + submitButton.addEventListener('click', event => { + event.preventDefault(); + const form = document.getElementById('form1'); + form.submit(); + }); + + const buttonChildDiv = document.getElementById('buttonchilddiv'); + buttonChildDiv.click(); + }); +}, 'This test will pass if a form navigation successfully occurs when clicking a child element of a <button type=submit> element with a onclick event handler which prevents the default form submission and manually calls form.submit() instead.'); + +async_test(t => { + window.addEventListener('load', () => { + const frame1 = document.getElementById('frame1'); + frame1.addEventListener('load', t.step_func_done(() => {})); + + const submitButton = document.getElementById('submitbutton'); + submitButton.addEventListener('click', event => { + const form = document.getElementById('form1'); + form.submit(); + }); + + const parentDiv = document.getElementById("parentdiv"); + parentDiv.addEventListener("click", event => { + // event was already handled for the button + // but it's activation behavior won't have run yet and we prevent that now + event.preventDefault(); + }) + + submitButton.click(); + }); +}, "clicking a submit button, which calls form.submit and has a parent calling e.prevenDefault() should still submit the form"); +</script> |