From 7a0fd127d0c76f529a7e39b6e6103cb80654eabc Mon Sep 17 00:00:00 2001 From: Mason Freed Date: Thu, 10 Nov 2022 15:58:46 +0000 Subject: [PATCH] Bug 1799006 [wpt PR 36808] - Add togglePopover() method for popovers, a=testonly Automatic update from web-platform-tests Add togglePopover() method for popovers Per the resolution [1] there's a desire to add a togglePopover() convenience method. This CL adds that method plus tests. [1] https://github.com/openui/open-ui/issues/610#issuecomment-1285950492 Bug: 1307772 Change-Id: Icd39c766786e7d1f6475a86ca8a7a1e89b66182e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4000073 Commit-Queue: Joey Arhar Auto-Submit: Mason Freed Reviewed-by: Joey Arhar Cr-Commit-Position: refs/heads/main@{#1067805} -- wpt-commits: 1c0c07fc028ab6745609b755ccefc680d4c28230 wpt-pr: 36808 --- .../popovers/popover-attribute-basic.tentative.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/testing/web-platform/tests/html/semantics/popovers/popover-attribute-basic.tentative.html b/testing/web-platform/tests/html/semantics/popovers/popover-attribute-basic.tentative.html index ebfba69c5a6d4..3bf3905dac3f7 100644 --- a/testing/web-platform/tests/html/semantics/popovers/popover-attribute-basic.tentative.html +++ b/testing/web-platform/tests/html/semantics/popovers/popover-attribute-basic.tentative.html @@ -62,9 +62,15 @@ popover.hidePopover(); assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After hidePopover(), a popover should be hidden'); assert_throws_dom("InvalidStateError",() => popover.hidePopover(),'Calling hidePopover on a hidden popover should throw InvalidStateError'); + popover.togglePopover(); + assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover() on hidden popover, it should be visible'); + popover.togglePopover(); + assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover() on visible popover, it should be hidden'); const parent = popover.parentElement; popover.remove(); assert_throws_dom("InvalidStateError",() => popover.showPopover(),'Calling showPopover on a disconnected popover should throw InvalidStateError'); + assert_throws_dom("InvalidStateError",() => popover.hidePopover(),'Calling hidePopover on a disconnected popover should throw InvalidStateError'); + assert_throws_dom("InvalidStateError",() => popover.togglePopover(),'Calling hidePopover on a disconnected popover should throw InvalidStateError'); parent.appendChild(popover); } function assertNotAPopover(nonPopover) { @@ -76,6 +82,8 @@ assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling showPopover on a non-popover should leave it visible'); assert_throws_dom("NotSupportedError",() => nonPopover.hidePopover(),'Calling hidePopover on a non-popover should throw NotSupportedError'); assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling hidePopover on a non-popover should leave it visible'); + assert_throws_dom("NotSupportedError",() => nonPopover.togglePopover(),'Calling togglePopover on a non-popover should throw NotSupportedError'); + assertPopoverVisibility(nonPopover, /*isPopover*/false, expectVisible, 'Calling togglePopover on a non-popover should leave it visible'); } // Start with the provided examples: