summaryrefslogtreecommitdiff
path: root/test/ruby/test_defined.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_defined.rb')
-rw-r--r--test/ruby/test_defined.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/ruby/test_defined.rb b/test/ruby/test_defined.rb
index 3324a09afe..0505bdada6 100644
--- a/test/ruby/test_defined.rb
+++ b/test/ruby/test_defined.rb
@@ -127,6 +127,18 @@ class TestDefined < Test::Unit::TestCase
assert_equal nil, defined?($2)
end
+ def test_defined_assignment
+ assert_equal("assignment", defined?(a = 1))
+ assert_equal("assignment", defined?(a += 1))
+ assert_equal("assignment", defined?(a &&= 1))
+ assert_equal("assignment", eval('defined?(A = 1)'))
+ assert_equal("assignment", eval('defined?(A += 1)'))
+ assert_equal("assignment", eval('defined?(A &&= 1)'))
+ assert_equal("assignment", eval('defined?(A::B = 1)'))
+ assert_equal("assignment", eval('defined?(A::B += 1)'))
+ assert_equal("assignment", eval('defined?(A::B &&= 1)'))
+ end
+
def test_defined_literal
assert_equal("nil", defined?(nil))
assert_equal("true", defined?(true))
@@ -303,6 +315,20 @@ class TestDefined < Test::Unit::TestCase
assert_equal("super", o.x, bug8367)
end
+ def test_super_in_basic_object
+ BasicObject.class_eval do
+ def a
+ defined?(super)
+ end
+ end
+
+ assert_nil(a)
+ ensure
+ BasicObject.class_eval do
+ undef_method :a if defined?(a)
+ end
+ end
+
def test_super_toplevel
assert_separately([], "assert_nil(defined?(super))")
end