summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/checked-indeterminate.window.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/semantics/selectors/pseudo-classes/checked-indeterminate.window.js')
-rw-r--r--testing/web-platform/tests/html/semantics/selectors/pseudo-classes/checked-indeterminate.window.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/checked-indeterminate.window.js b/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/checked-indeterminate.window.js
new file mode 100644
index 0000000000..167cbdd37f
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/checked-indeterminate.window.js
@@ -0,0 +1,27 @@
+test(() => {
+ const input = document.createElement("input");
+ input.type = "checkbox";
+
+ assert_false(input.matches(":checked:indeterminate"));
+ assert_false(input.matches(":checked"));
+ assert_false(input.matches(":indeterminate"));
+
+ input.checked = true;
+ input.indeterminate = true;
+
+ assert_true(input.matches(":checked:indeterminate"));
+ assert_true(input.matches(":checked"));
+ assert_true(input.matches(":indeterminate"));
+
+ input.indeterminate = false;
+
+ assert_false(input.matches(":checked:indeterminate"));
+ assert_true(input.matches(":checked"));
+ assert_false(input.matches(":indeterminate"));
+
+ input.checked = false;
+
+ assert_false(input.matches(":checked:indeterminate"));
+ assert_false(input.matches(":checked"));
+ assert_false(input.matches(":indeterminate"));
+}, "An element can be :checked and :indeterminate at the same time");