summaryrefslogtreecommitdiffstats
path: root/layout/reftests/css-selectors
diff options
context:
space:
mode:
Diffstat (limited to 'layout/reftests/css-selectors')
-rw-r--r--layout/reftests/css-selectors/attr-case-insensitive-1-ref.html26
-rw-r--r--layout/reftests/css-selectors/attr-case-insensitive-1.html26
-rw-r--r--layout/reftests/css-selectors/nth-child-1.html43
-rw-r--r--layout/reftests/css-selectors/nth-child-2.html43
-rw-r--r--layout/reftests/css-selectors/nth-child-ref.html25
-rw-r--r--layout/reftests/css-selectors/reftest-stylo.list9
-rw-r--r--layout/reftests/css-selectors/reftest.list6
-rw-r--r--layout/reftests/css-selectors/sibling-combinators-on-anon-content-1.xhtml22
-rw-r--r--layout/reftests/css-selectors/sibling-combinators-on-anon-content-2.xhtml38
-rw-r--r--layout/reftests/css-selectors/sibling-combinators-on-anon-content-ref.xhtml12
-rw-r--r--layout/reftests/css-selectors/state-dependent-in-any-ref.html11
-rw-r--r--layout/reftests/css-selectors/state-dependent-in-any.html16
12 files changed, 277 insertions, 0 deletions
diff --git a/layout/reftests/css-selectors/attr-case-insensitive-1-ref.html b/layout/reftests/css-selectors/attr-case-insensitive-1-ref.html
new file mode 100644
index 000000000..4c6baa8f7
--- /dev/null
+++ b/layout/reftests/css-selectors/attr-case-insensitive-1-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<meta charset="utf-8">
+<style type="text/css">
+.ascii > span {
+ background-color: yellow;
+}
+</style>
+</head>
+<body>
+
+<div class="ascii"><span lang="paSSfield-killroyß">case-sensitive</span></div>
+<div class="ascii"><span lang="passfield-killroyß">lowercase</span></div>
+<div class="ascii"><span lang="PASSFIELD-KILLROYß">uppercase</span></div>
+<div class="nonascii"><span lang="paſſfield-killroyß">small long s (C)</span></div>
+<div class="nonascii"><span lang="passfield-&#x212a;illroyß">kelvin sign (C)</span></div>
+<div class="nonascii"><span lang="paßfield-killroyß">small sharp s (F)</span></div>
+<div class="nonascii"><span lang="paẞfield-killroyß">capital sharp s (F)</span></div>
+<div class="nonascii"><span lang="passfield-killroyẞ">capital sharp s (S)</span></div>
+<div class="nonascii"><span lang="passfield-killroyß">fi ligature (U+fb01) (F)</span></div>
+<div class="nonascii"><span lang="passfıeld-killroyß"> dotless i (T)</span></div>
+<div class="nonascii"><span lang="passfİeld-killroyß">dotted I (T)</span></div>
+
+</body>
+</html>
diff --git a/layout/reftests/css-selectors/attr-case-insensitive-1.html b/layout/reftests/css-selectors/attr-case-insensitive-1.html
new file mode 100644
index 000000000..41d3fc247
--- /dev/null
+++ b/layout/reftests/css-selectors/attr-case-insensitive-1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<meta charset="utf-8">
+<style type="text/css">
+span[lang="paSSfield-killroyß"] {
+ background-color: yellow;
+}
+</style>
+</head>
+<body>
+
+<div class="ascii"><span lang="paSSfield-killroyß">case-sensitive</span></div>
+<div class="ascii"><span lang="passfield-killroyß">lowercase</span></div>
+<div class="ascii"><span lang="PASSFIELD-KILLROYß">uppercase</span></div>
+<div class="nonascii"><span lang="paſſfield-killroyß">small long s (C)</span></div>
+<div class="nonascii"><span lang="passfield-&#x212a;illroyß">kelvin sign (C)</span></div>
+<div class="nonascii"><span lang="paßfield-killroyß">small sharp s (F)</span></div>
+<div class="nonascii"><span lang="paẞfield-killroyß">capital sharp s (F)</span></div>
+<div class="nonascii"><span lang="passfield-killroyẞ">capital sharp s (S)</span></div>
+<div class="nonascii"><span lang="passfield-killroyß">fi ligature (U+fb01) (F)</span></div>
+<div class="nonascii"><span lang="passfıeld-killroyß"> dotless i (T)</span></div>
+<div class="nonascii"><span lang="passfİeld-killroyß">dotted I (T)</span></div>
+
+</body>
+</html>
diff --git a/layout/reftests/css-selectors/nth-child-1.html b/layout/reftests/css-selectors/nth-child-1.html
new file mode 100644
index 000000000..b65e53d06
--- /dev/null
+++ b/layout/reftests/css-selectors/nth-child-1.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html><head>
+ <meta charset="utf-8">
+ <title>Tests :nth-child(An+B) matching</title>
+ <style type="text/css">
+
+ div :nth-child(+/**/3n-2) { color:white; }
+ div :nth-child(+3n/**/-2) { background-color:black; }
+ div :nth-child(+3n/**/-2) { font-size:12px; }
+ div :nth-child(+3n-/**/2) { text-decoration: underline; }
+ div :nth-child(+3n-2/**/) { border-left-width: 1px; }
+ div :nth-child(+3/**/n-2) { border-right-width: 1px; }
+ div :nth-child(+3n/**/-2) { border-top-width: 1px; }
+ div :nth-child(+3n/**/-2) { border-bottom-width: 1px; }
+ div :nth-child(+3n-/**/2) { border-style: solid; }
+ div :nth-child(+3n-2/**/) { border-color: blue; }
+
+ /* valid but will not match anything */
+ div :nth-child(-/**/n-2) { color:red; }
+ div :nth-child(-n/**/-2) { color:red; }
+ div :nth-child(-n/**/-2) { color:red; }
+ div :nth-child(-n-/**/2) { color:red; }
+ div :nth-child(-n-2/**/) { color:red; }
+ div :nth-child(-1/**/n-2) { color:red; }
+ div :nth-child(-1n/**/-2) { color:red; }
+ div :nth-child(-1n/**/-2) { color:red; }
+ div :nth-child(-1n-/**/2) { color:red; }
+ div :nth-child(-1n-2/**/) { color:red; }
+
+ /* invalid */
+ div :nth-child(-/**/ n-2) { color:red; }
+ div :nth-child(- /**/n-2) { color:red; }
+ div :nth-child(+/**/ n-2) { color:red; }
+ div :nth-child(+ /**/n-2) { color:red; }
+
+ </style>
+</head>
+<body>
+
+<div><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x></div>
+
+</body>
+</html>
diff --git a/layout/reftests/css-selectors/nth-child-2.html b/layout/reftests/css-selectors/nth-child-2.html
new file mode 100644
index 000000000..346cd4527
--- /dev/null
+++ b/layout/reftests/css-selectors/nth-child-2.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html><head>
+ <meta charset="utf-8">
+ <title>Tests :nth-child(An+B) matching</title>
+ <style type="text/css">
+
+ div :nth-child(+/**/3N-2) { color:white; }
+ div :nth-child(+3N/**/-2) { background-color:black; }
+ div :nth-child(+3N/**/-2) { font-size:12px; }
+ div :nth-child(+3N-/**/2) { text-decoration: underline; }
+ div :nth-child(+3N-2/**/) { border-left-width: 1px; }
+ div :nth-child(+3/**/N-2) { border-right-width: 1px; }
+ div :nth-child(+3N/**/-2) { border-top-width: 1px; }
+ div :nth-child(+3N/**/-2) { border-bottom-width: 1px; }
+ div :nth-child(+3N-/**/2) { border-style: solid; }
+ div :nth-child(+3N-2/**/) { border-color: blue; }
+
+ /* valid but will not match anything */
+ div :nth-child(-/**/N-2) { color:red; }
+ div :nth-child(-N/**/-2) { color:red; }
+ div :nth-child(-N/**/-2) { color:red; }
+ div :nth-child(-N-/**/2) { color:red; }
+ div :nth-child(-N-2/**/) { color:red; }
+ div :nth-child(-1/**/N-2) { color:red; }
+ div :nth-child(-1N/**/-2) { color:red; }
+ div :nth-child(-1N/**/-2) { color:red; }
+ div :nth-child(-1N-/**/2) { color:red; }
+ div :nth-child(-1N-2/**/) { color:red; }
+
+ /* invalid */
+ div :nth-child(-/**/ N-2) { color:red; }
+ div :nth-child(- /**/N-2) { color:red; }
+ div :nth-child(+/**/ N-2) { color:red; }
+ div :nth-child(+ /**/N-2) { color:red; }
+
+ </style>
+</head>
+<body>
+
+<div><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x><x>x</x></div>
+
+</body>
+</html>
diff --git a/layout/reftests/css-selectors/nth-child-ref.html b/layout/reftests/css-selectors/nth-child-ref.html
new file mode 100644
index 000000000..b327d5505
--- /dev/null
+++ b/layout/reftests/css-selectors/nth-child-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<html><head>
+ <meta charset="utf-8">
+ <title>Tests :nth-child(An+B) matching</title>
+ <style type="text/css">
+
+ x { color:white; }
+ x { background-color:black; }
+ x { font-size:12px; }
+ x { text-decoration: underline; }
+ x { border-left-width: 1px; }
+ x { border-right-width: 1px; }
+ x { border-top-width: 1px; }
+ x { border-bottom-width: 1px; }
+ x { border-style: solid; }
+ x { border-color: blue; }
+
+ </style>
+</head>
+<body>
+
+<div><x>x</x><y>x</y><y>x</y><x>x</x><y>x</y><y>x</y><x>x</x><y>x</y><y>x</y><x>x</x><y>x</y></div>
+
+</body>
+</html>
diff --git a/layout/reftests/css-selectors/reftest-stylo.list b/layout/reftests/css-selectors/reftest-stylo.list
new file mode 100644
index 000000000..155b7c2c0
--- /dev/null
+++ b/layout/reftests/css-selectors/reftest-stylo.list
@@ -0,0 +1,9 @@
+# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
+== state-dependent-in-any.html state-dependent-in-any.html
+== attr-case-insensitive-1.html attr-case-insensitive-1.html
+skip == sibling-combinators-on-anon-content-1.xhtml sibling-combinators-on-anon-content-1.xhtml
+# Initial mulet triage: parity with B2G/B2G Desktop
+skip == sibling-combinators-on-anon-content-2.xhtml sibling-combinators-on-anon-content-2.xhtml
+# Initial mulet triage: parity with B2G/B2G Desktop
+== nth-child-1.html nth-child-1.html
+== nth-child-2.html nth-child-2.html
diff --git a/layout/reftests/css-selectors/reftest.list b/layout/reftests/css-selectors/reftest.list
new file mode 100644
index 000000000..00b9ca695
--- /dev/null
+++ b/layout/reftests/css-selectors/reftest.list
@@ -0,0 +1,6 @@
+== state-dependent-in-any.html state-dependent-in-any-ref.html
+== attr-case-insensitive-1.html attr-case-insensitive-1-ref.html
+== sibling-combinators-on-anon-content-1.xhtml sibling-combinators-on-anon-content-ref.xhtml
+== sibling-combinators-on-anon-content-2.xhtml sibling-combinators-on-anon-content-ref.xhtml
+== nth-child-1.html nth-child-ref.html
+== nth-child-2.html nth-child-ref.html
diff --git a/layout/reftests/css-selectors/sibling-combinators-on-anon-content-1.xhtml b/layout/reftests/css-selectors/sibling-combinators-on-anon-content-1.xhtml
new file mode 100644
index 000000000..e6f9598a8
--- /dev/null
+++ b/layout/reftests/css-selectors/sibling-combinators-on-anon-content-1.xhtml
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <bindings xmlns="http://www.mozilla.org/xbl"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+ <binding id="x">
+ <content>
+ <html:span class="a"></html:span>
+ <html:span class="b">This should be green</html:span>
+ <children/>
+ </content>
+ </binding>
+ </bindings>
+ <style>
+ #foo { -moz-binding: url("#x"); }
+ .a + .b { color: green; }
+ </style>
+ </head>
+ <body>
+ <span id="foo"></span>
+ </body>
+</html>
diff --git a/layout/reftests/css-selectors/sibling-combinators-on-anon-content-2.xhtml b/layout/reftests/css-selectors/sibling-combinators-on-anon-content-2.xhtml
new file mode 100644
index 000000000..c38ba9cef
--- /dev/null
+++ b/layout/reftests/css-selectors/sibling-combinators-on-anon-content-2.xhtml
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" reftest-wait="">
+ <head>
+ <bindings xmlns="http://www.mozilla.org/xbl"
+ xmlns:html="http://www.w3.org/1999/xhtml">
+ <binding id="x">
+ <content>
+ <html:span class="a">Some text</html:span>
+ <html:span class="b">This should be green</html:span>
+ <children/>
+ </content>
+ <implementation>
+ <method name="nixText">
+ <body>
+ document.getAnonymousNodes(this)[0].textContent = "";
+ </body>
+ </method>
+ </implementation>
+ </binding>
+ </bindings>
+ <style>
+ #foo { -moz-binding: url("#x"); }
+ .a:empty + .b { color: green; }
+ </style>
+ </head>
+ <body>
+ <span id="foo"></span>
+ <script>
+ window.onload = function() {
+ var el = document.getElementById("foo");
+ // Flush its layout
+ el.offsetWidth;
+ el.nixText();
+ document.documentElement.className = "";
+ }
+ </script>
+ </body>
+</html>
diff --git a/layout/reftests/css-selectors/sibling-combinators-on-anon-content-ref.xhtml b/layout/reftests/css-selectors/sibling-combinators-on-anon-content-ref.xhtml
new file mode 100644
index 000000000..479bed4ef
--- /dev/null
+++ b/layout/reftests/css-selectors/sibling-combinators-on-anon-content-ref.xhtml
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <style>
+ .a + .b { color: green; }
+ </style>
+ </head>
+ <body>
+ <span><span class="a"></span>
+ <span class="b">This should be green</span></span>
+ </body>
+</html>
diff --git a/layout/reftests/css-selectors/state-dependent-in-any-ref.html b/layout/reftests/css-selectors/state-dependent-in-any-ref.html
new file mode 100644
index 000000000..cb69dc19e
--- /dev/null
+++ b/layout/reftests/css-selectors/state-dependent-in-any-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style>
+ span { color: green; }
+ </style>
+ </head>
+ <body>
+ <input value="Test"><span>This should be green</span>
+ </body>
+</html>
diff --git a/layout/reftests/css-selectors/state-dependent-in-any.html b/layout/reftests/css-selectors/state-dependent-in-any.html
new file mode 100644
index 000000000..8ee1ea48f
--- /dev/null
+++ b/layout/reftests/css-selectors/state-dependent-in-any.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style>
+ span { color: red; }
+ :-moz-any(:valid) + span { color: green; }
+ </style>
+ </head>
+ <body>
+ <input required><span>This should be green</span>
+ <script>
+ document.body.offsetWidth;
+ document.getElementsByTagName("input")[0].value = "Test"
+ </script>
+ </body>
+</html>