From 85e3560a3bfb1652128d3336400f852b863f6c07 Mon Sep 17 00:00:00 2001 From: drbrain Date: Fri, 7 Dec 2012 05:22:50 +0000 Subject: * lib/rdoc/markup/to_joined_paragraph.rb: Completed documentation * lib/rdoc/parser/c.rb: ditto * lib/rdoc/parser/changelog.rb: ditto * lib/rdoc/servlet.rb: ditto * lib/rdoc/store.rb: ditto * lib/rdoc/store.rb: Improved HTML error page. Completed documentation * lib/rdoc/parser/ruby.rb: Fixed bug attaching a comment to A::B = 42 * test/rdoc/test_rdoc_parser_ruby.rb: Test for above * test/rdoc/test_rdoc_comment.rb: Removed garbage git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rdoc/test_rdoc_comment.rb | 2 +- test/rdoc/test_rdoc_parser_ruby.rb | 153 +++++++++++++++++++++++++++++++++++-- 2 files changed, 146 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/rdoc/test_rdoc_comment.rb b/test/rdoc/test_rdoc_comment.rb index 4d0d54edca..1afc94c251 100644 --- a/test/rdoc/test_rdoc_comment.rb +++ b/test/rdoc/test_rdoc_comment.rb @@ -70,7 +70,7 @@ call-seq: comment = RDoc::Comment.new <<-COMMENT, @top_level # call-seq: # bla => true or false -#\s +# # moar comment COMMENT diff --git a/test/rdoc/test_rdoc_parser_ruby.rb b/test/rdoc/test_rdoc_parser_ruby.rb index 41b58f6615..10ccd46c3d 100644 --- a/test/rdoc/test_rdoc_parser_ruby.rb +++ b/test/rdoc/test_rdoc_parser_ruby.rb @@ -80,23 +80,53 @@ class C; end assert_equal 'A', name_t.text assert_equal 'A', given_name - cont, name_t, given_name = util_parser('A::B') .get_class_or_module ctxt + cont, name_t, given_name = util_parser('B::C') .get_class_or_module ctxt - assert_equal @store.find_module_named('A'), cont - assert_equal 'B', name_t.text - assert_equal 'A::B', given_name + b = @store.find_module_named('B') + assert_equal b, cont + assert_equal [@top_level], b.in_files + assert_equal 'C', name_t.text + assert_equal 'B::C', given_name - cont, name_t, given_name = util_parser('A:: B').get_class_or_module ctxt + cont, name_t, given_name = util_parser('D:: E').get_class_or_module ctxt - assert_equal @store.find_module_named('A'), cont - assert_equal 'B', name_t.text - assert_equal 'A::B', given_name + assert_equal @store.find_module_named('D'), cont + assert_equal 'E', name_t.text + assert_equal 'D::E', given_name assert_raises NoMethodError do util_parser("A::\nB").get_class_or_module ctxt end end + def test_get_class_or_module_document_children + ctxt = @top_level.add_class RDoc::NormalClass, 'A' + ctxt.stop_doc + + util_parser('B::C').get_class_or_module ctxt + + b = @store.find_module_named('A::B') + assert b.ignored? + + d = @top_level.add_class RDoc::NormalClass, 'A::D' + + util_parser('D::E').get_class_or_module ctxt + + refute d.ignored? + end + + def test_get_class_or_module_ignore_constants + ctxt = RDoc::Context.new + ctxt.store = @store + + util_parser('A') .get_class_or_module ctxt, true + util_parser('A::B').get_class_or_module ctxt, true + + assert_empty ctxt.constants + assert_empty @store.modules_hash.keys + assert_empty @store.classes_hash.keys + end + def test_get_class_specification assert_equal 'A', util_parser('A') .get_class_specification assert_equal 'A::B', util_parser('A::B').get_class_specification @@ -1108,6 +1138,37 @@ EOF assert_equal 'A', bar.find_module_named('A').full_name end + def test_parse_constant_in_method + klass = @top_level.add_class RDoc::NormalClass, 'Foo' + + util_parser 'A::B = v' + + tk = @parser.get_tk + + @parser.parse_constant klass, tk, @comment, true + + assert_empty klass.constants + + assert_empty @store.modules_hash.keys + assert_equal %w[Foo], @store.classes_hash.keys + end + + def test_parse_constant_rescue + klass = @top_level.add_class RDoc::NormalClass, 'Foo' + + util_parser "A => e" + + tk = @parser.get_tk + + @parser.parse_constant klass, tk, @comment + + assert_empty klass.constants + assert_empty klass.modules + + assert_empty @store.modules_hash.keys + assert_equal %w[Foo], @store.classes_hash.keys + end + def test_parse_constant_stopdoc klass = @top_level.add_class RDoc::NormalClass, 'Foo' klass.stop_doc @@ -1121,6 +1182,27 @@ EOF assert_empty klass.constants end + def test_parse_comment_nested + content = <<-CONTENT +A::B::C = 1 + CONTENT + + util_parser content + + tk = @parser.get_tk + + parsed = @parser.parse_constant @top_level, tk, 'comment' + + assert parsed + + a = @top_level.find_module_named 'A' + b = a.find_module_named 'B' + c = b.constants.first + + assert_equal 'A::B::C', c.full_name + assert_equal 'comment', c.comment + end + def test_parse_include klass = RDoc::NormalClass.new 'C' klass.parent = @top_level @@ -2585,6 +2667,61 @@ end assert_equal 'A nice girl', m.comment.text end + def test_scan_constant_in_method + content = <<-CONTENT # newline is after M is important +module M + def m + A + B::C + end +end + CONTENT + + util_parser content + + @parser.scan + + m = @top_level.modules.first + + assert_empty m.constants + + assert_empty @store.classes_hash.keys + assert_equal %w[M], @store.modules_hash.keys + end + + def test_scan_constant_in_rescue + content = <<-CONTENT # newline is after M is important +module M + def m + rescue A::B + rescue A::C => e + rescue A::D, A::E + rescue A::F, + A::G + rescue H + rescue I => e + rescue J, K + rescue L => + e + rescue M; + rescue N, + O => e + end +end + CONTENT + + util_parser content + + @parser.scan + + m = @top_level.modules.first + + assert_empty m.constants + + assert_empty @store.classes_hash.keys + assert_equal %w[M], @store.modules_hash.keys + end + def test_scan_constant_nodoc content = <<-CONTENT # newline is after M is important module M -- cgit v1.2.3