blob: 0eaf2f9f50b2ffc89c1d9b257ebfce840bf7fa41 [file] [edit]
<!DOCTYPE html>
<meta charset="utf-8" />
<title>Popup invoking attribute</title>
<link rel="author" href="mailto:masonf@chromium.org">
<link rel=help href="https://open-ui.org/components/popup.research.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>
<button triggerpopup=p1>Open Popup 1</button>
<div popup=popup id=p1>This is popup #1</div>
<style>
[popup] { border: 5px solid red; }
</style>
<script>
function clickOn(element) {
const actions = new test_driver.Actions();
return actions.pointerMove(0, 0, {origin: element})
.pointerDown({button: actions.ButtonType.LEFT})
.pointerUp({button: actions.ButtonType.LEFT})
.send();
}
const popup = document.querySelector('[popup]');
const button = document.querySelector('button');
promise_test(async () => {
assert_false(popup.matches(':popup-open'));
await clickOn(button);
assert_true(popup.matches(':popup-open'));
popup.hidePopup();
assert_false(popup.matches(':popup-open'));
button.click();
assert_true(popup.matches(':popup-open'));
}, "Basic test of the 'popup' attribute on a button");
</script>