@@ -24,6 +24,29 @@ def test_with_filename
2424 assert_match ( /\A test filename:1\b / , e . backtrace [ 0 ] )
2525 end
2626
27+ # [deprecated] This will be removed later
28+ def test_without_filename_with_safe_level
29+ erb = EnvUtil . suppress_warning do
30+ ERB . new ( "<% raise ::TestERB::MyError %>" , 1 )
31+ end
32+ e = assert_raise ( MyError ) {
33+ erb . result
34+ }
35+ assert_match ( /\A \( erb\) :1\b / , e . backtrace [ 0 ] )
36+ end
37+
38+ # [deprecated] This will be removed later
39+ def test_with_filename_and_safe_level
40+ erb = EnvUtil . suppress_warning do
41+ ERB . new ( "<% raise ::TestERB::MyError %>" , 1 )
42+ end
43+ erb . filename = "test filename"
44+ e = assert_raise ( MyError ) {
45+ erb . result
46+ }
47+ assert_match ( /\A test filename:1\b / , e . backtrace [ 0 ] )
48+ end
49+
2750 def test_with_filename_lineno
2851 erb = ERB . new ( "<% raise ::TestERB::MyError %>" )
2952 erb . filename = "test filename"
@@ -75,16 +98,25 @@ def test_version
7598 end
7699
77100 def test_core
101+ # [deprecated] Fix initializer later
102+ EnvUtil . suppress_warning do
103+ _test_core ( nil )
104+ _test_core ( 0 )
105+ _test_core ( 1 )
106+ end
107+ end
108+
109+ def _test_core ( safe )
78110 erb = @erb . new ( "hello" )
79111 assert_equal ( "hello" , erb . result )
80112
81- erb = @erb . new ( "hello" , trim_mode : 0 )
113+ erb = @erb . new ( "hello" , safe , 0 )
82114 assert_equal ( "hello" , erb . result )
83115
84- erb = @erb . new ( "hello" , trim_mode : 1 )
116+ erb = @erb . new ( "hello" , safe , 1 )
85117 assert_equal ( "hello" , erb . result )
86118
87- erb = @erb . new ( "hello" , trim_mode : 2 )
119+ erb = @erb . new ( "hello" , safe , 2 )
88120 assert_equal ( "hello" , erb . result )
89121
90122 src = <<EOS
@@ -112,9 +144,9 @@ def test_core
112144EOS
113145 erb = @erb . new ( src )
114146 assert_equal ( ans , erb . result )
115- erb = @erb . new ( src , trim_mode : 0 )
147+ erb = @erb . new ( src , safe , 0 )
116148 assert_equal ( ans , erb . result )
117- erb = EnvUtil . suppress_warning { @erb . new ( src , trim_mode : '' ) }
149+ erb = @erb . new ( src , safe , '' )
118150 assert_equal ( ans , erb . result )
119151
120152 ans = <<EOS
@@ -125,9 +157,9 @@ def test_core
125157* 1% n=0
126158* 2
127159EOS
128- erb = @erb . new ( src , trim_mode : 1 )
160+ erb = @erb . new ( src , safe , 1 )
129161 assert_equal ( ans . chomp , erb . result )
130- erb = @erb . new ( src , trim_mode : '>' )
162+ erb = @erb . new ( src , safe , '>' )
131163 assert_equal ( ans . chomp , erb . result )
132164
133165 ans = <<EOS
@@ -141,9 +173,9 @@ def test_core
141173* 2
142174EOS
143175
144- erb = @erb . new ( src , trim_mode : 2 )
176+ erb = @erb . new ( src , safe , 2 )
145177 assert_equal ( ans , erb . result )
146- erb = @erb . new ( src , trim_mode : '<>' )
178+ erb = @erb . new ( src , safe , '<>' )
147179 assert_equal ( ans , erb . result )
148180
149181 ans = <<EOS
@@ -157,15 +189,15 @@ def test_core
157189* 0
158190
159191EOS
160- erb = @erb . new ( src , trim_mode : '%' )
192+ erb = @erb . new ( src , safe , '%' )
161193 assert_equal ( ans , erb . result )
162194
163195 ans = <<EOS
164196% hi
165197= hello
166198* 0* 0* 0
167199EOS
168- erb = @erb . new ( src , trim_mode : '%>' )
200+ erb = @erb . new ( src , safe , '%>' )
169201 assert_equal ( ans . chomp , erb . result )
170202
171203 ans = <<EOS
@@ -175,7 +207,7 @@ def test_core
175207* 0
176208* 0
177209EOS
178- erb = @erb . new ( src , trim_mode : '%<>' )
210+ erb = @erb . new ( src , safe , '%<>' )
179211 assert_equal ( ans , erb . result )
180212 end
181213
@@ -629,6 +661,27 @@ def test_half_working_comment_backward_compatibility
629661 end
630662 end
631663
664+ # [deprecated] These interfaces will be removed later
665+ def test_deprecated_interface_warnings
666+ [ nil , 0 , 1 , 2 ] . each do |safe |
667+ assert_warn ( /2nd argument of ERB.new is deprecated/ ) do
668+ ERB . new ( '' , safe )
669+ end
670+ end
671+
672+ [ nil , '' , '%' , '%<>' ] . each do |trim |
673+ assert_warn ( /3rd argument of ERB.new is deprecated/ ) do
674+ ERB . new ( '' , nil , trim )
675+ end
676+ end
677+
678+ [ nil , '_erbout' , '_hamlout' ] . each do |eoutvar |
679+ assert_warn ( /4th argument of ERB.new is deprecated/ ) do
680+ ERB . new ( '' , nil , nil , eoutvar )
681+ end
682+ end
683+ end
684+
632685 def test_prohibited_marshal_dump
633686 erb = ERB . new ( "" )
634687 assert_raise ( TypeError ) { Marshal . dump ( erb ) }
0 commit comments