~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to test/rdoc/test_rdoc_cross_reference.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-09-24 19:16:17 UTC
  • mfrom: (1.1.8 upstream) (13.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110924191617-o1qz4rcmqjot8zuy
Tags: 1.9.3~rc1-1
* New upstream release: 1.9.3 RC1.
  + Includes load.c fixes. Closes: #639959.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
require 'rubygems'
 
2
require 'minitest/autorun'
 
3
require File.expand_path '../xref_test_case', __FILE__
 
4
 
 
5
class TestRDocCrossReference < XrefTestCase
 
6
 
 
7
  def setup
 
8
    super
 
9
 
 
10
    @xref = RDoc::CrossReference.new @c1
 
11
  end
 
12
 
 
13
  def assert_ref expected, name
 
14
    assert_equal expected, @xref.resolve(name, 'fail')
 
15
  end
 
16
 
 
17
  def refute_ref name
 
18
    assert_equal name, @xref.resolve(name, name)
 
19
  end
 
20
 
 
21
  def test_resolve_C2
 
22
    @xref = RDoc::CrossReference.new @c2
 
23
 
 
24
    refute_ref '#m'
 
25
 
 
26
    assert_ref @c1__m,    'C1::m'
 
27
    assert_ref @c2_c3,    'C2::C3'
 
28
    assert_ref @c2_c3_m,  'C2::C3#m'
 
29
    assert_ref @c2_c3_h1, 'C3::H1'
 
30
    assert_ref @c4,       'C4'
 
31
 
 
32
    assert_ref @c3_h2, 'C3::H2'
 
33
    refute_ref 'H1'
 
34
  end
 
35
 
 
36
  def test_resolve_C2_C3
 
37
    @xref = RDoc::CrossReference.new @c2_c3
 
38
 
 
39
    assert_ref @c2_c3_m, '#m'
 
40
 
 
41
    assert_ref @c2_c3, 'C3'
 
42
    assert_ref @c2_c3_m, 'C3#m'
 
43
 
 
44
    assert_ref @c2_c3_h1, 'H1'
 
45
    assert_ref @c2_c3_h1, 'C3::H1'
 
46
 
 
47
    assert_ref @c4, 'C4'
 
48
 
 
49
    assert_ref @c3_h2, 'C3::H2'
 
50
  end
 
51
 
 
52
  def test_resolve_C3
 
53
    @xref = RDoc::CrossReference.new @c3
 
54
 
 
55
    assert_ref @c3, 'C3'
 
56
 
 
57
    refute_ref '#m'
 
58
    refute_ref 'C3#m'
 
59
 
 
60
    assert_ref @c3_h1, 'H1'
 
61
 
 
62
    assert_ref @c3_h1, 'C3::H1'
 
63
    assert_ref @c3_h2, 'C3::H2'
 
64
 
 
65
    assert_ref @c4, 'C4'
 
66
  end
 
67
 
 
68
  def test_resolve_C4
 
69
    @xref = RDoc::CrossReference.new @c4
 
70
 
 
71
    # C4 ref inside a C4 containing a C4 should resolve to the contained class
 
72
    assert_ref @c4_c4, 'C4'
 
73
  end
 
74
 
 
75
  def test_resolve_C4_C4
 
76
    @xref = RDoc::CrossReference.new @c4_c4
 
77
 
 
78
    # A C4 reference inside a C4 class contained within a C4 class should
 
79
    # resolve to the inner C4 class.
 
80
    assert_ref @c4_c4, 'C4'
 
81
  end
 
82
 
 
83
  def test_resolve_class
 
84
    assert_ref @c1, 'C1'
 
85
    refute_ref 'H1'
 
86
 
 
87
    assert_ref @c2,       'C2'
 
88
    assert_ref @c2_c3,    'C2::C3'
 
89
    assert_ref @c2_c3_h1, 'C2::C3::H1'
 
90
 
 
91
    assert_ref @c3,    '::C3'
 
92
    assert_ref @c3_h1, '::C3::H1'
 
93
 
 
94
    assert_ref @c4_c4, 'C4::C4'
 
95
  end
 
96
 
 
97
  def test_resolve_file
 
98
    assert_ref @xref_data, 'xref_data.rb'
 
99
  end
 
100
 
 
101
  def test_resolve_method
 
102
    assert_ref @c1__m, 'm'
 
103
    assert_ref @c1_m,  '#m'
 
104
    assert_ref @c1__m, '::m'
 
105
 
 
106
    assert_ref @c1_m,  'C1#m'
 
107
    assert_ref @c1__m, 'C1.m'
 
108
    assert_ref @c1__m, 'C1::m'
 
109
 
 
110
    assert_ref @c1_m, 'C1#m'
 
111
    assert_ref @c1_m, 'C1#m()'
 
112
    assert_ref @c1_m, 'C1#m(*)'
 
113
 
 
114
    assert_ref @c1__m, 'C1.m'
 
115
    assert_ref @c1__m, 'C1.m()'
 
116
    assert_ref @c1__m, 'C1.m(*)'
 
117
 
 
118
    assert_ref @c1__m, 'C1::m'
 
119
    assert_ref @c1__m, 'C1::m()'
 
120
    assert_ref @c1__m, 'C1::m(*)'
 
121
 
 
122
    assert_ref @c2_c3_m, 'C2::C3#m'
 
123
 
 
124
    assert_ref @c2_c3_m, 'C2::C3.m'
 
125
 
 
126
    # TODO stop escaping - HTML5 allows anything but space
 
127
    assert_ref @c2_c3_h1_meh, 'C2::C3::H1#m?'
 
128
 
 
129
    assert_ref @c2_c3_m, '::C2::C3#m'
 
130
    assert_ref @c2_c3_m, '::C2::C3#m()'
 
131
    assert_ref @c2_c3_m, '::C2::C3#m(*)'
 
132
  end
 
133
 
 
134
  def test_resolve_no_ref
 
135
    assert_equal '', @xref.resolve('', '')
 
136
 
 
137
    assert_equal "bogus",     @xref.resolve("bogus",     "bogus")
 
138
    assert_equal "\\bogus",   @xref.resolve("\\bogus",   "\\bogus")
 
139
    assert_equal "\\\\bogus", @xref.resolve("\\\\bogus", "\\\\bogus")
 
140
 
 
141
    assert_equal "\\#n",    @xref.resolve("\\#n",    "fail")
 
142
    assert_equal "\\#n()",  @xref.resolve("\\#n()",  "fail")
 
143
    assert_equal "\\#n(*)", @xref.resolve("\\#n(*)", "fail")
 
144
 
 
145
    assert_equal "C1",   @xref.resolve("\\C1",   "fail")
 
146
    assert_equal "::C3", @xref.resolve("\\::C3", "fail")
 
147
 
 
148
    assert_equal "succeed",      @xref.resolve("::C3::H1#n",    "succeed")
 
149
    assert_equal "succeed",      @xref.resolve("::C3::H1#n(*)", "succeed")
 
150
    assert_equal "\\::C3::H1#n", @xref.resolve("\\::C3::H1#n",  "fail")
 
151
  end
 
152
 
 
153
end
 
154