From cfc2103108bdc8c5b9ad2bc859bfd2699c921131 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 5 Dec 2012 16:07:27 +0000 Subject: 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 --- test/ruby/test_object.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'test/ruby/test_object.rb') 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]' -- cgit v1.2.3