rdoc 2.4.3 → 2.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rdoc might be problematic. Click here for more details.

Files changed (139) hide show
  1. data.tar.gz.sig +0 -0
  2. data/.autotest +3 -1
  3. data/History.txt +68 -0
  4. data/LICENSE.txt +57 -0
  5. data/Manifest.txt +37 -19
  6. data/README.txt +2 -12
  7. data/Rakefile +12 -12
  8. data/bin/rdoc +4 -4
  9. data/lib/rdoc.rb +32 -9
  10. data/lib/rdoc/alias.rb +2 -2
  11. data/lib/rdoc/any_method.rb +108 -16
  12. data/lib/rdoc/attr.rb +87 -1
  13. data/lib/rdoc/class_module.rb +131 -5
  14. data/lib/rdoc/code_object.rb +28 -5
  15. data/lib/rdoc/constant.rb +22 -0
  16. data/lib/rdoc/context.rb +80 -37
  17. data/lib/rdoc/gauntlet.rb +48 -0
  18. data/lib/rdoc/generator/darkfish.rb +25 -23
  19. data/lib/rdoc/generator/markup.rb +6 -29
  20. data/lib/rdoc/generator/ri.rb +39 -189
  21. data/lib/rdoc/generator/template/darkfish/classpage.rhtml +17 -1
  22. data/lib/rdoc/generator/template/darkfish/filepage.rhtml +10 -0
  23. data/lib/rdoc/generator/template/darkfish/images/brick.png +0 -0
  24. data/lib/rdoc/generator/template/darkfish/images/brick_link.png +0 -0
  25. data/lib/rdoc/generator/template/darkfish/images/bullet_black.png +0 -0
  26. data/lib/rdoc/generator/template/darkfish/images/bullet_toggle_minus.png +0 -0
  27. data/lib/rdoc/generator/template/darkfish/images/bullet_toggle_plus.png +0 -0
  28. data/lib/rdoc/generator/template/darkfish/images/date.png +0 -0
  29. data/lib/rdoc/generator/template/darkfish/images/find.png +0 -0
  30. data/lib/rdoc/generator/template/darkfish/images/package.png +0 -0
  31. data/lib/rdoc/generator/template/darkfish/images/page_green.png +0 -0
  32. data/lib/rdoc/generator/template/darkfish/images/page_white_text.png +0 -0
  33. data/lib/rdoc/generator/template/darkfish/images/page_white_width.png +0 -0
  34. data/lib/rdoc/generator/template/darkfish/images/plugin.png +0 -0
  35. data/lib/rdoc/generator/template/darkfish/images/ruby.png +0 -0
  36. data/lib/rdoc/generator/template/darkfish/images/tag_green.png +0 -0
  37. data/lib/rdoc/generator/template/darkfish/images/wrench.png +0 -0
  38. data/lib/rdoc/generator/template/darkfish/images/wrench_orange.png +0 -0
  39. data/lib/rdoc/generator/template/darkfish/images/zoom.png +0 -0
  40. data/lib/rdoc/generator/template/darkfish/index.rhtml +2 -2
  41. data/lib/rdoc/generator/template/darkfish/rdoc.css +38 -33
  42. data/lib/rdoc/include.rb +22 -0
  43. data/lib/rdoc/markup.rb +10 -262
  44. data/lib/rdoc/markup/attribute_manager.rb +57 -50
  45. data/lib/rdoc/markup/blank_line.rb +19 -0
  46. data/lib/rdoc/markup/document.rb +72 -0
  47. data/lib/rdoc/markup/formatter.rb +118 -0
  48. data/lib/rdoc/markup/formatter_test_case.rb +341 -0
  49. data/lib/rdoc/markup/heading.rb +17 -0
  50. data/lib/rdoc/markup/inline.rb +6 -5
  51. data/lib/rdoc/markup/list.rb +78 -0
  52. data/lib/rdoc/markup/list_item.rb +83 -0
  53. data/lib/rdoc/markup/paragraph.rb +66 -0
  54. data/lib/rdoc/markup/parser.rb +528 -0
  55. data/lib/rdoc/markup/rule.rb +17 -0
  56. data/lib/rdoc/markup/to_ansi.rb +72 -0
  57. data/lib/rdoc/markup/to_bs.rb +74 -0
  58. data/lib/rdoc/markup/to_html.rb +106 -172
  59. data/lib/rdoc/markup/to_html_crossref.rb +10 -4
  60. data/lib/rdoc/markup/to_rdoc.rb +243 -0
  61. data/lib/rdoc/markup/to_test.rb +27 -16
  62. data/lib/rdoc/markup/verbatim.rb +42 -0
  63. data/lib/rdoc/normal_class.rb +38 -1
  64. data/lib/rdoc/normal_module.rb +38 -8
  65. data/lib/rdoc/options.rb +39 -151
  66. data/lib/rdoc/parser.rb +36 -18
  67. data/lib/rdoc/parser/c.rb +102 -109
  68. data/lib/rdoc/parser/ruby.rb +359 -1662
  69. data/lib/rdoc/parser/ruby_tools.rb +157 -0
  70. data/lib/rdoc/parser/simple.rb +0 -2
  71. data/lib/rdoc/rdoc.rb +142 -82
  72. data/lib/rdoc/ri.rb +10 -0
  73. data/lib/rdoc/ri/driver.rb +674 -444
  74. data/lib/rdoc/ri/formatter.rb +2 -651
  75. data/lib/rdoc/ri/paths.rb +70 -45
  76. data/lib/rdoc/ri/store.rb +248 -0
  77. data/lib/rdoc/ruby_lex.rb +1284 -0
  78. data/lib/rdoc/ruby_token.rb +416 -0
  79. data/lib/rdoc/single_class.rb +5 -0
  80. data/lib/rdoc/stats.rb +152 -83
  81. data/lib/rdoc/task.rb +27 -49
  82. data/lib/rdoc/text.rb +130 -0
  83. data/lib/rdoc/tokenstream.rb +28 -9
  84. data/lib/rdoc/top_level.rb +49 -43
  85. data/test/hidden.zip.txt +1 -0
  86. data/test/test_attribute_manager.rb +9 -16
  87. data/test/test_rdoc_any_method.rb +23 -0
  88. data/test/test_rdoc_attr.rb +40 -0
  89. data/test/test_rdoc_class_module.rb +100 -0
  90. data/test/test_rdoc_code_object.rb +18 -2
  91. data/test/test_rdoc_context.rb +41 -0
  92. data/test/test_rdoc_generator_ri.rb +56 -0
  93. data/test/test_rdoc_markup.rb +21 -610
  94. data/test/test_rdoc_markup_attribute_manager.rb +14 -17
  95. data/test/test_rdoc_markup_document.rb +51 -0
  96. data/test/test_rdoc_markup_paragraph.rb +27 -0
  97. data/test/test_rdoc_markup_parser.rb +1327 -0
  98. data/test/test_rdoc_markup_to_ansi.rb +426 -0
  99. data/test/test_rdoc_markup_to_bs.rb +443 -0
  100. data/test/test_rdoc_markup_to_html.rb +183 -18
  101. data/test/test_rdoc_markup_to_html_crossref.rb +1 -3
  102. data/test/test_rdoc_markup_to_rdoc.rb +426 -0
  103. data/test/test_rdoc_normal_class.rb +17 -0
  104. data/test/test_rdoc_normal_module.rb +6 -6
  105. data/test/test_rdoc_options.rb +41 -0
  106. data/test/test_rdoc_parser.rb +66 -13
  107. data/test/test_rdoc_parser_c.rb +93 -38
  108. data/test/test_rdoc_parser_perl.rb +2 -3
  109. data/test/test_rdoc_parser_ruby.rb +291 -28
  110. data/test/test_rdoc_parser_simple.rb +48 -0
  111. data/test/test_rdoc_rdoc.rb +66 -0
  112. data/test/test_rdoc_ri_driver.rb +752 -38
  113. data/test/test_rdoc_ri_paths.rb +39 -0
  114. data/test/test_rdoc_ri_store.rb +309 -0
  115. data/test/test_rdoc_text.rb +157 -0
  116. data/test/test_rdoc_top_level.rb +35 -9
  117. data/test/xref_data.rb +9 -1
  118. data/test/xref_test_case.rb +8 -3
  119. metadata +110 -38
  120. metadata.gz.sig +0 -0
  121. data/lib/rdoc/cache.rb +0 -41
  122. data/lib/rdoc/diagram.rb +0 -340
  123. data/lib/rdoc/dot.rb +0 -249
  124. data/lib/rdoc/markup/fragments.rb +0 -377
  125. data/lib/rdoc/markup/lines.rb +0 -156
  126. data/lib/rdoc/markup/to_flow.rb +0 -211
  127. data/lib/rdoc/markup/to_latex.rb +0 -328
  128. data/lib/rdoc/markup/to_texinfo.rb +0 -73
  129. data/lib/rdoc/ri/cache.rb +0 -187
  130. data/lib/rdoc/ri/descriptions.rb +0 -156
  131. data/lib/rdoc/ri/display.rb +0 -340
  132. data/lib/rdoc/ri/reader.rb +0 -106
  133. data/lib/rdoc/ri/util.rb +0 -79
  134. data/lib/rdoc/ri/writer.rb +0 -68
  135. data/test/test_rdoc_ri_attribute_formatter.rb +0 -44
  136. data/test/test_rdoc_ri_default_display.rb +0 -302
  137. data/test/test_rdoc_ri_formatter.rb +0 -320
  138. data/test/test_rdoc_ri_html_formatter.rb +0 -141
  139. data/test/test_rdoc_ri_overstrike_formatter.rb +0 -71
@@ -0,0 +1,39 @@
1
+ require 'rubygems'
2
+ require 'minitest/autorun'
3
+ require 'tmpdir'
4
+ require 'fileutils'
5
+ require 'rdoc/ri/paths'
6
+
7
+ class TestRDocRIPaths < MiniTest::Unit::TestCase
8
+
9
+ def test_class_path_nonexistent
10
+ path = RDoc::RI::Paths.path true, true, true, true, '/nonexistent'
11
+
12
+ refute_includes path, '/nonexistent'
13
+ end
14
+
15
+ def test_class_raw_path
16
+ path = RDoc::RI::Paths.raw_path true, true, true, true
17
+
18
+ assert_equal RDoc::RI::Paths::SYSDIR, path.shift
19
+ assert_equal RDoc::RI::Paths::SITEDIR, path.shift
20
+ assert_equal RDoc::RI::Paths::HOMEDIR, path.shift
21
+
22
+ refute_empty path
23
+ assert_kind_of String, path.first
24
+ end
25
+
26
+ def test_class_raw_path_extra_dirs
27
+ path = RDoc::RI::Paths.raw_path true, true, true, true, '/nonexistent'
28
+
29
+ assert_equal '/nonexistent', path.shift
30
+ assert_equal RDoc::RI::Paths::SYSDIR, path.shift
31
+ assert_equal RDoc::RI::Paths::SITEDIR, path.shift
32
+ assert_equal RDoc::RI::Paths::HOMEDIR, path.shift
33
+
34
+ refute_empty path
35
+ assert_kind_of String, path.first
36
+ end
37
+
38
+ end
39
+
@@ -0,0 +1,309 @@
1
+ require 'rubygems'
2
+ require 'minitest/autorun'
3
+ require 'rdoc/ri'
4
+ require 'rdoc/markup'
5
+ require 'tmpdir'
6
+ require 'fileutils'
7
+
8
+ class TestRDocRIStore < MiniTest::Unit::TestCase
9
+
10
+ def setup
11
+ RDoc::TopLevel.reset
12
+
13
+ @tmpdir = File.join Dir.tmpdir, "test_rdoc_ri_store_#{$$}"
14
+ @s = RDoc::RI::Store.new @tmpdir
15
+
16
+ @top_level = RDoc::TopLevel.new 'file.rb'
17
+
18
+ @klass = @top_level.add_class RDoc::NormalClass, 'Object'
19
+ @klass.comment = 'original'
20
+
21
+ @cmeth = RDoc::AnyMethod.new nil, 'cmethod'
22
+ @cmeth.singleton = true
23
+
24
+ @meth = RDoc::AnyMethod.new nil, 'method'
25
+ @meth_bang = RDoc::AnyMethod.new nil, 'method!'
26
+
27
+ @attr = RDoc::Attr.new nil, 'attr', 'RW', ''
28
+
29
+ @klass.add_method @cmeth
30
+ @klass.add_method @meth
31
+ @klass.add_method @meth_bang
32
+ @klass.add_attribute @attr
33
+
34
+ @nest_klass = @klass.add_class RDoc::NormalClass, 'SubClass'
35
+ @nest_meth = RDoc::AnyMethod.new nil, 'method'
36
+ @nest_incl = RDoc::Include.new 'Incl', ''
37
+
38
+ @nest_klass.add_method @nest_meth
39
+ @nest_klass.add_include @nest_incl
40
+
41
+ @RM = RDoc::Markup
42
+ end
43
+
44
+ def teardown
45
+ FileUtils.rm_rf @tmpdir
46
+ end
47
+
48
+ def assert_cache imethods, cmethods, attrs, modules, ancestors = {}
49
+ expected = {
50
+ :class_methods => cmethods,
51
+ :instance_methods => imethods,
52
+ :attributes => attrs,
53
+ :modules => modules,
54
+ :ancestors => ancestors
55
+ }
56
+
57
+ assert_equal expected, @s.cache
58
+ end
59
+
60
+ def assert_directory path
61
+ assert File.directory?(path), "#{path} is not a directory"
62
+ end
63
+
64
+ def assert_file path
65
+ assert File.file?(path), "#{path} is not a file"
66
+ end
67
+
68
+ def test_attributes
69
+ @s.cache[:attributes]['Object'] = %w[attr]
70
+
71
+ expected = { 'Object' => %w[attr] }
72
+
73
+ assert_equal expected, @s.attributes
74
+ end
75
+
76
+ def test_class_file
77
+ assert_equal File.join(@tmpdir, 'Object', 'cdesc-Object.ri'),
78
+ @s.class_file('Object')
79
+ assert_equal File.join(@tmpdir, 'Object', 'SubClass', 'cdesc-SubClass.ri'),
80
+ @s.class_file('Object::SubClass')
81
+ end
82
+
83
+ def test_class_methods
84
+ @s.cache[:class_methods]['Object'] = %w[method]
85
+
86
+ expected = { 'Object' => %w[method] }
87
+
88
+ assert_equal expected, @s.class_methods
89
+ end
90
+
91
+ def test_class_path
92
+ assert_equal File.join(@tmpdir, 'Object'), @s.class_path('Object')
93
+ assert_equal File.join(@tmpdir, 'Object', 'SubClass'),
94
+ @s.class_path('Object::SubClass')
95
+ end
96
+
97
+ def test_friendly_path
98
+ @s.path = @tmpdir
99
+ @s.type = nil
100
+ assert_equal @s.path, @s.friendly_path
101
+
102
+ @s.type = :extra
103
+ assert_equal @s.path, @s.friendly_path
104
+
105
+ @s.type = :system
106
+ assert_equal "ruby core", @s.friendly_path
107
+
108
+ @s.type = :site
109
+ assert_equal "ruby site", @s.friendly_path
110
+
111
+ @s.type = :home
112
+ assert_equal "~/.ri", @s.friendly_path
113
+
114
+ @s.type = :gem
115
+ @s.path = "#{@tmpdir}/gem_repository/doc/gem_name-1.0/ri"
116
+ assert_equal "gem gem_name-1.0", @s.friendly_path
117
+ end
118
+
119
+ def test_instance_methods
120
+ @s.cache[:instance_methods]['Object'] = %w[method]
121
+
122
+ expected = { 'Object' => %w[method] }
123
+
124
+ assert_equal expected, @s.instance_methods
125
+ end
126
+
127
+ def test_load_cache
128
+ cache = {
129
+ :methods => %w[Object#method],
130
+ :modules => %w[Object],
131
+ }
132
+
133
+ Dir.mkdir @tmpdir
134
+
135
+ open File.join(@tmpdir, 'cache.ri'), 'wb' do |io|
136
+ Marshal.dump cache, io
137
+ end
138
+
139
+ @s.load_cache
140
+
141
+ assert_equal cache, @s.cache
142
+ end
143
+
144
+ def test_load_cache_no_cache
145
+ cache = {
146
+ :ancestors => {},
147
+ :attributes => {},
148
+ :class_methods => {},
149
+ :instance_methods => {},
150
+ :modules => [],
151
+ }
152
+
153
+ @s.load_cache
154
+
155
+ assert_equal cache, @s.cache
156
+ end
157
+
158
+ def test_load_class
159
+ @s.save_class @klass
160
+
161
+ assert_equal @klass, @s.load_class('Object')
162
+ end
163
+
164
+ def test_load_method_bang
165
+ @s.save_method @klass, @meth_bang
166
+
167
+ meth = @s.load_method('Object', '#method!')
168
+ assert_equal @meth_bang, meth
169
+ end
170
+
171
+ def test_method_file
172
+ assert_equal File.join(@tmpdir, 'Object', 'method-i.ri'),
173
+ @s.method_file('Object', 'Object#method')
174
+
175
+ assert_equal File.join(@tmpdir, 'Object', 'method%21-i.ri'),
176
+ @s.method_file('Object', 'Object#method!')
177
+
178
+ assert_equal File.join(@tmpdir, 'Object', 'SubClass', 'method%21-i.ri'),
179
+ @s.method_file('Object::SubClass', 'Object::SubClass#method!')
180
+
181
+ assert_equal File.join(@tmpdir, 'Object', 'method-c.ri'),
182
+ @s.method_file('Object', 'Object::method')
183
+ end
184
+
185
+ def test_save_cache
186
+ @s.save_class @klass
187
+ @s.save_method @klass, @meth
188
+ @s.save_method @klass, @cmeth
189
+ @s.save_class @nest_klass
190
+
191
+ @s.save_cache
192
+
193
+ assert_file File.join(@tmpdir, 'cache.ri')
194
+
195
+ expected = {
196
+ :attributes => { 'Object' => ['attr_accessor attr'] },
197
+ :class_methods => { 'Object' => %w[cmethod] },
198
+ :instance_methods => { 'Object' => %w[method] },
199
+ :modules => %w[Object Object::SubClass],
200
+ :ancestors => {
201
+ 'Object' => %w[Object],
202
+ 'Object::SubClass' => %w[Incl Object],
203
+ },
204
+ }
205
+
206
+ open File.join(@tmpdir, 'cache.ri'), 'rb' do |io|
207
+ cache = Marshal.load io.read
208
+
209
+ assert_equal expected, cache
210
+ end
211
+ end
212
+
213
+ def test_save_cache_duplicate_methods
214
+ @s.save_method @klass, @meth
215
+ @s.save_method @klass, @meth
216
+
217
+ @s.save_cache
218
+
219
+ assert_cache({ 'Object' => %w[method] }, {}, {}, [])
220
+ end
221
+
222
+ def test_save_class
223
+ @s.save_class @klass
224
+
225
+ assert_directory File.join(@tmpdir, 'Object')
226
+ assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
227
+
228
+ assert_cache({}, {}, { 'Object' => ['attr_accessor attr'] }, %w[Object],
229
+ 'Object' => %w[Object])
230
+
231
+ assert_equal @klass, @s.load_class('Object')
232
+ end
233
+
234
+ def test_save_class_basic_object
235
+ @klass.instance_variable_set :@superclass, nil
236
+
237
+ @s.save_class @klass
238
+
239
+ assert_directory File.join(@tmpdir, 'Object')
240
+ assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
241
+
242
+ assert_cache({}, {}, { 'Object' => ['attr_accessor attr'] }, %w[Object],
243
+ 'Object' => %w[])
244
+
245
+ assert_equal @klass, @s.load_class('Object')
246
+ end
247
+
248
+ def test_save_class_merge
249
+ @s.save_class @klass
250
+
251
+ klass = RDoc::NormalClass.new 'Object'
252
+ klass.comment = 'new class'
253
+
254
+ s = RDoc::RI::Store.new @tmpdir
255
+ s.save_class klass
256
+
257
+ s = RDoc::RI::Store.new @tmpdir
258
+
259
+ document = @RM::Document.new(
260
+ @RM::Paragraph.new('original'),
261
+ @RM::Paragraph.new('new class'))
262
+
263
+ assert_equal document, s.load_class('Object').comment
264
+ end
265
+
266
+ def test_save_class_methods
267
+ @s.save_class @klass
268
+
269
+ assert_directory File.join(@tmpdir, 'Object')
270
+ assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
271
+
272
+ assert_cache({}, {}, { 'Object' => ['attr_accessor attr'] }, %w[Object],
273
+ 'Object' => %w[Object])
274
+
275
+ assert_equal @klass, @s.load_class('Object')
276
+ end
277
+
278
+ def test_save_class_nested
279
+ @s.save_class @nest_klass
280
+
281
+ assert_directory File.join(@tmpdir, 'Object', 'SubClass')
282
+ assert_file File.join(@tmpdir, 'Object', 'SubClass', 'cdesc-SubClass.ri')
283
+
284
+ assert_cache({}, {}, {}, %w[Object::SubClass],
285
+ 'Object::SubClass' => %w[Incl Object])
286
+ end
287
+
288
+ def test_save_method
289
+ @s.save_method @klass, @meth
290
+
291
+ assert_directory File.join(@tmpdir, 'Object')
292
+ assert_file File.join(@tmpdir, 'Object', 'method-i.ri')
293
+
294
+ assert_cache({ 'Object' => %w[method] }, {}, {}, [])
295
+
296
+ assert_equal @meth, @s.load_method('Object', '#method')
297
+ end
298
+
299
+ def test_save_method_nested
300
+ @s.save_method @nest_klass, @nest_meth
301
+
302
+ assert_directory File.join(@tmpdir, 'Object', 'SubClass')
303
+ assert_file File.join(@tmpdir, 'Object', 'SubClass', 'method-i.ri')
304
+
305
+ assert_cache({ 'Object::SubClass' => %w[method] }, {}, {}, [])
306
+ end
307
+
308
+ end
309
+
@@ -0,0 +1,157 @@
1
+ require 'rubygems'
2
+ require 'minitest/autorun'
3
+ require 'rdoc'
4
+ require 'rdoc/text'
5
+ require 'rdoc/markup'
6
+ require 'rdoc/markup/formatter'
7
+
8
+ class TestRDocText < MiniTest::Unit::TestCase
9
+
10
+ include RDoc::Text
11
+
12
+ def test_expand_tabs
13
+ assert_equal("hello\n dave",
14
+ expand_tabs("hello\n dave"), 'spaces')
15
+
16
+ assert_equal("hello\n dave",
17
+ expand_tabs("hello\n\tdave"), 'tab')
18
+
19
+ assert_equal("hello\n dave",
20
+ expand_tabs("hello\n \tdave"), '1 space tab')
21
+
22
+ assert_equal("hello\n dave",
23
+ expand_tabs("hello\n \tdave"), '2 space tab')
24
+
25
+ assert_equal("hello\n dave",
26
+ expand_tabs("hello\n \tdave"), '3 space tab')
27
+
28
+ assert_equal("hello\n dave",
29
+ expand_tabs("hello\n \tdave"), '4 space tab')
30
+
31
+ assert_equal("hello\n dave",
32
+ expand_tabs("hello\n \tdave"), '5 space tab')
33
+
34
+ assert_equal("hello\n dave",
35
+ expand_tabs("hello\n \tdave"), '6 space tab')
36
+
37
+ assert_equal("hello\n dave",
38
+ expand_tabs("hello\n \tdave"), '7 space tab')
39
+
40
+ assert_equal("hello\n dave",
41
+ expand_tabs("hello\n \tdave"), '8 space tab')
42
+
43
+ assert_equal('. .',
44
+ expand_tabs(".\t\t."), 'dot tab tab dot')
45
+ end
46
+
47
+ def test_flush_left
48
+ text = <<-TEXT
49
+
50
+ we don't worry too much.
51
+
52
+ The comments associated with
53
+ TEXT
54
+
55
+ expected = <<-EXPECTED
56
+
57
+ we don't worry too much.
58
+
59
+ The comments associated with
60
+ EXPECTED
61
+
62
+ assert_equal expected, flush_left(text)
63
+ end
64
+
65
+ def test_markup
66
+ def formatter() RDoc::Markup::ToHtml.new end
67
+
68
+ assert_equal "<p>\nhi\n</p>\n", markup('hi')
69
+ end
70
+
71
+ def test_normalize_comment
72
+ text = <<-TEXT
73
+ ##
74
+ # we don't worry too much.
75
+ #
76
+ # The comments associated with
77
+ TEXT
78
+
79
+ expected = <<-EXPECTED.rstrip
80
+ we don't worry too much.
81
+
82
+ The comments associated with
83
+ EXPECTED
84
+
85
+ assert_equal expected, normalize_comment(text)
86
+ end
87
+
88
+ def test_parse
89
+ assert_kind_of RDoc::Markup::Document, parse('hi')
90
+ end
91
+
92
+ def test_parse_document
93
+ assert_equal RDoc::Markup::Document.new, parse(RDoc::Markup::Document.new)
94
+ end
95
+
96
+ def test_parse_empty
97
+ assert_equal RDoc::Markup::Document.new, parse('')
98
+ end
99
+
100
+ def test_parse_empty_newline
101
+ assert_equal RDoc::Markup::Document.new, parse("#\n")
102
+ end
103
+
104
+ def test_parse_newline
105
+ assert_equal RDoc::Markup::Document.new, parse("\n")
106
+ end
107
+
108
+ def test_strip_hashes
109
+ text = <<-TEXT
110
+ ##
111
+ # we don't worry too much.
112
+ #
113
+ # The comments associated with
114
+ TEXT
115
+
116
+ expected = <<-EXPECTED
117
+
118
+ we don't worry too much.
119
+
120
+ The comments associated with
121
+ EXPECTED
122
+
123
+ assert_equal expected, strip_hashes(text)
124
+ end
125
+
126
+ def test_strip_newlines
127
+ assert_equal ' ', strip_newlines("\n \n")
128
+
129
+ assert_equal 'hi', strip_newlines("\n\nhi")
130
+
131
+ assert_equal 'hi', strip_newlines( "hi\n\n")
132
+
133
+ assert_equal 'hi', strip_newlines("\n\nhi\n\n")
134
+ end
135
+
136
+ def test_strip_stars
137
+ text = <<-TEXT
138
+ /*
139
+ * * we don't worry too much.
140
+ *
141
+ * The comments associated with
142
+ */
143
+ TEXT
144
+
145
+ expected = <<-EXPECTED
146
+
147
+ * we don't worry too much.
148
+
149
+ The comments associated with
150
+
151
+ EXPECTED
152
+
153
+ assert_equal expected, strip_stars(text)
154
+ end
155
+
156
+ end
157
+