mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Split test_defined
This commit is contained in:
		
							parent
							
								
									8119bcbfc0
								
							
						
					
					
						commit
						de9d6a7a8c
					
				
					 1 changed files with 16 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -23,24 +23,30 @@ class TestDefined < Test::Unit::TestCase
 | 
			
		|||
    return !defined?(yield)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined
 | 
			
		||||
  def test_defined_gloval_variable
 | 
			
		||||
    $x = nil
 | 
			
		||||
 | 
			
		||||
    assert(defined?($x))		# global variable
 | 
			
		||||
    assert_equal('global-variable', defined?($x))# returns description
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined_local_variable
 | 
			
		||||
    assert_nil(defined?(foo))		# undefined
 | 
			
		||||
    foo=5
 | 
			
		||||
    assert(defined?(foo))		# local variable
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined_constant
 | 
			
		||||
    assert(defined?(Array))		# constant
 | 
			
		||||
    assert(defined?(::Array))		# toplevel constant
 | 
			
		||||
    assert(defined?(File::Constants))	# nested constant
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined_method
 | 
			
		||||
    assert(defined?(Object.new))	# method
 | 
			
		||||
    assert(defined?(Object::new))	# method
 | 
			
		||||
    assert(!defined?(Object.print))	# private method
 | 
			
		||||
    assert(defined?(1 == 2))		# operator expression
 | 
			
		||||
 | 
			
		||||
    f = Foo.new
 | 
			
		||||
    assert_nil(defined?(f.foo))         # protected method
 | 
			
		||||
    f.bar(f) { |v| assert(v) }
 | 
			
		||||
| 
						 | 
				
			
			@ -53,10 +59,14 @@ class TestDefined < Test::Unit::TestCase
 | 
			
		|||
    assert_nil(defined?(quux(x)))
 | 
			
		||||
    assert(defined?(f.attr = 1))
 | 
			
		||||
    f.attrasgn_test { |v| assert(v) }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined_yield
 | 
			
		||||
    assert(defined_test)		# not iterator
 | 
			
		||||
    assert(!defined_test{})	        # called as iterator
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined_matchdata
 | 
			
		||||
    /a/ =~ ''
 | 
			
		||||
    assert_equal nil, defined?($&)
 | 
			
		||||
    assert_equal nil, defined?($`)
 | 
			
		||||
| 
						 | 
				
			
			@ -85,12 +95,16 @@ class TestDefined < Test::Unit::TestCase
 | 
			
		|||
    assert_equal 'global-variable', defined?($+)
 | 
			
		||||
    assert_equal 'global-variable', defined?($1)
 | 
			
		||||
    assert_equal nil, defined?($2)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined_literal
 | 
			
		||||
    assert_equal("nil", defined?(nil))
 | 
			
		||||
    assert_equal("true", defined?(true))
 | 
			
		||||
    assert_equal("false", defined?(false))
 | 
			
		||||
    assert_equal("expression", defined?(1))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_defined_empty_paren_expr
 | 
			
		||||
    bug8224 = '[ruby-core:54024] [Bug #8224]'
 | 
			
		||||
    (1..3).each do |level|
 | 
			
		||||
      expr = "("*level+")"*level
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue