summaryrefslogtreecommitdiff
path: root/test/rdoc
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-19 05:08:28 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-19 05:08:28 +0000
commit75ef9e79d6f872d9155cfa69d717b0c693be7fc9 (patch)
tree97fa40e34793b267292d9d769150292a43f3838e /test/rdoc
parent37e59f5583c781e98f41608251e094377237a133 (diff)
Import RDoc 2.5.4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rdoc')
-rw-r--r--test/rdoc/test_rdoc_any_method.rb10
-rw-r--r--test/rdoc/test_rdoc_context.rb16
-rw-r--r--test/rdoc/test_rdoc_markup_to_html_crossref.rb51
-rw-r--r--test/rdoc/test_rdoc_parser_ruby.rb27
-rw-r--r--test/rdoc/xref_test_case.rb4
5 files changed, 82 insertions, 26 deletions
diff --git a/test/rdoc/test_rdoc_any_method.rb b/test/rdoc/test_rdoc_any_method.rb
index 69df4b1133..a4c3eec48c 100644
--- a/test/rdoc/test_rdoc_any_method.rb
+++ b/test/rdoc/test_rdoc_any_method.rb
@@ -2,6 +2,16 @@ require File.expand_path '../xref_test_case', __FILE__
class RDocAnyMethodTest < XrefTestCase
+ def test_aref
+ m = RDoc::AnyMethod.new nil, 'method?'
+
+ assert_equal 'method-i-method%3F', m.aref
+
+ m.singleton = true
+
+ assert_equal 'method-c-method%3F', m.aref
+ end
+
def test_arglists
m = RDoc::AnyMethod.new nil, 'method'
diff --git a/test/rdoc/test_rdoc_context.rb b/test/rdoc/test_rdoc_context.rb
index 7de5691a22..cd0ad0fae3 100644
--- a/test/rdoc/test_rdoc_context.rb
+++ b/test/rdoc/test_rdoc_context.rb
@@ -227,6 +227,14 @@ class TestRDocContext < XrefTestCase
assert_equal 'RW', @c1.find_attribute_named('attr_accessor').rw
end
+ def test_find_class_method_named
+ assert_equal nil, @c1.find_class_method_named('none')
+
+ m = @c1.find_class_method_named('m')
+ assert_instance_of RDoc::AnyMethod, m
+ assert m.singleton
+ end
+
def test_find_constant_named
assert_equal nil, @c1.find_constant_named('NONE')
assert_equal ':const', @c1.find_constant_named('CONST').value
@@ -248,7 +256,7 @@ class TestRDocContext < XrefTestCase
m = @c1.find_instance_method_named('m')
assert_instance_of RDoc::AnyMethod, m
- assert_equal false, m.singleton
+ refute m.singleton
end
def test_find_local_symbol
@@ -278,6 +286,12 @@ class TestRDocContext < XrefTestCase
assert_equal @c2_c3, @c2.find_symbol('C3')
end
+ def test_find_symbol_method
+ assert_equal @c1__m, @c1.find_symbol('m')
+ assert_equal @c1_m, @c1.find_symbol('#m')
+ assert_equal @c1__m, @c1.find_symbol('::m')
+ end
+
def test_spaceship
assert_equal(-1, @c2.<=>(@c3))
assert_equal 0, @c2.<=>(@c2)
diff --git a/test/rdoc/test_rdoc_markup_to_html_crossref.rb b/test/rdoc/test_rdoc_markup_to_html_crossref.rb
index a0c84666db..67dfc0cbc9 100644
--- a/test/rdoc/test_rdoc_markup_to_html_crossref.rb
+++ b/test/rdoc/test_rdoc_markup_to_html_crossref.rb
@@ -27,31 +27,30 @@ class TestRDocMarkupToHtmlCrossref < XrefTestCase
refute_ref '#m', '#m'
+ assert_ref '../C1.html#method-c-m', 'C1::m'
assert_ref '../C2/C3.html', 'C2::C3'
- assert_ref '../C2/C3.html#M000002', 'C2::C3#m'
+ assert_ref '../C2/C3.html#method-i-m', 'C2::C3#m'
assert_ref '../C2/C3/H1.html', 'C3::H1'
assert_ref '../C4.html', 'C4'
- # TODO there is a C3::H2 in the top-level namespace and RDoc should follow
- # constant scoping rules
- refute_ref 'C3::H2', 'C3::H2'
+ assert_ref '../C3/H2.html', 'C3::H2'
refute_ref 'H1', 'H1'
end
def test_handle_special_CROSSREF_C2_C3
@xref = RDoc::Markup::ToHtmlCrossref.new 'classes/C2/C3.html', @c2_c3, true
- assert_ref '../../C2/C3.html#M000002', '#m'
+ assert_ref '../../C2/C3.html#method-i-m', '#m'
assert_ref '../../C2/C3.html', 'C3'
- assert_ref '../../C2/C3.html#M000002', 'C3#m'
+ assert_ref '../../C2/C3.html#method-i-m', 'C3#m'
assert_ref '../../C2/C3/H1.html', 'H1'
assert_ref '../../C2/C3/H1.html', 'C3::H1'
assert_ref '../../C4.html', 'C4'
- refute_ref 'C3::H2', 'C3::H2'
+ assert_ref '../../C3/H2.html', 'C3::H2'
end
def test_handle_special_CROSSREF_C3
@@ -105,30 +104,34 @@ class TestRDocMarkupToHtmlCrossref < XrefTestCase
def test_handle_special_CROSSREF_method
refute_ref 'm', 'm'
- assert_ref 'C1.html#M000000', '#m'
+ assert_ref 'C1.html#method-i-m', '#m'
+ assert_ref 'C1.html#method-c-m', '::m'
+
+ assert_ref 'C1.html#method-i-m', 'C1#m'
+ assert_ref 'C1.html#method-i-m', 'C1.m'
+ assert_ref 'C1.html#method-c-m', 'C1::m'
- assert_ref 'C1.html#M000000', 'C1#m'
- assert_ref 'C1.html#M000000', 'C1#m()'
- assert_ref 'C1.html#M000000', 'C1#m(*)'
+ assert_ref 'C1.html#method-i-m', 'C1#m'
+ assert_ref 'C1.html#method-i-m', 'C1#m()'
+ assert_ref 'C1.html#method-i-m', 'C1#m(*)'
- assert_ref 'C1.html#M000000', 'C1.m'
- assert_ref 'C1.html#M000000', 'C1.m()'
- assert_ref 'C1.html#M000000', 'C1.m(*)'
+ assert_ref 'C1.html#method-i-m', 'C1.m'
+ assert_ref 'C1.html#method-i-m', 'C1.m()'
+ assert_ref 'C1.html#method-i-m', 'C1.m(*)'
- # HACK should this work
- #assert_ref 'classes/C1.html#M000001', 'C1::m'
- #assert_ref 'classes/C1.html#M000001', 'C1::m()'
- #assert_ref 'classes/C1.html#M000001', 'C1::m(*)'
+ assert_ref 'C1.html#method-c-m', 'C1::m'
+ assert_ref 'C1.html#method-c-m', 'C1::m()'
+ assert_ref 'C1.html#method-c-m', 'C1::m(*)'
- assert_ref 'C2/C3.html#M000002', 'C2::C3#m'
+ assert_ref 'C2/C3.html#method-i-m', 'C2::C3#m'
- assert_ref 'C2/C3.html#M000002', 'C2::C3.m'
+ assert_ref 'C2/C3.html#method-i-m', 'C2::C3.m'
- assert_ref 'C2/C3/H1.html#M000003', 'C2::C3::H1#m?'
+ assert_ref 'C2/C3/H1.html#method-i-m%3F', 'C2::C3::H1#m?'
- assert_ref 'C2/C3.html#M000002', '::C2::C3#m'
- assert_ref 'C2/C3.html#M000002', '::C2::C3#m()'
- assert_ref 'C2/C3.html#M000002', '::C2::C3#m(*)'
+ assert_ref 'C2/C3.html#method-i-m', '::C2::C3#m'
+ assert_ref 'C2/C3.html#method-i-m', '::C2::C3#m()'
+ assert_ref 'C2/C3.html#method-i-m', '::C2::C3#m(*)'
end
def test_handle_special_CROSSREF_no_ref
diff --git a/test/rdoc/test_rdoc_parser_ruby.rb b/test/rdoc/test_rdoc_parser_ruby.rb
index 629bca0c83..d9a7a4f3d5 100644
--- a/test/rdoc/test_rdoc_parser_ruby.rb
+++ b/test/rdoc/test_rdoc_parser_ruby.rb
@@ -1210,6 +1210,33 @@ EOF
assert_equal 1, @top_level.requires.length
end
+ def test_parse_statements_while_begin
+ util_parser <<-RUBY
+class A
+ def a
+ while begin a; b end
+ end
+ end
+
+ def b
+ end
+end
+ RUBY
+
+ @parser.parse_statements @top_level, RDoc::Parser::Ruby::NORMAL, nil, ''
+
+ c_a = @top_level.classes.first
+ assert_equal 'A', c_a.full_name
+
+ assert_equal 1, @top_level.classes.length
+
+ m_a = c_a.method_list.first
+ m_b = c_a.method_list.last
+
+ assert_equal 'A#a', m_a.full_name
+ assert_equal 'A#b', m_b.full_name
+ end
+
def test_parse_top_level_statements_alias_method
content = <<-CONTENT
class A
diff --git a/test/rdoc/xref_test_case.rb b/test/rdoc/xref_test_case.rb
index 285b5ea6a5..b40956684b 100644
--- a/test/rdoc/xref_test_case.rb
+++ b/test/rdoc/xref_test_case.rb
@@ -13,7 +13,6 @@ class XrefTestCase < MiniTest::Unit::TestCase
def setup
RDoc::TopLevel.reset
- RDoc::AnyMethod.reset
@file_name = 'xref_data.rb'
@xref_data = RDoc::TopLevel.new @file_name
@@ -36,6 +35,9 @@ class XrefTestCase < MiniTest::Unit::TestCase
rdoc.generator = generator
@c1 = @xref_data.find_module_named 'C1'
+ @c1_m = @c1.method_list.last # C1#m
+ @c1__m = @c1.method_list.first # C1::m
+
@c2 = @xref_data.find_module_named 'C2'
@c2_c3 = @xref_data.find_module_named 'C2::C3'
@c3 = @xref_data.find_module_named 'C3'