OSDN Git Service

bb74bac2da581e6a6736ff5ebbc3d73930cd24e5
[redminele/redminele.git] / ruby / lib / ruby / gems / 1.8 / gems / gettext-2.1.0 / test / test_class_info.rb
1 require 'testlib/helper.rb'
2 require 'gettext/runtime/class_info'
3
4 module M1; end
5 module M2; end
6
7 module M1
8   module M3
9     include M2
10     module M4; end
11     class C1; end
12   end
13   class C2
14     module M5
15       class C4; end
16     end
17     class C3; end
18   end
19 end
20
21 module M1::M6
22   include M1::M3::M4
23   module M7; end
24 end
25
26 module M8
27   module M9
28   end
29   include M9
30 end
31
32 # Anonymous module
33 @@anon = Module.new
34 class @@anon::AC1; end
35 module @@anon::AM1; end
36
37 class TestClassInfo < Test::Unit::TestCase
38   include GetText::ClassInfo
39
40   def test_normalize_class
41     assert_equal M1::M3, normalize_class(M1::M3)
42     assert_equal M1::M3::C1, normalize_class(M1::M3::C1)
43     assert_equal M1::M3::C1, normalize_class(M1::M3::C1.new)
44
45     assert_equal NilClass, normalize_class(nil)
46     assert_equal TestClassInfo, normalize_class(self)
47   end
48
49   def test_normalize_class_anonymous_module
50     assert_equal Object, normalize_class(@@anon)
51     assert_equal Object, normalize_class(@@anon)
52     assert_equal Object, normalize_class(@@anon::AC1)
53     assert_equal Object, normalize_class(@@anon::AM1)
54   end
55
56   def test_related_classes
57 =begin
58     assert_equal [M1, Object], related_classes(M1)
59     assert_equal [M1::M3, M1, M2, Object], related_classes(M1::M3)
60     assert_equal [M1::M3::M4, M1::M3, M1, M2, Object], related_classes(M1::M3::M4)
61 =end
62     assert_equal [M1::M3::C1, M1::M3, M1, M2, Object], related_classes(M1::M3::C1)
63 =begin
64     assert_equal [M1::C2, M1, Object], related_classes(M1::C2)
65     assert_equal [M1::C2::M5::C4, M1::C2::M5, M1::C2, M1, Object], related_classes(M1::C2::M5::C4)
66     assert_equal [M1::C2::C3, M1::C2, M1, Object], related_classes(M1::C2::C3)
67     assert_equal [M1::M6, M1, M1::M3::M4, M1::M3, M2, Object], related_classes(M1::M6)
68     assert_equal [M1::M6::M7, M1::M6, M1, M1::M3::M4, M1::M3, M2, Object], related_classes(M1::M6::M7)
69 =end
70   end
71
72   def test_rellated_classes_with_all_classes
73     assert_equal [M1, Object], related_classes(M1, [M1])
74     assert_equal [M1, Object], related_classes(M1::M3::M4, [M1])
75     assert_equal [M1::M3, Object], related_classes(M1::M3::M4, [M1::M3])
76     assert_equal [M1::M3, M1, Object], related_classes(M1::M3::M4, [M1::M3, M1])
77   end
78
79   def test_related_classes_loop_mixin
80     assert_equal [M8, M8::M9, Object], related_classes(M8)
81   end
82
83 end