diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/invokers')
5 files changed, 226 insertions, 31 deletions
diff --git a/testing/web-platform/tests/html/semantics/invokers/interesttarget-anchor-event-dispatch.tentative.html b/testing/web-platform/tests/html/semantics/invokers/interesttarget-anchor-event-dispatch.tentative.html new file mode 100644 index 0000000000..b5a481ae08 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/invokers/interesttarget-anchor-event-dispatch.tentative.html @@ -0,0 +1,47 @@ +<!doctype html> +<meta charset="utf-8" /> +<meta name="author" title="Keith Cirkel" href="mailto:keithamus@github.com" /> +<meta name="author" title="Luke Warlow" href="mailto:lwarlow@igalia.com" /> +<link rel="help" href="https://open-ui.org/components/invokers.explainer/" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="resources/invoker-utils.js"></script> + +<div id="interestee"></div> +<a href="/" id="interestanchor" interesttarget="interestee">Anchor</a> +<button id="otherbutton">Other Button</button> + +<script> + promise_test(async function (t) { + t.add_cleanup(() => otherbutton.focus()); + let event = null; + interestee.addEventListener("interest", (e) => (event = e), { once: true }); + interestanchor.focus(); + assert_true(event instanceof InterestEvent, "event is InterestEvent"); + assert_equals(event.type, "interest", "type"); + assert_equals(event.bubbles, false, "bubbles"); + assert_equals(event.composed, true, "composed"); + assert_equals(event.isTrusted, true, "isTrusted"); + assert_equals(event.action, "", "action"); + assert_equals(event.target, interestee, "target"); + assert_equals(event.invoker, interestanchor, "invoker"); + }, "InterestEvent dispatches on anchor focus"); + + promise_test(async function (t) { + t.add_cleanup(() => otherbutton.focus()); + let event = null; + interestee.addEventListener("interest", (e) => (event = e), { once: true }); + await hoverOver(interestanchor); + assert_true(event instanceof InterestEvent, "event is InterestEvent"); + assert_equals(event.type, "interest", "type"); + assert_equals(event.bubbles, false, "bubbles"); + assert_equals(event.composed, true, "composed"); + assert_equals(event.isTrusted, true, "isTrusted"); + assert_equals(event.action, "", "action"); + assert_equals(event.target, interestee, "target"); + assert_equals(event.invoker, interestanchor, "invoker"); + }, "InterestEvent dispatches on anchor hover"); +</script> diff --git a/testing/web-platform/tests/html/semantics/invokers/interesttarget-area-event-dispatch.tentative.html b/testing/web-platform/tests/html/semantics/invokers/interesttarget-area-event-dispatch.tentative.html new file mode 100644 index 0000000000..358acbb73a --- /dev/null +++ b/testing/web-platform/tests/html/semantics/invokers/interesttarget-area-event-dispatch.tentative.html @@ -0,0 +1,50 @@ +<!doctype html> +<meta charset="utf-8" /> +<meta name="author" title="Keith Cirkel" href="mailto:keithamus@github.com" /> +<meta name="author" title="Luke Warlow" href="mailto:lwarlow@igalia.com" /> +<link rel="help" href="https://open-ui.org/components/invokers.explainer/" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="resources/invoker-utils.js"></script> + +<div id="interestee"></div> +<map id="map"> + <area href="/" shape="default" id="interestarea" interesttarget="interestee"> +</map> +<img src="/images/blue.png" usemap="#map"> +<button id="otherbutton">Other Button</button> + +<script> + promise_test(async function (t) { + t.add_cleanup(() => otherbutton.focus()); + let event = null; + interestee.addEventListener("interest", (e) => (event = e), { once: true }); + interestarea.focus(); + assert_true(event instanceof InterestEvent, "event is InterestEvent"); + assert_equals(event.type, "interest", "type"); + assert_equals(event.bubbles, false, "bubbles"); + assert_equals(event.composed, true, "composed"); + assert_equals(event.isTrusted, true, "isTrusted"); + assert_equals(event.action, "", "action"); + assert_equals(event.target, interestee, "target"); + assert_equals(event.invoker, interestarea, "invoker"); + }, "InterestEvent dispatches on area focus"); + + promise_test(async function (t) { + t.add_cleanup(() => otherbutton.focus()); + let event = null; + interestee.addEventListener("interest", (e) => (event = e), { once: true }); + await hoverOver(interestarea); + assert_true(event instanceof InterestEvent, "event is InterestEvent"); + assert_equals(event.type, "interest", "type"); + assert_equals(event.bubbles, false, "bubbles"); + assert_equals(event.composed, true, "composed"); + assert_equals(event.isTrusted, true, "isTrusted"); + assert_equals(event.action, "", "action"); + assert_equals(event.target, interestee, "target"); + assert_equals(event.invoker, interestarea, "invoker"); + }, "InterestEvent dispatches on area hover"); +</script> diff --git a/testing/web-platform/tests/html/semantics/invokers/interesttarget-button-event-dispatch.tentative.html b/testing/web-platform/tests/html/semantics/invokers/interesttarget-button-event-dispatch.tentative.html index 7fdfdfaa70..69126dbe14 100644 --- a/testing/web-platform/tests/html/semantics/invokers/interesttarget-button-event-dispatch.tentative.html +++ b/testing/web-platform/tests/html/semantics/invokers/interesttarget-button-event-dispatch.tentative.html @@ -12,7 +12,6 @@ <div id="interestee"></div> <button id="interestbutton" interesttarget="interestee">Button</button> -<a href="/" id="interestanchor" interesttarget="interestee">Anchor</a> <button id="otherbutton">Other Button</button> <script> @@ -50,36 +49,6 @@ t.add_cleanup(() => otherbutton.focus()); let event = null; interestee.addEventListener("interest", (e) => (event = e), { once: true }); - interestanchor.focus(); - assert_true(event instanceof InterestEvent, "event is InterestEvent"); - assert_equals(event.type, "interest", "type"); - assert_equals(event.bubbles, false, "bubbles"); - assert_equals(event.composed, true, "composed"); - assert_equals(event.isTrusted, true, "isTrusted"); - assert_equals(event.action, "", "action"); - assert_equals(event.target, interestee, "target"); - assert_equals(event.invoker, interestanchor, "invoker"); - }, "InterestEvent dispatches on anchor focus"); - - promise_test(async function (t) { - t.add_cleanup(() => otherbutton.focus()); - let event = null; - interestee.addEventListener("interest", (e) => (event = e), { once: true }); - await hoverOver(interestanchor); - assert_true(event instanceof InterestEvent, "event is InterestEvent"); - assert_equals(event.type, "interest", "type"); - assert_equals(event.bubbles, false, "bubbles"); - assert_equals(event.composed, true, "composed"); - assert_equals(event.isTrusted, true, "isTrusted"); - assert_equals(event.action, "", "action"); - assert_equals(event.target, interestee, "target"); - assert_equals(event.invoker, interestanchor, "invoker"); - }, "InterestEvent dispatches on anchor hover"); - - promise_test(async function (t) { - t.add_cleanup(() => otherbutton.focus()); - let event = null; - interestee.addEventListener("interest", (e) => (event = e), { once: true }); interestbutton.interestAction = "fooBar"; interestbutton.focus(); assert_true(event instanceof InterestEvent, "event is InterestEvent"); diff --git a/testing/web-platform/tests/html/semantics/invokers/interesttarget-svg-a-event-dispatch.tentative.html b/testing/web-platform/tests/html/semantics/invokers/interesttarget-svg-a-event-dispatch.tentative.html new file mode 100644 index 0000000000..7fb4b1c19d --- /dev/null +++ b/testing/web-platform/tests/html/semantics/invokers/interesttarget-svg-a-event-dispatch.tentative.html @@ -0,0 +1,51 @@ +<!doctype html> +<meta charset="utf-8" /> +<meta name="author" title="Keith Cirkel" href="mailto:keithamus@github.com" /> +<meta name="author" title="Luke Warlow" href="mailto:lwarlow@igalia.com" /> +<link rel="help" href="https://open-ui.org/components/invokers.explainer/" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="resources/invoker-utils.js"></script> + +<div id="interestee"></div> +<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"> + <a href="/" id="interestsvga" interesttarget="interestee"> + <text x="50" y="90">SVG A</text> + </a> +</svg> +<button id="otherbutton">Other Button</button> + +<script> + promise_test(async function (t) { + t.add_cleanup(() => otherbutton.focus()); + let event = null; + interestee.addEventListener("interest", (e) => (event = e), { once: true }); + interestsvga.focus(); + assert_true(event instanceof InterestEvent, "event is InterestEvent"); + assert_equals(event.type, "interest", "type"); + assert_equals(event.bubbles, false, "bubbles"); + assert_equals(event.composed, true, "composed"); + assert_equals(event.isTrusted, true, "isTrusted"); + assert_equals(event.action, "", "action"); + assert_equals(event.target, interestee, "target"); + assert_equals(event.invoker, interestsvga, "invoker"); + }, "InterestEvent dispatches on svg a focus"); + + promise_test(async function (t) { + t.add_cleanup(() => otherbutton.focus()); + let event = null; + interestee.addEventListener("interest", (e) => (event = e), { once: true }); + await hoverOver(interestsvga); + assert_true(event instanceof InterestEvent, "event is InterestEvent"); + assert_equals(event.type, "interest", "type"); + assert_equals(event.bubbles, false, "bubbles"); + assert_equals(event.composed, true, "composed"); + assert_equals(event.isTrusted, true, "isTrusted"); + assert_equals(event.action, "", "action"); + assert_equals(event.target, interestee, "target"); + assert_equals(event.invoker, interestsvga, "invoker"); + }, "InterestEvent dispatches on svg a hover"); +</script> diff --git a/testing/web-platform/tests/html/semantics/invokers/invoketarget-on-input-number.tentative.html b/testing/web-platform/tests/html/semantics/invokers/invoketarget-on-input-number.tentative.html new file mode 100644 index 0000000000..b06053b9f1 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/invokers/invoketarget-on-input-number.tentative.html @@ -0,0 +1,78 @@ +<!doctype html> +<meta charset="utf-8" /> +<meta name="author" title="Luke Warlow" href="mailto:lwarlow@igalia.com" /> +<link rel="help" href="https://open-ui.org/components/invokers.explainer/" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="resources/invoker-utils.js"></script> + +<input type="number" id="invokee" value="0"> +<button id="invokerbutton" invoketarget="invokee"></button> + +<script> + function reset() { + invokee.value = 0; + invokerbutton.removeAttribute('invokeaction'); + } + + // stepUp + + promise_test(async function (t) { + t.add_cleanup(reset); + assert_equals(invokee.valueAsNumber, 0); + invokerbutton.setAttribute("invokeaction", "stepup"); + await clickOn(invokerbutton); + assert_equals(invokee.valueAsNumber, 1); + }, "invoking number input with stepup action increments value"); + + promise_test(async function (t) { + t.add_cleanup(reset); + assert_equals(invokee.valueAsNumber, 0); + invokerbutton.setAttribute("invokeaction", "sTePuP"); + await clickOn(invokerbutton); + assert_equals(invokee.valueAsNumber, 1); + }, "invoking number input with stepup action (case-insensitive) increments value"); + + promise_test(async function (t) { + t.add_cleanup(reset); + assert_equals(invokee.valueAsNumber, 0); + invokerbutton.setAttribute("invokeaction", "stepup"); + invokee.addEventListener("invoke", (e) => e.preventDefault(), { + once: true, + }); + await clickOn(invokerbutton); + assert_equals(invokee.valueAsNumber, 0); + }, "invoking number input with stepup action and preventDefault does not increment value"); + + // stepDown + + promise_test(async function (t) { + t.add_cleanup(reset); + assert_equals(invokee.valueAsNumber, 0); + invokerbutton.setAttribute("invokeaction", "stepdown"); + await clickOn(invokerbutton); + assert_equals(invokee.valueAsNumber, -1); + }, "invoking number input with stepdown action decrements value"); + + promise_test(async function (t) { + t.add_cleanup(reset); + assert_equals(invokee.valueAsNumber, 0); + invokerbutton.setAttribute("invokeaction", "sTePdOwN"); + await clickOn(invokerbutton); + assert_equals(invokee.valueAsNumber, -1); + }, "invoking number input with stepdown action (case-insensitive) decrements value"); + + promise_test(async function (t) { + t.add_cleanup(reset); + assert_equals(invokee.valueAsNumber, 0); + invokerbutton.setAttribute("invokeaction", "stepdown"); + invokee.addEventListener("invoke", (e) => e.preventDefault(), { + once: true, + }); + await clickOn(invokerbutton); + assert_equals(invokee.valueAsNumber, 0); + }, "invoking number input with stepdown action and preventDefault does not decrement value"); +</script> |