diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/html/semantics/forms/form-submission-0/form-double-submit-preventdefault.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/html/semantics/forms/form-submission-0/form-double-submit-preventdefault.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/forms/form-submission-0/form-double-submit-preventdefault.html | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/forms/form-submission-0/form-double-submit-preventdefault.html b/testing/web-platform/tests/html/semantics/forms/form-submission-0/form-double-submit-preventdefault.html new file mode 100644 index 0000000000..b63b78916c --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/form-submission-0/form-double-submit-preventdefault.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#form-submission-algorithm"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="./resources/targetted-form.js"></script> +<!-- + The submit() in event handler should *not* get superseded in this case by the + default action submit(), because event handler here calls preventDefault(). +--> +<body> +<script> +promise_test(async () => { + let form = populateForm('<input name=n1 value=v1><input type=submit>'); + let iframe = form.previousSibling; + let input = form.querySelector("input[name=n1]"); + let submitter = form.querySelector("input[type=submit]"); + form.addEventListener('click', () => { + input.value = 'v2'; + form.submit(); + input.value = 'v3'; + form.submit(); + input.value = 'v4'; + }); + form.addEventListener('submit', (e) => { + e.preventDefault(); + input.value = 'v5'; + form.submit(); + input.value = 'v6'; + form.submit(); + input.value = 'v7'; + }); + submitter.click(); + await loadPromise(iframe); + assert_equals(getParamValue(iframe, "n1"), "v6"); +}, 'PreventDefaulting form onsubmit should allow submit() to succeed'); + +promise_test(async () => { + let form = populateForm('<input type=submit><input name=n1 value=v1>'); + let iframe = form.previousSibling; + let input = form['n1']; + let submitter = form.querySelector('input[type=submit]'); + form.addEventListener('submit', e => { + e.preventDefault(); + input.value = 'v2'; + form.submit(); + + input.value = 'v3'; + form.remove(); + form.submit(); + document.body.insertBefore(form, iframe.nextSibling); + input.value = 'v4'; + }); + submitter.click(); + await loadPromise(iframe); + assert_equals(getParamValue(iframe, "n1"), "v2"); +}, 'PreventDefaulting form onsubmit should allow submit() to succeed and the second submit() which is invalid should not supersede first one'); +</script> +</body> |