Merge pull request #2344 from bcardarella/resolve_warning_for_capture_helper_test

Reset @dirty to false when slicing an instance of SafeBuffer
This commit is contained in:
Aaron Patterson
2011-07-29 10:32:24 -07:00
2 changed files with 12 additions and 0 deletions

View File

@@ -86,6 +86,12 @@ module ActiveSupport #:nodoc:
end
end
def[](*args)
new_safe_buffer = super
new_safe_buffer.instance_eval { @dirty = false }
new_safe_buffer
end
def safe_concat(value)
raise SafeConcatError if dirty?
original_concat(value)

View File

@@ -106,4 +106,10 @@ class SafeBufferTest < ActiveSupport::TestCase
test "should not fail if the returned object is not a string" do
assert_kind_of NilClass, @buffer.slice("chipchop")
end
test "Should initialize @dirty to false for new instance when sliced" do
dirty = @buffer[0,0].send(:dirty?)
assert_not_nil dirty
assert !dirty
end
end