Skip to content

Commit

Permalink
Added tests for the output_buffer returned by CacheHelper
Browse files Browse the repository at this point in the history
The output_buffer returned by CacheHelper should be html_safe if the original buffer is html_safe.
  • Loading branch information
Lauri Hahne committed Jul 17, 2011
1 parent c476a6b commit bc5ccd0
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions actionpack/test/controller/caching_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -785,3 +785,53 @@ def test_xml_formatted_fragment_caching
assert_equal " <p>Builder</p>\n", @store.read('views/test.host/functional_caching/formatted_fragment_cached')
end
end

class CacheHelperOutputBufferTest < ActionController::TestCase

class MockController
def read_fragment(name, options)
return false
end

def write_fragment(name, fragment, options)
fragment
end
end

def setup
super
end

def test_output_buffer
output_buffer = ActionView::OutputBuffer.new
controller = MockController.new
cache_helper = Object.new
cache_helper.extend(ActionView::Helpers::CacheHelper)
cache_helper.expects(:controller).returns(controller).at_least(0)
cache_helper.expects(:output_buffer).returns(output_buffer).at_least(0)
# if the output_buffer is changed, the new one should be html_safe
cache_helper.expects(:output_buffer=).with(responds_with(:html_safe?, true)).returns(true).at_least(0)

assert_nothing_raised do
cache_helper.send :fragment_for, 'Test fragment name', 'Test fragment', &Proc.new{ nil }
assert output_buffer.html_safe?, "Output buffer should stay html_safe"
end
end

def test_safe_buffer
output_buffer = ActiveSupport::SafeBuffer.new
controller = MockController.new
cache_helper = Object.new
cache_helper.extend(ActionView::Helpers::CacheHelper)
cache_helper.expects(:controller).returns(controller).at_least(0)
cache_helper.expects(:output_buffer).returns(output_buffer).at_least(0)
# if the output_buffer is changed, the new one should be html_safe
cache_helper.expects(:output_buffer=).with(responds_with(:html_safe?, true)).returns(true).at_least(0)

assert_nothing_raised do
cache_helper.send :fragment_for, 'Test fragment name', 'Test fragment', &Proc.new{ nil }
assert output_buffer.html_safe?, "Output buffer should stay html_safe"
end
end

end

0 comments on commit bc5ccd0

Please sign in to comment.