From c3e18363d73c2467e72b258f0ec1e615b6d1c4bd Mon Sep 17 00:00:00 2001 From: Carson McDonald Date: Fri, 3 May 2013 06:39:54 -0400 Subject: [PATCH 1/2] Add tests for empty nested rulesets. --- test/csscss/parser/css_test.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/csscss/parser/css_test.rb b/test/csscss/parser/css_test.rb index ad0c45b..f8838db 100644 --- a/test/csscss/parser/css_test.rb +++ b/test/csscss/parser/css_test.rb @@ -131,6 +131,27 @@ module Css ]) 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"; From f5c5d3b78e1c7625beeb559a7af404d68c7701bb Mon Sep 17 00:00:00 2001 From: Carson McDonald Date: Fri, 3 May 2013 06:40:53 -0400 Subject: [PATCH 2/2] Require at least one child ruleset. --- lib/csscss/parser/css.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/csscss/parser/css.rb b/lib/csscss/parser/css.rb index 7a954c7..cb799a2 100644 --- a/lib/csscss/parser/css.rb +++ b/lib/csscss/parser/css.rb @@ -66,7 +66,7 @@ class Parser < Parslet::Parser str("@") >> match["^{}"].repeat(1) >> str("{") >> - (comment | ruleset).repeat(0) >> + (comment | ruleset).repeat(1) >> str("}") >> space? ).as(:nested_ruleset)