summaryrefslogtreecommitdiff
path: root/test/rdoc/test_rdoc_attr.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rdoc/test_rdoc_attr.rb')
-rw-r--r--test/rdoc/test_rdoc_attr.rb62
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