summaryrefslogtreecommitdiff
path: root/test/rdoc
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-26 05:56:26 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-26 05:56:26 +0000
commit98c7058bf7b3eab91c62a77cb10b09f6c8ed368e (patch)
treea90e594c950a1e3160a69f90a9e6215242937ef7 /test/rdoc
parentee83dc3fe49ac23321a055a2a4b337499d2494eb (diff)
Merge RDoc 6.0.3 from upstream.
It fixed the several bugs that was found after RDoc 6 releasing. From: SHIBATA Hiroshi <hsbt@ruby-lang.org> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62924 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rdoc')
-rw-r--r--test/rdoc/minitest_helper.rb203
-rw-r--r--test/rdoc/test_rdoc_any_method.rb22
-rw-r--r--test/rdoc/test_rdoc_attr.rb5
-rw-r--r--test/rdoc/test_rdoc_class_module.rb12
-rw-r--r--test/rdoc/test_rdoc_code_object.rb2
-rw-r--r--test/rdoc/test_rdoc_comment.rb4
-rw-r--r--test/rdoc/test_rdoc_constant.rb2
-rw-r--r--test/rdoc/test_rdoc_context.rb30
-rw-r--r--test/rdoc/test_rdoc_context_section.rb2
-rw-r--r--test/rdoc/test_rdoc_encoding.rb96
-rw-r--r--test/rdoc/test_rdoc_generator_darkfish.rb6
-rw-r--r--test/rdoc/test_rdoc_generator_json_index.rb37
-rw-r--r--test/rdoc/test_rdoc_generator_markup.rb2
-rw-r--r--test/rdoc/test_rdoc_generator_pot.rb2
-rw-r--r--test/rdoc/test_rdoc_generator_pot_po.rb2
-rw-r--r--test/rdoc/test_rdoc_generator_pot_po_entry.rb2
-rw-r--r--test/rdoc/test_rdoc_generator_ri.rb2
-rw-r--r--test/rdoc/test_rdoc_i18n_locale.rb2
-rw-r--r--test/rdoc/test_rdoc_i18n_text.rb2
-rw-r--r--test/rdoc/test_rdoc_markdown.rb2
-rw-r--r--test/rdoc/test_rdoc_markup.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_attribute_manager.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_attributes.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_document.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_formatter.rb19
-rw-r--r--test/rdoc/test_rdoc_markup_hard_break.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_heading.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_include.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_indented_paragraph.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_paragraph.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_parser.rb4
-rw-r--r--test/rdoc/test_rdoc_markup_pre_process.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_raw.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_ansi.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_bs.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_html.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_snippet.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_joined_paragraph.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_label.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_markdown.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_rdoc.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_table_of_contents.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_to_tt_only.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_verbatim.rb2
-rw-r--r--test/rdoc/test_rdoc_options.rb3
-rw-r--r--test/rdoc/test_rdoc_parser.rb20
-rw-r--r--test/rdoc/test_rdoc_parser_c.rb6
-rw-r--r--test/rdoc/test_rdoc_parser_changelog.rb2
-rw-r--r--test/rdoc/test_rdoc_parser_markdown.rb2
-rw-r--r--test/rdoc/test_rdoc_parser_rd.rb2
-rw-r--r--test/rdoc/test_rdoc_parser_ruby.rb305
-rw-r--r--test/rdoc/test_rdoc_parser_simple.rb2
-rw-r--r--test/rdoc/test_rdoc_rd.rb2
-rw-r--r--test/rdoc/test_rdoc_rd_block_parser.rb2
-rw-r--r--test/rdoc/test_rdoc_rd_inline.rb2
-rw-r--r--test/rdoc/test_rdoc_rd_inline_parser.rb2
-rw-r--r--test/rdoc/test_rdoc_rdoc.rb94
-rw-r--r--test/rdoc/test_rdoc_ri_driver.rb77
-rw-r--r--test/rdoc/test_rdoc_ri_paths.rb4
-rw-r--r--test/rdoc/test_rdoc_rubygems_hook.rb2
-rw-r--r--test/rdoc/test_rdoc_servlet.rb6
-rw-r--r--test/rdoc/test_rdoc_single_class.rb2
-rw-r--r--test/rdoc/test_rdoc_stats.rb2
-rw-r--r--test/rdoc/test_rdoc_store.rb32
-rw-r--r--test/rdoc/test_rdoc_task.rb2
-rw-r--r--test/rdoc/test_rdoc_text.rb29
-rw-r--r--test/rdoc/test_rdoc_token_stream.rb17
-rw-r--r--test/rdoc/test_rdoc_tom_doc.rb2
-rw-r--r--test/rdoc/test_rdoc_top_level.rb2
-rw-r--r--test/rdoc/xref_data.rb7
-rw-r--r--test/rdoc/xref_test_case.rb4
71 files changed, 882 insertions, 254 deletions
diff --git a/test/rdoc/minitest_helper.rb b/test/rdoc/minitest_helper.rb
new file mode 100644
index 0000000000..1814669bf9
--- /dev/null
+++ b/test/rdoc/minitest_helper.rb
@@ -0,0 +1,203 @@
+# frozen_string_literal: true
+begin
+ gem 'minitest', '~> 5.0'
+rescue NoMethodError, Gem::LoadError
+ # for ruby tests
+end
+
+require 'minitest/autorun'
+require 'minitest/benchmark' unless ENV['NOBENCHMARK']
+
+require 'fileutils'
+require 'pp'
+require 'tempfile'
+require 'tmpdir'
+require 'stringio'
+
+require 'rdoc'
+
+##
+# RDoc::TestCase is an abstract TestCase to provide common setup and teardown
+# across all RDoc tests. The test case uses minitest, so all the assertions
+# of minitest may be used.
+#
+# The testcase provides the following:
+#
+# * A reset code-object tree
+# * A reset markup preprocessor (RDoc::Markup::PreProcess)
+# * The <code>@RM</code> alias of RDoc::Markup (for less typing)
+# * <code>@pwd</code> containing the current working directory
+# * FileUtils, pp, Tempfile, Dir.tmpdir and StringIO
+
+class RDoc::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Unit::TestCase)
+
+ ##
+ # Abstract test-case setup
+
+ def setup
+ super
+
+ @top_level = nil
+
+ @RM = RDoc::Markup
+
+ @pwd = Dir.pwd
+
+ @store = RDoc::Store.new
+
+ @rdoc = RDoc::RDoc.new
+ @rdoc.store = @store
+ @rdoc.options = RDoc::Options.new
+
+ g = Object.new
+ def g.class_dir() end
+ def g.file_dir() end
+ @rdoc.generator = g
+
+ RDoc::Markup::PreProcess.reset
+ end
+
+ ##
+ # Asserts +path+ is a file
+
+ def assert_file path
+ assert File.file?(path), "#{path} is not a file"
+ end
+
+ ##
+ # Asserts +path+ is a directory
+
+ def assert_directory path
+ assert File.directory?(path), "#{path} is not a directory"
+ end
+
+ ##
+ # Refutes +path+ exists
+
+ def refute_file path
+ refute File.exist?(path), "#{path} exists"
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::BlankLine.new
+
+ def blank_line
+ @RM::BlankLine.new
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::BlockQuote.new with +contents+
+
+ def block *contents
+ @RM::BlockQuote.new(*contents)
+ end
+
+ ##
+ # Creates an RDoc::Comment with +text+ which was defined on +top_level+.
+ # By default the comment has the 'rdoc' format.
+
+ def comment text, top_level = @top_level
+ RDoc::Comment.new text, top_level
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::Document.new with +contents+
+
+ def doc *contents
+ @RM::Document.new(*contents)
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::HardBreak.new
+
+ def hard_break
+ @RM::HardBreak.new
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::Heading.new with +level+ and +text+
+
+ def head level, text
+ @RM::Heading.new level, text
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::ListItem.new with +label+ and +parts+
+
+ def item label = nil, *parts
+ @RM::ListItem.new label, *parts
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::List.new with +type+ and +items+
+
+ def list type = nil, *items
+ @RM::List.new type, *items
+ end
+
+ ##
+ # Enables pretty-print output
+
+ def mu_pp obj # :nodoc:
+ s = obj.pretty_inspect
+ s = RDoc::Encoding.change_encoding s, Encoding.default_external
+ s.chomp
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::Paragraph.new with +contents+
+
+ def para *a
+ @RM::Paragraph.new(*a)
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::Rule.new with +weight+
+
+ def rule weight
+ @RM::Rule.new weight
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::Raw.new with +contents+
+
+ def raw *contents
+ @RM::Raw.new(*contents)
+ end
+
+ ##
+ # Creates a temporary directory changes the current directory to it for the
+ # duration of the block.
+ #
+ # Depends upon Dir.mktmpdir
+
+ def temp_dir
+ Dir.mktmpdir do |temp_dir|
+ Dir.chdir temp_dir do
+ yield temp_dir
+ end
+ end
+ end
+
+ ##
+ # Shortcut for RDoc::Markup::Verbatim.new with +parts+
+
+ def verb *parts
+ @RM::Verbatim.new(*parts)
+ end
+
+ ##
+ # run capture_io with setting $VERBOSE = true
+
+ def verbose_capture_io
+ capture_io do
+ begin
+ orig_verbose = $VERBOSE
+ $VERBOSE = true
+ yield
+ ensure
+ $VERBOSE = orig_verbose
+ end
+ end
+ end
+end
diff --git a/test/rdoc/test_rdoc_any_method.rb b/test/rdoc/test_rdoc_any_method.rb
index 55793255ba..b5281f611d 100644
--- a/test/rdoc/test_rdoc_any_method.rb
+++ b/test/rdoc/test_rdoc_any_method.rb
@@ -133,7 +133,7 @@ method(a, b) { |c, d| ... }
assert_equal 'Klass#method', loaded.full_name
assert_equal 'method', loaded.name
assert_equal 'param', loaded.params
- assert_equal nil, loaded.singleton # defaults to nil
+ assert_nil loaded.singleton # defaults to nil
assert_equal :public, loaded.visibility
assert_equal cm, loaded.parent
assert_equal section, loaded.section
@@ -151,6 +151,19 @@ method(a, b) { |c, d| ... }
assert aliased_method.display?
end
+ def test_marshal_load_aliased_method_with_nil_singleton
+ aliased_method = Marshal.load Marshal.dump(@c2_a)
+
+ aliased_method.store = @store
+ aliased_method.is_alias_for = ["C2", nil, "b"]
+
+ assert_equal 'C2#a', aliased_method.full_name
+ assert_equal 'C2', aliased_method.parent_name
+ assert_equal '()', aliased_method.params
+ assert_equal @c2_b, aliased_method.is_alias_for, 'is_alias_for'
+ assert aliased_method.display?
+ end
+
def test_marshal_load_class_method
class_method = Marshal.load Marshal.dump(@c1.method_list.first)
@@ -207,9 +220,9 @@ method(a, b) { |c, d| ... }
assert_equal 'Klass#method', loaded.full_name
assert_equal 'method', loaded.name
assert_equal 'param', loaded.params
- assert_equal nil, loaded.singleton # defaults to nil
+ assert_nil loaded.singleton # defaults to nil
assert_equal :public, loaded.visibility
- assert_equal nil, loaded.file
+ assert_nil loaded.file
assert_equal cm, loaded.parent
assert_equal section, loaded.section
assert_nil loaded.is_alias_for
@@ -264,7 +277,7 @@ method(a, b) { |c, d| ... }
assert_equal 'Klass#method', loaded.full_name
assert_equal 'method', loaded.name
assert_equal 'param', loaded.params
- assert_equal nil, loaded.singleton # defaults to nil
+ assert_nil loaded.singleton # defaults to nil
assert_equal :public, loaded.visibility
assert_equal cm, loaded.parent
assert_equal section, loaded.section
@@ -467,4 +480,3 @@ method(a, b) { |c, d| ... }
end
end
-
diff --git a/test/rdoc/test_rdoc_attr.rb b/test/rdoc/test_rdoc_attr.rb
index ae702ac702..5910c0fad3 100644
--- a/test/rdoc/test_rdoc_attr.rb
+++ b/test/rdoc/test_rdoc_attr.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocAttr < RDoc::TestCase
@@ -139,7 +139,7 @@ class TestRDocAttr < RDoc::TestCase
assert_equal cm, loaded.parent
assert_equal section, loaded.section
- assert loaded.display?
+ assert loaded.display?
end
def test_marshal_load_version_2
@@ -188,4 +188,3 @@ class TestRDocAttr < RDoc::TestCase
end
end
-
diff --git a/test/rdoc/test_rdoc_class_module.rb b/test/rdoc/test_rdoc_class_module.rb
index 273a21120f..3dc2a42cf4 100644
--- a/test/rdoc/test_rdoc_class_module.rb
+++ b/test/rdoc/test_rdoc_class_module.rb
@@ -1277,7 +1277,8 @@ class TestRDocClassModule < XrefTestCase
n1 = @xref_data.add_module RDoc::NormalClass, 'N1'
n1_k2 = n1.add_module RDoc::NormalClass, 'N2'
- n1.add_module_alias n1_k2, 'A1', @xref_data
+ a1 = RDoc::Constant.new 'A1', '', ''
+ n1.add_module_alias n1_k2, n1_k2.name, a1, @xref_data
n1_a1_c = n1.constants.find { |c| c.name == 'A1' }
refute_nil n1_a1_c
@@ -1301,7 +1302,8 @@ class TestRDocClassModule < XrefTestCase
n1 = @xref_data.add_module RDoc::NormalModule, 'N1'
n1_n2 = n1.add_module RDoc::NormalModule, 'N2'
- n1.add_module_alias n1_n2, 'A1', @xref_data
+ a1 = RDoc::Constant.new 'A1', '', ''
+ n1.add_module_alias n1_n2, n1_n2.name, a1, @xref_data
n1_a1_c = n1.constants.find { |c| c.name == 'A1' }
refute_nil n1_a1_c
@@ -1326,7 +1328,8 @@ class TestRDocClassModule < XrefTestCase
l1_l2 = l1.add_module RDoc::NormalModule, 'L2'
o1 = @xref_data.add_module RDoc::NormalModule, 'O1'
- o1.add_module_alias l1_l2, 'A1', @xref_data
+ a1 = RDoc::Constant.new 'A1', '', ''
+ o1.add_module_alias l1_l2, l1_l2.name, a1, @xref_data
o1_a1_c = o1.constants.find { |c| c.name == 'A1' }
refute_nil o1_a1_c
@@ -1358,7 +1361,8 @@ class TestRDocClassModule < XrefTestCase
const.record_location top_level
const.is_alias_for = klass
- top_level.add_module_alias klass, 'A', top_level
+ a = RDoc::Constant.new 'A', '', ''
+ top_level.add_module_alias klass, klass.name, a, top_level
object.add_constant const
diff --git a/test/rdoc/test_rdoc_code_object.rb b/test/rdoc/test_rdoc_code_object.rb
index d189ac1c4b..fad182722a 100644
--- a/test/rdoc/test_rdoc_code_object.rb
+++ b/test/rdoc/test_rdoc_code_object.rb
@@ -213,7 +213,7 @@ class TestRDocCodeObject < XrefTestCase
end
def test_file_name
- assert_equal nil, @co.file_name
+ assert_nil @co.file_name
@co.record_location @store.add_file 'lib/file.rb'
diff --git a/test/rdoc/test_rdoc_comment.rb b/test/rdoc/test_rdoc_comment.rb
index 567daae51c..9b3c105bb0 100644
--- a/test/rdoc/test_rdoc_comment.rb
+++ b/test/rdoc/test_rdoc_comment.rb
@@ -1,7 +1,7 @@
# coding: us-ascii
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocComment < RDoc::TestCase
@@ -77,7 +77,7 @@ call-seq:
comment.extract_call_seq m
- assert_equal nil, m.call_seq
+ assert_nil m.call_seq
end
def test_extract_call_seq_no_blank
diff --git a/test/rdoc/test_rdoc_constant.rb b/test/rdoc/test_rdoc_constant.rb
index e715131579..79dcdad57e 100644
--- a/test/rdoc/test_rdoc_constant.rb
+++ b/test/rdoc/test_rdoc_constant.rb
@@ -118,7 +118,7 @@ class TestRDocConstant < XrefTestCase
assert_equal cm, loaded.parent
assert_equal section, loaded.section
- assert loaded.display?
+ assert loaded.display?
end
def test_marshal_load_version_0
diff --git a/test/rdoc/test_rdoc_context.rb b/test/rdoc/test_rdoc_context.rb
index a7d6a58716..5a9c5db39e 100644
--- a/test/rdoc/test_rdoc_context.rb
+++ b/test/rdoc/test_rdoc_context.rb
@@ -14,10 +14,10 @@ class TestRDocContext < XrefTestCase
assert_empty @context.in_files
assert_equal 'unknown', @context.name
assert_equal '', @context.comment
- assert_equal nil, @context.parent
+ assert_nil @context.parent
assert_equal :public, @context.visibility
assert_equal 1, @context.sections.length
- assert_equal nil, @context.temporary_section
+ assert_nil @context.temporary_section
assert_empty @context.classes_hash
assert_empty @context.modules_hash
@@ -280,7 +280,8 @@ class TestRDocContext < XrefTestCase
def test_add_module_alias
tl = @store.add_file 'file.rb'
- c3_c4 = @c2.add_module_alias @c2_c3, 'C4', tl
+ c4 = RDoc::Constant.new 'C4', '', ''
+ c3_c4 = @c2.add_module_alias @c2_c3, @c2_c3.name, c4, tl
alias_constant = @c2.constants.first
@@ -298,7 +299,8 @@ class TestRDocContext < XrefTestCase
object = top_level.add_class RDoc::NormalClass, 'Object'
- top_level.add_module_alias klass, 'A', top_level
+ a = RDoc::Constant.new 'A', '', ''
+ top_level.add_module_alias klass, klass.name, a, top_level
refute_empty object.constants
@@ -512,7 +514,7 @@ class TestRDocContext < XrefTestCase
end
def test_find_attribute_named
- assert_equal nil, @c1.find_attribute_named('none')
+ assert_nil @c1.find_attribute_named('none')
assert_equal 'R', @c1.find_attribute_named('attr').rw
assert_equal 'R', @c1.find_attribute_named('attr_reader').rw
assert_equal 'W', @c1.find_attribute_named('attr_writer').rw
@@ -520,7 +522,7 @@ class TestRDocContext < XrefTestCase
end
def test_find_class_method_named
- assert_equal nil, @c1.find_class_method_named('none')
+ assert_nil @c1.find_class_method_named('none')
m = @c1.find_class_method_named('m')
assert_instance_of RDoc::AnyMethod, m
@@ -528,23 +530,23 @@ class TestRDocContext < XrefTestCase
end
def test_find_constant_named
- assert_equal nil, @c1.find_constant_named('NONE')
+ assert_nil @c1.find_constant_named('NONE')
assert_equal ':const', @c1.find_constant_named('CONST').value
end
def test_find_enclosing_module_named
- assert_equal nil, @c2_c3.find_enclosing_module_named('NONE')
+ assert_nil @c2_c3.find_enclosing_module_named('NONE')
assert_equal @c1, @c2_c3.find_enclosing_module_named('C1')
assert_equal @c2, @c2_c3.find_enclosing_module_named('C2')
end
def test_find_file_named
- assert_equal nil, @c1.find_file_named('nonexistent.rb')
+ assert_nil @c1.find_file_named('nonexistent.rb')
assert_equal @xref_data, @c1.find_file_named(@file_name)
end
def test_find_instance_method_named
- assert_equal nil, @c1.find_instance_method_named('none')
+ assert_nil @c1.find_instance_method_named('none')
m = @c1.find_instance_method_named('m')
assert_instance_of RDoc::AnyMethod, m
@@ -559,6 +561,14 @@ class TestRDocContext < XrefTestCase
assert_equal @c2_c3, @c2.find_local_symbol('C3')
end
+ def test_find_method
+ loaded_c2 = Marshal.load Marshal.dump @c2
+ assert_equal @c2_a, loaded_c2.find_method('a', false)
+ assert_equal @c2_b, loaded_c2.find_method('b', false)
+ assert_equal @c2_a, loaded_c2.find_method('a', nil)
+ assert_equal @c2_b, loaded_c2.find_method('b', nil)
+ end
+
def test_find_method_named
assert_equal true, @c1.find_method_named('m').singleton
end
diff --git a/test/rdoc/test_rdoc_context_section.rb b/test/rdoc/test_rdoc_context_section.rb
index ff88b9b66a..f1cf493d3d 100644
--- a/test/rdoc/test_rdoc_context_section.rb
+++ b/test/rdoc/test_rdoc_context_section.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocContextSection < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_encoding.rb b/test/rdoc/test_rdoc_encoding.rb
index 9d9ded4bbd..5b2de47aa2 100644
--- a/test/rdoc/test_rdoc_encoding.rb
+++ b/test/rdoc/test_rdoc_encoding.rb
@@ -1,7 +1,7 @@
# coding: US-ASCII
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocEncoding < RDoc::TestCase
@@ -31,7 +31,7 @@ class TestRDocEncoding < RDoc::TestCase
@tempfile.flush
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
- assert_equal "hi everybody", contents
+ assert_equal "# coding: utf-8\nhi everybody", contents
assert_equal Encoding::UTF_8, contents.encoding
end
@@ -45,7 +45,7 @@ class TestRDocEncoding < RDoc::TestCase
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
assert_equal Encoding::UTF_8, contents.encoding
- assert_equal "hi \u00e9verybody", contents.sub("\r", '')
+ assert_equal "# coding: ISO-8859-1\nhi \u00e9verybody", contents.sub("\r", '')
end
def test_class_read_file_encoding_fail
@@ -65,13 +65,13 @@ class TestRDocEncoding < RDoc::TestCase
def test_class_read_file_encoding_fancy
expected = "# -*- coding: utf-8; fill-column: 74 -*-\nhi everybody"
- exptected = RDoc::Encoding.change_encoding expected, Encoding::UTF_8
+ expected = RDoc::Encoding.change_encoding expected, Encoding::UTF_8
@tempfile.write expected
@tempfile.flush
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
- assert_equal "hi everybody", contents
+ assert_equal "# -*- coding: utf-8; fill-column: 74 -*-\nhi everybody", contents
assert_equal Encoding::UTF_8, contents.encoding
end
@@ -81,7 +81,7 @@ class TestRDocEncoding < RDoc::TestCase
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::US_ASCII, true
- assert_equal '?', contents
+ assert_equal "# coding: utf-8\n?", contents
assert_equal Encoding::US_ASCII, contents.encoding
end
@@ -124,108 +124,58 @@ class TestRDocEncoding < RDoc::TestCase
contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
- expected = ":\xe3\x82\xb3\xe3\x83\x9e\xe3\x83\xb3\xe3\x83\x89:"
+ expected = "# coding: ISO-2022-JP\n:\xe3\x82\xb3\xe3\x83\x9e\xe3\x83\xb3\xe3\x83\x89:"
expected = RDoc::Encoding.change_encoding expected, Encoding::UTF_8
assert_equal expected, contents
assert_equal Encoding::UTF_8, contents.encoding
end
- def test_class_set_encoding
+ def test_class_detect_encoding
s = "# coding: UTF-8\n"
- s = RDoc::Encoding.set_encoding s
+ encoding = RDoc::Encoding.detect_encoding s
# sanity check for 1.8
- assert_equal Encoding::UTF_8, s.encoding
+ assert_equal Encoding::UTF_8, encoding
s = "#!/bin/ruby\n# coding: UTF-8\n"
- s = RDoc::Encoding.set_encoding s
+ encoding = RDoc::Encoding.detect_encoding s
- assert_equal Encoding::UTF_8, s.encoding
+ assert_equal Encoding::UTF_8, encoding
s = "<?xml version='1.0' encoding='UTF-8'?>\n"
- s = RDoc::Encoding.set_encoding s
+ encoding = RDoc::Encoding.detect_encoding s
- assert_equal Encoding::UTF_8, s.encoding
+ assert_equal Encoding::UTF_8, encoding
s = "<?xml version='1.0' encoding=\"UTF-8\"?>\n"
- s = RDoc::Encoding.set_encoding s
-
- assert_equal Encoding::UTF_8, s.encoding
- end
-
- def test_class_set_encoding_strip
- s = "# coding: UTF-8\n# more comments"
-
- s = RDoc::Encoding.set_encoding s
-
- assert_equal "# more comments", s
-
- s = "#!/bin/ruby\n# coding: UTF-8\n# more comments"
-
- s = RDoc::Encoding.set_encoding s
+ encoding = RDoc::Encoding.detect_encoding s
- assert_equal "#!/bin/ruby\n# more comments", s
+ assert_equal Encoding::UTF_8, encoding
end
def test_class_set_encoding_bad
s = ""
- expected = s.encoding
- s = RDoc::Encoding.set_encoding s
+ encoding = RDoc::Encoding.detect_encoding s
- assert_equal expected, s.encoding
+ assert_nil encoding
s = "# vim:set fileencoding=utf-8:\n"
- expected = s.encoding
- s = RDoc::Encoding.set_encoding s
+ encoding = RDoc::Encoding.detect_encoding s
- assert_equal expected, s.encoding
+ assert_nil encoding
s = "# vim:set fileencoding=utf-8:\n"
- expected = s.encoding
- s = RDoc::Encoding.set_encoding s
+ encoding = RDoc::Encoding.detect_encoding s
- assert_equal expected, s.encoding
+ assert_nil encoding
assert_raises ArgumentError do
- s = RDoc::Encoding.set_encoding "# -*- encoding: undecided -*-\n"
+ s = RDoc::Encoding.detect_encoding "# -*- encoding: undecided -*-\n"
end
end
- def test_skip_frozen_string_literal
- expected = "# frozen_string_literal: true\nhi everybody"
-
- @tempfile.write expected
- @tempfile.flush
-
- contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
- assert_equal "hi everybody", contents
- assert_equal Encoding::UTF_8, contents.encoding
- end
-
- def test_skip_frozen_string_literal_after_coding
- expected = "# coding: utf-8\n# frozen-string-literal: false\nhi everybody"
-
- @tempfile.write expected
- @tempfile.flush
-
- contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
- assert_equal "hi everybody", contents
- assert_equal Encoding::UTF_8, contents.encoding
- end
-
- def test_skip_frozen_string_literal_before_coding
- expected = "# frozen_string_literal: true\n# coding: utf-8\nhi everybody"
-
- @tempfile.write expected
- @tempfile.flush
-
- contents = RDoc::Encoding.read_file @tempfile.path, Encoding::UTF_8
- assert_equal "hi everybody", contents
- assert_equal Encoding::UTF_8, contents.encoding
- end
-
def test_sanity
assert_equal Encoding::US_ASCII, ''.encoding,
'If this file is not ASCII tests may incorrectly pass'
diff --git a/test/rdoc/test_rdoc_generator_darkfish.rb b/test/rdoc/test_rdoc_generator_darkfish.rb
index c004bb271e..edabe4fad4 100644
--- a/test/rdoc/test_rdoc_generator_darkfish.rb
+++ b/test/rdoc/test_rdoc_generator_darkfish.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocGeneratorDarkfish < RDoc::TestCase
@@ -39,7 +39,7 @@ class TestRDocGeneratorDarkfish < RDoc::TestCase
@top_level.add_constant @alias_constant
- @klass.add_module_alias @klass, 'A', @top_level
+ @klass.add_module_alias @klass, @klass.name, @alias_constant, @top_level
@meth = RDoc::AnyMethod.new nil, 'method'
@meth_bang = RDoc::AnyMethod.new nil, 'method!'
@@ -135,7 +135,7 @@ class TestRDocGeneratorDarkfish < RDoc::TestCase
end
def test_install_rdoc_static_file
- src = Pathname(__FILE__)
+ src = Pathname File.expand_path(__FILE__, @pwd)
dst = File.join @tmpdir, File.basename(src)
options = {}
diff --git a/test/rdoc/test_rdoc_generator_json_index.rb b/test/rdoc/test_rdoc_generator_json_index.rb
index 6cb5463d29..ca7260c820 100644
--- a/test/rdoc/test_rdoc_generator_json_index.rb
+++ b/test/rdoc/test_rdoc_generator_json_index.rb
@@ -1,14 +1,14 @@
# coding: US-ASCII
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocGeneratorJsonIndex < RDoc::TestCase
def setup
super
- @tmpdir = File.join Dir.tmpdir, "test_rdoc_generator_darkfish_#{$$}"
+ @tmpdir = Dir.mktmpdir "test_rdoc_generator_darkfish_#{$$}_"
FileUtils.mkdir_p @tmpdir
@options = RDoc::Options.new
@@ -89,12 +89,31 @@ class TestRDocGeneratorJsonIndex < RDoc::TestCase
end
def test_generate
+ now = Time.now
@g.generate
assert_file 'js/searcher.js'
assert_file 'js/navigation.js'
assert_file 'js/search_index.js'
+ srcdir = File.expand_path("../../lib/rdoc", __FILE__)
+ if !File.directory? srcdir
+ # for Ruby core repository
+ srcdir = File.expand_path("../../../lib/rdoc", __FILE__)
+ end
+
+ orig_file = Pathname(File.join srcdir, 'generator/template/json_index/js/navigation.js')
+ generated_file = Pathname(File.join @tmpdir, 'js/navigation.js')
+
+ # This is dirty hack on JRuby for MiniTest 4
+ assert orig_file.mtime.inspect == generated_file.mtime.inspect,
+ '.js files should be tha same timestamp of original'
+
+ assert generated_file.mtime < now, '.js files should be the same timestamp'
+
+ generated_search_index = Pathname(File.join @tmpdir, 'js/search_index.js')
+ assert generated_search_index.mtime > (now - 1), 'search_index.js should be generated timestamp'
+
json = File.read 'js/search_index.js'
json =~ /\Avar search_data = /
@@ -137,6 +156,20 @@ class TestRDocGeneratorJsonIndex < RDoc::TestCase
assert_equal expected, index
end
+ def test_generate_search_index_with_reproducible_builds
+ backup_epoch = ENV['SOURCE_DATE_EPOCH']
+ ruby_birthday = Time.parse 'Wed, 24 Feb 1993 21:00:00 +0900'
+ ENV['SOURCE_DATE_EPOCH'] = ruby_birthday.to_i.to_s
+
+ @g.generate
+
+ assert_file 'js/search_index.js'
+ generated_search_index = Pathname(File.join @tmpdir, 'js/search_index.js')
+ assert_equal ruby_birthday, generated_search_index.mtime
+
+ ENV['SOURCE_DATE_EPOCH'] = backup_epoch
+ end
+
def test_generate_gzipped
begin
require 'zlib'
diff --git a/test/rdoc/test_rdoc_generator_markup.rb b/test/rdoc/test_rdoc_generator_markup.rb
index d13f5119be..5588d9c5f0 100644
--- a/test/rdoc/test_rdoc_generator_markup.rb
+++ b/test/rdoc/test_rdoc_generator_markup.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocGeneratorMarkup < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_generator_pot.rb b/test/rdoc/test_rdoc_generator_pot.rb
index 5675f96b75..26641345ef 100644
--- a/test/rdoc/test_rdoc_generator_pot.rb
+++ b/test/rdoc/test_rdoc_generator_pot.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocGeneratorPOT < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_generator_pot_po.rb b/test/rdoc/test_rdoc_generator_pot_po.rb
index 8786f632c0..c50899d446 100644
--- a/test/rdoc/test_rdoc_generator_pot_po.rb
+++ b/test/rdoc/test_rdoc_generator_pot_po.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocGeneratorPOTPO < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_generator_pot_po_entry.rb b/test/rdoc/test_rdoc_generator_pot_po_entry.rb
index 5c24c2d70d..f3bf329348 100644
--- a/test/rdoc/test_rdoc_generator_pot_po_entry.rb
+++ b/test/rdoc/test_rdoc_generator_pot_po_entry.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocGeneratorPOTPOEntry < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_generator_ri.rb b/test/rdoc/test_rdoc_generator_ri.rb
index 02bcee8904..a33f5ca2ac 100644
--- a/test/rdoc/test_rdoc_generator_ri.rb
+++ b/test/rdoc/test_rdoc_generator_ri.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocGeneratorRI < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_i18n_locale.rb b/test/rdoc/test_rdoc_i18n_locale.rb
index ff9836f9a6..c936a7219f 100644
--- a/test/rdoc/test_rdoc_i18n_locale.rb
+++ b/test/rdoc/test_rdoc_i18n_locale.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocI18nLocale < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_i18n_text.rb b/test/rdoc/test_rdoc_i18n_text.rb
index be5ff581f5..beb9f307a7 100644
--- a/test/rdoc/test_rdoc_i18n_text.rb
+++ b/test/rdoc/test_rdoc_i18n_text.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocI18nText < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markdown.rb b/test/rdoc/test_rdoc_markdown.rb
index 99f8abf5ab..8b58150f8a 100644
--- a/test/rdoc/test_rdoc_markdown.rb
+++ b/test/rdoc/test_rdoc_markdown.rb
@@ -1,7 +1,7 @@
# coding: UTF-8
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
require 'rdoc/markup/block_quote'
require 'rdoc/markdown'
diff --git a/test/rdoc/test_rdoc_markup.rb b/test/rdoc/test_rdoc_markup.rb
index 8e4e8b968e..2812a2994f 100644
--- a/test/rdoc/test_rdoc_markup.rb
+++ b/test/rdoc/test_rdoc_markup.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkup < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_attribute_manager.rb b/test/rdoc/test_rdoc_markup_attribute_manager.rb
index a939623e01..93338ecb50 100644
--- a/test/rdoc/test_rdoc_markup_attribute_manager.rb
+++ b/test/rdoc/test_rdoc_markup_attribute_manager.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupAttributeManager < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_attributes.rb b/test/rdoc/test_rdoc_markup_attributes.rb
index 1fad62208c..91c253a6b0 100644
--- a/test/rdoc/test_rdoc_markup_attributes.rb
+++ b/test/rdoc/test_rdoc_markup_attributes.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupAttributes < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_document.rb b/test/rdoc/test_rdoc_markup_document.rb
index d817f1b9aa..8202916238 100644
--- a/test/rdoc/test_rdoc_markup_document.rb
+++ b/test/rdoc/test_rdoc_markup_document.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupDocument < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_formatter.rb b/test/rdoc/test_rdoc_markup_formatter.rb
index 0e7f72fb16..b1f0855de3 100644
--- a/test/rdoc/test_rdoc_markup_formatter.rb
+++ b/test/rdoc/test_rdoc_markup_formatter.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupFormatter < RDoc::TestCase
@@ -111,15 +111,15 @@ class TestRDocMarkupFormatter < RDoc::TestCase
assert_equal 'http', scheme
assert_equal 'example/foo', url
- assert_equal nil, id
+ assert_nil id
end
def test_parse_url_anchor
scheme, url, id = @to.parse_url '#foottext-1'
- assert_equal nil, scheme
+ assert_nil scheme
assert_equal '#foottext-1', url
- assert_equal nil, id
+ assert_nil id
end
def test_parse_url_link
@@ -127,7 +127,7 @@ class TestRDocMarkupFormatter < RDoc::TestCase
assert_equal 'link', scheme
assert_equal 'README.txt', url
- assert_equal nil, id
+ assert_nil id
end
def test_parse_url_link_id
@@ -135,7 +135,7 @@ class TestRDocMarkupFormatter < RDoc::TestCase
assert_equal 'link', scheme
assert_equal 'README.txt#label-foo', url
- assert_equal nil, id
+ assert_nil id
end
def test_parse_url_rdoc_label
@@ -143,7 +143,7 @@ class TestRDocMarkupFormatter < RDoc::TestCase
assert_equal 'link', scheme
assert_equal '#foo', url
- assert_equal nil, id
+ assert_nil id
scheme, url, id = @to.parse_url 'rdoc-label:foo:bar'
@@ -157,13 +157,13 @@ class TestRDocMarkupFormatter < RDoc::TestCase
assert_equal 'http', scheme
assert_equal 'http://example/foo', url
- assert_equal nil, id
+ assert_nil id
scheme, url, id = @to.parse_url 'https://example/foo'
assert_equal 'https', scheme
assert_equal 'https://example/foo', url
- assert_equal nil, id
+ assert_nil id
end
def test_convert_tt_special
@@ -173,4 +173,3 @@ class TestRDocMarkupFormatter < RDoc::TestCase
end
end
-
diff --git a/test/rdoc/test_rdoc_markup_hard_break.rb b/test/rdoc/test_rdoc_markup_hard_break.rb
index d93d52eeda..1d6c8927b5 100644
--- a/test/rdoc/test_rdoc_markup_hard_break.rb
+++ b/test/rdoc/test_rdoc_markup_hard_break.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupHardBreak < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_heading.rb b/test/rdoc/test_rdoc_markup_heading.rb
index 33e29e90e6..4508561a79 100644
--- a/test/rdoc/test_rdoc_markup_heading.rb
+++ b/test/rdoc/test_rdoc_markup_heading.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupHeading < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_include.rb b/test/rdoc/test_rdoc_markup_include.rb
index 28712fa7ed..6b2d570286 100644
--- a/test/rdoc/test_rdoc_markup_include.rb
+++ b/test/rdoc/test_rdoc_markup_include.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupInclude < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_indented_paragraph.rb b/test/rdoc/test_rdoc_markup_indented_paragraph.rb
index 53d44dcec2..06dcb25357 100644
--- a/test/rdoc/test_rdoc_markup_indented_paragraph.rb
+++ b/test/rdoc/test_rdoc_markup_indented_paragraph.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupIndentedParagraph < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_paragraph.rb b/test/rdoc/test_rdoc_markup_paragraph.rb
index dce3ed8efd..00e4320119 100644
--- a/test/rdoc/test_rdoc_markup_paragraph.rb
+++ b/test/rdoc/test_rdoc_markup_paragraph.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupParagraph < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_parser.rb b/test/rdoc/test_rdoc_markup_parser.rb
index fa4730a06f..6d4953bc06 100644
--- a/test/rdoc/test_rdoc_markup_parser.rb
+++ b/test/rdoc/test_rdoc_markup_parser.rb
@@ -1,7 +1,7 @@
# coding: utf-8
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupParser < RDoc::TestCase
@@ -1068,7 +1068,7 @@ the time
assert_equal [:NEWLINE, "\n", 9, 0], parser.peek_token
- assert_equal nil, parser.skip(:NONE, false)
+ assert_nil parser.skip(:NONE, false)
assert_equal [:NEWLINE, "\n", 9, 0], parser.peek_token
end
diff --git a/test/rdoc/test_rdoc_markup_pre_process.rb b/test/rdoc/test_rdoc_markup_pre_process.rb
index 887ff6de9c..60ec75c19e 100644
--- a/test/rdoc/test_rdoc_markup_pre_process.rb
+++ b/test/rdoc/test_rdoc_markup_pre_process.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupPreProcess < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_raw.rb b/test/rdoc/test_rdoc_markup_raw.rb
index aaf4e48439..95de62208a 100644
--- a/test/rdoc/test_rdoc_markup_raw.rb
+++ b/test/rdoc/test_rdoc_markup_raw.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupRaw < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_to_ansi.rb b/test/rdoc/test_rdoc_markup_to_ansi.rb
index d06ad98fa3..4c312e7972 100644
--- a/test/rdoc/test_rdoc_markup_to_ansi.rb
+++ b/test/rdoc/test_rdoc_markup_to_ansi.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToAnsi < RDoc::Markup::TextFormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_bs.rb b/test/rdoc/test_rdoc_markup_to_bs.rb
index 9b798c92b3..f269790357 100644
--- a/test/rdoc/test_rdoc_markup_to_bs.rb
+++ b/test/rdoc/test_rdoc_markup_to_bs.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToBs < RDoc::Markup::TextFormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_html.rb b/test/rdoc/test_rdoc_markup_to_html.rb
index fa5828a007..59889dcc5a 100644
--- a/test/rdoc/test_rdoc_markup_to_html.rb
+++ b/test/rdoc/test_rdoc_markup_to_html.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToHtml < RDoc::Markup::FormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_html_snippet.rb b/test/rdoc/test_rdoc_markup_to_html_snippet.rb
index d7ce211999..98102ba553 100644
--- a/test/rdoc/test_rdoc_markup_to_html_snippet.rb
+++ b/test/rdoc/test_rdoc_markup_to_html_snippet.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToHtmlSnippet < RDoc::Markup::FormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_joined_paragraph.rb b/test/rdoc/test_rdoc_markup_to_joined_paragraph.rb
index 0a6a864bfa..b4eed5f601 100644
--- a/test/rdoc/test_rdoc_markup_to_joined_paragraph.rb
+++ b/test/rdoc/test_rdoc_markup_to_joined_paragraph.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToJoinedParagraph < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_markup_to_label.rb b/test/rdoc/test_rdoc_markup_to_label.rb
index 23ab8cbfab..b869745528 100644
--- a/test/rdoc/test_rdoc_markup_to_label.rb
+++ b/test/rdoc/test_rdoc_markup_to_label.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToLabel < RDoc::Markup::FormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_markdown.rb b/test/rdoc/test_rdoc_markup_to_markdown.rb
index f5ea8d05da..9c5b6d3e57 100644
--- a/test/rdoc/test_rdoc_markup_to_markdown.rb
+++ b/test/rdoc/test_rdoc_markup_to_markdown.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToMarkdown < RDoc::Markup::TextFormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_rdoc.rb b/test/rdoc/test_rdoc_markup_to_rdoc.rb
index 31761eb44d..e81bc2f1ad 100644
--- a/test/rdoc/test_rdoc_markup_to_rdoc.rb
+++ b/test/rdoc/test_rdoc_markup_to_rdoc.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToRDoc < RDoc::Markup::TextFormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_table_of_contents.rb b/test/rdoc/test_rdoc_markup_to_table_of_contents.rb
index f21dbfe748..bfeb2d6f58 100644
--- a/test/rdoc/test_rdoc_markup_to_table_of_contents.rb
+++ b/test/rdoc/test_rdoc_markup_to_table_of_contents.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToTableOfContents < RDoc::Markup::FormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_to_tt_only.rb b/test/rdoc/test_rdoc_markup_to_tt_only.rb
index b08362cd0b..856eb592c5 100644
--- a/test/rdoc/test_rdoc_markup_to_tt_only.rb
+++ b/test/rdoc/test_rdoc_markup_to_tt_only.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupToTtOnly < RDoc::Markup::FormatterTestCase
diff --git a/test/rdoc/test_rdoc_markup_verbatim.rb b/test/rdoc/test_rdoc_markup_verbatim.rb
index 3b05100a33..88ca4906bb 100644
--- a/test/rdoc/test_rdoc_markup_verbatim.rb
+++ b/test/rdoc/test_rdoc_markup_verbatim.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocMarkupVerbatim < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_options.rb b/test/rdoc/test_rdoc_options.rb
index 400ed9a549..394d155241 100644
--- a/test/rdoc/test_rdoc_options.rb
+++ b/test/rdoc/test_rdoc_options.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocOptions < RDoc::TestCase
@@ -18,7 +18,6 @@ class TestRDocOptions < RDoc::TestCase
def test_check_files
skip "assumes UNIX permission model" if /mswin|mingw/ =~ RUBY_PLATFORM
- skip "skipped in root privilege" if Process.uid == 0
out, err = capture_io do
temp_dir do
diff --git a/test/rdoc/test_rdoc_parser.rb b/test/rdoc/test_rdoc_parser.rb
index 5d4da7e425..2638adcd15 100644
--- a/test/rdoc/test_rdoc_parser.rb
+++ b/test/rdoc/test_rdoc_parser.rb
@@ -1,7 +1,7 @@
# -*- coding: us-ascii -*-
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocParser < RDoc::TestCase
@@ -19,7 +19,7 @@ class TestRDocParser < RDoc::TestCase
def test_class_binary_eh_ISO_2022_JP
iso_2022_jp = File.join Dir.tmpdir, "test_rdoc_parser_#{$$}.rd"
- open iso_2022_jp, 'wb' do |io|
+ File.open iso_2022_jp, 'wb' do |io|
io.write "# coding: ISO-2022-JP\n"
io.write ":\e$B%3%^%s%I\e(B:\n"
end
@@ -31,7 +31,7 @@ class TestRDocParser < RDoc::TestCase
def test_class_binary_eh_marshal
marshal = File.join Dir.tmpdir, "test_rdoc_parser_#{$$}.marshal"
- open marshal, 'wb' do |io|
+ File.open marshal, 'wb' do |io|
io.write Marshal.dump('')
io.write 'lots of text ' * 500
end
@@ -92,7 +92,7 @@ class TestRDocParser < RDoc::TestCase
def test_class_for_executable
temp_dir do
content = "#!/usr/bin/env ruby -w\n"
- open 'app', 'w' do |io| io.write content end
+ File.open 'app', 'w' do |io| io.write content end
app = @store.add_file 'app'
parser = @RP.for app, 'app', content, @options, :stats
@@ -126,7 +126,7 @@ class TestRDocParser < RDoc::TestCase
temp_dir do
content = "# -*- rdoc -*-\n= NEWS\n"
- open 'NEWS', 'w' do |io| io.write content end
+ File.open 'NEWS', 'w' do |io| io.write content end
app = @store.add_file 'NEWS'
parser = @RP.for app, 'NEWS', content, @options, :stats
@@ -140,7 +140,7 @@ class TestRDocParser < RDoc::TestCase
def test_can_parse_modeline
readme_ext = File.join Dir.tmpdir, "README.EXT.#{$$}"
- open readme_ext, 'w' do |io|
+ File.open readme_ext, 'w' do |io|
io.puts "# README.EXT - -*- rdoc -*- created at: Mon Aug 7 16:45:54 JST 1995"
io.puts
io.puts "This document explains how to make extension libraries for Ruby."
@@ -162,7 +162,7 @@ class TestRDocParser < RDoc::TestCase
def test_check_modeline
readme_ext = File.join Dir.tmpdir, "README.EXT.#{$$}"
- open readme_ext, 'w' do |io|
+ File.open readme_ext, 'w' do |io|
io.puts "# README.EXT - -*- RDoc -*- created at: Mon Aug 7 16:45:54 JST 1995"
io.puts
io.puts "This document explains how to make extension libraries for Ruby."
@@ -176,7 +176,7 @@ class TestRDocParser < RDoc::TestCase
def test_check_modeline_coding
readme_ext = File.join Dir.tmpdir, "README.EXT.#{$$}"
- open readme_ext, 'w' do |io|
+ File.open readme_ext, 'w' do |io|
io.puts "# -*- coding: utf-8 -*-"
end
@@ -188,7 +188,7 @@ class TestRDocParser < RDoc::TestCase
def test_check_modeline_with_other
readme_ext = File.join Dir.tmpdir, "README.EXT.#{$$}"
- open readme_ext, 'w' do |io|
+ File.open readme_ext, 'w' do |io|
io.puts "# README.EXT - -*- mode: RDoc; indent-tabs-mode: nil -*-"
io.puts
io.puts "This document explains how to make extension libraries for Ruby."
@@ -202,7 +202,7 @@ class TestRDocParser < RDoc::TestCase
def test_check_modeline_no_modeline
readme_ext = File.join Dir.tmpdir, "README.EXT.#{$$}"
- open readme_ext, 'w' do |io|
+ File.open readme_ext, 'w' do |io|
io.puts "This document explains how to make extension libraries for Ruby."
end
diff --git a/test/rdoc/test_rdoc_parser_c.rb b/test/rdoc/test_rdoc_parser_c.rb
index 2cc8ddf79a..b8bdbca7fd 100644
--- a/test/rdoc/test_rdoc_parser_c.rb
+++ b/test/rdoc/test_rdoc_parser_c.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
=begin
TODO: test call-seq parsing
@@ -327,7 +327,7 @@ VALUE cFoo = boot_defclass("Foo", 0);
klass = util_get_class content, 'cFoo'
assert_equal "this is the Foo boot class", klass.comment.text
- assert_equal nil, klass.superclass
+ assert_nil klass.superclass
end
def test_do_aliases_missing_class
@@ -1377,7 +1377,7 @@ commercial() -> Date <br />
parser.find_modifiers comment, method_obj
- assert_equal nil, method_obj.document_self
+ assert_nil method_obj.document_self
end
def test_find_modifiers_yields
diff --git a/test/rdoc/test_rdoc_parser_changelog.rb b/test/rdoc/test_rdoc_parser_changelog.rb
index 06c3ff206e..18ea81b34e 100644
--- a/test/rdoc/test_rdoc_parser_changelog.rb
+++ b/test/rdoc/test_rdoc_parser_changelog.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocParserChangeLog < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_parser_markdown.rb b/test/rdoc/test_rdoc_parser_markdown.rb
index 50893ecf99..30e66e2833 100644
--- a/test/rdoc/test_rdoc_parser_markdown.rb
+++ b/test/rdoc/test_rdoc_parser_markdown.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocParserMarkdown < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_parser_rd.rb b/test/rdoc/test_rdoc_parser_rd.rb
index e8f4250284..15112fdb0e 100644
--- a/test/rdoc/test_rdoc_parser_rd.rb
+++ b/test/rdoc/test_rdoc_parser_rd.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocParserRd < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_parser_ruby.rb b/test/rdoc/test_rdoc_parser_ruby.rb
index e28112fbee..ce2aaae981 100644
--- a/test/rdoc/test_rdoc_parser_ruby.rb
+++ b/test/rdoc/test_rdoc_parser_ruby.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocParserRuby < RDoc::TestCase
@@ -231,8 +231,8 @@ class C; end
@parser.look_for_directives_in @top_level, comment
section = @top_level.current_section
- assert_equal nil, section.title
- assert_equal nil, section.comment
+ assert_nil section.title
+ assert_nil section.comment
assert_equal "# how to make a section:\n# # :section: new section\n",
comment.text
@@ -306,6 +306,67 @@ ruby
assert_equal @top_level, sum.file
end
+ def test_parse_on_ignored_nl_with_nil_text
+ util_parser <<ruby
+class Foo
+ def meth
+ variable # comment
+ .chain
+ end
+end
+ruby
+
+ expected = <<EXPECTED
+<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">meth</span>
+ <span class="ruby-identifier">variable</span> <span class="ruby-comment"># comment</span>
+ .<span class="ruby-identifier">chain</span>
+<span class="ruby-keyword">end</span>
+EXPECTED
+ expected = expected.rstrip
+
+ @parser.scan
+
+ foo = @store.find_class_named 'Foo'
+ meth = foo.method_list.first
+
+ assert_equal 'meth', meth.name
+ assert_equal @top_level, meth.file
+
+ markup_code = meth.markup_code.sub(/^.*\n/, '')
+ assert_equal expected, markup_code
+ end
+
+ def test_parse_redefined_op_with_constant
+ klass = RDoc::NormalClass.new 'Foo'
+ klass.parent = @top_level
+
+ comment = RDoc::Comment.new '', @top_level
+
+ util_parser <<ruby
+def meth
+ Integer::**()
+ return Integer::**()
+ break Integer::**()
+ case Integer::**()
+ when Integer::**()
+ end
+ while Integer::**()
+ end
+ yield Integer::**()
+ defined? Integer::**()
+ if Integer::**()
+ end
+end
+ruby
+
+ tk = @parser.get_tk
+
+ @parser.parse_method klass, RDoc::Parser::Ruby::NORMAL, tk, comment
+
+ meth = klass.method_list.first
+ assert_equal 'meth', meth.name
+ end
+
def test_parse_alias
klass = RDoc::NormalClass.new 'Foo'
klass.parent = @top_level
@@ -813,6 +874,31 @@ end
assert_match(/Expected class name or '<<'\. Got/, err)
end
+ def test_parse_syntax_error_code
+ @options.verbosity = 2
+ stds = capture_io do
+ begin
+ util_parser <<INVALID_CODE
+# invalid class name
+class Invalid::@@Code
+end
+INVALID_CODE
+ @parser.scan
+ rescue
+ end
+ end
+ err = stds[1]
+
+ expected = <<EXPECTED
+RDoc::Parser::Ruby failure around line 2 of
+#{@filename}
+
+class Invalid::@@Code
+EXPECTED
+
+ assert_match(expected, err)
+ end
+
def test_parse_multi_ghost_methods
util_parser <<-'CLASS'
class Foo
@@ -1139,7 +1225,7 @@ EOF
assert_equal @top_level, foo.file
assert_equal 1, foo.line
- assert_equal nil, foo.viewer
+ assert_nil foo.viewer
assert_equal true, foo.document_children
assert_equal true, foo.document_self
assert_equal false, foo.done_documenting
@@ -1202,21 +1288,21 @@ EOF
assert_equal @top_level, foo.file
assert_equal 1, foo.line
- assert_equal [], foo.aliases
- assert_equal nil, foo.block_params
- assert_equal nil, foo.call_seq
- assert_equal nil, foo.is_alias_for
- assert_equal nil, foo.viewer
- assert_equal true, foo.document_children
- assert_equal true, foo.document_self
- assert_equal '', foo.params
- assert_equal false, foo.done_documenting
- assert_equal false, foo.dont_rename_initialize
- assert_equal false, foo.force_documentation
- assert_equal klass, foo.parent
- assert_equal false, foo.singleton
- assert_equal :public, foo.visibility
- assert_equal "\n", foo.text
+ assert_equal [], foo.aliases
+ assert_nil foo.block_params
+ assert_nil foo.call_seq
+ assert_nil foo.is_alias_for
+ assert_nil foo.viewer
+ assert_equal true, foo.document_children
+ assert_equal true, foo.document_self
+ assert_equal '', foo.params
+ assert_equal false, foo.done_documenting
+ assert_equal false, foo.dont_rename_initialize
+ assert_equal false, foo.force_documentation
+ assert_equal klass, foo.parent
+ assert_equal false, foo.singleton
+ assert_equal :public, foo.visibility
+ assert_equal "\n", foo.text
assert_equal klass.current_section, foo.section
stream = [
@@ -1302,6 +1388,9 @@ EOF
@parser.parse_constant klass, tk, @comment
+ assert_equal [], klass.modules.map(&:full_name)
+ assert_equal ['Foo::B', 'Foo::A'], klass.classes.map(&:full_name)
+ assert_equal ['Foo::A'], klass.constants.map(&:full_name)
assert_equal 'Foo::A', klass.find_module_named('A').full_name
end
@@ -1516,19 +1605,19 @@ end
assert_equal 1, foo.line
assert_equal [], foo.aliases
- assert_equal nil, foo.block_params
- assert_equal nil, foo.call_seq
+ assert_nil foo.block_params
+ assert_nil foo.call_seq
assert_equal true, foo.document_children
assert_equal true, foo.document_self
assert_equal false, foo.done_documenting
assert_equal false, foo.dont_rename_initialize
assert_equal false, foo.force_documentation
- assert_equal nil, foo.is_alias_for
+ assert_nil foo.is_alias_for
assert_equal '', foo.params
assert_equal klass, foo.parent
assert_equal false, foo.singleton
assert_equal 'add_my_method :foo', foo.text
- assert_equal nil, foo.viewer
+ assert_nil foo.viewer
assert_equal :public, foo.visibility
assert_equal klass.current_section, foo.section
@@ -1726,10 +1815,10 @@ end
assert_equal 1, foo.line
assert_equal [], foo.aliases
- assert_equal nil, foo.block_params
- assert_equal nil, foo.call_seq
- assert_equal nil, foo.is_alias_for
- assert_equal nil, foo.viewer
+ assert_nil foo.block_params
+ assert_nil foo.call_seq
+ assert_nil foo.is_alias_for
+ assert_nil foo.viewer
assert_equal true, foo.document_children
assert_equal true, foo.document_self
assert_equal '()', foo.params
@@ -2981,12 +3070,12 @@ RUBY
@parser.skip_tkspace
- assert_equal nil, @parser.parse_symbol_in_arg
+ assert_nil @parser.parse_symbol_in_arg
@parser.get_tk # skip ','
@parser.skip_tkspace
- assert_equal nil, @parser.parse_symbol_in_arg
+ assert_nil @parser.parse_symbol_in_arg
end
def test_parse_statements_alias_method
@@ -3090,7 +3179,7 @@ end
assert_equal 'category', directive
assert_equal 'test', value
- assert_equal nil, parser.get_tk
+ assert_nil parser.get_tk
end
def test_read_directive_allow
@@ -3100,7 +3189,7 @@ end
assert_nil directive
- assert_equal nil, parser.get_tk
+ assert_nil parser.get_tk
end
def test_read_directive_empty
@@ -3110,7 +3199,7 @@ end
assert_nil directive
- assert_equal nil, parser.get_tk
+ assert_nil parser.get_tk
end
def test_read_directive_no_comment
@@ -3120,7 +3209,7 @@ end
assert_nil directive
- assert_equal nil, parser.get_tk
+ assert_nil parser.get_tk
end
def test_read_directive_one_liner
@@ -3197,14 +3286,14 @@ end
util_parser '"#{"#{"a")}" if b}"'
assert_equal '"#{"#{"a")}" if b}"', @parser.get_tk[:text]
- assert_equal nil, @parser.get_tk
+ assert_nil @parser.get_tk
end
def test_sanity_interpolation_curly
util_parser '%{ #{} }'
assert_equal '%{ #{} }', @parser.get_tk[:text]
- assert_equal nil, @parser.get_tk
+ assert_nil @parser.get_tk
end
def test_sanity_interpolation_format
@@ -3842,4 +3931,150 @@ end
second_file_content, @options, @stats
end
+ def test_parse_const_third_party
+ util_parser <<-CLASS
+class A
+ true if B
+ true if B::C
+ true if B::C::D
+
+ module B
+ end
+end
+ CLASS
+
+ tk = @parser.get_tk
+
+ @parser.parse_class @top_level, RDoc::Parser::Ruby::NORMAL, tk, @comment
+
+ a = @top_level.classes.first
+ assert_equal 'A', a.full_name
+
+ visible = @store.all_modules.reject { |mod| mod.suppressed? }
+ visible = visible.map { |mod| mod.full_name }
+
+ assert_equal ['A::B'], visible
+ end
+
+ def test_parse_const_alias_defined_elsewhere
+ util_parser <<-CLASS
+module A
+ Aliased = Defined
+end
+
+module A
+ class Defined
+ end
+end
+ CLASS
+
+ @parser.scan
+
+ a = @top_level.modules.first
+ assert_equal 'A', a.full_name
+ aliased = a.constants.first
+ assert_equal 'A::Aliased', aliased.full_name
+ assert_equal [], a.modules.map(&:full_name)
+ assert_equal ['A::Defined', 'A::Aliased'], a.classes.map(&:full_name)
+ assert_equal ['A::Aliased'], a.constants.map(&:full_name)
+
+ visible = @store.all_modules.reject { |mod| mod.suppressed? }
+ visible = visible.map { |mod| mod.full_name }
+
+ assert_equal ['A'], visible
+ end
+
+ def test_parse_const_alias_defined_far_away
+ util_parser <<-CLASS
+module A
+ Aliased = ::B::C::Defined
+end
+
+module B
+ module C
+ class Defined
+ end
+ end
+end
+ CLASS
+
+ @parser.scan
+
+ a = @top_level.modules.first
+ assert_equal 'A', a.full_name
+ assert_empty a.classes
+ assert_empty a.modules
+ assert_equal ['A::Aliased'], a.constants.map(&:full_name)
+
+ defined = @store.find_class_named 'B::C::Defined'
+ assert_equal 'B::C::Defined', defined.full_name
+
+ aliased = @store.find_class_named 'B::C::Aliased'
+ assert_equal 'B::C::Aliased', aliased.full_name
+
+ visible = @store.all_modules.reject { |mod| mod.suppressed? }
+ visible = visible.map { |mod| mod.full_name }
+
+ assert_equal ['A', 'B', 'B::C'], visible
+ end
+
+ def test_parse_const_alias_defined_elsewhere
+ util_parser <<-CLASS
+module A
+ Aliased = Defined
+end
+
+module A
+ class Defined
+ end
+end
+ CLASS
+
+ @parser.scan
+
+ a = @top_level.modules.first
+ assert_equal 'A', a.full_name
+ aliased = a.constants.first
+ assert_equal 'A::Aliased', aliased.full_name
+
+ visible = @store.all_modules.reject { |mod| mod.suppressed? }
+ visible = visible.map { |mod| mod.full_name }
+
+ assert_equal ['A'], visible
+ end
+
+ def test_parse_const_alias_defined_far_away
+ util_parser <<-CLASS
+module A
+ Aliased = ::B::C::Defined
+end
+
+module B
+ module C
+ class Defined
+ end
+ end
+end
+ CLASS
+
+ @parser.scan
+
+ a = @top_level.modules.first
+ assert_equal 'A', a.full_name
+ assert_empty a.classes
+ assert_empty a.modules
+ assert_equal ['A::Aliased'], a.constants.map(&:full_name)
+
+ defined = @store.find_class_named 'B::C::Defined'
+ assert_equal 'B::C::Defined', defined.full_name
+
+ aliased = @store.find_class_named 'B::C::Aliased'
+ assert_equal 'B::C::Aliased', aliased.full_name
+
+ visible = @store.all_modules.reject { |mod| mod.suppressed? }
+ visible = visible.map { |mod| mod.full_name }
+
+ assert_equal ['A', 'B', 'B::C'], visible
+ end
+
end
diff --git a/test/rdoc/test_rdoc_parser_simple.rb b/test/rdoc/test_rdoc_parser_simple.rb
index cdbcd7929d..5bde34b746 100644
--- a/test/rdoc/test_rdoc_parser_simple.rb
+++ b/test/rdoc/test_rdoc_parser_simple.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocParserSimple < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_rd.rb b/test/rdoc/test_rdoc_rd.rb
index ed67ae2caa..70bb94d24b 100644
--- a/test/rdoc/test_rdoc_rd.rb
+++ b/test/rdoc/test_rdoc_rd.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocRd < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_rd_block_parser.rb b/test/rdoc/test_rdoc_rd_block_parser.rb
index a73c206508..0f0bc4f891 100644
--- a/test/rdoc/test_rdoc_rd_block_parser.rb
+++ b/test/rdoc/test_rdoc_rd_block_parser.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocRdBlockParser < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_rd_inline.rb b/test/rdoc/test_rdoc_rd_inline.rb
index 2869681c6e..dbba164865 100644
--- a/test/rdoc/test_rdoc_rd_inline.rb
+++ b/test/rdoc/test_rdoc_rd_inline.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocRdInline < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_rd_inline_parser.rb b/test/rdoc/test_rdoc_rd_inline_parser.rb
index b4394019b3..3673de48e1 100644
--- a/test/rdoc/test_rdoc_rd_inline_parser.rb
+++ b/test/rdoc/test_rdoc_rd_inline_parser.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocRdInlineParser < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_rdoc.rb b/test/rdoc/test_rdoc_rdoc.rb
index bd4794342c..4014ecfa54 100644
--- a/test/rdoc/test_rdoc_rdoc.rb
+++ b/test/rdoc/test_rdoc_rdoc.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocRDoc < RDoc::TestCase
@@ -115,7 +115,7 @@ class TestRDocRDoc < RDoc::TestCase
def test_load_options_invalid
temp_dir do
- open '.rdoc_options', 'w' do |io|
+ File.open '.rdoc_options', 'w' do |io|
io.write "a: !ruby.yaml.org,2002:str |\nfoo"
end
@@ -181,13 +181,67 @@ class TestRDocRDoc < RDoc::TestCase
assert_match %r"#{dev}$", err
end
+ def test_normalized_file_list_with_dot_doc
+ expected_files = []
+ files = temp_dir do |dir|
+ a = File.expand_path('a.rb')
+ b = File.expand_path('b.rb')
+ c = File.expand_path('c.rb')
+ FileUtils.touch a
+ FileUtils.touch b
+ FileUtils.touch c
+
+ dot_doc = File.expand_path('.document')
+ FileUtils.touch dot_doc
+ open(dot_doc, 'w') do |f|
+ f.puts 'a.rb'
+ f.puts 'b.rb'
+ end
+ expected_files << a
+ expected_files << b
+
+ @rdoc.normalized_file_list [File.realpath(dir)]
+ end
+
+ files = files.map { |file| File.expand_path file }
+
+ assert_equal expected_files, files
+ end
+
+ def test_normalized_file_list_with_dot_doc_overridden_by_exclude_option
+ expected_files = []
+ files = temp_dir do |dir|
+ a = File.expand_path('a.rb')
+ b = File.expand_path('b.rb')
+ c = File.expand_path('c.rb')
+ FileUtils.touch a
+ FileUtils.touch b
+ FileUtils.touch c
+
+ dot_doc = File.expand_path('.document')
+ FileUtils.touch dot_doc
+ open(dot_doc, 'w') do |f|
+ f.puts 'a.rb'
+ f.puts 'b.rb'
+ end
+ expected_files << a
+
+ @rdoc.options.exclude = Regexp.new(['b.rb'].join('|'))
+ @rdoc.normalized_file_list [File.realpath(dir)]
+ end
+
+ files = files.map { |file| File.expand_path file }
+
+ assert_equal expected_files, files
+ end
+
def test_parse_file
@rdoc.store = RDoc::Store.new
temp_dir do |dir|
@rdoc.options.root = Pathname(Dir.pwd)
- open 'test.txt', 'w' do |io|
+ File.open 'test.txt', 'w' do |io|
io.puts 'hi'
end
@@ -223,7 +277,7 @@ class TestRDocRDoc < RDoc::TestCase
temp_dir do |dir|
@rdoc.options.parse %W[--root #{test_path}]
- open 'include.txt', 'w' do |io|
+ File.open 'include.txt', 'w' do |io|
io.puts ':include: test.txt'
end
@@ -244,7 +298,7 @@ class TestRDocRDoc < RDoc::TestCase
@rdoc.options.page_dir = Pathname('pages')
@rdoc.options.root = Pathname(Dir.pwd)
- open 'pages/test.txt', 'w' do |io|
+ File.open 'pages/test.txt', 'w' do |io|
io.puts 'hi'
end
@@ -263,7 +317,7 @@ class TestRDocRDoc < RDoc::TestCase
temp_dir do |dir|
@rdoc.options.root = Pathname(dir)
- open 'test.txt', 'w' do |io|
+ File.open 'test.txt', 'w' do |io|
io.puts 'hi'
end
@@ -296,7 +350,6 @@ class TestRDocRDoc < RDoc::TestCase
def test_parse_file_forbidden
skip 'chmod not supported' if Gem.win_platform?
- skip 'skipped in root privilege' if Process.uid == 0
@rdoc.store = RDoc::Store.new
@@ -340,7 +393,7 @@ class TestRDocRDoc < RDoc::TestCase
def test_remove_unparseable_tags_emacs
temp_dir do
- open 'TAGS', 'wb' do |io| # emacs
+ File.open 'TAGS', 'wb' do |io| # emacs
io.write "\f\nlib/foo.rb,43\n"
end
@@ -354,7 +407,7 @@ class TestRDocRDoc < RDoc::TestCase
def test_remove_unparseable_tags_vim
temp_dir do
- open 'TAGS', 'w' do |io| # emacs
+ File.open 'TAGS', 'w' do |io| # emacs
io.write "!_TAG_"
end
@@ -393,7 +446,7 @@ class TestRDocRDoc < RDoc::TestCase
def test_setup_output_dir_exists
Dir.mktmpdir {|path|
- open @rdoc.output_flag_file(path), 'w' do |io|
+ File.open @rdoc.output_flag_file(path), 'w' do |io|
io.puts Time.at 0
io.puts "./lib/rdoc.rb\t#{Time.at 86400}"
end
@@ -407,7 +460,7 @@ class TestRDocRDoc < RDoc::TestCase
def test_setup_output_dir_exists_empty_created_rid
Dir.mktmpdir {|path|
- open @rdoc.output_flag_file(path), 'w' do end
+ File.open @rdoc.output_flag_file(path), 'w' do end
e = assert_raises RDoc::Error do
@rdoc.setup_output_dir path, false
@@ -468,6 +521,25 @@ class TestRDocRDoc < RDoc::TestCase
end
end
+ def test_update_output_dir_with_reproducible_time
+ Dir.mktmpdir do |d|
+ backup_epoch = ENV['SOURCE_DATE_EPOCH']
+ ruby_birthday = Time.parse 'Wed, 24 Feb 1993 21:00:00 +0900'
+ ENV['SOURCE_DATE_EPOCH'] = ruby_birthday.to_i.to_s
+
+ @rdoc.update_output_dir d, Time.now, {}
+
+ assert File.exist? "#{d}/created.rid"
+
+ f = File.open("#{d}/created.rid", 'r')
+ head_timestamp = Time.parse f.gets.chomp
+ f.close
+ assert_equal ruby_birthday, head_timestamp
+
+ ENV['SOURCE_DATE_EPOCH'] = backup_epoch
+ end
+ end
+
def test_normalized_file_list_removes_created_rid_dir
temp_dir do |d|
FileUtils.mkdir "doc"
diff --git a/test/rdoc/test_rdoc_ri_driver.rb b/test/rdoc/test_rdoc_ri_driver.rb
index 687d0968df..590c10906d 100644
--- a/test/rdoc/test_rdoc_ri_driver.rb
+++ b/test/rdoc/test_rdoc_ri_driver.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocRIDriver < RDoc::TestCase
@@ -243,6 +243,32 @@ class TestRDocRIDriver < RDoc::TestCase
assert_equal expected, out
end
+ def test_add_method_that_is_alias_for_original
+ util_store
+
+ out = doc
+
+ @driver.add_method out, 'Qux#aliased'
+
+ expected =
+ doc(
+ head(1, 'Qux#aliased'),
+ blank_line,
+ para('(from ~/.rdoc)'),
+ rule(1),
+ blank_line,
+ para('alias comment'),
+ blank_line,
+ blank_line,
+ para('(this method is alias for Qux#original)'),
+ blank_line,
+ para('original comment'),
+ blank_line,
+ blank_line)
+
+ assert_equal expected, out
+ end
+
def test_add_method_attribute
util_store
@@ -348,6 +374,22 @@ class TestRDocRIDriver < RDoc::TestCase
assert_equal expected, out
end
+ def test_output_width
+ @options[:width] = 10
+ driver = RDoc::RI::Driver.new @options
+
+ doc = @RM::Document.new
+ doc << @RM::IndentedParagraph.new(0, 'new, parse, foo, bar, baz')
+
+ out, = capture_io do
+ driver.display doc
+ end
+
+ expected = "new, parse, foo,\nbar, baz\n"
+
+ assert_equal expected, out
+ end
+
def test_add_method_list_interative
@options[:interactive] = true
driver = RDoc::RI::Driver.new @options
@@ -390,6 +432,7 @@ class TestRDocRIDriver < RDoc::TestCase
'Foo::Bar' => [@store1],
'Foo::Baz' => [@store1, @store2],
'Inc' => [@store1],
+ 'Qux' => [@store1],
}
classes = @driver.classes
@@ -923,6 +966,7 @@ Foo::Bar#bother
[@store1, 'Foo::Bar', 'Foo::Bar', :both, 'blah'],
[@store1, 'Foo::Baz', 'Foo::Baz', :both, 'blah'],
[@store1, 'Inc', 'Inc', :both, 'blah'],
+ [@store1, 'Qux', 'Qux', :both, 'blah'],
]
assert_equal expected, items
@@ -1056,7 +1100,7 @@ Foo::Bar#bother
@driver.list_known_classes
end
- assert_equal "Ambiguous\nExt\nFoo\nFoo::Bar\nFoo::Baz\nInc\n", out
+ assert_equal "Ambiguous\nExt\nFoo\nFoo::Bar\nFoo::Baz\nInc\nQux\n", out
end
def test_list_known_classes_name
@@ -1127,7 +1171,7 @@ Foo::Bar#bother
method = @driver.load_method(@store2, :instance_methods, 'Bar', '#',
'inherit')
- assert_equal nil, method
+ assert_nil method
end
def test_load_methods_matching
@@ -1232,7 +1276,7 @@ Foo::Bar#bother
assert_equal 'ruby', klass, 'ruby project'
assert_equal ':', type, 'ruby type'
- assert_equal nil, meth, 'ruby page'
+ assert_nil meth, 'ruby page'
end
def test_parse_name_page_extenson
@@ -1247,26 +1291,26 @@ Foo::Bar#bother
klass, type, meth = @driver.parse_name 'Foo'
assert_equal 'Foo', klass, 'Foo class'
- assert_equal nil, type, 'Foo type'
- assert_equal nil, meth, 'Foo method'
+ assert_nil type, 'Foo type'
+ assert_nil meth, 'Foo method'
klass, type, meth = @driver.parse_name 'Foo#'
assert_equal 'Foo', klass, 'Foo# class'
assert_equal '#', type, 'Foo# type'
- assert_equal nil, meth, 'Foo# method'
+ assert_nil meth, 'Foo# method'
klass, type, meth = @driver.parse_name 'Foo::'
assert_equal 'Foo', klass, 'Foo:: class'
assert_equal '::', type, 'Foo:: type'
- assert_equal nil, meth, 'Foo:: method'
+ assert_nil meth, 'Foo:: method'
klass, type, meth = @driver.parse_name 'Foo.'
assert_equal 'Foo', klass, 'Foo. class'
assert_equal '.', type, 'Foo. type'
- assert_equal nil, meth, 'Foo. method'
+ assert_nil meth, 'Foo. method'
klass, type, meth = @driver.parse_name 'Foo#Bar'
@@ -1291,14 +1335,14 @@ Foo::Bar#bother
klass, type, meth = @driver.parse_name 'Foo::Bar'
assert_equal 'Foo::Bar', klass, 'Foo::Bar class'
- assert_equal nil, type, 'Foo::Bar type'
- assert_equal nil, meth, 'Foo::Bar method'
+ assert_nil type, 'Foo::Bar type'
+ assert_nil meth, 'Foo::Bar method'
klass, type, meth = @driver.parse_name 'Foo::Bar#'
assert_equal 'Foo::Bar', klass, 'Foo::Bar# class'
assert_equal '#', type, 'Foo::Bar# type'
- assert_equal nil, meth, 'Foo::Bar# method'
+ assert_nil meth, 'Foo::Bar# method'
klass, type, meth = @driver.parse_name 'Foo::Bar#baz'
@@ -1481,6 +1525,15 @@ Foo::Bar#bother
@overridden.comment = 'must not be displayed in Bar#override'
@overridden.record_location @top_level
+ @cQux = @top_level.add_class RDoc::NormalClass, 'Qux'
+
+ @original = @cQux.add_method RDoc::AnyMethod.new(nil, 'original')
+ @original.comment = 'original comment'
+ @original.record_location @top_level
+
+ @aliased = @original.add_alias RDoc::Alias.new(nil, 'original', 'aliased', 'alias comment'), @cQux
+ @aliased.record_location @top_level
+
@store1.save
@driver.stores = [@store1]
diff --git a/test/rdoc/test_rdoc_ri_paths.rb b/test/rdoc/test_rdoc_ri_paths.rb
index b0f368353a..eb9b7fc93c 100644
--- a/test/rdoc/test_rdoc_ri_paths.rb
+++ b/test/rdoc/test_rdoc_ri_paths.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocRIPaths < RDoc::TestCase
@@ -22,7 +22,7 @@ class TestRDocRIPaths < RDoc::TestCase
specs.each do |spec|
spec.loaded_from = spec.spec_file
- open spec.spec_file, 'w' do |file|
+ File.open spec.spec_file, 'w' do |file|
file.write spec.to_ruby_for_cache
end
diff --git a/test/rdoc/test_rdoc_rubygems_hook.rb b/test/rdoc/test_rdoc_rubygems_hook.rb
index 2664b35cbb..2fb79ff577 100644
--- a/test/rdoc/test_rdoc_rubygems_hook.rb
+++ b/test/rdoc/test_rdoc_rubygems_hook.rb
@@ -200,7 +200,6 @@ class TestRDocRubygemsHook < Gem::TestCase
def test_remove_unwritable
skip 'chmod not supported' if Gem.win_platform?
- skip 'skipped in root privilege' if Process.uid == 0
FileUtils.mkdir_p @a.base_dir
FileUtils.chmod 0, @a.base_dir
@@ -229,7 +228,6 @@ class TestRDocRubygemsHook < Gem::TestCase
def test_setup_unwritable
skip 'chmod not supported' if Gem.win_platform?
- skip 'skipped in root privilege' if Process.uid == 0
FileUtils.mkdir_p @a.doc_dir
FileUtils.chmod 0, @a.doc_dir
diff --git a/test/rdoc/test_rdoc_servlet.rb b/test/rdoc/test_rdoc_servlet.rb
index 4dd1f08ddd..c0c0869293 100644
--- a/test/rdoc/test_rdoc_servlet.rb
+++ b/test/rdoc/test_rdoc_servlet.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocServlet < RDoc::TestCase
@@ -69,7 +69,7 @@ class TestRDocServlet < RDoc::TestCase
FileUtils.mkdir 'css'
now = Time.now
- open 'css/rdoc.css', 'w' do |io| io.write 'h1 { color: red }' end
+ File.open 'css/rdoc.css', 'w' do |io| io.write 'h1 { color: red }' end
File.utime now, now, 'css/rdoc.css'
@s.asset_dirs[:darkfish] = '.'
@@ -143,7 +143,7 @@ class TestRDocServlet < RDoc::TestCase
@s.asset_dirs[:darkfish] = '.'
- @req.path = '/mount/path/css/rdoc.css'
+ @req.path = '/mount/path/css/rdoc.css'.dup
@s.do_GET @req, @res
diff --git a/test/rdoc/test_rdoc_single_class.rb b/test/rdoc/test_rdoc_single_class.rb
index 5761bfef4d..e4123cb9bc 100644
--- a/test/rdoc/test_rdoc_single_class.rb
+++ b/test/rdoc/test_rdoc_single_class.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocSingleClass < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_stats.rb b/test/rdoc/test_rdoc_stats.rb
index 19fc2365b3..cac30d15aa 100644
--- a/test/rdoc/test_rdoc_stats.rb
+++ b/test/rdoc/test_rdoc_stats.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocStats < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_store.rb b/test/rdoc/test_rdoc_store.rb
index 4a4cf3ac0f..4246b4cbbf 100644
--- a/test/rdoc/test_rdoc_store.rb
+++ b/test/rdoc/test_rdoc_store.rb
@@ -162,7 +162,7 @@ class TestRDocStore < XrefTestCase
def test_all_classes_and_modules
expected = %w[
- C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7
+ C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7 C8 C8::S1
Child
M1 M1::M2
Parent
@@ -213,7 +213,7 @@ class TestRDocStore < XrefTestCase
def test_classes
expected = %w[
- C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7
+ C1 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7 C8 C8::S1
Child
Parent
]
@@ -222,7 +222,8 @@ class TestRDocStore < XrefTestCase
end
def test_complete
- @c2.add_module_alias @c2_c3, 'A1', @top_level
+ a1 = RDoc::Constant.new 'A1', '', ''
+ @c2.add_module_alias @c2_c3, @c2_c3.name, a1, @top_level
@store.complete :public
@@ -407,7 +408,7 @@ class TestRDocStore < XrefTestCase
Dir.mkdir @tmpdir
- open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
+ File.open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
Marshal.dump cache, io
end
@@ -441,7 +442,7 @@ class TestRDocStore < XrefTestCase
Dir.mkdir @tmpdir
- open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
+ File.open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
Marshal.dump cache, io
end
@@ -490,7 +491,7 @@ class TestRDocStore < XrefTestCase
Dir.mkdir @tmpdir
- open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
+ File.open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
Marshal.dump cache, io
end
@@ -524,6 +525,15 @@ class TestRDocStore < XrefTestCase
assert_includes @s.classes_hash, 'Object'
end
+ def test_load_single_class
+ @s.save_class @c8_s1
+ @s.classes_hash.clear
+
+ assert_equal @c8_s1, @s.load_class('C8::S1')
+
+ assert_includes @s.classes_hash, 'C8::S1'
+ end
+
def test_load_method
@s.save_method @klass, @meth_bang
@@ -538,7 +548,7 @@ class TestRDocStore < XrefTestCase
file = @s.method_file @klass.full_name, @meth.full_name
- open file, 'wb' do |io|
+ File.open file, 'wb' do |io|
io.write "\x04\bU:\x14RDoc::AnyMethod[\x0Fi\x00I" +
"\"\vmethod\x06:\x06EF\"\x11Klass#method0:\vpublic" +
"o:\eRDoc::Markup::Document\x06:\v@parts[\x06" +
@@ -563,7 +573,7 @@ class TestRDocStore < XrefTestCase
end
def test_main
- assert_equal nil, @s.main
+ assert_nil @s.main
@s.main = 'README.txt'
@@ -633,7 +643,7 @@ class TestRDocStore < XrefTestCase
expected[:ancestors]['Object'] = %w[BasicObject]
- open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
+ File.open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
cache = Marshal.load io.read
assert_equal expected, cache
@@ -701,7 +711,7 @@ class TestRDocStore < XrefTestCase
expected[:ancestors]['Object'] = %w[BasicObject]
- open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
+ File.open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
cache = Marshal.load io.read
assert_equal expected, cache
@@ -981,7 +991,7 @@ class TestRDocStore < XrefTestCase
end
def test_title
- assert_equal nil, @s.title
+ assert_nil @s.title
@s.title = 'rdoc'
diff --git a/test/rdoc/test_rdoc_task.rb b/test/rdoc/test_rdoc_task.rb
index ac3512f42a..3ce8529aef 100644
--- a/test/rdoc/test_rdoc_task.rb
+++ b/test/rdoc/test_rdoc_task.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
begin
require 'rake'
rescue LoadError
diff --git a/test/rdoc/test_rdoc_text.rb b/test/rdoc/test_rdoc_text.rb
index 9f0e9480d3..61f528a5a4 100644
--- a/test/rdoc/test_rdoc_text.rb
+++ b/test/rdoc/test_rdoc_text.rb
@@ -1,6 +1,7 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
+require 'timeout'
class TestRDocText < RDoc::TestCase
@@ -377,6 +378,32 @@ paragraph will be cut off …
assert_equal expected, strip_stars(text)
end
+ def test_strip_stars_document_method_special
+ text = <<-TEXT
+/*
+ * Document-method: Zlib::GzipFile#mtime=
+ * Document-method: []
+ * Document-method: `
+ * Document-method: |
+ * Document-method: &
+ * Document-method: <=>
+ * Document-method: =~
+ * Document-method: +
+ * Document-method: -
+ * Document-method: +@
+ *
+ * A comment
+ */
+ TEXT
+
+ expected = <<-EXPECTED
+
+ A comment
+ EXPECTED
+
+ assert_equal expected, strip_stars(text)
+ end
+
def test_strip_stars_encoding
text = <<-TEXT
/*
diff --git a/test/rdoc/test_rdoc_token_stream.rb b/test/rdoc/test_rdoc_token_stream.rb
index abf1469bbc..c946d0f1ef 100644
--- a/test/rdoc/test_rdoc_token_stream.rb
+++ b/test/rdoc/test_rdoc_token_stream.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocTokenStream < RDoc::TestCase
@@ -39,5 +39,20 @@ class TestRDocTokenStream < RDoc::TestCase
assert_equal '', RDoc::TokenStream.to_html([])
end
+ def test_tokens_to_s
+ foo = Class.new do
+ include RDoc::TokenStream
+
+ def initialize
+ @token_stream = [
+ { line_no: 0, char_no: 0, kind: :on_ident, text: "foo" },
+ { line_no: 0, char_no: 0, kind: :on_sp, text: " " },
+ { line_no: 0, char_no: 0, kind: :on_tstring, text: "'bar'" },
+ ]
+ end
+ end.new
+
+ assert_equal "foo 'bar'", foo.tokens_to_s
+ end
end
diff --git a/test/rdoc/test_rdoc_tom_doc.rb b/test/rdoc/test_rdoc_tom_doc.rb
index 15bbd9b32d..6a6822d50d 100644
--- a/test/rdoc/test_rdoc_tom_doc.rb
+++ b/test/rdoc/test_rdoc_tom_doc.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-require 'rdoc/test_case'
+require 'minitest_helper'
class TestRDocTomDoc < RDoc::TestCase
diff --git a/test/rdoc/test_rdoc_top_level.rb b/test/rdoc/test_rdoc_top_level.rb
index 00fc7a1bd5..e396791ab8 100644
--- a/test/rdoc/test_rdoc_top_level.rb
+++ b/test/rdoc/test_rdoc_top_level.rb
@@ -160,7 +160,7 @@ class TestRDocTopLevel < XrefTestCase
end
def test_last_modified
- assert_equal nil, @top_level.last_modified
+ assert_nil @top_level.last_modified
stat = Object.new
def stat.mtime() 0 end
@top_level.file_stat = stat
diff --git a/test/rdoc/xref_data.rb b/test/rdoc/xref_data.rb
index bc20d8ed91..d002b422f9 100644
--- a/test/rdoc/xref_data.rb
+++ b/test/rdoc/xref_data.rb
@@ -94,6 +94,13 @@ class C7
CONST_NODOC = :const_nodoc # :nodoc:
end
+class C8
+ class << self
+ class S1
+ end
+ end
+end
+
module M1
def m
end
diff --git a/test/rdoc/xref_test_case.rb b/test/rdoc/xref_test_case.rb
index 9f709964c6..70b7df4222 100644
--- a/test/rdoc/xref_test_case.rb
+++ b/test/rdoc/xref_test_case.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
ENV['RDOC_TEST'] = 'yes'
-require 'rdoc'
+require 'minitest_helper'
require File.expand_path '../xref_data', __FILE__
class XrefTestCase < RDoc::TestCase
@@ -53,6 +53,8 @@ class XrefTestCase < RDoc::TestCase
@c3_h2 = @xref_data.find_module_named 'C3::H2'
@c6 = @xref_data.find_module_named 'C6'
@c7 = @xref_data.find_module_named 'C7'
+ @c8 = @xref_data.find_module_named 'C8'
+ @c8_s1 = @xref_data.find_module_named 'C8::S1'
@m1 = @xref_data.find_module_named 'M1'
@m1_m = @m1.method_list.first