diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-05 16:07:27 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-05 16:07:27 +0000 |
commit | cfc2103108bdc8c5b9ad2bc859bfd2699c921131 (patch) | |
tree | 582c4bb9998c151bc34f8310c13271e80404b402 /test/ruby | |
parent | ce48e9a9301c517f99b85e225dd73b72a0833956 (diff) | |
download | ruby-cfc2103108bdc8c5b9ad2bc859bfd2699c921131.tar.gz |
test_object.rb: test for public_send
* test/ruby/test_object.rb (TestObject#test_public_send): add test for
public_send.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_object.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/ruby/test_object.rb b/test/ruby/test_object.rb index c8b5c3b279..6b679b5201 100644 --- a/test/ruby/test_object.rb +++ b/test/ruby/test_object.rb @@ -563,6 +563,32 @@ class TestObject < Test::Unit::TestCase assert_equal(:ok, x) end + def test_public_send + c = Class.new do + def pub + :ok + end + + def invoke(m) + public_send(m) + end + + protected + def prot + :ng + end + + private + def priv + :ng + end + end.new + assert_equal(:ok, c.public_send(:pub)) + assert_raise(NoMethodError) {c.public_send(:priv)} + assert_raise(NoMethodError) {c.public_send(:prot)} + assert_raise(NoMethodError) {c.invoke(:priv)} + end + def test_no_superclass_method bug2312 = '[ruby-dev:39581]' |