mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
101 lines
2.5 KiB
Ruby
101 lines
2.5 KiB
Ruby
|
require File.expand_path '../xref_test_case', __FILE__
|
||
|
|
||
|
class TestRDocClassModule < XrefTestCase
|
||
|
|
||
|
def setup
|
||
|
super
|
||
|
|
||
|
@RM = RDoc::Markup
|
||
|
end
|
||
|
|
||
|
def test_comment_equals
|
||
|
cm = RDoc::ClassModule.new 'Klass'
|
||
|
cm.comment = '# comment 1'
|
||
|
|
||
|
assert_equal 'comment 1', cm.comment
|
||
|
|
||
|
cm.comment = '# comment 2'
|
||
|
|
||
|
assert_equal "comment 1\n---\ncomment 2", cm.comment
|
||
|
|
||
|
cm.comment = "# * comment 3"
|
||
|
|
||
|
assert_equal "comment 1\n---\ncomment 2\n---\n* comment 3", cm.comment
|
||
|
end
|
||
|
|
||
|
# handle making a short module alias of yourself
|
||
|
|
||
|
def test_find_class_named
|
||
|
@c2.classes_hash['C2'] = @c2
|
||
|
|
||
|
assert_nil @c2.find_class_named('C1')
|
||
|
end
|
||
|
|
||
|
def test_merge
|
||
|
cm1 = RDoc::ClassModule.new 'Klass'
|
||
|
cm1.comment = 'klass 1'
|
||
|
cm1.add_attribute RDoc::Attr.new(nil, 'a1', 'RW', '')
|
||
|
cm1.add_attribute RDoc::Attr.new(nil, 'a3', 'R', '')
|
||
|
cm1.add_constant RDoc::Constant.new('C1', nil, '')
|
||
|
cm1.add_include RDoc::Include.new('I1', '')
|
||
|
cm1.add_method RDoc::AnyMethod.new(nil, 'm1')
|
||
|
|
||
|
cm2 = RDoc::ClassModule.new 'Klass'
|
||
|
cm2.instance_variable_set(:@comment,
|
||
|
@RM::Document.new(
|
||
|
@RM::Paragraph.new('klass 2')))
|
||
|
cm2.add_attribute RDoc::Attr.new(nil, 'a2', 'RW', '')
|
||
|
cm2.add_attribute RDoc::Attr.new(nil, 'a3', 'W', '')
|
||
|
cm2.add_constant RDoc::Constant.new('C2', nil, '')
|
||
|
cm2.add_include RDoc::Include.new('I2', '')
|
||
|
cm2.add_method RDoc::AnyMethod.new(nil, 'm2')
|
||
|
|
||
|
cm1.merge cm2
|
||
|
|
||
|
document = @RM::Document.new(
|
||
|
@RM::Paragraph.new('klass 2'),
|
||
|
@RM::Paragraph.new('klass 1'))
|
||
|
|
||
|
assert_equal document, cm1.comment
|
||
|
|
||
|
expected = [
|
||
|
RDoc::Attr.new(nil, 'a1', 'RW', ''),
|
||
|
RDoc::Attr.new(nil, 'a2', 'RW', ''),
|
||
|
RDoc::Attr.new(nil, 'a3', 'RW', ''),
|
||
|
]
|
||
|
|
||
|
expected.each do |a| a.parent = cm1 end
|
||
|
assert_equal expected, cm1.attributes.sort
|
||
|
|
||
|
expected = [
|
||
|
RDoc::Constant.new('C1', nil, ''),
|
||
|
RDoc::Constant.new('C2', nil, ''),
|
||
|
]
|
||
|
|
||
|
expected.each do |c| c.parent = cm1 end
|
||
|
assert_equal expected, cm1.constants.sort
|
||
|
|
||
|
expected = [
|
||
|
RDoc::Include.new('I1', ''),
|
||
|
RDoc::Include.new('I2', ''),
|
||
|
]
|
||
|
|
||
|
expected.each do |i| i.parent = cm1 end
|
||
|
assert_equal expected, cm1.includes.sort
|
||
|
|
||
|
expected = [
|
||
|
RDoc::AnyMethod.new(nil, 'm1'),
|
||
|
RDoc::AnyMethod.new(nil, 'm2'),
|
||
|
]
|
||
|
|
||
|
expected.each do |m| m.parent = cm1 end
|
||
|
assert_equal expected, cm1.method_list.sort
|
||
|
end
|
||
|
|
||
|
def test_superclass
|
||
|
assert_equal @c3_h1, @c3_h2.superclass
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|