diff options
Diffstat (limited to 'jni/ruby/test/rdoc/test_rdoc_constant.rb')
-rw-r--r-- | jni/ruby/test/rdoc/test_rdoc_constant.rb | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/jni/ruby/test/rdoc/test_rdoc_constant.rb b/jni/ruby/test/rdoc/test_rdoc_constant.rb new file mode 100644 index 0000000..171963d --- /dev/null +++ b/jni/ruby/test/rdoc/test_rdoc_constant.rb @@ -0,0 +1,181 @@ +require File.expand_path '../xref_test_case', __FILE__ + +class TestRDocConstant < XrefTestCase + + def setup + super + + @const = @c1.constants.first + end + + def test_documented_eh + top_level = @store.add_file 'file.rb' + + const = RDoc::Constant.new 'CONST', nil, nil + top_level.add_constant const + + refute const.documented? + + const.comment = comment 'comment' + + assert const.documented? + end + + def test_documented_eh_alias + top_level = @store.add_file 'file.rb' + + const = RDoc::Constant.new 'CONST', nil, nil + top_level.add_constant const + + refute const.documented? + + const.is_alias_for = 'C1' + + refute const.documented? + + @c1.add_comment comment('comment'), @top_level + + assert const.documented? + end + + def test_full_name + assert_equal 'C1::CONST', @const.full_name + end + + def test_is_alias_for + top_level = @store.add_file 'file.rb' + + c = RDoc::Constant.new 'CONST', nil, 'comment' + top_level.add_constant c + + assert_nil c.is_alias_for + + c.is_alias_for = 'C1' + + assert_equal @c1, c.is_alias_for + + c.is_alias_for = 'unknown' + + assert_equal 'unknown', c.is_alias_for + end + + def test_marshal_dump + top_level = @store.add_file 'file.rb' + + c = RDoc::Constant.new 'CONST', nil, 'this is a comment' + c.record_location top_level + + aliased = top_level.add_class RDoc::NormalClass, 'Aliased' + c.is_alias_for = aliased + + cm = top_level.add_class RDoc::NormalClass, 'Klass' + cm.add_constant c + + section = cm.sections.first + + loaded = Marshal.load Marshal.dump c + loaded.store = @store + + comment = doc(para('this is a comment')) + + assert_equal c, loaded + + assert_equal aliased, loaded.is_alias_for + assert_equal comment, loaded.comment + assert_equal top_level, loaded.file + assert_equal 'Klass::CONST', loaded.full_name + assert_equal 'CONST', loaded.name + assert_nil loaded.visibility + assert_equal cm, loaded.parent + assert_equal section, loaded.section + end + + def test_marshal_load + top_level = @store.add_file 'file.rb' + + c = RDoc::Constant.new 'CONST', nil, 'this is a comment' + c.record_location top_level + + cm = top_level.add_class RDoc::NormalClass, 'Klass' + cm.add_constant c + + section = cm.sections.first + + loaded = Marshal.load Marshal.dump c + loaded.store = @store + + comment = doc(para('this is a comment')) + + assert_equal c, loaded + + assert_nil loaded.is_alias_for + assert_equal comment, loaded.comment + assert_equal top_level, loaded.file + assert_equal 'Klass::CONST', loaded.full_name + assert_equal 'CONST', loaded.name + assert_nil loaded.visibility + assert_equal cm, loaded.parent + assert_equal section, loaded.section + + assert loaded.display? + end + + def test_marshal_load_version_0 + top_level = @store.add_file 'file.rb' + + aliased = top_level.add_class RDoc::NormalClass, 'Aliased' + cm = top_level.add_class RDoc::NormalClass, 'Klass' + section = cm.sections.first + + loaded = Marshal.load "\x04\bU:\x13RDoc::Constant[\x0Fi\x00I" + + "\"\nCONST\x06:\x06ETI\"\x11Klass::CONST\x06" + + ";\x06T0I\"\fAliased\x06;\x06To" + + ":\eRDoc::Markup::Document\a:\v@parts[\x06o" + + ":\x1CRDoc::Markup::Paragraph\x06;\b[\x06I" + + "\"\x16this is a comment\x06;\x06T:\n@file0I" + + "\"\ffile.rb\x06;\x06TI\"\nKlass\x06" + + ";\x06Tc\x16RDoc::NormalClass0" + + loaded.store = @store + + comment = doc(para('this is a comment')) + + assert_equal aliased, loaded.is_alias_for + assert_equal comment, loaded.comment + assert_equal top_level, loaded.file + assert_equal 'Klass::CONST', loaded.full_name + assert_equal 'CONST', loaded.name + assert_nil loaded.visibility + assert_equal cm, loaded.parent + assert_equal section, loaded.section + + assert loaded.display? + end + + def test_marshal_round_trip + top_level = @store.add_file 'file.rb' + + c = RDoc::Constant.new 'CONST', nil, 'this is a comment' + c.record_location top_level + c.is_alias_for = 'Unknown' + + cm = top_level.add_class RDoc::NormalClass, 'Klass' + cm.add_constant c + + section = cm.sections.first + + loaded = Marshal.load Marshal.dump c + loaded.store = @store + + reloaded = Marshal.load Marshal.dump loaded + reloaded.store = @store + + assert_equal section, reloaded.section + assert_equal 'Unknown', reloaded.is_alias_for + end + + def test_path + assert_equal 'C1.html#CONST', @const.path + end + +end |