提交 9dd254c2 编写于 作者: R r7kamura

Preserve html_safe? status on ActiveSupport::SafeBuffer#*

上级 98a75b46
* Preserve `html_safe?` status on `ActiveSupport::SafeBuffer#*`.
Before:
("<br />".html_safe * 2).html_safe? #=> nil
After:
("<br />".html_safe * 2).html_safe? #=> true
*Ryo Nakamura*
* Calling test methods with `with_info_handler` method to allow minitest-hooks
plugin to work.
......
......@@ -213,6 +213,12 @@ def +(other)
dup.concat(other)
end
def *(*)
new_safe_buffer = super
new_safe_buffer.instance_variable_set(:@html_safe, @html_safe)
new_safe_buffer
end
def %(args)
case args
when Hash
......
......@@ -150,6 +150,14 @@ def test_titleize
assert_equal "hello&lt;&gt;", clean + @buffer
end
test "Should preserve html_safe? status on multiplication" do
multiplied_safe_buffer = "<br />".html_safe * 2
assert_predicate multiplied_safe_buffer, :html_safe?
multiplied_unsafe_buffer = @buffer.gsub("", "<>") * 2
assert_not_predicate multiplied_unsafe_buffer, :html_safe?
end
test "Should concat as a normal string when safe" do
clean = "hello".html_safe
@buffer.gsub!("", "<>")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册