rdoc 4.2.1 → 6.3.1

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 (277) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +8 -7
  3. data/Gemfile +12 -0
  4. data/History.rdoc +48 -4
  5. data/LEGAL.rdoc +2 -2
  6. data/README.rdoc +5 -5
  7. data/Rakefile +73 -155
  8. data/bin/console +7 -0
  9. data/bin/setup +6 -0
  10. data/{bin → exe}/rdoc +0 -0
  11. data/{bin → exe}/ri +0 -0
  12. data/lib/rdoc/alias.rb +1 -0
  13. data/lib/rdoc/anon_class.rb +1 -0
  14. data/lib/rdoc/any_method.rb +59 -14
  15. data/lib/rdoc/attr.rb +1 -0
  16. data/lib/rdoc/class_module.rb +5 -2
  17. data/lib/rdoc/code_object.rb +3 -11
  18. data/lib/rdoc/code_objects.rb +1 -0
  19. data/lib/rdoc/comment.rb +32 -11
  20. data/lib/rdoc/constant.rb +3 -2
  21. data/lib/rdoc/context/section.rb +7 -13
  22. data/lib/rdoc/context.rb +78 -23
  23. data/lib/rdoc/cross_reference.rb +33 -14
  24. data/lib/rdoc/encoding.rb +92 -55
  25. data/lib/rdoc/erb_partial.rb +2 -1
  26. data/lib/rdoc/erbio.rb +8 -3
  27. data/lib/rdoc/extend.rb +1 -0
  28. data/lib/rdoc/generator/darkfish.rb +62 -32
  29. data/lib/rdoc/generator/json_index.rb +8 -5
  30. data/lib/rdoc/generator/markup.rb +3 -12
  31. data/lib/rdoc/generator/pot/message_extractor.rb +68 -0
  32. data/lib/rdoc/generator/pot/po.rb +84 -0
  33. data/lib/rdoc/generator/pot/po_entry.rb +141 -0
  34. data/lib/rdoc/generator/pot.rb +4 -3
  35. data/lib/rdoc/generator/ri.rb +1 -0
  36. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  37. data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -8
  38. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  39. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  44. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  45. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  46. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  47. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  48. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  49. data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
  50. data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
  51. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
  52. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  53. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +23 -100
  54. data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
  55. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  56. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  57. data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
  58. data/lib/rdoc/generator/template/json_index/js/searcher.js +7 -6
  59. data/lib/rdoc/generator.rb +1 -1
  60. data/lib/rdoc/ghost_method.rb +1 -0
  61. data/lib/rdoc/i18n/locale.rb +2 -1
  62. data/lib/rdoc/i18n/text.rb +5 -4
  63. data/lib/rdoc/i18n.rb +3 -2
  64. data/lib/rdoc/include.rb +1 -0
  65. data/lib/rdoc/known_classes.rb +1 -0
  66. data/lib/rdoc/markdown/entities.rb +1 -0
  67. data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +1 -0
  68. data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
  69. data/lib/rdoc/markdown.kpeg +94 -51
  70. data/lib/rdoc/markdown.rb +1171 -619
  71. data/lib/rdoc/markup/attr_changer.rb +1 -0
  72. data/lib/rdoc/markup/attr_span.rb +9 -2
  73. data/lib/rdoc/markup/attribute_manager.rb +115 -49
  74. data/lib/rdoc/markup/attributes.rb +7 -6
  75. data/lib/rdoc/markup/blank_line.rb +1 -0
  76. data/lib/rdoc/markup/block_quote.rb +1 -0
  77. data/lib/rdoc/markup/document.rb +1 -0
  78. data/lib/rdoc/markup/formatter.rb +25 -23
  79. data/lib/rdoc/markup/hard_break.rb +1 -0
  80. data/lib/rdoc/markup/heading.rb +4 -3
  81. data/lib/rdoc/markup/include.rb +1 -0
  82. data/lib/rdoc/markup/indented_paragraph.rb +1 -0
  83. data/lib/rdoc/markup/list.rb +1 -0
  84. data/lib/rdoc/markup/list_item.rb +1 -0
  85. data/lib/rdoc/markup/paragraph.rb +1 -0
  86. data/lib/rdoc/markup/parser.rb +78 -61
  87. data/lib/rdoc/markup/pre_process.rb +12 -9
  88. data/lib/rdoc/markup/raw.rb +1 -0
  89. data/lib/rdoc/markup/regexp_handling.rb +41 -0
  90. data/lib/rdoc/markup/rule.rb +1 -0
  91. data/lib/rdoc/markup/to_ansi.rb +1 -0
  92. data/lib/rdoc/markup/to_bs.rb +4 -5
  93. data/lib/rdoc/markup/to_html.rb +71 -25
  94. data/lib/rdoc/markup/to_html_crossref.rb +41 -25
  95. data/lib/rdoc/markup/to_html_snippet.rb +10 -9
  96. data/lib/rdoc/markup/to_joined_paragraph.rb +7 -31
  97. data/lib/rdoc/markup/to_label.rb +10 -9
  98. data/lib/rdoc/markup/to_markdown.rb +9 -8
  99. data/lib/rdoc/markup/to_rdoc.rb +35 -6
  100. data/lib/rdoc/markup/to_table_of_contents.rb +2 -0
  101. data/lib/rdoc/markup/to_test.rb +1 -0
  102. data/lib/rdoc/markup/to_tt_only.rb +3 -2
  103. data/lib/rdoc/markup/verbatim.rb +1 -0
  104. data/lib/rdoc/markup.rb +14 -16
  105. data/lib/rdoc/meta_method.rb +1 -0
  106. data/lib/rdoc/method_attr.rb +2 -1
  107. data/lib/rdoc/mixin.rb +1 -0
  108. data/lib/rdoc/normal_class.rb +3 -2
  109. data/lib/rdoc/normal_module.rb +1 -0
  110. data/lib/rdoc/options.rb +92 -58
  111. data/lib/rdoc/parser/c.rb +219 -223
  112. data/lib/rdoc/parser/changelog.rb +155 -18
  113. data/lib/rdoc/parser/markdown.rb +1 -0
  114. data/lib/rdoc/parser/rd.rb +1 -0
  115. data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
  116. data/lib/rdoc/parser/ruby.rb +635 -468
  117. data/lib/rdoc/parser/ruby_tools.rb +33 -33
  118. data/lib/rdoc/parser/simple.rb +3 -3
  119. data/lib/rdoc/parser/text.rb +1 -0
  120. data/lib/rdoc/parser.rb +17 -50
  121. data/lib/rdoc/rd/block_parser.rb +66 -65
  122. data/lib/rdoc/rd/block_parser.ry +3 -3
  123. data/lib/rdoc/rd/inline.rb +5 -4
  124. data/lib/rdoc/rd/inline_parser.rb +52 -51
  125. data/lib/rdoc/rd/inline_parser.ry +1 -1
  126. data/lib/rdoc/rd.rb +1 -0
  127. data/lib/rdoc/rdoc.rb +68 -63
  128. data/lib/rdoc/require.rb +1 -0
  129. data/lib/rdoc/ri/driver.rb +133 -58
  130. data/lib/rdoc/ri/formatter.rb +1 -0
  131. data/lib/rdoc/ri/paths.rb +4 -20
  132. data/lib/rdoc/ri/store.rb +1 -0
  133. data/lib/rdoc/ri/task.rb +71 -0
  134. data/lib/rdoc/ri.rb +1 -0
  135. data/lib/rdoc/rubygems_hook.rb +5 -12
  136. data/lib/rdoc/servlet.rb +24 -14
  137. data/lib/rdoc/single_class.rb +1 -0
  138. data/lib/rdoc/stats/normal.rb +20 -21
  139. data/lib/rdoc/stats/quiet.rb +1 -0
  140. data/lib/rdoc/stats/verbose.rb +1 -0
  141. data/lib/rdoc/stats.rb +1 -0
  142. data/lib/rdoc/store.rb +41 -41
  143. data/lib/rdoc/task.rb +2 -3
  144. data/lib/rdoc/text.rb +19 -38
  145. data/lib/rdoc/token_stream.rb +56 -32
  146. data/lib/rdoc/tom_doc.rb +17 -11
  147. data/lib/rdoc/top_level.rb +9 -2
  148. data/lib/rdoc/version.rb +8 -0
  149. data/lib/rdoc.rb +24 -10
  150. data/man/ri.1 +247 -0
  151. data/rdoc.gemspec +248 -0
  152. metadata +43 -236
  153. data/.autotest +0 -24
  154. data/.document +0 -5
  155. data/Manifest.txt +0 -306
  156. data/lib/gauntlet_rdoc.rb +0 -84
  157. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  158. data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
  159. data/lib/rdoc/markdown/literals_1_8.rb +0 -416
  160. data/lib/rdoc/markup/formatter_test_case.rb +0 -767
  161. data/lib/rdoc/markup/inline.rb +0 -1
  162. data/lib/rdoc/markup/special.rb +0 -40
  163. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -114
  164. data/lib/rdoc/ruby_lex.rb +0 -1377
  165. data/lib/rdoc/ruby_token.rb +0 -460
  166. data/lib/rdoc/test_case.rb +0 -217
  167. data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
  168. data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
  169. data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
  170. data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
  171. data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
  172. data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
  173. data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
  174. data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
  175. data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
  176. data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
  177. data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
  178. data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
  179. data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
  180. data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
  181. data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
  182. data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
  183. data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
  184. data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
  185. data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
  186. data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
  187. data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
  188. data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
  189. data/test/README +0 -1
  190. data/test/binary.dat +0 -0
  191. data/test/hidden.zip.txt +0 -1
  192. data/test/test.ja.largedoc +0 -3
  193. data/test/test.ja.rdoc +0 -10
  194. data/test/test.ja.txt +0 -8
  195. data/test/test.txt +0 -1
  196. data/test/test_rdoc_alias.rb +0 -13
  197. data/test/test_rdoc_any_method.rb +0 -460
  198. data/test/test_rdoc_attr.rb +0 -190
  199. data/test/test_rdoc_class_module.rb +0 -1492
  200. data/test/test_rdoc_code_object.rb +0 -450
  201. data/test/test_rdoc_comment.rb +0 -504
  202. data/test/test_rdoc_constant.rb +0 -181
  203. data/test/test_rdoc_context.rb +0 -901
  204. data/test/test_rdoc_context_section.rb +0 -130
  205. data/test/test_rdoc_cross_reference.rb +0 -192
  206. data/test/test_rdoc_encoding.rb +0 -227
  207. data/test/test_rdoc_extend.rb +0 -94
  208. data/test/test_rdoc_generator_darkfish.rb +0 -229
  209. data/test/test_rdoc_generator_json_index.rb +0 -324
  210. data/test/test_rdoc_generator_markup.rb +0 -59
  211. data/test/test_rdoc_generator_pot.rb +0 -91
  212. data/test/test_rdoc_generator_pot_po.rb +0 -51
  213. data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
  214. data/test/test_rdoc_generator_ri.rb +0 -78
  215. data/test/test_rdoc_i18n_locale.rb +0 -73
  216. data/test/test_rdoc_i18n_text.rb +0 -123
  217. data/test/test_rdoc_include.rb +0 -108
  218. data/test/test_rdoc_markdown.rb +0 -980
  219. data/test/test_rdoc_markdown_test.rb +0 -1884
  220. data/test/test_rdoc_markup.rb +0 -95
  221. data/test/test_rdoc_markup_attribute_manager.rb +0 -364
  222. data/test/test_rdoc_markup_attributes.rb +0 -39
  223. data/test/test_rdoc_markup_document.rb +0 -207
  224. data/test/test_rdoc_markup_formatter.rb +0 -175
  225. data/test/test_rdoc_markup_hard_break.rb +0 -31
  226. data/test/test_rdoc_markup_heading.rb +0 -29
  227. data/test/test_rdoc_markup_include.rb +0 -19
  228. data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
  229. data/test/test_rdoc_markup_paragraph.rb +0 -32
  230. data/test/test_rdoc_markup_parser.rb +0 -1680
  231. data/test/test_rdoc_markup_pre_process.rb +0 -473
  232. data/test/test_rdoc_markup_raw.rb +0 -22
  233. data/test/test_rdoc_markup_to_ansi.rb +0 -369
  234. data/test/test_rdoc_markup_to_bs.rb +0 -366
  235. data/test/test_rdoc_markup_to_html.rb +0 -662
  236. data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
  237. data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
  238. data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
  239. data/test/test_rdoc_markup_to_label.rb +0 -112
  240. data/test/test_rdoc_markup_to_markdown.rb +0 -389
  241. data/test/test_rdoc_markup_to_rdoc.rb +0 -377
  242. data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
  243. data/test/test_rdoc_markup_to_tt_only.rb +0 -246
  244. data/test/test_rdoc_markup_verbatim.rb +0 -29
  245. data/test/test_rdoc_method_attr.rb +0 -193
  246. data/test/test_rdoc_normal_class.rb +0 -47
  247. data/test/test_rdoc_normal_module.rb +0 -42
  248. data/test/test_rdoc_options.rb +0 -766
  249. data/test/test_rdoc_parser.rb +0 -327
  250. data/test/test_rdoc_parser_c.rb +0 -1896
  251. data/test/test_rdoc_parser_changelog.rb +0 -315
  252. data/test/test_rdoc_parser_markdown.rb +0 -61
  253. data/test/test_rdoc_parser_rd.rb +0 -55
  254. data/test/test_rdoc_parser_ruby.rb +0 -3322
  255. data/test/test_rdoc_parser_simple.rb +0 -115
  256. data/test/test_rdoc_rd.rb +0 -30
  257. data/test/test_rdoc_rd_block_parser.rb +0 -535
  258. data/test/test_rdoc_rd_inline.rb +0 -63
  259. data/test/test_rdoc_rd_inline_parser.rb +0 -177
  260. data/test/test_rdoc_rdoc.rb +0 -455
  261. data/test/test_rdoc_require.rb +0 -25
  262. data/test/test_rdoc_ri_driver.rb +0 -1436
  263. data/test/test_rdoc_ri_paths.rb +0 -155
  264. data/test/test_rdoc_ruby_lex.rb +0 -421
  265. data/test/test_rdoc_ruby_token.rb +0 -19
  266. data/test/test_rdoc_rubygems_hook.rb +0 -251
  267. data/test/test_rdoc_servlet.rb +0 -534
  268. data/test/test_rdoc_single_class.rb +0 -20
  269. data/test/test_rdoc_stats.rb +0 -722
  270. data/test/test_rdoc_store.rb +0 -993
  271. data/test/test_rdoc_task.rb +0 -173
  272. data/test/test_rdoc_text.rb +0 -557
  273. data/test/test_rdoc_token_stream.rb +0 -42
  274. data/test/test_rdoc_tom_doc.rb +0 -520
  275. data/test/test_rdoc_top_level.rb +0 -287
  276. data/test/xref_data.rb +0 -76
  277. data/test/xref_test_case.rb +0 -67
@@ -1,534 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocServlet < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @orig_gem_path = Gem.path
9
-
10
- @tempdir = File.join Dir.tmpdir, "test_rdoc_servlet_#{$$}"
11
- Gem.use_paths @tempdir
12
- Gem.ensure_gem_subdirectories @tempdir
13
-
14
- @spec = Gem::Specification.new 'spec', '1.0'
15
- @spec.loaded_from = @spec.spec_file
16
-
17
- Gem::Specification.reset
18
- Gem::Specification.all = [@spec]
19
-
20
- @server = {}
21
- def @server.mount(*) end
22
-
23
- @stores = {}
24
- @cache = Hash.new { |hash, store| hash[store] = {} }
25
-
26
- @extra_dirs = [File.join(@tempdir, 'extra1'), File.join(@tempdir, 'extra2')]
27
-
28
- @s = RDoc::Servlet.new @server, @stores, @cache, nil, @extra_dirs
29
-
30
- @req = WEBrick::HTTPRequest.new :Logger => nil
31
- @res = WEBrick::HTTPResponse.new :HTTPVersion => '1.0'
32
-
33
- def @req.path= path
34
- instance_variable_set :@path, path
35
- end
36
-
37
- @req.instance_variable_set :@header, Hash.new { |h, k| h[k] = [] }
38
-
39
- @base = File.join @tempdir, 'base'
40
- @system_dir = File.join @tempdir, 'base', 'system'
41
- @home_dir = File.join @tempdir, 'home'
42
- @gem_doc_dir = File.join @tempdir, 'doc'
43
-
44
- @orig_base = RDoc::RI::Paths::BASE
45
- RDoc::RI::Paths::BASE.replace @base
46
- @orig_ri_path_homedir = RDoc::RI::Paths::HOMEDIR
47
- RDoc::RI::Paths::HOMEDIR.replace @home_dir
48
-
49
- RDoc::RI::Paths.instance_variable_set \
50
- :@gemdirs, %w[/nonexistent/gems/example-1.0/ri]
51
- end
52
-
53
- def teardown
54
- super
55
-
56
- Gem.use_paths(*@orig_gem_path)
57
- Gem::Specification.reset
58
-
59
- FileUtils.rm_rf @tempdir
60
-
61
- RDoc::RI::Paths::BASE.replace @orig_base
62
- RDoc::RI::Paths::HOMEDIR.replace @orig_ri_path_homedir
63
- RDoc::RI::Paths.instance_variable_set :@gemdirs, nil
64
- end
65
-
66
- def test_asset
67
- temp_dir do
68
- now = Time.now
69
-
70
- open 'rdoc.css', 'w' do |io| io.write 'h1 { color: red }' end
71
- File.utime now, now, 'rdoc.css'
72
-
73
- @s.asset_dirs[:darkfish] = '.'
74
-
75
- @req.path = 'rdoc.css'
76
-
77
- @s.asset :darkfish, @req, @res
78
-
79
- assert_equal 'h1 { color: red }', @res.body
80
- assert_equal 'text/css', @res.content_type
81
- assert_equal now.httpdate, @res['last-modified']
82
- end
83
- end
84
-
85
- def test_do_GET
86
- touch_system_cache_path
87
-
88
- @req.path = '/ruby/Missing.html'
89
-
90
- @s.do_GET @req, @res
91
-
92
- assert_equal 404, @res.status
93
- end
94
-
95
- def test_do_GET_asset_darkfish
96
- temp_dir do
97
- FileUtils.touch 'rdoc.css'
98
-
99
- @s.asset_dirs[:darkfish] = '.'
100
-
101
- @req.path = '/rdoc.css'
102
-
103
- @s.do_GET @req, @res
104
-
105
- assert_equal 'text/css', @res.content_type
106
- end
107
- end
108
-
109
- def test_do_GET_asset_json_index
110
- temp_dir do
111
- FileUtils.mkdir 'js'
112
- FileUtils.touch 'js/navigation.js'
113
-
114
- @s.asset_dirs[:json_index] = '.'
115
-
116
- @req.path = '/js/navigation.js'
117
-
118
- @s.do_GET @req, @res
119
-
120
- assert_equal 'application/javascript', @res.content_type
121
- end
122
- end
123
-
124
- def test_do_GET_error
125
- touch_system_cache_path
126
-
127
- def @req.path() raise 'no' end
128
-
129
- @s.do_GET @req, @res
130
-
131
- assert_equal 500, @res.status
132
- end
133
-
134
- def test_do_GET_mount_path
135
- @s = RDoc::Servlet.new @server, @stores, @cache, '/mount/path'
136
-
137
- temp_dir do
138
- FileUtils.touch 'rdoc.css'
139
-
140
- @s.asset_dirs[:darkfish] = '.'
141
-
142
- @req.path = '/mount/path/rdoc.css'
143
-
144
- @s.do_GET @req, @res
145
-
146
- assert_equal 'text/css', @res.content_type
147
- end
148
- end
149
-
150
- def do_GET_not_found
151
- touch_system_cache_path
152
-
153
- @req.path = "/#{@spec.full_name}"
154
-
155
- @s.do_GET @req, @res
156
-
157
- assert_equal 404, @res.status
158
- end
159
-
160
- def test_do_GET_not_modified
161
- touch_system_cache_path
162
- @req.header['if-modified-since'] = [(Time.now + 10).httpdate]
163
- @req.path = '/ruby/Missing.html'
164
-
165
- assert_raises WEBrick::HTTPStatus::NotModified do
166
- @s.do_GET @req, @res
167
- end
168
- end
169
-
170
- def test_do_GET_root
171
- touch_system_cache_path
172
-
173
- @req.path = '/'
174
-
175
- @s.do_GET @req, @res
176
-
177
- assert_equal 'text/html', @res.content_type
178
- assert_match %r%<title>Local RDoc Documentation</title>%, @res.body
179
- end
180
-
181
- def test_do_GET_root_search
182
- touch_system_cache_path
183
-
184
- @req.path = '/js/search_index.js'
185
-
186
- @s.do_GET @req, @res
187
-
188
- assert_equal 'application/javascript', @res.content_type, @res.body
189
- end
190
-
191
- def test_documentation_page_class
192
- store = RDoc::Store.new
193
-
194
- generator = @s.generator_for store
195
-
196
- file = store.add_file 'file.rb'
197
- klass = file.add_class RDoc::NormalClass, 'Klass'
198
- klass.add_class RDoc::NormalClass, 'Sub'
199
-
200
- @s.documentation_page store, generator, 'Klass::Sub.html', @req, @res
201
-
202
- assert_match %r%<title>class Klass::Sub - </title>%, @res.body
203
- assert_match %r%<body id="top" role="document" class="class">%, @res.body
204
- end
205
-
206
- def test_documentation_page_not_found
207
- store = RDoc::Store.new
208
-
209
- generator = @s.generator_for store
210
-
211
- @req.path = '/ruby/Missing.html'
212
-
213
- @s.documentation_page store, generator, 'Missing.html', @req, @res
214
-
215
- assert_equal 404, @res.status
216
- end
217
-
218
- def test_documentation_page_page
219
- store = RDoc::Store.new
220
-
221
- generator = @s.generator_for store
222
-
223
- readme = store.add_file 'README.rdoc'
224
- readme.parser = RDoc::Parser::Simple
225
-
226
- @s.documentation_page store, generator, 'README_rdoc.html', @req, @res
227
-
228
- assert_match %r%<title>README - </title>%, @res.body
229
- assert_match %r%<body [^>]+ class="file">%, @res.body
230
- end
231
-
232
- def test_documentation_source
233
- store, path = @s.documentation_source '/ruby/Object.html'
234
-
235
- assert_equal @system_dir, store.path
236
-
237
- assert_equal 'Object.html', path
238
- end
239
-
240
- def test_documentation_source_cached
241
- cached_store = RDoc::Store.new
242
-
243
- @stores['ruby'] = cached_store
244
-
245
- store, path = @s.documentation_source '/ruby/Object.html'
246
-
247
- assert_same cached_store, store
248
-
249
- assert_equal 'Object.html', path
250
- end
251
-
252
- def test_error
253
- e = RuntimeError.new 'foo'
254
- e.set_backtrace caller
255
-
256
- @s.error e, @req, @res
257
-
258
- assert_equal 'text/html', @res.content_type
259
- assert_equal 500, @res.status
260
- assert_match %r%<title>Error%, @res.body
261
- end
262
-
263
- def test_generator_for
264
- store = RDoc::Store.new
265
- store.main = 'MAIN_PAGE.rdoc'
266
- store.title = 'Title'
267
-
268
- generator = @s.generator_for store
269
-
270
- refute generator.file_output
271
-
272
- assert_equal '..', generator.asset_rel_path
273
-
274
- assert_equal 'MAIN_PAGE.rdoc', @s.options.main_page
275
- assert_equal 'Title', @s.options.title
276
-
277
- assert_kind_of RDoc::RDoc, store.rdoc
278
- assert_same generator, store.rdoc.generator
279
- end
280
-
281
- def test_if_modified_since
282
- skip 'File.utime on directory not supported' if Gem.win_platform?
283
-
284
- temp_dir do
285
- now = Time.now
286
- File.utime now, now, '.'
287
-
288
- @s.if_modified_since @req, @res, '.'
289
-
290
- assert_equal now.to_i, Time.parse(@res['last-modified']).to_i
291
- end
292
- end
293
-
294
- def test_if_modified_since_not_modified
295
- skip 'File.utime on directory not supported' if Gem.win_platform?
296
-
297
- temp_dir do
298
- now = Time.now
299
- File.utime now, now, '.'
300
-
301
- @req.header['if-modified-since'] = [(now + 10).httpdate]
302
-
303
- assert_raises WEBrick::HTTPStatus::NotModified do
304
- @s.if_modified_since @req, @res, '.'
305
- end
306
-
307
- assert_equal now.to_i, Time.parse(@res['last-modified']).to_i
308
- end
309
- end
310
-
311
- def test_installed_docs
312
- touch_system_cache_path
313
- touch_extra_cache_path
314
-
315
- expected = [
316
- ['My Extra Documentation', 'extra-1/', true, :extra,
317
- @extra_dirs[0]],
318
- ['Extra Documentation', 'extra-2/', false, :extra,
319
- @extra_dirs[1]],
320
- ['Ruby Documentation', 'ruby/', true, :system,
321
- @system_dir],
322
- ['Site Documentation', 'site/', false, :site,
323
- File.join(@base, 'site')],
324
- ['Home Documentation', 'home/', false, :home,
325
- RDoc::RI::Paths::HOMEDIR],
326
- ['spec-1.0', 'spec-1.0/', false, :gem,
327
- File.join(@spec.doc_dir, 'ri')],
328
- ]
329
-
330
- assert_equal expected, @s.installed_docs
331
- end
332
-
333
- def test_not_found
334
- generator = @s.generator_for RDoc::Store.new
335
-
336
- @req.path = '/ruby/Missing.html'
337
-
338
- @s.not_found generator, @req, @res
339
-
340
- assert_equal 404, @res.status
341
- assert_match %r%<title>Not Found</title>%, @res.body
342
- assert_match %r%<kbd>/ruby/Missing\.html</kbd>%, @res.body
343
- end
344
-
345
- def test_not_found_message
346
- generator = @s.generator_for RDoc::Store.new
347
-
348
- @req.path = '/ruby/Missing.html'
349
-
350
- @s.not_found generator, @req, @res, 'woo, this is a message'
351
-
352
- assert_equal 404, @res.status
353
- assert_match %r%<title>Not Found</title>%, @res.body
354
- assert_match %r%woo, this is a message%, @res.body
355
- end
356
-
357
- def test_ri_paths
358
- paths = @s.ri_paths
359
-
360
- expected = [
361
- [@extra_dirs[0], :extra],
362
- [@extra_dirs[1], :extra],
363
- [@system_dir, :system],
364
- [File.join(@base, 'site'), :site],
365
- [RDoc::RI::Paths::HOMEDIR, :home],
366
- [File.join(@spec.doc_dir, 'ri'), :gem],
367
- ]
368
-
369
- assert_equal expected, paths.to_a
370
- end
371
-
372
- def test_root
373
- @s.root @req, @res
374
-
375
- assert_equal 'text/html', @res.content_type
376
- assert_match %r%<title>Local RDoc Documentation</title>%, @res.body
377
- end
378
-
379
- def test_root_search
380
- touch_system_cache_path
381
- touch_extra_cache_path
382
-
383
- @s.root_search @req, @res
384
-
385
- assert_equal 'application/javascript', @res.content_type
386
-
387
- @res.body =~ /\{.*\}/
388
-
389
- index = JSON.parse $&
390
-
391
- expected = {
392
- 'index' => {
393
- 'searchIndex' => %w[
394
- My\ Extra\ Documentation
395
- Ruby\ Documentation
396
- ],
397
- 'longSearchIndex' => %w[
398
- My\ Extra\ Documentation
399
- Ruby\ Documentation
400
- ],
401
- 'info' => [
402
- ['My Extra Documentation', '', @extra_dirs[0], '',
403
- 'My Extra Documentation'],
404
- ['Ruby Documentation', '', 'ruby', '',
405
- 'Documentation for the Ruby standard library'],
406
- ],
407
- }
408
- }
409
-
410
- assert_equal expected, index
411
- end
412
-
413
- def test_show_documentation_index
414
- touch_system_cache_path
415
-
416
- @req.path = '/ruby'
417
-
418
- @s.show_documentation @req, @res
419
-
420
- assert_equal 'text/html', @res.content_type
421
- assert_match %r%<title>Standard Library Documentation%, @res.body
422
- end
423
-
424
- def test_show_documentation_table_of_contents
425
- touch_system_cache_path
426
-
427
- @req.path = '/ruby/table_of_contents.html'
428
-
429
- @s.show_documentation @req, @res
430
-
431
- assert_equal 'text/html', @res.content_type
432
- assert_match %r%<title>Table of Contents - Standard Library Documentation%,
433
- @res.body
434
- end
435
-
436
- def test_show_documentation_page
437
- touch_system_cache_path
438
-
439
- @req.path = '/ruby/Missing.html'
440
-
441
- @s.show_documentation @req, @res
442
-
443
- assert_equal 404, @res.status
444
- end
445
-
446
- def test_show_documentation_search_index
447
- touch_system_cache_path
448
-
449
- @req.path = '/ruby/js/search_index.js'
450
-
451
- @s.show_documentation @req, @res
452
-
453
- assert_equal 'application/javascript', @res.content_type
454
- assert_match %r%\Avar search_data =%, @res.body
455
- end
456
-
457
- def test_store_for_gem
458
- ri_dir = File.join @gem_doc_dir, 'spec-1.0', 'ri'
459
- FileUtils.mkdir_p ri_dir
460
- FileUtils.touch File.join ri_dir, 'cache.ri'
461
-
462
- store = @s.store_for 'spec-1.0'
463
-
464
- assert_equal File.join(@gem_doc_dir, 'spec-1.0', 'ri'), store.path
465
- assert_equal :gem, store.type
466
- end
467
-
468
- def test_store_for_home
469
- store = @s.store_for 'home'
470
-
471
- assert_equal @home_dir, store.path
472
- assert_equal :home, store.type
473
- end
474
-
475
- def test_store_for_missing_documentation
476
- FileUtils.mkdir_p(File.join @gem_doc_dir, 'spec-1.0', 'ri')
477
-
478
- e = assert_raises WEBrick::HTTPStatus::NotFound do
479
- @s.store_for 'spec-1.0'
480
- end
481
-
482
- assert_equal 'Could not find documentation for "spec-1.0". Please run `gem rdoc --ri gem_name`',
483
- e.message
484
- end
485
-
486
- def test_store_for_missing_gem
487
- e = assert_raises WEBrick::HTTPStatus::NotFound do
488
- @s.store_for 'missing'
489
- end
490
-
491
- assert_equal 'Could not find gem "missing". Are you sure you installed it?',
492
- e.message
493
- end
494
-
495
- def test_store_for_ruby
496
- store = @s.store_for 'ruby'
497
-
498
- assert_equal @system_dir, store.path
499
- assert_equal :system, store.type
500
- end
501
-
502
- def test_store_for_site
503
- store = @s.store_for 'site'
504
-
505
- assert_equal File.join(@base, 'site'), store.path
506
- assert_equal :site, store.type
507
- end
508
-
509
- def test_store_for_extra
510
- store = @s.store_for 'extra-1'
511
-
512
- assert_equal @extra_dirs.first, store.path
513
- assert_equal :extra, store.type
514
- end
515
-
516
- def touch_system_cache_path
517
- store = RDoc::Store.new @system_dir
518
- store.title = 'Standard Library Documentation'
519
-
520
- FileUtils.mkdir_p File.dirname store.cache_path
521
-
522
- store.save
523
- end
524
-
525
- def touch_extra_cache_path
526
- store = RDoc::Store.new @extra_dirs.first
527
- store.title = 'My Extra Documentation'
528
-
529
- FileUtils.mkdir_p File.dirname store.cache_path
530
-
531
- store.save
532
- end
533
-
534
- end
@@ -1,20 +0,0 @@
1
- require 'rdoc/test_case'
2
-
3
- class TestRDocSingleClass < RDoc::TestCase
4
-
5
- def setup
6
- super
7
-
8
- @c = RDoc::SingleClass.new 'C'
9
- end
10
-
11
- def test_aref_prefix
12
- assert_equal 'sclass', @c.aref_prefix
13
- end
14
-
15
- def test_definition
16
- assert_equal 'class << C', @c.definition
17
- end
18
-
19
- end
20
-