Bug 1300374: Web platform test for child-indexed selectors matching the root element and standalone elements. r?heycam
MozReview-Commit-ID: 78yr2APVi4w
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -37783,40 +37783,64 @@
}
],
"domparsing/style_attribute_html.html": [
{
"path": "domparsing/style_attribute_html.html",
"url": "/domparsing/style_attribute_html.html"
}
],
+ "editing/other/delete.html": [
+ {
+ "path": "editing/other/delete.html",
+ "url": "/editing/other/delete.html"
+ }
+ ],
"editing/other/restoration.html": [
{
"path": "editing/other/restoration.html",
"url": "/editing/other/restoration.html"
}
],
- "editing/other/delete.html": [
- {
- "path": "editing/other/delete.html",
- "url": "/editing/other/delete.html"
- }
- ],
"html/browsers/history/the-location-interface/location-prototype-setting.html": [
{
"path": "html/browsers/history/the-location-interface/location-prototype-setting.html",
"url": "/html/browsers/history/the-location-interface/location-prototype-setting.html"
}
],
"html/semantics/forms/the-form-element/form-submission-sandbox.html": [
{
"path": "html/semantics/forms/the-form-element/form-submission-sandbox.html",
"url": "/html/semantics/forms/the-form-element/form-submission-sandbox.html"
}
],
+ "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html": [
+ {
+ "path": "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html",
+ "url": "/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html"
+ }
+ ],
+ "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html": [
+ {
+ "path": "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html",
+ "url": "/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html"
+ }
+ ],
+ "html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html": [
+ {
+ "path": "html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html",
+ "url": "/html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html"
+ }
+ ],
+ "selectors/child-indexed-pseudo-class.html": [
+ {
+ "path": "selectors/child-indexed-pseudo-class.html",
+ "url": "/selectors/child-indexed-pseudo-class.html"
+ }
+ ],
"svg/linking/scripted/href-animate-element.html": [
{
"path": "svg/linking/scripted/href-animate-element.html",
"url": "/svg/linking/scripted/href-animate-element.html"
}
],
"svg/linking/scripted/href-mpath-element.html": [
{
@@ -37831,34 +37855,16 @@
}
],
"svg/linking/scripted/href-script-element.html": [
{
"path": "svg/linking/scripted/href-script-element.html",
"url": "/svg/linking/scripted/href-script-element.html"
}
],
- "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html": [
- {
- "path": "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html",
- "url": "/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html"
- }
- ],
- "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html": [
- {
- "path": "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html",
- "url": "/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html"
- }
- ],
- "html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html": [
- {
- "path": "html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html",
- "url": "/html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html"
- }
- ],
"web-animations/interfaces/Animation/effect.html": [
{
"path": "web-animations/interfaces/Animation/effect.html",
"url": "/web-animations/interfaces/Animation/effect.html"
}
],
"web-animations/interfaces/KeyframeEffect/spacing.html": [
{
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/selectors/child-indexed-pseudo-class.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Matching of child-indexed pseudo-classes</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:ecoal95@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/selectors-4/#child-index">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+test(function() {
+ var check = function(element, selectors) {
+ for (var i = 0; i < selectors.length; ++i) {
+ var selector = selectors[i][0];
+ var expected = selectors[i][1];
+ assert_equals(expected, element.matches(selector),
+ "Expected " + element.tagName + " element to " +
+ (expected ? "match " : "not match ") + selector);
+ }
+ }
+
+ var rootOfSubtreeSelectors = [
+ [ ":first-child", true ],
+ [ ":last-child", true ],
+ [ ":first-of-type", true ],
+ [ ":last-of-type", true ],
+ [ ":nth-child(1)", true ],
+ [ ":nth-child(n)", true ],
+ [ ":nth-last-child(1)", true ],
+ [ ":nth-last-child(n)", true ],
+ [ ":nth-of-type(1)", true ],
+ [ ":nth-of-type(n)", true ],
+ [ ":nth-last-of-type(1)", true ],
+ [ ":nth-last-of-type(n)", true ],
+ [ ":nth-child(2)", false ],
+ [ ":nth-last-child(2)", false],
+ [ ":nth-of-type(2)", false ],
+ [ ":nth-last-of-type(2)", false],
+ ];
+
+ check(document.documentElement, rootOfSubtreeSelectors);
+ check(document.createElement('div'), rootOfSubtreeSelectors);
+}, "child-indexed pseudo-classes should match without a parent")
+</script>