diff --git a/spec/Rakefile b/spec/Rakefile
index 3ecb96cc..a23dee22 100644
--- a/spec/Rakefile
+++ b/spec/Rakefile
@@ -8,6 +8,7 @@ def generate_spec(test, locals, options)
<<-SPEC
specify \"#{test[:name]}\" do
haml = %q{#{test[:haml]}}
+ html = %q{#{test[:html]}}
locals = #{locals}
options = #{options}
assert_ugly(haml, locals, options)
diff --git a/spec/haml_spec.rb b/spec/haml_spec.rb
index 8bd9b12c..58df52cf 100644
--- a/spec/haml_spec.rb
+++ b/spec/haml_spec.rb
@@ -14,6 +14,7 @@ describe "haml" do
context "headers" do
specify "an XHTML XML prolog" do
haml = %q{!!! XML}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -21,6 +22,7 @@ describe "haml" do
specify "an XHTML default (transitional) doctype" do
haml = %q{!!!}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -28,6 +30,7 @@ describe "haml" do
specify "an XHTML 1.1 doctype" do
haml = %q{!!! 1.1}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -35,6 +38,7 @@ describe "haml" do
specify "an XHTML 1.2 mobile doctype" do
haml = %q{!!! mobile}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -42,6 +46,7 @@ describe "haml" do
specify "an XHTML 1.1 basic doctype" do
haml = %q{!!! basic}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -49,6 +54,7 @@ describe "haml" do
specify "an XHTML 1.0 frameset doctype" do
haml = %q{!!! frameset}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -56,6 +62,7 @@ describe "haml" do
specify "an HTML 5 doctype with XHTML syntax" do
haml = %q{!!! 5}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -63,6 +70,7 @@ describe "haml" do
specify "an HTML 5 XML prolog (silent)" do
haml = %q{!!! XML}
+ html = %q{}
locals = {}
options = {:format=>:html5}
assert_ugly(haml, locals, options)
@@ -70,6 +78,7 @@ describe "haml" do
specify "an HTML 5 doctype" do
haml = %q{!!!}
+ html = %q{}
locals = {}
options = {:format=>:html5}
assert_ugly(haml, locals, options)
@@ -77,6 +86,7 @@ describe "haml" do
specify "an HTML 4 XML prolog (silent)" do
haml = %q{!!! XML}
+ html = %q{}
locals = {}
options = {:format=>:html4}
assert_ugly(haml, locals, options)
@@ -84,6 +94,7 @@ describe "haml" do
specify "an HTML 4 default (transitional) doctype" do
haml = %q{!!!}
+ html = %q{}
locals = {}
options = {:format=>:html4}
assert_ugly(haml, locals, options)
@@ -91,6 +102,7 @@ describe "haml" do
specify "an HTML 4 frameset doctype" do
haml = %q{!!! frameset}
+ html = %q{}
locals = {}
options = {:format=>:html4}
assert_ugly(haml, locals, options)
@@ -98,6 +110,7 @@ describe "haml" do
specify "an HTML 4 strict doctype" do
haml = %q{!!! strict}
+ html = %q{}
locals = {}
options = {:format=>:html4}
assert_ugly(haml, locals, options)
@@ -107,6 +120,7 @@ describe "haml" do
context "basic Haml tags and CSS" do
specify "a simple Haml tag" do
haml = %q{%p}
+ html = %q{
}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -114,6 +128,7 @@ describe "haml" do
specify "a self-closing tag (XHTML)" do
haml = %q{%meta}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -121,6 +136,7 @@ describe "haml" do
specify "a self-closing tag (HTML4)" do
haml = %q{%meta}
+ html = %q{}
locals = {}
options = {:format=>:html4}
assert_ugly(haml, locals, options)
@@ -128,6 +144,7 @@ describe "haml" do
specify "a self-closing tag (HTML5)" do
haml = %q{%meta}
+ html = %q{}
locals = {}
options = {:format=>:html5}
assert_ugly(haml, locals, options)
@@ -135,6 +152,7 @@ describe "haml" do
specify "a self-closing tag ('/' modifier + XHTML)" do
haml = %q{%zzz/}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -142,6 +160,7 @@ describe "haml" do
specify "a self-closing tag ('/' modifier + HTML5)" do
haml = %q{%zzz/}
+ html = %q{}
locals = {}
options = {:format=>:html5}
assert_ugly(haml, locals, options)
@@ -149,6 +168,7 @@ describe "haml" do
specify "a tag with a CSS class" do
haml = %q{%p.class1}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -156,6 +176,7 @@ describe "haml" do
specify "a tag with multiple CSS classes" do
haml = %q{%p.class1.class2}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -163,6 +184,7 @@ describe "haml" do
specify "a tag with a CSS id" do
haml = %q{%p#id1}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -170,6 +192,7 @@ describe "haml" do
specify "a tag with multiple CSS id's" do
haml = %q{%p#id1#id2}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -177,6 +200,7 @@ describe "haml" do
specify "a tag with a class followed by an id" do
haml = %q{%p.class1#id1}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -184,6 +208,7 @@ describe "haml" do
specify "a tag with an id followed by a class" do
haml = %q{%p#id1.class1}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -191,6 +216,7 @@ describe "haml" do
specify "an implicit div with a CSS id" do
haml = %q{#id1}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -198,6 +224,7 @@ describe "haml" do
specify "an implicit div with a CSS class" do
haml = %q{.class1}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -207,6 +234,11 @@ describe "haml" do
haml = %q{%div
%div
%p}
+ html = %q{
+
+
+
+
}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -216,6 +248,7 @@ describe "haml" do
context "tags with unusual HTML characters" do
specify "a tag with colons" do
haml = %q{%ns:tag}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -223,6 +256,7 @@ describe "haml" do
specify "a tag with underscores" do
haml = %q{%snake_case}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -230,6 +264,7 @@ describe "haml" do
specify "a tag with dashes" do
haml = %q{%dashed-tag}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -237,6 +272,7 @@ describe "haml" do
specify "a tag with camelCase" do
haml = %q{%camelCase}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -244,6 +280,7 @@ describe "haml" do
specify "a tag with PascalCase" do
haml = %q{%PascalCase}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -253,6 +290,7 @@ describe "haml" do
context "tags with unusual CSS identifiers" do
specify "an all-numeric class" do
haml = %q{.123}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -260,6 +298,7 @@ describe "haml" do
specify "a class with underscores" do
haml = %q{.__}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -267,6 +306,7 @@ describe "haml" do
specify "a class with dashes" do
haml = %q{.--}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -276,6 +316,7 @@ describe "haml" do
context "tags with inline content" do
specify "Inline content simple tag" do
haml = %q{%p hello}
+ html = %q{
hello
}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -283,6 +324,7 @@ describe "haml" do
specify "Inline content tag with CSS" do
haml = %q{%p.class1 hello}
+ html = %q{
}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -329,6 +389,7 @@ describe "haml" do
context "tags with HTML-style attributes" do
specify "HTML-style one attribute" do
haml = %q{%p(a='b')}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -336,6 +397,7 @@ describe "haml" do
specify "HTML-style multiple attributes" do
haml = %q{%p(a='b' c='d')}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -345,6 +407,7 @@ describe "haml" do
pending "HTML-style attributes separated with newlines" do
haml = %q{%p(a='b'
c='d')}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -352,6 +415,7 @@ describe "haml" do
specify "HTML-style interpolated attribute" do
haml = %q{%p(a="#{var}")}
+ html = %q{}
locals = {:var=>"value"}
options = {}
assert_ugly(haml, locals, options)
@@ -359,6 +423,7 @@ describe "haml" do
specify "HTML-style 'class' as an attribute" do
haml = %q{%p(class='class1')}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -366,6 +431,7 @@ describe "haml" do
specify "HTML-style tag with a CSS class and 'class' as an attribute" do
haml = %q{%p.class2(class='class1')}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -373,6 +439,7 @@ describe "haml" do
specify "HTML-style tag with 'id' as an attribute" do
haml = %q{%p(id='1')}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -380,6 +447,7 @@ describe "haml" do
specify "HTML-style tag with a CSS id and 'id' as an attribute" do
haml = %q{%p#id(id='1')}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -387,6 +455,7 @@ describe "haml" do
specify "HTML-style tag with a variable attribute" do
haml = %q{%p(class=var)}
+ html = %q{}
locals = {:var=>"hello"}
options = {}
assert_ugly(haml, locals, options)
@@ -394,6 +463,7 @@ describe "haml" do
specify "HTML-style tag with a CSS class and 'class' as a variable attribute" do
haml = %q{.hello(class=var)}
+ html = %q{}
locals = {:var=>"world"}
options = {}
assert_ugly(haml, locals, options)
@@ -401,6 +471,7 @@ describe "haml" do
specify "HTML-style tag multiple CSS classes (sorted correctly)" do
haml = %q{.z(class=var)}
+ html = %q{}
locals = {:var=>"a"}
options = {}
assert_ugly(haml, locals, options)
@@ -409,6 +480,7 @@ describe "haml" do
# FIXME: currently this is not considered
pending "HTML-style tag with an atomic attribute" do
haml = %q{%a(flag)}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -418,6 +490,7 @@ describe "haml" do
context "tags with Ruby-style attributes" do
specify "Ruby-style one attribute" do
haml = %q{%p{:a => 'b'}}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -425,6 +498,7 @@ describe "haml" do
specify "Ruby-style attributes hash with whitespace" do
haml = %q{%p{ :a => 'b' }}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -432,6 +506,7 @@ describe "haml" do
specify "Ruby-style interpolated attribute" do
haml = %q{%p{:a =>"#{var}"}}
+ html = %q{}
locals = {:var=>"value"}
options = {}
assert_ugly(haml, locals, options)
@@ -439,6 +514,7 @@ describe "haml" do
specify "Ruby-style multiple attributes" do
haml = %q{%p{ :a => 'b', 'c' => 'd' }}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -448,6 +524,7 @@ describe "haml" do
pending "Ruby-style attributes separated with newlines" do
haml = %q{%p{ :a => 'b',
'c' => 'd' }}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -455,6 +532,7 @@ describe "haml" do
specify "Ruby-style 'class' as an attribute" do
haml = %q{%p{:class => 'class1'}}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -462,6 +540,7 @@ describe "haml" do
specify "Ruby-style tag with a CSS class and 'class' as an attribute" do
haml = %q{%p.class2{:class => 'class1'}}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -469,6 +548,7 @@ describe "haml" do
specify "Ruby-style tag with 'id' as an attribute" do
haml = %q{%p{:id => '1'}}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -476,6 +556,7 @@ describe "haml" do
specify "Ruby-style tag with a CSS id and 'id' as an attribute" do
haml = %q{%p#id{:id => '1'}}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -483,6 +564,7 @@ describe "haml" do
specify "Ruby-style tag with a CSS id and a numeric 'id' as an attribute" do
haml = %q{%p#id{:id => 1}}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -490,6 +572,7 @@ describe "haml" do
specify "Ruby-style tag with a variable attribute" do
haml = %q{%p{:class => var}}
+ html = %q{}
locals = {:var=>"hello"}
options = {}
assert_ugly(haml, locals, options)
@@ -497,6 +580,7 @@ describe "haml" do
specify "Ruby-style tag with a CSS class and 'class' as a variable attribute" do
haml = %q{.hello{:class => var}}
+ html = %q{}
locals = {:var=>"world"}
options = {}
assert_ugly(haml, locals, options)
@@ -504,6 +588,7 @@ describe "haml" do
specify "Ruby-style tag multiple CSS classes (sorted correctly)" do
haml = %q{.z{:class => var}}
+ html = %q{}
locals = {:var=>"a"}
options = {}
assert_ugly(haml, locals, options)
@@ -513,6 +598,7 @@ describe "haml" do
context "silent comments" do
specify "an inline silent comment" do
haml = %q{-# hello}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -521,6 +607,7 @@ describe "haml" do
specify "a nested silent comment" do
haml = %q{-#
hello}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -530,6 +617,7 @@ describe "haml" do
haml = %q{-#
%div
foo}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -539,6 +627,7 @@ describe "haml" do
haml = %q{-#
%div
foo}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -548,6 +637,7 @@ describe "haml" do
context "markup comments" do
specify "an inline markup comment" do
haml = %q{/ comment}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -557,6 +647,10 @@ describe "haml" do
haml = %q{/
comment
comment2}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -564,9 +658,13 @@ describe "haml" do
end
context "conditional comments" do
- specify "a conditional comment" do
+ # FIXME: I'll implement later
+ pending "a conditional comment" do
haml = %q{/[if IE]
%p a}
+ html = %q{}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -577,6 +675,7 @@ describe "haml" do
specify "content in an 'escaped' filter" do
haml = %q{:escaped
<&">}
+ html = %q{<&">}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -587,6 +686,8 @@ describe "haml" do
hello
%p}
+ html = %q{hello
+}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -597,6 +698,8 @@ describe "haml" do
hello
%p}
+ html = %q{hello
+}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -607,6 +710,12 @@ describe "haml" do
hello
%p}
+ html = %q{
+}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -616,6 +725,12 @@ describe "haml" do
haml = %q{:javascript
a();
%p}
+ html = %q{
+}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -626,6 +741,10 @@ describe "haml" do
hello
%p}
+ html = %q{
+}
locals = {}
options = {:format=>:html5}
assert_ugly(haml, locals, options)
@@ -635,6 +754,10 @@ describe "haml" do
haml = %q{:javascript
a();
%p}
+ html = %q{
+}
locals = {}
options = {:format=>:html5}
assert_ugly(haml, locals, options)
@@ -644,6 +767,7 @@ describe "haml" do
context "Ruby-style interpolation" do
specify "interpolation inside inline content" do
haml = %q{%p #{var}}
+ html = %q{
value
}
locals = {:var=>"value"}
options = {}
assert_ugly(haml, locals, options)
@@ -651,6 +775,7 @@ describe "haml" do
specify "no interpolation when escaped" do
haml = %q{%p \#{var}}
+ html = %q{
#{var}
}
locals = {:var=>"value"}
options = {}
assert_ugly(haml, locals, options)
@@ -658,6 +783,7 @@ describe "haml" do
specify "interpolation when the escape character is escaped" do
haml = %q{%p \\#{var}}
+ html = %q{
\value
}
locals = {:var=>"value"}
options = {}
assert_ugly(haml, locals, options)
@@ -666,6 +792,7 @@ describe "haml" do
specify "interpolation inside filtered content" do
haml = %q{:plain
#{var} interpolated: #{var}}
+ html = %q{value interpolated: value}
locals = {:var=>"value"}
options = {}
assert_ugly(haml, locals, options)
@@ -675,6 +802,7 @@ describe "haml" do
context "HTML escaping" do
specify "code following '&='" do
haml = %q{&= '<"&>'}
+ html = %q{<"&>}
locals = {}
options = {}
assert_ugly(haml, locals, options)
@@ -682,6 +810,7 @@ describe "haml" do
specify "code following '=' when escape_haml is set to true" do
haml = %q{= '<"&>'}
+ html = %q{<"&>}
locals = {}
options = {:escape_html=>"true"}
assert_ugly(haml, locals, options)
@@ -689,6 +818,7 @@ describe "haml" do
specify "code following '!=' when escape_haml is set to true" do
haml = %q{!= '<"&>'}
+ html = %q{<"&>}
locals = {}
options = {:escape_html=>"true"}
assert_ugly(haml, locals, options)
@@ -698,6 +828,7 @@ describe "haml" do
context "boolean attributes" do
specify "boolean attribute with XHTML" do
haml = %q{%input(checked=true)}
+ html = %q{}
locals = {}
options = {:format=>:xhtml}
assert_ugly(haml, locals, options)
@@ -705,6 +836,7 @@ describe "haml" do
specify "boolean attribute with HTML" do
haml = %q{%input(checked=true)}
+ html = %q{}
locals = {}
options = {:format=>:html5}
assert_ugly(haml, locals, options)
@@ -714,6 +846,8 @@ describe "haml" do
context "whitespace preservation" do
specify "following the '~' operator" do
haml = %q{~ "Foo\n