6 def initialize(content = nil)
11 @actual = render_content_with_page(@content, page)
12 if @expected.kind_of?(Regexp)
17 when @error_message: false
18 when @expected: @actual == @expected
19 when @matching: @actual =~ @matching
22 rescue => @actual_error
23 if @expected_error_message
24 @actual_error.message === @expected_error_message
32 action = @expected.nil? ? "render and match #{@matching.inspect}" : "render as #{@expected.inspect}"
34 unless @expected_error_message
36 "expected #{@content.inspect} to #{action}, but got #{@actual.inspect}"
38 "expected page to #{action}, but got #{@actual.inspect}"
41 "expected rendering #{@content.inspect} to throw exception with message #{@expected_error_message.inspect}, but was #{@actual_error.message.inspect}"
44 "expected #{@content.inspect} to render, but an exception was thrown #{@actual_error.message}"
49 "render tags #{@expected.inspect}"
62 def with_error(message)
63 @expected_error_message = message
68 url = test_host + "/" + url unless url =~ %r{^[^/]+\.[^/]+}
69 url = 'http://' + url unless url =~ %r{^http://}
71 @request_uri = uri.request_uri unless uri.request_uri == '/'
77 def render_content_with_page(tag_content, page)
78 page.request = ActionController::TestRequest.new
79 page.request.request_uri = @request_uri || page.url
80 page.request.host = @host || test_host
81 page.response = ActionController::TestResponse.new
85 page.send(:parse, tag_content)
94 # page.should render(input).as(output)
95 # page.should render(input).as(output).on(url)
96 # page.should render(input).matching(/hello world/)
97 # page.should render(input).with_error(message)
102 # page.should render_as(output)
103 def render_as(output)
104 RenderTags.new.as(output)