diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /layout/inspector/tests/test_selectormatcheselement.html | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/inspector/tests/test_selectormatcheselement.html')
-rw-r--r-- | layout/inspector/tests/test_selectormatcheselement.html | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/layout/inspector/tests/test_selectormatcheselement.html b/layout/inspector/tests/test_selectormatcheselement.html new file mode 100644 index 0000000000..31c36918dc --- /dev/null +++ b/layout/inspector/tests/test_selectormatcheselement.html @@ -0,0 +1,89 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=1037519 +--> +<head> + <title>Test for nsIDOMUtils::selectorMatchesElement</title> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> + <style type="text/css"> + #foo, + #bar, + #foo::before { + color: red; + } + #foo::before, + #bar::before { + content: 'foo-before'; + color: green; + } + #foo::after, + #bar::after { + content: 'foo-after'; + color: blue; + } + #foo::first-line, + #bar::first-line { + text-decoration: underline; + } + #foo::first-letter, + #bar::first-letter { + font-variant: small-caps; + } + </style> +</head> +<body> +<div id="foo">foo content</div> +<pre id="test"> +<script type="application/javascript"> + +const InspectorUtils = SpecialPowers.InspectorUtils; + +function do_test() { + var element = document.querySelector("#foo"); + + var elementRules = InspectorUtils.getCSSStyleRules(element); + var elementRule = elementRules[elementRules.length - 1]; + + is (InspectorUtils.selectorMatchesElement(element, elementRule, 0), true, + "Matches #foo"); + is (InspectorUtils.selectorMatchesElement(element, elementRule, 1), false, + "Doesn't match #bar"); + is (InspectorUtils.selectorMatchesElement(element, elementRule, 0, ":bogus"), false, + "Doesn't match #foo with a bogus pseudo"); + is (InspectorUtils.selectorMatchesElement(element, elementRule, 2, ":bogus"), false, + "Doesn't match #foo::before with bogus pseudo"); + is (InspectorUtils.selectorMatchesElement(element, elementRule, 0, ":after"), false, + "Does match #foo::before with the :after pseudo"); + + checkPseudo(":before"); + checkPseudo(":after"); + checkPseudo(":first-letter"); + checkPseudo(":first-line"); + + SimpleTest.finish(); + + function checkPseudo(pseudo) { + var rules = InspectorUtils.getCSSStyleRules(element, pseudo); + var rule = rules[rules.length - 1]; + + is (InspectorUtils.selectorMatchesElement(element, rule, 0), false, + "Doesn't match without " + pseudo); + is (InspectorUtils.selectorMatchesElement(element, rule, 1), false, + "Doesn't match without " + pseudo); + + is (InspectorUtils.selectorMatchesElement(element, rule, 0, pseudo), true, + "Matches on #foo" + pseudo); + is (InspectorUtils.selectorMatchesElement(element, rule, 1, pseudo), false, + "Doesn't match on #bar" + pseudo); + } +} + +SimpleTest.waitForExplicitFinish(); +addLoadEvent(do_test); + +</script> +</pre> +</body> +</html> |