mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
9415935902
This consists of: * String#html_safe! a method to mark a string as 'safe' * ActionView::SafeBuffer a string subclass which escapes anything unsafe which is concatenated to it * Calls to String#html_safe! throughout the rails helpers * a 'raw' helper which lets you concatenate trusted HTML from non-safety-aware sources (e.g. presantized strings in the DB) * New ERB implementation based on erubis which uses a SafeBuffer instead of a String Hat tip to Django for the inspiration.
19 lines
496 B
Ruby
19 lines
496 B
Ruby
require 'abstract_unit'
|
|
|
|
class OutputEscapingTest < ActiveSupport::TestCase
|
|
|
|
test "escape_html shouldn't die when passed nil" do
|
|
assert ERB::Util.h(nil).blank?
|
|
end
|
|
|
|
test "escapeHTML should escape strings" do
|
|
assert_equal "<>"", ERB::Util.h("<>\"")
|
|
end
|
|
|
|
test "escapeHTML shouldn't touch explicitly safe strings" do
|
|
# TODO this seems easier to compose and reason about, but
|
|
# this should be verified
|
|
assert_equal "<", ERB::Util.h("<".html_safe!)
|
|
end
|
|
|
|
end
|