aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/template/output_safety_helper_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test/template/output_safety_helper_test.rb')
-rw-r--r--actionpack/test/template/output_safety_helper_test.rb55
1 files changed, 55 insertions, 0 deletions
diff --git a/actionpack/test/template/output_safety_helper_test.rb b/actionpack/test/template/output_safety_helper_test.rb
new file mode 100644
index 0000000000..3c52b63d40
--- /dev/null
+++ b/actionpack/test/template/output_safety_helper_test.rb
@@ -0,0 +1,55 @@
+require 'abstract_unit'
+require 'testing_sandbox'
+
+class OutputSafetyHelperTest < ActionView::TestCase
+ tests ActionView::Helpers::OutputSafetyHelper
+ include TestingSandbox
+
+ def setup
+ @string = "hello"
+ end
+
+ test "raw returns the safe string" do
+ result = raw(@string)
+ assert_equal @string, result
+ assert result.html_safe?
+ end
+
+ test "raw handles nil values correctly" do
+ assert_equal "", raw(nil)
+ end
+
+ test "joining safe elements without a separator is safe" do
+ array = 5.times.collect { "some string".html_safe }
+ assert safe_join(array).html_safe?
+ end
+
+ test "Joining safe elements with a safe separator is safe" do
+ array = 5.times.collect { "some string".html_safe }
+ assert safe_join(array, "-".html_safe).html_safe?
+ end
+
+ test "Joining safe elements with an unsafe separator is unsafe" do
+ array = 5.times.collect { "some string".html_safe }
+ assert !safe_join(array, "-").html_safe?
+ end
+
+ test "Joining is unsafe if any element is unsafe even with a safe separator" do
+ array = 5.times.collect { "some string".html_safe }
+ array << "some string"
+ assert !safe_join(array, "-".html_safe).html_safe?
+ end
+
+ test "Joining is unsafe if any element is unsafe and no separator is given" do
+ array = 5.times.collect { "some string".html_safe }
+ array << "some string"
+ assert !safe_join(array).html_safe?
+ end
+
+ test "Joining is unsafe if any element is unsafe and the separator is unsafe" do
+ array = 5.times.collect { "some string".html_safe }
+ array << "some string"
+ assert !safe_join(array, "-").html_safe?
+ end
+
+end \ No newline at end of file