}
haml = %q{%div
%div
%p
text}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "tags with HTML-style attributes" do
specify "HTML-style one attribute" do
- html = %q{}
haml = %q{%p(a='b')}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style multiple attributes" do
- html = %q{}
haml = %q{%p(a='b' c='d')}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style attributes separated with newlines" do
- html = %q{}
haml = %q{%p(a='b'
c='d')}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style interpolated attribute" do
- html = %q{}
haml = %q{%p(a="#{var}")}
locals = {:var=>"value"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style 'class' as an attribute" do
- html = %q{}
haml = %q{%p(class='class1')}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style tag with a CSS class and 'class' as an attribute" do
- html = %q{}
haml = %q{%p.class2(class='class1')}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style tag with 'id' as an attribute" do
- html = %q{}
haml = %q{%p(id='1')}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style tag with a CSS id and 'id' as an attribute" do
- html = %q{}
haml = %q{%p#id(id='1')}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style tag with a variable attribute" do
- html = %q{}
haml = %q{%p(class=var)}
locals = {:var=>"hello"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style tag with a CSS class and 'class' as a variable attribute" do
- html = %q{}
haml = %q{.hello(class=var)}
locals = {:var=>"world"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "HTML-style tag multiple CSS classes (sorted correctly)" do
- html = %q{}
haml = %q{.z(class=var)}
locals = {:var=>"a"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "tags with Ruby-style attributes" do
specify "Ruby-style one attribute" do
- html = %q{}
haml = %q{%p{:a => 'b'}}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style attributes hash with whitespace" do
- html = %q{}
haml = %q{%p{ :a => 'b' }}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style interpolated attribute" do
- html = %q{}
haml = %q{%p{:a =>"#{var}"}}
locals = {:var=>"value"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style multiple attributes" do
- html = %q{}
haml = %q{%p{ :a => 'b', 'c' => 'd' }}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style attributes separated with newlines" do
- html = %q{}
haml = %q{%p{ :a => 'b',
'c' => 'd' }}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style 'class' as an attribute" do
- html = %q{}
haml = %q{%p{:class => 'class1'}}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style tag with a CSS class and 'class' as an attribute" do
- html = %q{}
haml = %q{%p.class2{:class => 'class1'}}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style tag with 'id' as an attribute" do
- html = %q{}
haml = %q{%p{:id => '1'}}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style tag with a CSS id and 'id' as an attribute" do
- html = %q{}
haml = %q{%p#id{:id => '1'}}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style tag with a CSS id and a numeric 'id' as an attribute" do
- html = %q{}
haml = %q{%p#id{:id => 1}}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style tag with a variable attribute" do
- html = %q{}
haml = %q{%p{:class => var}}
locals = {:var=>"hello"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style tag with a CSS class and 'class' as a variable attribute" do
- html = %q{}
haml = %q{.hello{:class => var}}
locals = {:var=>"world"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "Ruby-style tag multiple CSS classes (sorted correctly)" do
- html = %q{}
haml = %q{.z{:class => var}}
locals = {:var=>"a"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "silent comments" do
specify "an inline silent comment" do
- html = %q{}
haml = %q{-# hello}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "a nested silent comment" do
- html = %q{}
haml = %q{-#
hello}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "a multiply nested silent comment" do
- html = %q{}
haml = %q{-#
%div
foo}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "a multiply nested silent comment with inconsistent indents" do
- html = %q{}
haml = %q{-#
%div
foo}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "markup comments" do
specify "an inline markup comment" do
- html = %q{}
haml = %q{/ comment}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "a nested markup comment" do
- html = %q{}
haml = %q{/
comment
comment2}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "conditional comments" do
specify "a conditional comment" do
- html = %q{}
haml = %q{/[if IE]
%p a}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "internal filters" do
specify "content in an 'escaped' filter" do
- html = %q{<&">}
haml = %q{:escaped
<&">}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "content in a 'preserve' filter" do
- html = %q{hello
-}
haml = %q{:preserve
hello
%p}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "content in a 'plain' filter" do
- html = %q{hello
-}
haml = %q{:plain
hello
%p}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "content in a 'css' filter (XHTML)" do
- html = %q{
-}
haml = %q{:css
hello
%p}
locals = {}
options = {:format=>:xhtml}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "content in a 'javascript' filter (XHTML)" do
- html = %q{
-}
haml = %q{:javascript
a();
%p}
locals = {}
options = {:format=>:xhtml}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "content in a 'css' filter (HTML)" do
- html = %q{
-}
haml = %q{:css
hello
%p}
locals = {}
options = {:format=>:html5}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "content in a 'javascript' filter (HTML)" do
- html = %q{
-}
haml = %q{:javascript
a();
%p}
locals = {}
options = {:format=>:html5}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "Ruby-style interpolation" do
specify "interpolation inside inline content" do
- html = %q{
value
}
haml = %q{%p #{var}}
locals = {:var=>"value"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "no interpolation when escaped" do
- html = %q{
#{var}
}
haml = %q{%p \#{var}}
locals = {:var=>"value"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "interpolation when the escape character is escaped" do
- html = %q{
\value
}
haml = %q{%p \\#{var}}
locals = {:var=>"value"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "interpolation inside filtered content" do
- html = %q{value interpolated: value}
haml = %q{:plain
#{var} interpolated: #{var}}
locals = {:var=>"value"}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "HTML escaping" do
specify "code following '&='" do
- html = %q{<"&>}
haml = %q{&= '<"&>'}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "code following '=' when escape_haml is set to true" do
- html = %q{<"&>}
haml = %q{= '<"&>'}
locals = {}
options = {:escape_html=>"true"}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "code following '!=' when escape_haml is set to true" do
- html = %q{<"&>}
haml = %q{!= '<"&>'}
locals = {}
options = {:escape_html=>"true"}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "boolean attributes" do
specify "boolean attribute with XHTML" do
- html = %q{}
haml = %q{%input(checked=true)}
locals = {}
options = {:format=>:xhtml}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "boolean attribute with HTML" do
- html = %q{}
haml = %q{%input(checked=true)}
locals = {}
options = {:format=>:html5}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "whitespace preservation" do
specify "following the '~' operator" do
- html = %q{Foo
-
Bar
Baz
}
haml = %q{~ "Foo\n
Bar\nBaz
"}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "inside a textarea tag" do
- html = %q{}
haml = %q{%textarea
hello
hello}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "inside a pre tag" do
- html = %q{
hello
-hello
}
haml = %q{%pre
hello
hello}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
context "whitespace removal" do
specify "a tag with '>' appended and inline content" do
- html = %q{
hello
world
again
}
haml = %q{%li hello
%li> world
%li again}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "a tag with '>' appended and nested content" do
- html = %q{
hello
- world
-
again
}
haml = %q{%li hello
%li>
world
%li again}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
specify "a tag with '<' appended" do
- html = %q{
hello
-world
}
haml = %q{%p<
hello
world}
locals = {}
options = {}
- assert_render(html, haml, locals, options)
+ assert_pretty(haml, locals, options)
+ assert_ugly(haml, locals, options)
end
end
end