1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
# frozen_string_literal: true
require_relative 'helper'
class TestRDocContextSection < RDoc::TestCase
def setup
super
@top_level = @store.add_file 'file.rb'
@klass = @top_level.add_class RDoc::NormalClass, 'Object'
@S = RDoc::Context::Section
@s = @S.new @klass, 'section', comment('# comment', @top_level, :ruby)
end
def test_add_comment
file1 = @store.add_file 'file1.rb'
klass = file1.add_class RDoc::NormalClass, 'Klass'
c1 = RDoc::Comment.new "# :section: section\n", file1
c2 = RDoc::Comment.new "# hello\n", file1
c3 = RDoc::Comment.new "# world\n", file1
s = @S.new klass, 'section', c1
assert_empty s.comments
s.add_comment nil
assert_empty s.comments
s.add_comment c2
assert_equal [c2], s.comments
s.add_comment c3
assert_equal [c2, c3], s.comments
end
def test_aref
assert_equal 'section', @s.aref
assert_equal '5Buntitled-5D', @S.new(nil, nil, nil).aref
assert_equal 'one+two', @S.new(nil, 'one two', nil).aref
end
def test_eql_eh
other = @S.new @klass, 'other', comment('# comment', @top_level)
assert @s.eql? @s
assert @s.eql? @s.dup
refute @s.eql? other
end
def test_equals
other = @S.new @klass, 'other', comment('# comment', @top_level)
assert_equal @s, @s
assert_equal @s, @s.dup
refute_equal @s, other
end
def test_extract_comment
assert_equal '', @s.extract_comment(comment('')).text
assert_equal '', @s.extract_comment(comment("# :section: b\n")).text
assert_equal '# c', @s.extract_comment(comment("# :section: b\n# c")).text
assert_equal '# c',
@s.extract_comment(comment("# a\n# :section: b\n# c")).text
end
def test_hash
other = @S.new @klass, 'other', comment('# comment', @top_level)
assert_equal @s.hash, @s.hash
assert_equal @s.hash, @s.dup.hash
refute_equal @s.hash, other.hash
end
def test_marshal_dump
loaded = Marshal.load Marshal.dump @s
expected = RDoc::Comment.new('comment', @top_level).parse
expected = doc(expected)
assert_equal 'section', loaded.title
assert_equal expected, loaded.comments
assert_nil loaded.parent, 'parent is set manually'
end
def test_marshal_dump_no_comment
s = @S.new @klass, 'section', comment('')
loaded = Marshal.load Marshal.dump s
assert_equal 'section', loaded.title
assert_empty loaded.comments
assert_nil loaded.parent, 'parent is set manually'
end
def test_marshal_load_version_0
loaded = Marshal.load "\x04\bU:\eRDoc::Context::Section" +
"[\bi\x00I\"\fsection\x06:\x06EFo" +
":\eRDoc::Markup::Document\a:\v@parts" +
"[\x06o;\a\a;\b[\x06o" +
":\x1CRDoc::Markup::Paragraph\x06;\b" +
"[\x06I\"\fcomment\x06;\x06F:\n@fileI" +
"\"\ffile.rb\x06;\x06F;\n0"
expected = doc RDoc::Comment.new('comment', @top_level).parse
assert_equal 'section', loaded.title
assert_equal expected, loaded.comments
assert_nil loaded.parent, 'parent is set manually'
end
def test_remove_comment_array
other = @store.add_file 'other.rb'
other_comment = comment('bogus', other)
@s.add_comment other_comment
@s.remove_comment comment('bogus', @top_level)
assert_equal [other_comment], @s.comments
end
def test_remove_comment_document
other = @store.add_file 'other.rb'
other_comment = comment('bogus', other)
@s.add_comment other_comment
loaded = Marshal.load Marshal.dump @s
loaded.remove_comment comment('bogus', @top_level)
assert_equal doc(other_comment.parse), loaded.comments
end
end
|