summaryrefslogtreecommitdiff
path: root/test/ruby/test_object.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-05 16:07:27 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-05 16:07:27 +0000
commitcfc2103108bdc8c5b9ad2bc859bfd2699c921131 (patch)
tree582c4bb9998c151bc34f8310c13271e80404b402 /test/ruby/test_object.rb
parentce48e9a9301c517f99b85e225dd73b72a0833956 (diff)
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/test_object.rb')
-rw-r--r--test/ruby/test_object.rb26
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]'