summaryrefslogtreecommitdiff
path: root/test/data/parse
diff options
context:
space:
mode:
Diffstat (limited to 'test/data/parse')
-rw-r--r--test/data/parse/INDEX1
-rw-r--r--test/data/parse/nth.dat246
-rw-r--r--test/data/parse/selectors.dat224
3 files changed, 471 insertions, 0 deletions
diff --git a/test/data/parse/INDEX b/test/data/parse/INDEX
index 6019062..ced33a3 100644
--- a/test/data/parse/INDEX
+++ b/test/data/parse/INDEX
@@ -7,4 +7,5 @@ selectors.dat Selectors
atrules.dat @-rules
colours.dat Colour values
colours-hsl.dat HSL Colour values
+nth.dat :nth-* expressions
properties.dat Properties
diff --git a/test/data/parse/nth.dat b/test/data/parse/nth.dat
new file mode 100644
index 0000000..fa5744c
--- /dev/null
+++ b/test/data/parse/nth.dat
@@ -0,0 +1,246 @@
+# Test data for nth-* expressions
+
+# Odd and Even
+
+#data
+E:nth-child(odd) {}
+#errors
+#expected
+| 1 E:nth-child(2n+1)
+#reset
+
+#data
+E:nth-child(even) {}
+#errors
+#expected
+| 1 E:nth-child(2n+0)
+#reset
+
+# Basic numbers
+
+#data
+E:nth-child(1) {}
+#errors
+#expected
+| 1 E:nth-child(0n+1)
+#reset
+
+#data
+E:nth-child(-1) {}
+#errors
+#expected
+| 1 E:nth-child(0n+-1)
+#reset
+
+# IDENT ws [ NUMBER ws ]?
+
+#data
+E:nth-child(n) {}
+#errors
+#expected
+| 1 E:nth-child(1n+0)
+#reset
+
+#data
+E:nth-child(-n) {}
+#errors
+#expected
+| 1 E:nth-child(-1n+0)
+#reset
+
+#data
+E:nth-child(-n- 1) {}
+#errors
+#expected
+| 1 E:nth-child(-1n+-1)
+#reset
+
+#data
+E:nth-child(-n-1) {}
+#errors
+#expected
+| 1 E:nth-child(-1n+-1)
+#reset
+
+# DIMENSION ws [ NUMBER ws ]?
+
+#data
+E:nth-child(2n) {}
+#errors
+#expected
+| 1 E:nth-child(2n+0)
+#reset
+
+#data
+E:nth-child(-2n) {}
+#errors
+#expected
+| 1 E:nth-child(-2n+0)
+#reset
+
+#data
+E:nth-child(2n- 1) {}
+#errors
+#expected
+| 1 E:nth-child(2n+-1)
+#reset
+
+#data
+E:nth-child(-2n- 1) {}
+#errors
+#expected
+| 1 E:nth-child(-2n+-1)
+#reset
+
+#data
+E:nth-child(2n-1) {}
+#errors
+#expected
+| 1 E:nth-child(2n+-1)
+#reset
+
+#data
+E:nth-child(-2n-1) {}
+#errors
+#expected
+| 1 E:nth-child(-2n+-1)
+#reset
+
+# IDENT ws CHAR ws NUMBER ws
+
+#data
+E:nth-child(n - 1) {}
+#errors
+#expected
+| 1 E:nth-child(1n+-1)
+#reset
+
+#data
+E:nth-child(n+1) {}
+#errors
+#expected
+| 1 E:nth-child(1n+1)
+#reset
+
+#data
+E:nth-child(n + 1) {}
+#errors
+#expected
+| 1 E:nth-child(1n+1)
+#reset
+
+# DIMENSION ws CHAR ws NUMBER ws
+
+#data
+E:nth-child(2n - 1) {}
+#errors
+#expected
+| 1 E:nth-child(2n+-1)
+#reset
+
+#data
+E:nth-child(2n+1) {}
+#errors
+#expected
+| 1 E:nth-child(2n+1)
+#reset
+
+#data
+E:nth-child(2n + 1) {}
+#errors
+#expected
+| 1 E:nth-child(2n+1)
+#reset
+
+# Illegal inputs
+
+#data
+E:nth-child(n--1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(n-+1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(n- -1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(n- +1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(n + -1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(n - +1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(2n--1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(2n-+1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(2n- -1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(2n- +1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(2n + -1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(2n - +1) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(3 n) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(+2 n) {}
+#errors
+#expected
+#reset
+
+#data
+E:nth-child(+ 2) {}
+#errors
+#expected
+#reset
+
diff --git a/test/data/parse/selectors.dat b/test/data/parse/selectors.dat
index e58d8ac..b77b18a 100644
--- a/test/data/parse/selectors.dat
+++ b/test/data/parse/selectors.dat
@@ -99,6 +99,111 @@ E:first {}
#reset
#data
+E:root {}
+#errors
+#expected
+| 1 E:root
+#reset
+
+#data
+E:nth-child(2n+1) {}
+#errors
+#expected
+| 1 E:nth-child(2n+1)
+#reset
+
+#data
+E:nth-last-child(2n+1) {}
+#errors
+#expected
+| 1 E:nth-last-child(2n+1)
+#reset
+
+#data
+E:nth-of-type(2n+1) {}
+#errors
+#expected
+| 1 E:nth-of-type(2n+1)
+#reset
+
+#data
+E:nth-last-of-type(2n+1) {}
+#errors
+#expected
+| 1 E:nth-last-of-type(2n+1)
+#reset
+
+#data
+E:last-child {}
+#errors
+#expected
+| 1 E:last-child
+#reset
+
+#data
+E:first-of-type {}
+#errors
+#expected
+| 1 E:first-of-type
+#reset
+
+#data
+E:last-of-type {}
+#errors
+#expected
+| 1 E:last-of-type
+#reset
+
+#data
+E:only-child {}
+#errors
+#expected
+| 1 E:only-child
+#reset
+
+#data
+E:only-of-type {}
+#errors
+#expected
+| 1 E:only-of-type
+#reset
+
+#data
+E:empty {}
+#errors
+#expected
+| 1 E:empty
+#reset
+
+#data
+E:target {}
+#errors
+#expected
+| 1 E:target
+#reset
+
+#data
+E:enabled {}
+#errors
+#expected
+| 1 E:enabled
+#reset
+
+#data
+E:disabled {}
+#errors
+#expected
+| 1 E:disabled
+#reset
+
+#data
+E:checked {}
+#errors
+#expected
+| 1 E:checked
+#reset
+
+#data
E:first-line {}
#errors
#expected
@@ -127,6 +232,34 @@ E:after {}
#reset
#data
+E::first-line {}
+#errors
+#expected
+| 1 E:first-line
+#reset
+
+#data
+E::first-letter {}
+#errors
+#expected
+| 1 E:first-letter
+#reset
+
+#data
+E::before {}
+#errors
+#expected
+| 1 E:before
+#reset
+
+#data
+E::after {}
+#errors
+#expected
+| 1 E:after
+#reset
+
+#data
E + F {}
#errors
#expected
@@ -134,6 +267,13 @@ E + F {}
#reset
#data
+E ~ F {}
+#errors
+#expected
+| 1 E ~ F
+#reset
+
+#data
E[foo] {}
#errors
#expected
@@ -162,6 +302,27 @@ E[lang|="en"] {}
#reset
#data
+E[foo^="warning"] {}
+#errors
+#expected
+| 1 E[foo^="warning"]
+#reset
+
+#data
+E[foo$="warning"] {}
+#errors
+#expected
+| 1 E[foo$="warning"]
+#reset
+
+#data
+E[foo*="warning"] {}
+#errors
+#expected
+| 1 E[foo*="warning"]
+#reset
+
+#data
DIV.warning {}
#errors
#expected
@@ -368,3 +529,66 @@ E#myid,bar {}
| 1 #myid, bar
#reset
+# Not pseudo class
+
+#data
+E:not(bar) {}
+#errors
+#expected
+| 1 E:not(bar)
+#reset
+
+#data
+E:not(*) {}
+#errors
+#expected
+| 1 E:not(*)
+#reset
+
+#data
+E:not(#foo) {}
+#errors
+#expected
+| 1 E:not(#foo)
+#reset
+
+#data
+E:not(.bar) {}
+#errors
+#expected
+| 1 E:not(.bar)
+#reset
+
+#data
+E:not([bar]) {}
+#errors
+#expected
+| 1 E:not([bar])
+#reset
+
+#data
+E:not(:first-child) {}
+#errors
+#expected
+| 1 E:not(:first-child)
+#reset
+
+#data
+E:not(:nth-child(2n+1)) {}
+#errors
+#expected
+| 1 E:not(:nth-child(2n+1))
+#reset
+
+#data
+E:not(:first-line) {}
+#errors
+#expected
+#reset
+
+#data
+E:not(:not(bar)) {}
+#errors
+#expected
+#reset
+