summaryrefslogtreecommitdiff
path: root/jni/ruby/test/rdoc/test_rdoc_top_level.rb
diff options
context:
space:
mode:
authorJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-16 18:49:26 +0900
committerJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-30 00:39:06 +0900
commitfcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch)
tree64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/test/rdoc/test_rdoc_top_level.rb
Fresh start
Diffstat (limited to 'jni/ruby/test/rdoc/test_rdoc_top_level.rb')
-rw-r--r--jni/ruby/test/rdoc/test_rdoc_top_level.rb287
1 files changed, 287 insertions, 0 deletions
diff --git a/jni/ruby/test/rdoc/test_rdoc_top_level.rb b/jni/ruby/test/rdoc/test_rdoc_top_level.rb
new file mode 100644
index 0000000..f3ee6a4
--- /dev/null
+++ b/jni/ruby/test/rdoc/test_rdoc_top_level.rb
@@ -0,0 +1,287 @@
+require File.expand_path '../xref_test_case', __FILE__
+
+class TestRDocTopLevel < XrefTestCase
+
+ def setup
+ super
+
+ @top_level = @store.add_file 'path/top_level.rb'
+ @top_level.parser = RDoc::Parser::Ruby
+ end
+
+ def test_initialize
+ t = RDoc::TopLevel.new 'path/file.rb'
+
+ assert_equal 'path/file.rb', t.absolute_name
+ assert_equal 'path/file.rb', t.relative_name
+ end
+
+ def test_initialize_relative
+ t = RDoc::TopLevel.new 'path/file.rb', 'file.rb'
+
+ assert_equal 'path/file.rb', t.absolute_name
+ assert_equal 'file.rb', t.relative_name
+ end
+
+ def test_add_alias
+ a = RDoc::Alias.new nil, 'old', 'new', nil
+ @top_level.add_alias a
+
+ object = @store.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 = @store.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 = @store.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 = @store.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 = @store.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 = @store.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 = @store.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 = @store.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_display_eh
+ refute @top_level.display?
+
+ page = @store.add_file 'README.txt'
+ page.parser = RDoc::Parser::Simple
+
+ assert page.display?
+ end
+
+ def test_eql_eh
+ top_level2 = @store.add_file 'path/top_level.rb'
+ other_level = @store.add_file 'path/other_level.rb'
+
+ assert_operator @top_level, :eql?, top_level2
+
+ refute_operator other_level, :eql?, @top_level
+ end
+
+ def test_equals2
+ top_level2 = @store.add_file 'path/top_level.rb'
+ other_level = @store.add_file '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 = @store.add_file 'path/top_level.rb'
+ tl3 = @store.add_file '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_marshal_dump
+ page = @store.add_file 'README.txt'
+ page.parser = RDoc::Parser::Simple
+ page.comment = RDoc::Comment.new 'This is a page', page
+
+ loaded = Marshal.load Marshal.dump page
+
+ comment = RDoc::Markup::Document.new(
+ RDoc::Markup::Paragraph.new('This is a page'))
+ comment.file = loaded
+
+ assert_equal page, loaded
+
+ assert_equal 'README.txt', loaded.absolute_name
+ assert_equal 'README.txt', loaded.relative_name
+
+ assert_equal RDoc::Parser::Simple, loaded.parser
+
+ assert_equal comment, loaded.comment
+ end
+
+ def test_marshal_load_version_0
+ loaded = Marshal.load "\x04\bU:\x13RDoc::TopLevel" +
+ "[\ti\x00I\"\x0FREADME.txt\x06:\x06EF" +
+ "c\x19RDoc::Parser::Simple" +
+ "o:\eRDoc::Markup::Document\a:\v@parts" +
+ "[\x06o:\x1CRDoc::Markup::Paragraph\x06;\b" +
+ "[\x06I\"\x13This is a page\x06;\x06F:\n@file@\a"
+
+ comment = RDoc::Markup::Document.new(
+ RDoc::Markup::Paragraph.new('This is a page'))
+ comment.file = loaded
+
+ assert_equal 'README.txt', loaded.absolute_name
+ assert_equal 'README.txt', loaded.relative_name
+
+ assert_equal RDoc::Parser::Simple, loaded.parser
+
+ assert_equal comment, loaded.comment
+
+ assert loaded.display?
+ end
+
+ def test_name
+ assert_equal 'top_level.rb', @top_level.name
+ end
+
+ def test_page_name
+ assert_equal 'top_level', @top_level.page_name
+
+ tl = @store.add_file 'README.ja'
+
+ assert_equal 'README.ja', tl.page_name
+
+ tl = @store.add_file 'Rakefile'
+
+ assert_equal 'Rakefile', tl.page_name
+ end
+
+ def test_page_name_trim_extension
+ tl = @store.add_file 'README.ja.rdoc'
+
+ assert_equal 'README.ja', tl.page_name
+
+ tl = @store.add_file 'README.ja.md'
+
+ assert_equal 'README.ja', tl.page_name
+
+ tl = @store.add_file 'README.txt'
+
+ assert_equal 'README', tl.page_name
+ end
+
+ def test_search_record
+ assert_nil @xref_data.search_record
+ end
+
+ def test_search_record_page
+ page = @store.add_file 'README.txt'
+ page.parser = RDoc::Parser::Simple
+ page.comment = 'This is a comment.'
+
+ expected = [
+ 'README',
+ '',
+ 'README',
+ '',
+ 'README_txt.html',
+ '',
+ "<p>This is a comment.\n",
+ ]
+
+ assert_equal expected, page.search_record
+ end
+
+ def test_text_eh
+ refute @xref_data.text?
+
+ rd = @store.add_file 'rd_format.rd'
+ rd.parser = RDoc::Parser::RD
+
+ assert rd.text?
+
+ simple = @store.add_file 'simple.txt'
+ simple.parser = RDoc::Parser::Simple
+
+ assert simple.text?
+ end
+
+ def test_text_eh_no_parser
+ refute @xref_data.text?
+
+ rd = @store.add_file 'rd_format.rd'
+
+ refute rd.text?
+ end
+
+end
+