mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
71234daef1
Check whether @flash is defined? for warnings-safety. r4488@asus: jeremy | 2006-04-29 12:23:15 -0700 Check whether @flash is defined? for warnings-safety. Obviates nil? check. r4489@asus: jeremy | 2006-04-29 12:45:18 -0700 Check whether @session is defined? for warnings-safety. r4490@asus: jeremy | 2006-04-29 12:50:41 -0700 Check whether @rendering_runtime is defined? for warnings-safety. r4491@asus: jeremy | 2006-04-29 12:55:01 -0700 Check whether @_cycles is defined? for warnings-safety. r4492@asus: jeremy | 2006-04-29 12:59:19 -0700 Check whether instance variables are defined? for warnings-safety. r4493@asus: jeremy | 2006-04-29 13:14:09 -0700 Add nil @template to PrototypeHelperTest to suppress unitialized instance variable warning. r4494@asus: jeremy | 2006-04-29 13:31:34 -0700 Check whether @auto_index defined? for warnings-safety. r4495@asus: jeremy | 2006-04-29 13:32:24 -0700 Wrap content_columns redefinitions with silence_warnings. r4496@asus: jeremy | 2006-04-29 13:35:28 -0700 Wrap more redefinitions with silence_warnings. r4829@asus: jeremy | 2006-07-08 10:59:20 -0700 abstract unit, fix warnings r4830@asus: jeremy | 2006-07-08 11:06:12 -0700 Use parens to silence warning. r4831@asus: jeremy | 2006-07-08 11:06:48 -0700 Use parens to silence warning. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4595 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
140 lines
3.3 KiB
Ruby
140 lines
3.3 KiB
Ruby
require File.dirname(__FILE__) + '/abstract_unit'
|
|
|
|
class ClassInheritableAttributesTest < Test::Unit::TestCase
|
|
def setup
|
|
@klass = Class.new
|
|
end
|
|
|
|
def test_reader_declaration
|
|
assert_nothing_raised do
|
|
@klass.class_inheritable_reader :a
|
|
assert_respond_to @klass, :a
|
|
assert_respond_to @klass.new, :a
|
|
end
|
|
end
|
|
|
|
def test_writer_declaration
|
|
assert_nothing_raised do
|
|
@klass.class_inheritable_writer :a
|
|
assert_respond_to @klass, :a=
|
|
assert_respond_to @klass.new, :a=
|
|
end
|
|
end
|
|
|
|
def test_accessor_declaration
|
|
assert_nothing_raised do
|
|
@klass.class_inheritable_accessor :a
|
|
assert_respond_to @klass, :a
|
|
assert_respond_to @klass.new, :a
|
|
assert_respond_to @klass, :a=
|
|
assert_respond_to @klass.new, :a=
|
|
end
|
|
end
|
|
|
|
def test_array_declaration
|
|
assert_nothing_raised do
|
|
@klass.class_inheritable_array :a
|
|
assert_respond_to @klass, :a
|
|
assert_respond_to @klass.new, :a
|
|
assert_respond_to @klass, :a=
|
|
assert_respond_to @klass.new, :a=
|
|
end
|
|
end
|
|
|
|
def test_hash_declaration
|
|
assert_nothing_raised do
|
|
@klass.class_inheritable_hash :a
|
|
assert_respond_to @klass, :a
|
|
assert_respond_to @klass.new, :a
|
|
assert_respond_to @klass, :a=
|
|
assert_respond_to @klass.new, :a=
|
|
end
|
|
end
|
|
|
|
def test_reader
|
|
@klass.class_inheritable_reader :a
|
|
assert_nil @klass.a
|
|
assert_nil @klass.new.a
|
|
|
|
@klass.send(:write_inheritable_attribute, :a, 'a')
|
|
|
|
assert_equal 'a', @klass.a
|
|
assert_equal 'a', @klass.new.a
|
|
assert_equal @klass.a, @klass.new.a
|
|
assert_equal @klass.a.object_id, @klass.new.a.object_id
|
|
end
|
|
|
|
def test_writer
|
|
@klass.class_inheritable_reader :a
|
|
@klass.class_inheritable_writer :a
|
|
|
|
assert_nil @klass.a
|
|
assert_nil @klass.new.a
|
|
|
|
@klass.a = 'a'
|
|
assert_equal 'a', @klass.a
|
|
@klass.new.a = 'A'
|
|
assert_equal 'A', @klass.a
|
|
end
|
|
|
|
def test_array
|
|
@klass.class_inheritable_array :a
|
|
|
|
assert_nil @klass.a
|
|
assert_nil @klass.new.a
|
|
|
|
@klass.a = %w(a b c)
|
|
assert_equal %w(a b c), @klass.a
|
|
assert_equal %w(a b c), @klass.new.a
|
|
|
|
@klass.new.a = %w(A B C)
|
|
assert_equal %w(a b c A B C), @klass.a
|
|
assert_equal %w(a b c A B C), @klass.new.a
|
|
end
|
|
|
|
def test_hash
|
|
@klass.class_inheritable_hash :a
|
|
|
|
assert_nil @klass.a
|
|
assert_nil @klass.new.a
|
|
|
|
@klass.a = { :a => 'a' }
|
|
assert_equal({ :a => 'a' }, @klass.a)
|
|
assert_equal({ :a => 'a' }, @klass.new.a)
|
|
|
|
@klass.new.a = { :b => 'b' }
|
|
assert_equal({ :a => 'a', :b => 'b' }, @klass.a)
|
|
assert_equal({ :a => 'a', :b => 'b' }, @klass.new.a)
|
|
end
|
|
|
|
def test_inheritance
|
|
@klass.class_inheritable_accessor :a
|
|
@klass.a = 'a'
|
|
|
|
@sub = eval("class FlogMe < @klass; end; FlogMe")
|
|
|
|
@klass.class_inheritable_accessor :b
|
|
|
|
assert_respond_to @sub, :a
|
|
assert_respond_to @sub, :b
|
|
assert_equal @klass.a, @sub.a
|
|
assert_equal @klass.b, @sub.b
|
|
assert_equal 'a', @sub.a
|
|
assert_nil @sub.b
|
|
|
|
@klass.b = 'b'
|
|
assert_not_equal @klass.b, @sub.b
|
|
assert_equal 'b', @klass.b
|
|
assert_nil @sub.b
|
|
|
|
@sub.a = 'A'
|
|
assert_not_equal @klass.a, @sub.a
|
|
assert_equal 'a', @klass.a
|
|
assert_equal 'A', @sub.a
|
|
|
|
@sub.b = 'B'
|
|
assert_not_equal @klass.b, @sub.b
|
|
assert_equal 'b', @klass.b
|
|
assert_equal 'B', @sub.b
|
|
end
|
|
end
|