diff options
Diffstat (limited to 'spec/ruby/library/erb')
| -rw-r--r-- | spec/ruby/library/erb/def_class_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/library/erb/def_module_spec.rb | 3 | ||||
| -rw-r--r-- | spec/ruby/library/erb/defmethod/def_erb_method_spec.rb | 2 | ||||
| -rw-r--r-- | spec/ruby/library/erb/filename_spec.rb | 8 | ||||
| -rw-r--r-- | spec/ruby/library/erb/fixtures/classes.rb | 6 | ||||
| -rw-r--r-- | spec/ruby/library/erb/new_spec.rb | 48 | ||||
| -rw-r--r-- | spec/ruby/library/erb/result_spec.rb | 8 | ||||
| -rw-r--r-- | spec/ruby/library/erb/run_spec.rb | 10 | ||||
| -rw-r--r-- | spec/ruby/library/erb/util/shared/url_encode.rb | 16 |
9 files changed, 51 insertions, 52 deletions
diff --git a/spec/ruby/library/erb/def_class_spec.rb b/spec/ruby/library/erb/def_class_spec.rb index 88bd385f4c..fb687531e0 100644 --- a/spec/ruby/library/erb/def_class_spec.rb +++ b/spec/ruby/library/erb/def_class_spec.rb @@ -24,6 +24,8 @@ END MyClass1ForErb = erb.def_class(MyClass1ForErb_, 'render()') MyClass1ForErb.method_defined?(:render).should == true MyClass1ForErb.new('foo', 123).render().should == expected + ensure + Object.send(:remove_const, :MyClass1ForErb) end end diff --git a/spec/ruby/library/erb/def_module_spec.rb b/spec/ruby/library/erb/def_module_spec.rb index 806e564ef0..5f67aeb2b9 100644 --- a/spec/ruby/library/erb/def_module_spec.rb +++ b/spec/ruby/library/erb/def_module_spec.rb @@ -22,6 +22,9 @@ END include MyModule2ForErb end MyClass2ForErb.new.render('foo', 123).should == expected + ensure + Object.send(:remove_const, :MyClass2ForErb) + Object.send(:remove_const, :MyModule2ForErb) end end diff --git a/spec/ruby/library/erb/defmethod/def_erb_method_spec.rb b/spec/ruby/library/erb/defmethod/def_erb_method_spec.rb index dc1e044d9c..1cd7582936 100644 --- a/spec/ruby/library/erb/defmethod/def_erb_method_spec.rb +++ b/spec/ruby/library/erb/defmethod/def_erb_method_spec.rb @@ -58,6 +58,8 @@ END end end MyClass4ForErb.new([10,20,30]).render().should == expected + ensure + Object.send(:remove_const, :MY_INPUT4_FOR_ERB) end diff --git a/spec/ruby/library/erb/filename_spec.rb b/spec/ruby/library/erb/filename_spec.rb index 26fed2897b..bbd2233bb3 100644 --- a/spec/ruby/library/erb/filename_spec.rb +++ b/spec/ruby/library/erb/filename_spec.rb @@ -6,14 +6,14 @@ describe "ERB#filename" do filename = 'foobar.rhtml' erb = ERB.new('<% if true %>') # will raise SyntaxError erb.filename = filename - lambda { + -> { begin erb.result(binding) rescue Exception => e @ex = e raise e end - }.should raise_error(SyntaxError) + }.should.raise(SyntaxError) expected = filename @ex.message =~ /^(.*?):(\d+): / @@ -23,14 +23,14 @@ describe "ERB#filename" do it "uses '(erb)' as filename when filename is not set" do erb = ERB.new('<% if true %>') # will raise SyntaxError - lambda { + -> { begin erb.result(binding) rescue Exception => e @ex = e raise e end - }.should raise_error(SyntaxError) + }.should.raise(SyntaxError) expected = '(erb)' @ex.message =~ /^(.*?):(\d+): / diff --git a/spec/ruby/library/erb/fixtures/classes.rb b/spec/ruby/library/erb/fixtures/classes.rb index 03da889941..e07a6ed68d 100644 --- a/spec/ruby/library/erb/fixtures/classes.rb +++ b/spec/ruby/library/erb/fixtures/classes.rb @@ -1,9 +1,5 @@ module ERBSpecs def self.new_erb(input, trim_mode: nil) - if ruby_version_is "2.6" - ERB.new(input, trim_mode: trim_mode) - else - ERB.new(input, nil, trim_mode) - end + ERB.new(input, trim_mode: trim_mode) end end diff --git a/spec/ruby/library/erb/new_spec.rb b/spec/ruby/library/erb/new_spec.rb index 3f6ae93f9f..35ac0dfdfe 100644 --- a/spec/ruby/library/erb/new_spec.rb +++ b/spec/ruby/library/erb/new_spec.rb @@ -36,17 +36,10 @@ END end end - ruby_version_is "2.6" do - it "warns invalid trim_mode" do - begin - $VERBOSE, verbose = false, $VERBOSE # Some other specs make $VERBOSE `nil`. - lambda do - ERBSpecs.new_erb(@eruby_str, trim_mode: '') - end.should output(nil, /Invalid ERB trim mode/) - ensure - $VERBOSE = verbose - end - end + it "warns invalid trim_mode" do + -> do + ERBSpecs.new_erb(@eruby_str, trim_mode: '') + end.should complain(/Invalid ERB trim mode/) end it "removes '\n' when trim_mode is 1 or '>'" do @@ -88,9 +81,9 @@ END </p> END - lambda { + -> { ERBSpecs.new_erb(input, trim_mode: '-').result - }.should raise_error(SyntaxError) + }.should.raise(SyntaxError) end it "regards lines starting with '%' as '<% ... %>' when trim_mode is '%'" do @@ -125,13 +118,8 @@ END it "changes '_erbout' variable name in the produced source" do input = @eruby_str - if RUBY_VERSION >= '2.6' - match_erbout = ERB.new(input, trim_mode: nil).src - match_buf = ERB.new(input, trim_mode: nil, eoutvar: 'buf').src - else - match_erbout = ERB.new(input, nil, nil).src - match_buf = ERB.new(input, nil, nil, 'buf').src - end + match_erbout = ERB.new(input, trim_mode: nil).src + match_buf = ERB.new(input, trim_mode: nil, eoutvar: 'buf').src match_erbout.gsub("_erbout", "buf").should == match_buf end @@ -142,12 +130,28 @@ END <b><%#= item %></b> <%# end %> END - ERBSpecs.new_erb(input).result.should == "\n<b></b>\n\n" + ERBSpecs.new_erb(input).result.should == "\n<b></b>\n\n" ERBSpecs.new_erb(input, trim_mode: '<>').result.should == "<b></b>\n" end it "forget local variables defined previous one" do ERB.new(@eruby_str).result - lambda{ ERB.new("<%= list %>").result }.should raise_error(NameError) + ->{ ERB.new("<%= list %>").result }.should.raise(NameError) + end + + version_is ERB.const_get(:VERSION, false), ""..."6.0.0" do + describe "warning about arguments" do + it "warns when passed safe_level and later arguments" do + -> { + ERB.new(@eruby_str, nil, '%') + }.should complain(/warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments./) + end + + it "does not warn when passed arguments as keyword argument" do + -> { + ERB.new(@eruby_str, trim_mode: '%') + }.should_not complain(/warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments./) + end + end end end diff --git a/spec/ruby/library/erb/result_spec.rb b/spec/ruby/library/erb/result_spec.rb index eb9d0c5356..84333031ec 100644 --- a/spec/ruby/library/erb/result_spec.rb +++ b/spec/ruby/library/erb/result_spec.rb @@ -41,9 +41,9 @@ END it "is not able to h() or u() unless including ERB::Util" do input = "<%=h '<>' %>" - lambda { + -> { ERB.new(input).result() - }.should raise_error(NameError) + }.should.raise(NameError) end @@ -79,8 +79,8 @@ END expected = '123' myerb2.new.main1().should == expected - lambda { + -> { myerb2.new.main2() - }.should raise_error(NameError) + }.should.raise(NameError) end end diff --git a/spec/ruby/library/erb/run_spec.rb b/spec/ruby/library/erb/run_spec.rb index c4b82b155e..d81d534087 100644 --- a/spec/ruby/library/erb/run_spec.rb +++ b/spec/ruby/library/erb/run_spec.rb @@ -6,7 +6,7 @@ describe "ERB#run" do # lambda { ... }.should output def _steal_stdout orig = $stdout - s = '' + s = +'' def s.write(arg); self << arg.to_s; end $stdout = s begin @@ -52,9 +52,9 @@ END it "is not able to h() or u() unless including ERB::Util" do input = "<%=h '<>' %>" - lambda { + -> { _steal_stdout { ERB.new(input).run() } - }.should raise_error(NameError) + }.should.raise(NameError) end it "is able to h() or u() if ERB::Util is included" do @@ -89,8 +89,8 @@ END actual = _steal_stdout { myerb2.new.main1() } actual.should == expected - lambda { + -> { _steal_stdout { myerb2.new.main2() } - }.should raise_error(NameError) + }.should.raise(NameError) end end diff --git a/spec/ruby/library/erb/util/shared/url_encode.rb b/spec/ruby/library/erb/util/shared/url_encode.rb index 5ac6215523..34009c4903 100644 --- a/spec/ruby/library/erb/util/shared/url_encode.rb +++ b/spec/ruby/library/erb/util/shared/url_encode.rb @@ -6,21 +6,13 @@ describe :erb_util_url_encode, shared: true do ERB::Util.__send__(@method, input).should == expected end - ruby_version_is ""..."2.5" do - it "escapes tilde" do - ERB::Util.__send__(@method, "~").should == "%7E" - end - end - - ruby_version_is "2.5" do - it "does not escape tilde" do - ERB::Util.__send__(@method, "~").should == "~" - end + it "does not escape tilde" do + ERB::Util.__send__(@method, "~").should == "~" end it "encode unicode string" do - input = "http://ja.wikipedia.org/wiki/\343\203\255\343\203\240\343\202\271\343\202\253\343\203\273\343\203\221\343\203\255\343\203\273\343\202\246\343\203\253\343\203\273\343\203\251\343\203\224\343\203\245\343\202\277" - expected = 'http%3A%2F%2Fja.wikipedia.org%2Fwiki%2F%E3%83%AD%E3%83%A0%E3%82%B9%E3%82%AB%E3%83%BB%E3%83%91%E3%83%AD%E3%83%BB%E3%82%A6%E3%83%AB%E3%83%BB%E3%83%A9%E3%83%94%E3%83%A5%E3%82%BF' + input = "https://ja.wikipedia.org/wiki/\343\203\255\343\203\240\343\202\271\343\202\253\343\203\273\343\203\221\343\203\255\343\203\273\343\202\246\343\203\253\343\203\273\343\203\251\343\203\224\343\203\245\343\202\277" + expected = 'https%3A%2F%2Fja.wikipedia.org%2Fwiki%2F%E3%83%AD%E3%83%A0%E3%82%B9%E3%82%AB%E3%83%BB%E3%83%91%E3%83%AD%E3%83%BB%E3%82%A6%E3%83%AB%E3%83%BB%E3%83%A9%E3%83%94%E3%83%A5%E3%82%BF' ERB::Util.__send__(@method, input).should == expected end |
