| <!doctype html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <form id="form" method="post" action=""> |
| <input type="submit" id="submit1"> |
| <input type="image" id="submit2"> |
| <button type="submit" id="submit3"> |
| </form> |
| <script> |
| promise_test(async () => { |
| await new Promise(r => window.onload = r); |
| |
| let sourceElement; |
| navigation.onnavigate = e => { |
| e.preventDefault(); |
| sourceElement = e.sourceElement; |
| }; |
| |
| form.requestSubmit(submit1); |
| await new Promise(r => navigation.onnavigateerror = r); |
| assert_equals(sourceElement, submit1); |
| |
| form.requestSubmit(submit2); |
| await new Promise(r => navigation.onnavigateerror = r); |
| assert_equals(sourceElement, submit2); |
| |
| form.requestSubmit(submit3); |
| await new Promise(r => navigation.onnavigateerror = r); |
| assert_equals(sourceElement, submit3); |
| |
| form.requestSubmit(); |
| await new Promise(r => navigation.onnavigateerror = r); |
| assert_equals(sourceElement, form); |
| }, "<form> requestSubmit() sets sourceElement"); |
| </script> |