1 require 'testlib/helper.rb'
2 require 'gettext/runtime/class_info'
34 class @@anon::AC1; end
35 module @@anon::AM1; end
37 class TestClassInfo < Test::Unit::TestCase
38 include GetText::ClassInfo
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)
45 assert_equal NilClass, normalize_class(nil)
46 assert_equal TestClassInfo, normalize_class(self)
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)
56 def test_related_classes
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)
62 assert_equal [M1::M3::C1, M1::M3, M1, M2, Object], related_classes(M1::M3::C1)
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)
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])
79 def test_related_classes_loop_mixin
80 assert_equal [M8, M8::M9, Object], related_classes(M8)