]]>
HTML
end
def test_self_closing_tag
assert_equal("%foo/", render(""))
end
def test_inline_text
assert_equal("%p foo", render("
foo
"))
end
def test_inline_comment
assert_equal("/ foo", render(""))
end
def test_non_inline_comment
assert_equal(<
HTML
end
def test_non_inline_text
assert_equal(<
foo
HTML
assert_equal(<
foo
HTML
assert_equal(<foo
HTML
end
def test_script_tag
assert_equal(<
function foo() {
return "12" & "13";
}
HTML
end
def test_script_tag_with_cdata
assert_equal(<
HTML
end
def test_pre
assert_equal(<foo
bar
baz
HTML
end
def test_pre_code
assert_equal(<foo
bar
baz
HTML
end
def test_code_without_pre
assert_equal(<foo
bar
baz
HTML
end
def test_conditional_comment
assert_equal(<
bar
baz
HTML
end
def test_style_to_css_filter
assert_equal(<
foo {
bar: baz;
}
HTML
end
def test_inline_conditional_comment
assert_equal(< bar baz
HTML
end
def test_minus_in_tag
assert_equal("%p - foo bar -", render("
- foo bar -
"))
end
def test_equals_in_tag
assert_equal("%p = foo bar =", render("
= foo bar =
"))
end
def test_hash_in_tag
assert_equal("%p # foo bar #", render("
# foo bar #
"))
end
def test_comma_post_tag
assert_equal(< Foo
,
%span bar
Foo
%span> bar
,
%span baz
HAML
Foo, bar
Foobar, baz
HTML
end
def test_comma_post_tag_with_text_before
assert_equal(<
Batch
Foo, Bar
HTML
end
begin
require 'haml/html/erb'
include ErbTests
rescue LoadError => e
puts "\n** Couldn't require #{e.message[/-- (.*)$/, 1]}, skipping some tests"
end
# Encodings
unless Haml::Util.ruby1_8?
def test_encoding_error
render("foo\nbar\nb\xFEaz".force_encoding("utf-8"))
assert(false, "Expected exception")
rescue Haml::Error => e
assert_equal(3, e.line)
assert_equal('Invalid UTF-8 character "\xFE"', e.message)
end
def test_ascii_incompatible_encoding_error
template = "foo\nbar\nb_z".encode("utf-16le")
template[9] = "\xFE".force_encoding("utf-16le")
render(template)
assert(false, "Expected exception")
rescue Haml::Error => e
assert_equal(3, e.line)
assert_equal('Invalid UTF-16LE character "\xFE"', e.message)
end
end
# Regression Tests
def test_xhtml_strict_doctype
assert_equal('!!! Strict', render(<
HTML
end
protected
def render(text, options = {})
Haml::HTML.new(text, options).render.rstrip
end
def render_erb(text)
render(text, :erb => true)
end
end