diff options
| author | kazu <kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-27 08:48:24 +0000 |
|---|---|---|
| committer | kazu <kazu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-27 08:48:24 +0000 |
| commit | 26950a4a1281816f799d8ba221b193560327b2d4 (patch) | |
| tree | 401611e7580030f0d78c8a9276f397e41c2f81e7 /test/erb | |
| parent | 50082cbba7c4b84e370283ad49bcaae2d9523851 (diff) | |
| download | ruby-26950a4a1281816f799d8ba221b193560327b2d4.tar.gz ruby-26950a4a1281816f799d8ba221b193560327b2d4.tar.xz ruby-26950a4a1281816f799d8ba221b193560327b2d4.zip | |
* lib/erb.rb: adjust line number for magic comment.
* test/erb/test_erb.rb: add tests for def_method.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/erb')
| -rw-r--r-- | test/erb/test_erb.rb | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/test/erb/test_erb.rb b/test/erb/test_erb.rb index ccd3ddb9f..8a6221b51 100644 --- a/test/erb/test_erb.rb +++ b/test/erb/test_erb.rb @@ -220,7 +220,7 @@ EOS class Bar; end - def test_def_method + def test_def_erb_method assert(! Bar.new.respond_to?('hello')) Bar.module_eval do extend ERB::DefMethod @@ -237,6 +237,31 @@ EOS assert(Bar.new.respond_to?('hello_world')) end + class DefMethodWithoutFname; end + class DefMethodWithFname; end + + def test_def_method_without_filename + erb = ERB.new("<% raise ::TestERB::MyError %>") + erb.filename = "test filename" + assert(! DefMethodWithoutFname.new.respond_to?('my_error')) + erb.def_method(DefMethodWithoutFname, 'my_error') + e = assert_raise(::TestERB::MyError) { + DefMethodWithoutFname.new.my_error + } + assert_match(/\A\(ERB\):1\b/, e.backtrace[0]) + end + + def test_def_method_with_fname + erb = ERB.new("<% raise ::TestERB::MyError %>") + erb.filename = "test filename" + assert(! DefMethodWithFname.new.respond_to?('my_error')) + erb.def_method(DefMethodWithFname, 'my_error', 'test fname') + e = assert_raise(::TestERB::MyError) { + DefMethodWithFname.new.my_error + } + assert_match(/\Atest fname:1\b/, e.backtrace[0]) + end + def test_escape src = <<EOS 1.<%% : <%="<%%"%> |
