| <!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> |