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{

hello

} locals = {} options = {} assert_ugly(haml, locals, options) @@ -292,6 +334,11 @@ describe "haml" do haml = %q{%div %div %p text} + html = %q{
+
+

text

+
+
} locals = {} options = {} assert_ugly(haml, locals, options) @@ -302,6 +349,9 @@ describe "haml" do specify "Nested content simple tag" do haml = %q{%p hello} + html = %q{

+ hello +

} locals = {} options = {} assert_ugly(haml, locals, options) @@ -310,6 +360,9 @@ describe "haml" do specify "Nested content tag with CSS" do haml = %q{%p.class1 hello} + html = %q{

+ hello +

} locals = {} options = {} assert_ugly(haml, locals, options) @@ -320,6 +373,13 @@ describe "haml" do %div %p text} + html = %q{
+
+

+ text +

+
+
} 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
Bar\nBaz
"} + html = %q{Foo +
Bar
Baz
} locals = {} options = {} assert_ugly(haml, locals, options) @@ -723,6 +857,8 @@ describe "haml" do haml = %q{%textarea hello hello} + html = %q{} locals = {} options = {} assert_ugly(haml, locals, options) @@ -732,6 +868,8 @@ describe "haml" do haml = %q{%pre hello hello} + html = %q{
hello
+hello
} locals = {} options = {} assert_ugly(haml, locals, options) @@ -743,6 +881,7 @@ describe "haml" do haml = %q{%li hello %li> world %li again} + html = %q{
  • hello
  • world
  • again
  • } locals = {} options = {} assert_ugly(haml, locals, options) @@ -753,6 +892,9 @@ describe "haml" do %li> world %li again} + html = %q{
  • hello
  • + world +
  • again
  • } locals = {} options = {} assert_ugly(haml, locals, options) @@ -762,6 +904,8 @@ describe "haml" do haml = %q{%p< hello world} + html = %q{

    hello +world

    } locals = {} options = {} assert_ugly(haml, locals, options)