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