Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 1 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /html/semantics/the-button-element/interest-target/interesttarget-partial-interest.tentative.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<meta charset="utf-8" />
<link rel="author" href="mailto:masonf@chromium.org">
<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>
<button id=invoker interesttarget=target>Button</button>
<div id=target popover>Popover with <button id=contained>button</button></div>
<style>
[interesttarget] {
interest-target-delay: 0s;
}
</style>
<script>
let expectInterest;
let expectPartial;
let eventCount = 0;
function checkInterest(e) {
const notStr = expectInterest ? "" : "not ";
const event = e instanceof Event ? `${e.type} event` : e;
assert_equals(invoker.matches(':has-interest'),expectInterest,`target should ${notStr}gain interest (${event})`);
assert_equals(invoker.matches(':has-partial-interest'),expectInterest&&expectPartial,`Interest should ${expectPartial ? "" : "not "}be partial (${event})`);
assert_equals(target.matches(':popover-open'),expectInterest,`popover should ${notStr}be open (${event})`);
++eventCount;
}
promise_test(async function (t) {
invoker.addEventListener('focus',checkInterest);
target.addEventListener('interest',(e) => {
checkInterest(e);
expectInterest = true;
expectPartial = true;
});
expectInterest = false;
expectPartial = false;
await focusOn(invoker);
assert_equals(eventCount,2,'focus and interest should both have fired');
assert_true(expectInterest,'the interest event should set this');
checkInterest('before hot key');
await sendShowInterestHotkey();
expectPartial = false;
checkInterest('after hot key');
},'Partial interest timing should not be observable');
</script>