From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/test/rdoc/test_rdoc_parser_simple.rb | 115 ++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 jni/ruby/test/rdoc/test_rdoc_parser_simple.rb (limited to 'jni/ruby/test/rdoc/test_rdoc_parser_simple.rb') diff --git a/jni/ruby/test/rdoc/test_rdoc_parser_simple.rb b/jni/ruby/test/rdoc/test_rdoc_parser_simple.rb new file mode 100644 index 0000000..d45a993 --- /dev/null +++ b/jni/ruby/test/rdoc/test_rdoc_parser_simple.rb @@ -0,0 +1,115 @@ +require 'rdoc/test_case' + +class TestRDocParserSimple < RDoc::TestCase + + def setup + super + + @tempfile = Tempfile.new self.class.name + filename = @tempfile.path + + @top_level = @store.add_file filename + @fn = filename + @options = RDoc::Options.new + @stats = RDoc::Stats.new @store, 0 + end + + def teardown + super + + @tempfile.close! + end + + def test_initialize_metadata + parser = util_parser ":unhandled: \n" + + assert_includes @top_level.metadata, 'unhandled' + + assert_equal ":unhandled: \n", parser.content + end + + def test_remove_coding_comment + parser = util_parser <<-TEXT +# -*- mode: rdoc; coding: utf-8; fill-column: 74; -*- + +Regular expressions (regexps) are patterns which describe the +contents of a string. + TEXT + + parser.scan + + expected = <<-TEXT.strip +Regular expressions (regexps) are patterns which describe the +contents of a string. + TEXT + + assert_equal expected, @top_level.comment.text + end + + # RDoc stops processing comments if it finds a comment line CONTAINING + # '#--'. This can be used to separate external from internal + # comments, or to stop a comment being associated with a method, + # class, or module. Commenting CAN be turned back on with + # a line that STARTS '#++'. + # + # I've seen guys that comment their code like this: + # # This method.... + # #----------------- + # def method + # + # => either we do it only in ruby code, or we require the leading # + # (to avoid conflict with rules). + # + # TODO: require the leading #, to provide the feature in simple text files. + # Note: in ruby & C code, we require '#--' & '#++' or '*--' & '*++', + # to allow rules: + # + # # this is a comment + # #--- + # # private text + # #+++ + # # this is a rule: + # # --- + + def test_remove_private_comments + parser = util_parser "foo\n\n--\nbar\n++\n\nbaz\n" + + parser.scan + + expected = "foo\n\n\nbaz" + + assert_equal expected, @top_level.comment.text + end + + def test_remove_private_comments_rule + parser = util_parser "foo\n---\nbar" + + parser.scan + + expected = "foo\n---\nbar" + + assert_equal expected, @top_level.comment.text + end + + def test_remove_private_comments_star + parser = util_parser "* foo\n* bar\n" + + parser.scan + + assert_equal "* foo\n* bar", @top_level.comment.text + end + + def test_scan + parser = util_parser 'it *really* works' + + parser.scan + + assert_equal 'it *really* works', @top_level.comment.text + end + + def util_parser(content) + RDoc::Parser::Simple.new @top_level, @fn, content, @options, @stats + end + +end + -- cgit v1.2.3