diff options
Diffstat (limited to 'test/rdoc/test_rdoc_attr.rb')
-rw-r--r-- | test/rdoc/test_rdoc_attr.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/rdoc/test_rdoc_attr.rb b/test/rdoc/test_rdoc_attr.rb index 9751cc175d..b69d8c6499 100644 --- a/test/rdoc/test_rdoc_attr.rb +++ b/test/rdoc/test_rdoc_attr.rb @@ -42,6 +42,68 @@ class TestRDocAttr < MiniTest::Unit::TestCase assert_equal '(unknown)#attr', @a.full_name end + def test_marshal_dump + tl = RDoc::TopLevel.new 'file.rb' + + @a.comment = 'this is a comment' + @a.record_location tl + + cm = RDoc::ClassModule.new 'Klass' + cm.add_attribute @a + + loaded = Marshal.load Marshal.dump @a + + assert_equal @a, loaded + + comment = RDoc::Markup::Document.new( + RDoc::Markup::Paragraph.new('this is a comment')) + + assert_equal comment, loaded.comment + assert_equal 'file.rb', loaded.file.relative_name + assert_equal 'Klass#attr', loaded.full_name + assert_equal 'attr', loaded.name + assert_equal 'RW', loaded.rw + assert_equal false, loaded.singleton + assert_equal :public, loaded.visibility + + @a.rw = 'R' + @a.singleton = true + @a.visibility = :protected + + loaded = Marshal.load Marshal.dump @a + + assert_equal @a, loaded + + assert_equal comment, loaded.comment + assert_equal 'Klass::attr', loaded.full_name + assert_equal 'attr', loaded.name + assert_equal 'R', loaded.rw + assert_equal true, loaded.singleton + assert_equal :protected, loaded.visibility + end + + def test_marshal_load_version_1 + data = "\x04\bU:\x0FRDoc::Attr[\fi\x06I\"\tattr\x06:\x06EF" \ + "\"\x0FKlass#attrI\"\aRW\x06;\x06F:\vpublic" \ + "o:\eRDoc::Markup::Document\x06:\v@parts[\x06" \ + "o:\x1CRDoc::Markup::Paragraph\x06;\t[\x06I" \ + "\"\x16this is a comment\x06;\x06FF" + + loaded = Marshal.load data + + comment = RDoc::Markup::Document.new( + RDoc::Markup::Paragraph.new('this is a comment')) + + assert_equal comment, loaded.comment + assert_equal 'Klass#attr', loaded.full_name + assert_equal 'attr', loaded.name + assert_equal 'RW', loaded.rw + assert_equal false, loaded.singleton + assert_equal :public, loaded.visibility + + assert_equal nil, loaded.file # version 2 + end + def test_params assert_nil @a.params end |