From 150b235fb650f15277e99080bc639bc4b60e08ba Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Fri, 25 May 2012 14:01:14 +0800 Subject: Add Tests for all Exception classes, for false, true, Proc, Module, nil and Object --- test/t/class.rb | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 test/t/class.rb (limited to 'test/t/class.rb') diff --git a/test/t/class.rb b/test/t/class.rb new file mode 100644 index 000000000..92f3df51d --- /dev/null +++ b/test/t/class.rb @@ -0,0 +1,126 @@ +## +# Class ISO Test + +assert('Class', '15.2.3') do + Class.class == Class +end + +# Not ISO specified + +assert('Class 1') do + class C; end + C.class == Class +end + +assert('Class 2') do + class C; end + C.new.class == C +end + +assert('Class 3') do + class C; end + C.new.class.class == Class +end + +assert('Class 4') do + class A; end + class C < A; end + C.class == Class +end + +assert('Class 5') do + class A; end + class C < A; end + C.new.class == C +end + +assert('Class 6') do + class A; end + class C < A; end + C.new.class.class == Class +end + +assert('Class Module 1') do + module M; end + M.class == Module +end + +assert('Class Module 2') do + module M; end + class C; include M; end + C.new.class == C +end + +# nested class +assert('Class Nested 1') do + class A; end + class A::B; end + A::B == A::B +end + +assert('Class Nested 2') do + class A; end + class A::B; end + A::B.new.class == A::B +end + +assert('Class Nested 3') do + class A; end + class A::B; end + A::B.new.class.class == Class +end + +assert('Class Nested 4') do + class A; end + class A::B; end + class A::B::C; end + A::B::C == A::B::C +end + +assert('Class Nested 5') do + class A; end + class A::B; end + class A::B::C; end + A::B::C.class == Class +end + +assert('Class Nested 6') do + class A; end + class A::B; end + class A::B::C; end + A::B::C.new.class == A::B::C +end + +assert('Class Nested 7') do + class A; end + class A::B; end + class A::B2 < A::B; end + A::B2 == A::B2 +end + +assert('Class Nested 8') do + class A; end + class A::B; end + class A::B2 < A::B; end + A::B2.class == Class +end + +assert('Class Colon 1') do + class A; end; A::C = 1; A::C == 1 +end + +assert('Class Colon 2') do + class A; class ::C; end end; C == C +end + +assert('Class Colon 3') do + class A; class ::C; end end; C.class == Class +end + +assert('Class Dup 1') do + class C; end; C.dup.class == Class +end + +assert('Class Dup 2') do + module M; end; M.dup.class == Module +end -- cgit v1.2.3