diff options
Diffstat (limited to 'layout/reftests/css-selectors')
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-Killroyß">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-Killroyß">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> |