test/csscss/parser/css_test.rb in csscss-1.3.1 vs test/csscss/parser/css_test.rb in csscss-1.3.2
- old
+ new
@@ -21,18 +21,18 @@
@parser.wont_parse ""
end
it "parses comments" do
- @parser.css_space?.must_parse "/* foo */"
- @parser.css_space?.must_parse %$
+ @parser.comment.must_parse "/* foo */"
+ @parser.comment.must_parse %$
/* foo
* bar
*/
$
- @parser.css_space?.must_parse %$
+ @parser.comment.repeat(1).must_parse %$
/* foo */
/* bar */
$
end
end
@@ -61,15 +61,17 @@
/* some comment
* foo
*/
.bar { border: 1px solid black /* sdflk */ }
.baz { background: white /* sdflk */ }
+ .baz2 { background: white /* {sdflk} */ }
$
trans(css).must_equal([
rs(sel(".bar"), [dec("border", "1px solid black /* sdflk */")]),
- rs(sel(".baz"), [dec("background", "white /* sdflk */")])
+ rs(sel(".baz"), [dec("background", "white /* sdflk */")]),
+ rs(sel(".baz2"), [dec("background", "white /* {sdflk} */")])
])
end
it "skips rules that are commented out" do
css = %$
@@ -115,22 +117,55 @@
#bar {
display: none;
}
}
+ @media only screen {
+ @-webkit-keyframes webkitSiblingBugfix {
+ from { position: relative; }
+ to { position: relative; }
+ }
+
+ a { position: relative }
+ }
+
h1 {
outline: 1px;
}
$
trans(css).must_equal([
rs(sel("#foo"), [dec("background-color", "black")]),
rs(sel("#bar"), [dec("display", "none")]),
+ rs(sel("from"), [dec("position", "relative")]),
+ rs(sel("to"), [dec("position", "relative")]),
+ rs(sel("a"), [dec("position", "relative")]),
rs(sel("h1"), [dec("outline", "1px")])
])
end
+ it "recognizes empty @media queries with no spaces" do
+ css = %$
+ @media (min-width: 768px) and (max-width: 979px) {}
+ $
+
+ trans(css).must_equal([
+ rs(sel("@media (min-width: 768px) and (max-width: 979px)"), []),
+ ])
+ end
+
+ it "recognizes empty @media queries with spaces" do
+ css = %$
+ @media (min-width: 768px) and (max-width: 979px) {
+ }
+ $
+
+ trans(css).must_equal([
+ rs(sel("@media (min-width: 768px) and (max-width: 979px)"), []),
+ ])
+ end
+
it "ignores @import statements" do
css = %$
@import "foo.css";
@import "bar.css";
@@ -206,9 +241,50 @@
rs(sel(".foo3"), [dec("outline", "1px"),
dec("background", "white url(data:image/png;base64,ivborw0kggoaaaansuheugaaaaeaaacecayaaabraehiaaaagxrfwhrtb2z0d2fyzqbbzg9izsbjbwfnzvjlywr5ccllpaaaahrjrefuenqkujeswcaiw+t/x/uhansdkltqdnxgcahnew2tzbdz/aq994bzqoy5z8wewiecmmfwirk+egomtvbrtz4my9keayz6+e3sj7mwbs1pauy1lhllmgtqelltnxliintbbwi0vj5dzc9caqzeowqyaphxy/7527nfaaaaaelftksuqmcc) repeat-x"),
dec("display", "block")]),
rs(sel(".foo4"), [dec("background", "blue url(images/bg-bolt-inactive.png) no-repeat 99% 5px"),
dec("display", "block")])
+ ])
+ end
+
+ it "parses attributes with special characters" do
+ css = %$
+
+ #menu a::before {
+ content: "{";
+ left: -6px;
+ }
+
+ #menu a::after {
+ content: "}";
+ right: -6px;
+ }
+
+ #menu a::weird {
+ content: "@";
+ up: -2px;
+ }
+
+ #menu a::after_all {
+ content: '{';
+ right: -6px;
+ }
+
+ $
+
+ trans(css).must_equal([
+ rs(sel("#menu a::before"), [dec("content", '"{"'),
+ dec("left", "-6px")
+ ]),
+ rs(sel("#menu a::after"), [dec("content", '"}"'),
+ dec("right", "-6px")
+ ]),
+ rs(sel("#menu a::weird"), [dec("content", '"@"'),
+ dec("up", "-2px")
+ ]),
+ rs(sel("#menu a::after_all"), [dec("content", "'{'"),
+ dec("right", "-6px")
+ ])
])
end
end
end
end