mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
e75e7fcc9f
in trunk. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
240 lines
6.2 KiB
Ruby
240 lines
6.2 KiB
Ruby
require 'rubygems'
|
|
require 'minitest/autorun'
|
|
require File.expand_path '../xref_test_case', __FILE__
|
|
|
|
class TestRDocTopLevel < XrefTestCase
|
|
|
|
def setup
|
|
super
|
|
|
|
@top_level = RDoc::TopLevel.new 'path/top_level.rb'
|
|
end
|
|
|
|
def test_class_all_classes_and_modules
|
|
expected = %w[
|
|
C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1
|
|
Child
|
|
M1 M1::M2
|
|
Parent
|
|
]
|
|
|
|
assert_equal expected,
|
|
RDoc::TopLevel.all_classes_and_modules.map { |m| m.full_name }.sort
|
|
end
|
|
|
|
def test_class_classes
|
|
expected = %w[
|
|
C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1
|
|
Child Parent
|
|
]
|
|
|
|
assert_equal expected, RDoc::TopLevel.classes.map { |m| m.full_name }.sort
|
|
end
|
|
|
|
def test_class_complete
|
|
@c2.add_module_alias @c2_c3, 'A1', @top_level
|
|
|
|
RDoc::TopLevel.complete :public
|
|
|
|
a1 = @xref_data.find_class_or_module 'C2::A1'
|
|
|
|
assert_equal 'C2::A1', a1.full_name
|
|
refute_empty a1.aliases
|
|
end
|
|
|
|
def test_class_files
|
|
assert_equal %w[path/top_level.rb xref_data.rb],
|
|
RDoc::TopLevel.files.map { |m| m.full_name }.sort
|
|
end
|
|
|
|
def test_class_find_class_named
|
|
assert_equal @c1, RDoc::TopLevel.find_class_named('C1')
|
|
|
|
assert_equal @c2_c3, RDoc::TopLevel.find_class_named('C2::C3')
|
|
end
|
|
|
|
def test_class_find_class_named_from
|
|
assert_equal @c5_c1, RDoc::TopLevel.find_class_named_from('C1', 'C5')
|
|
|
|
assert_equal @c1, RDoc::TopLevel.find_class_named_from('C1', 'C4')
|
|
end
|
|
|
|
def test_class_find_class_or_module
|
|
assert_equal @m1, RDoc::TopLevel.find_class_or_module('M1')
|
|
assert_equal @c1, RDoc::TopLevel.find_class_or_module('C1')
|
|
|
|
assert_equal @m1, RDoc::TopLevel.find_class_or_module('::M1')
|
|
assert_equal @c1, RDoc::TopLevel.find_class_or_module('::C1')
|
|
end
|
|
|
|
def test_class_find_file_named
|
|
assert_equal @xref_data, RDoc::TopLevel.find_file_named(@file_name)
|
|
end
|
|
|
|
def test_class_find_module_named
|
|
assert_equal @m1, RDoc::TopLevel.find_module_named('M1')
|
|
assert_equal @m1_m2, RDoc::TopLevel.find_module_named('M1::M2')
|
|
end
|
|
|
|
def test_class_modules
|
|
assert_equal %w[M1 M1::M2],
|
|
RDoc::TopLevel.modules.map { |m| m.full_name }.sort
|
|
end
|
|
|
|
def test_class_new
|
|
tl1 = RDoc::TopLevel.new 'file.rb'
|
|
tl2 = RDoc::TopLevel.new 'file.rb'
|
|
tl3 = RDoc::TopLevel.new 'other.rb'
|
|
|
|
assert_same tl1, tl2
|
|
refute_same tl1, tl3
|
|
end
|
|
|
|
def test_class_reset
|
|
RDoc::TopLevel.reset
|
|
|
|
assert_empty RDoc::TopLevel.classes
|
|
assert_empty RDoc::TopLevel.modules
|
|
assert_empty RDoc::TopLevel.files
|
|
end
|
|
|
|
def test_add_alias
|
|
a = RDoc::Alias.new nil, 'old', 'new', nil
|
|
@top_level.add_alias a
|
|
|
|
object = RDoc::TopLevel.find_class_named 'Object'
|
|
expected = { '#old' => [a] }
|
|
assert_equal expected, object.unmatched_alias_lists
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_add_alias_nodoc
|
|
@top_level.document_self = false
|
|
|
|
a = RDoc::Alias.new nil, 'old', 'new', nil
|
|
@top_level.add_alias a
|
|
|
|
object = RDoc::TopLevel.find_class_named('Object')
|
|
assert_empty object.unmatched_alias_lists
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_add_constant
|
|
const = RDoc::Constant.new 'C', nil, nil
|
|
@top_level.add_constant const
|
|
|
|
object = RDoc::TopLevel.find_class_named 'Object'
|
|
assert_equal [const], object.constants
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_add_constant_nodoc
|
|
@top_level.document_self = false
|
|
|
|
const = RDoc::Constant.new 'C', nil, nil
|
|
@top_level.add_constant const
|
|
|
|
object = RDoc::TopLevel.find_class_named 'Object'
|
|
assert_empty object.constants
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_add_include
|
|
include = RDoc::Include.new 'C', nil
|
|
@top_level.add_include include
|
|
|
|
object = RDoc::TopLevel.find_class_named 'Object'
|
|
assert_equal [include], object.includes
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_add_include_nodoc
|
|
@top_level.document_self = false
|
|
|
|
include = RDoc::Include.new 'C', nil
|
|
@top_level.add_include include
|
|
|
|
object = RDoc::TopLevel.find_class_named('Object')
|
|
assert_empty object.includes
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_add_method
|
|
method = RDoc::AnyMethod.new nil, 'm'
|
|
@top_level.add_method method
|
|
|
|
object = RDoc::TopLevel.find_class_named 'Object'
|
|
assert_equal [method], object.method_list
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_add_method_stopdoc
|
|
@top_level.document_self = false
|
|
|
|
method = RDoc::AnyMethod.new nil, 'm'
|
|
@top_level.add_method method
|
|
|
|
object = RDoc::TopLevel.find_class_named('Object')
|
|
assert_empty object.method_list
|
|
assert_includes object.in_files, @top_level
|
|
end
|
|
|
|
def test_base_name
|
|
assert_equal 'top_level.rb', @top_level.base_name
|
|
end
|
|
|
|
def test_eql_eh
|
|
top_level2 = RDoc::TopLevel.new 'path/top_level.rb'
|
|
other_level = RDoc::TopLevel.new 'path/other_level.rb'
|
|
|
|
assert_operator @top_level, :eql?, top_level2
|
|
|
|
refute_operator other_level, :eql?, @top_level
|
|
end
|
|
|
|
def test_equals2
|
|
top_level2 = RDoc::TopLevel.new 'path/top_level.rb'
|
|
other_level = RDoc::TopLevel.new 'path/other_level.rb'
|
|
|
|
assert_equal @top_level, top_level2
|
|
|
|
refute_equal other_level, @top_level
|
|
end
|
|
|
|
def test_find_class_or_module
|
|
assert_equal @c1, @xref_data.find_class_or_module('C1')
|
|
assert_equal @c2_c3, @xref_data.find_class_or_module('C2::C3')
|
|
assert_equal @c4, @xref_data.find_class_or_module('C4')
|
|
assert_equal @m1_m2, @xref_data.find_class_or_module('M1::M2')
|
|
end
|
|
|
|
def test_full_name
|
|
assert_equal 'path/top_level.rb', @top_level.full_name
|
|
end
|
|
|
|
def test_hash
|
|
tl2 = RDoc::TopLevel.new 'path/top_level.rb'
|
|
tl3 = RDoc::TopLevel.new 'other/top_level.rb'
|
|
|
|
assert_equal @top_level.hash, tl2.hash
|
|
refute_equal @top_level.hash, tl3.hash
|
|
end
|
|
|
|
def test_http_url
|
|
assert_equal 'prefix/path/top_level_rb.html', @top_level.http_url('prefix')
|
|
end
|
|
|
|
def test_last_modified
|
|
assert_equal nil, @top_level.last_modified
|
|
stat = Object.new
|
|
def stat.mtime() 0 end
|
|
@top_level.file_stat = stat
|
|
assert_equal 0, @top_level.last_modified
|
|
end
|
|
|
|
def test_name
|
|
assert_equal 'top_level.rb', @top_level.name
|
|
end
|
|
|
|
end
|
|
|