diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/html/semantics/popovers/popovertarget-reflection.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/html/semantics/popovers/popovertarget-reflection.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/popovers/popovertarget-reflection.html | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/popovers/popovertarget-reflection.html b/testing/web-platform/tests/html/semantics/popovers/popovertarget-reflection.html new file mode 100644 index 0000000000..d0750fdd4c --- /dev/null +++ b/testing/web-platform/tests/html/semantics/popovers/popovertarget-reflection.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<link rel=author href="mailto:jarhar@chromium.org"> +<link rel=help href="https://bugs.chromium.org/p/chromium/issues/detail?id=1523410"> +<link rel=help href="https://bugzilla.mozilla.org/show_bug.cgi?id=1879001"> +<link rel=help href="https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#reflecting-content-attributes-in-idl-attributes:element"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<button id=mybutton popovertarget="mypopover">toggle popover</button> +<div id=mypopover popover=auto>popover</div> + +<script> +test(() => { + assert_equals(mybutton.popoverTargetElement.id, "mypopover", + 'Setting element.popoverTargetElement to a valid element should work'); + + mybutton.popoverTargetElement = null; + assert_false(mybutton.hasAttribute('popovertarget'), + 'Setting element.popoverTargetElement to null should unset popovertarget attribute.'); + assert_equals(mybutton.popoverTargetElement, null, + 'Setting element.popoverTargetElement to null should remove the existing element from element.popoverTargetElement.'); + + mybutton.popoverTargetElement = mypopover; + assert_true(mybutton.hasAttribute('popovertarget'), + 'Assigning to element.popoverTargetElement should set the popovertarget attribute.'); + + mybutton.removeAttribute('popovertarget'); + assert_equals(mybutton.popoverTargetElement, null, + 'Removing the popovertarget attribute should remove the element from element.popoverTargetElement.'); + + mybutton.popoverTargetElement = mypopover; + assert_true(mybutton.hasAttribute('popovertarget'), + 'Assigning to element.popoverTargetElement should set the popovertarget attribute.'); + + mybutton.setAttribute("popovertarget", 'invalid'); + assert_equals(mybutton.popoverTargetElement, null, + 'Setting the popovertarget attribute to a localName that is not attr should remove the existing element from element.popoverTargetElement.'); + + mybutton.popoverTargetElement = mypopover; + mybutton.setAttribute("popovertarget", ""); + assert_equals(mybutton.popoverTargetElement.id, "mypopover", + 'Setting the popovertarget attribute to empty string right after explicitly setting attribute element should have no effect.'); + + mybutton.setAttribute("popovertarget", "mypopover"); + assert_equals(mybutton.popoverTargetElement.id, "mypopover", + 'Setting the popovertarget attribute to a value should set the popover target element.'); + mybutton.setAttribute("popovertarget", ""); + assert_equals(mybutton.getAttribute('popovertarget'), "", + 'Assigning to element.popoverTargetElement to empty string should update the attribute value to empty string.'); + assert_equals(mybutton.popoverTargetElement, null, + 'Setting the popovertarget attribute to empty string should remove the existing element from element.popoverTargetElement.'); +}, 'Element attribute reflection of popoverTargetElement/popovertarget should be kept in sync.'); +</script> |