add markdown, rdoc and textile nesting tests

This commit is contained in:
Konstantin Haase 2011-04-15 11:14:23 +02:00
parent 1725633080
commit a9d89d28a5
4 changed files with 97 additions and 5 deletions

View File

@ -65,6 +65,11 @@ class Test::Unit::TestCase
assert_equal value.lstrip.gsub(/\s*\n\s*/, ""), body.lstrip.gsub(/\s*\n\s*/, "")
end
def assert_like(a,b)
pattern = /\s*\n\s*| id=['"][^"']*["']/
assert_equal a.strip.gsub(pattern, ""), b.strip.gsub(pattern, "")
end
def assert_include(str, substr)
assert str.include?(substr), "expected #{str.inspect} to include #{substr.inspect}"
end
@ -76,6 +81,8 @@ class Test::Unit::TestCase
else
super
end
rescue Rack::Test::Error
super
end
# Also check response since we delegate there.

View File

@ -9,11 +9,6 @@ MarkdownTest = proc do
get '/'
end
def assert_like(a,b)
pattern = /\s*\n\s*| id=['"][^"']*["']/
assert_equal a.strip.gsub(pattern, ""), b.strip.gsub(pattern, "")
end
def setup
Tilt.prefer engine, 'markdown', 'mkd', 'md'
super
@ -41,6 +36,36 @@ MarkdownTest = proc do
mock_app { get('/') { markdown :no_such_template } }
assert_raise(Errno::ENOENT) { get('/') }
end
it "renders with inline layouts" do
mock_app do
layout { 'THIS. IS. #{yield.upcase}!' }
get('/') { markdown 'Sparta', :layout_engine => :str }
end
get '/'
assert ok?
assert_like 'THIS. IS. <P>SPARTA</P>!', body
end
it "renders with file layouts" do
markdown_app { markdown 'Hello World', :layout => :layout2, :layout_engine => :erb }
assert ok?
assert_body "ERB Layout!\n<p>Hello World</p>"
end
it "can be used in a nested fashion for partials and whatnot" do
mock_app do
template(:inner) { "hi" }
template(:outer) { "<outer><%= markdown :inner %></outer>" }
get '/' do
erb :outer
end
end
get '/'
assert ok?
assert_like '<outer><p>hi</p></outer>', body
end
end
# Will generate RDiscountTest, KramdownTest, etc.

View File

@ -28,6 +28,36 @@ class RdocTest < Test::Unit::TestCase
mock_app { get('/') { rdoc :no_such_template } }
assert_raise(Errno::ENOENT) { get('/') }
end
it "renders with inline layouts" do
mock_app do
layout { 'THIS. IS. #{yield.upcase}!' }
get('/') { rdoc 'Sparta', :layout_engine => :str }
end
get '/'
assert ok?
assert_like 'THIS. IS.<P>SPARTA</P>!', body
end
it "renders with file layouts" do
rdoc_app { rdoc 'Hello World', :layout => :layout2, :layout_engine => :erb }
assert ok?
assert_body "ERB Layout!\n<p>Hello World</p>"
end
it "can be used in a nested fashion for partials and whatnot" do
mock_app do
template(:inner) { "hi" }
template(:outer) { "<outer><%= rdoc :inner %></outer>" }
get '/' do
erb :outer
end
end
get '/'
assert ok?
assert_like '<outer><p>hi</p></outer>', body
end
end
rescue LoadError

View File

@ -28,6 +28,36 @@ class TextileTest < Test::Unit::TestCase
mock_app { get('/') { textile :no_such_template } }
assert_raise(Errno::ENOENT) { get('/') }
end
it "renders with inline layouts" do
mock_app do
layout { 'THIS. IS. #{yield.upcase}!' }
get('/') { textile 'Sparta', :layout_engine => :str }
end
get '/'
assert ok?
assert_like 'THIS. IS. <P>SPARTA</P>!', body
end
it "renders with file layouts" do
textile_app { textile 'Hello World', :layout => :layout2, :layout_engine => :erb }
assert ok?
assert_body "ERB Layout!\n<p>Hello World</p>"
end
it "can be used in a nested fashion for partials and whatnot" do
mock_app do
template(:inner) { "hi" }
template(:outer) { "<outer><%= textile :inner %></outer>" }
get '/' do
erb :outer
end
end
get '/'
assert ok?
assert_like '<outer><p>hi</p></outer>', body
end
end
rescue LoadError