webgen 0.5.17 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (408) hide show
  1. data/API.rdoc +143 -0
  2. data/AUTHORS +0 -1
  3. data/COPYING +17 -8
  4. data/ChangeLog +4456 -0
  5. data/GPL +623 -289
  6. data/README.md +71 -0
  7. data/Rakefile +87 -99
  8. data/VERSION +1 -1
  9. data/bin/webgen +1 -7
  10. data/data/webgen/basic_website_template/ext/init.rb +15 -0
  11. data/data/webgen/basic_website_template/webgen.config +18 -0
  12. data/data/webgen/bundle_template_files/README.md.erb +24 -0
  13. data/data/webgen/bundle_template_files/Rakefile.erb +36 -0
  14. data/data/webgen/bundle_template_files/info.yaml.erb +16 -0
  15. data/data/webgen/bundle_template_files/init.rb.erb +1 -0
  16. data/data/webgen/passive_sources/default.metainfo +32 -0
  17. data/data/webgen/passive_sources/stylesheets/coderay-default.css +109 -118
  18. data/data/webgen/passive_sources/templates/feed.template +62 -0
  19. data/data/webgen/passive_sources/templates/sitemap.template +3 -6
  20. data/data/webgen/passive_sources/templates/tag.template +42 -0
  21. data/data/webgen/website_bundles/default/README +2 -2
  22. data/lib/webgen/blackboard.rb +15 -51
  23. data/lib/webgen/bundle/built-in-show-changes/init.rb +54 -0
  24. data/lib/webgen/bundle/built-in/init.rb +366 -0
  25. data/lib/webgen/bundle_loader.rb +126 -0
  26. data/lib/webgen/cache.rb +9 -18
  27. data/lib/webgen/cli.rb +131 -58
  28. data/lib/webgen/cli/bundle_command.rb +30 -0
  29. data/lib/webgen/cli/create_bundle_command.rb +46 -0
  30. data/lib/webgen/cli/create_command.rb +48 -60
  31. data/lib/webgen/cli/generate_command.rb +25 -0
  32. data/lib/webgen/cli/install_bundle_command.rb +34 -0
  33. data/lib/webgen/cli/list_bundle_command.rb +108 -0
  34. data/lib/webgen/cli/logger.rb +45 -0
  35. data/lib/webgen/cli/show_command.rb +30 -0
  36. data/lib/webgen/cli/show_config_command.rb +63 -0
  37. data/lib/webgen/cli/show_dependencies_command.rb +103 -0
  38. data/lib/webgen/cli/show_extensions_command.rb +74 -0
  39. data/lib/webgen/cli/utils.rb +68 -95
  40. data/lib/webgen/configuration.rb +143 -105
  41. data/lib/webgen/content_processor.rb +160 -0
  42. data/lib/webgen/content_processor/blocks.rb +96 -0
  43. data/lib/webgen/content_processor/builder.rb +25 -0
  44. data/lib/webgen/content_processor/erb.rb +25 -0
  45. data/lib/webgen/content_processor/erubis.rb +31 -0
  46. data/lib/webgen/content_processor/fragments.rb +82 -0
  47. data/lib/webgen/content_processor/haml.rb +25 -0
  48. data/lib/webgen/content_processor/html_head.rb +157 -0
  49. data/lib/webgen/content_processor/kramdown.rb +49 -0
  50. data/lib/webgen/content_processor/maruku.rb +39 -0
  51. data/lib/webgen/content_processor/r_discount.rb +21 -0
  52. data/lib/webgen/content_processor/rdoc.rb +22 -0
  53. data/lib/webgen/content_processor/redcloth.rb +23 -0
  54. data/lib/webgen/content_processor/ruby.rb +20 -0
  55. data/lib/webgen/content_processor/sass.rb +145 -0
  56. data/lib/webgen/content_processor/scss.rb +23 -0
  57. data/lib/webgen/content_processor/tags.rb +30 -0
  58. data/lib/webgen/content_processor/tidy.rb +32 -0
  59. data/lib/webgen/content_processor/tikz.rb +116 -0
  60. data/lib/webgen/content_processor/xmllint.rb +31 -0
  61. data/lib/webgen/context.rb +57 -29
  62. data/lib/webgen/context/html_head.rb +60 -0
  63. data/lib/webgen/context/nodes.rb +32 -27
  64. data/lib/webgen/context/rendering.rb +39 -0
  65. data/lib/webgen/context/webgen_tags.rb +25 -0
  66. data/lib/webgen/core_ext.rb +25 -0
  67. data/lib/webgen/destination.rb +151 -0
  68. data/lib/webgen/destination/file_system.rb +62 -0
  69. data/lib/webgen/error.rb +59 -49
  70. data/lib/webgen/extension_manager.rb +121 -0
  71. data/lib/webgen/item_tracker.rb +237 -0
  72. data/lib/webgen/item_tracker/file.rb +39 -0
  73. data/lib/webgen/item_tracker/missing_node.rb +61 -0
  74. data/lib/webgen/item_tracker/node_content.rb +40 -0
  75. data/lib/webgen/item_tracker/node_meta_info.rb +53 -0
  76. data/lib/webgen/item_tracker/nodes.rb +92 -0
  77. data/lib/webgen/logger.rb +26 -82
  78. data/lib/webgen/node.rb +122 -367
  79. data/lib/webgen/node_finder.rb +336 -0
  80. data/lib/webgen/page.rb +48 -85
  81. data/lib/webgen/path.rb +218 -156
  82. data/lib/webgen/path_handler.rb +400 -0
  83. data/lib/webgen/path_handler/base.rb +220 -0
  84. data/lib/webgen/path_handler/copy.rb +78 -0
  85. data/lib/webgen/path_handler/directory.rb +21 -0
  86. data/lib/webgen/path_handler/feed.rb +82 -0
  87. data/lib/webgen/path_handler/meta_info.rb +84 -0
  88. data/lib/webgen/path_handler/page.rb +38 -0
  89. data/lib/webgen/path_handler/page_utils.rb +79 -0
  90. data/lib/webgen/path_handler/sitemap.rb +52 -0
  91. data/lib/webgen/path_handler/template.rb +96 -0
  92. data/lib/webgen/path_handler/virtual.rb +85 -0
  93. data/lib/webgen/{webgentask.rb → rake_task.rb} +31 -27
  94. data/lib/webgen/source.rb +106 -24
  95. data/lib/webgen/source/file_system.rb +41 -0
  96. data/lib/webgen/source/stacked.rb +49 -53
  97. data/lib/webgen/source/tar_archive.rb +59 -0
  98. data/lib/webgen/tag.rb +250 -19
  99. data/lib/webgen/tag/breadcrumb_trail.rb +65 -0
  100. data/lib/webgen/tag/coderay.rb +32 -35
  101. data/lib/webgen/tag/date.rb +9 -9
  102. data/lib/webgen/tag/execute_command.rb +31 -0
  103. data/lib/webgen/tag/include_file.rb +32 -0
  104. data/lib/webgen/tag/langbar.rb +31 -47
  105. data/lib/webgen/tag/link.rb +17 -18
  106. data/lib/webgen/tag/menu.rb +27 -189
  107. data/lib/webgen/tag/meta_info.rb +31 -0
  108. data/lib/webgen/tag/relocatable.rb +48 -39
  109. data/lib/webgen/tag/tikz.rb +24 -100
  110. data/lib/webgen/task.rb +99 -0
  111. data/lib/webgen/task/create_bundle.rb +73 -0
  112. data/lib/webgen/task/create_website.rb +94 -0
  113. data/lib/webgen/task/generate_website.rb +47 -0
  114. data/lib/webgen/test_helper.rb +183 -0
  115. data/lib/webgen/tree.rb +95 -46
  116. data/lib/webgen/utils.rb +39 -0
  117. data/lib/webgen/utils/external_command.rb +27 -0
  118. data/lib/webgen/utils/tag_parser.rb +124 -0
  119. data/lib/webgen/version.rb +1 -1
  120. data/lib/webgen/website.rb +134 -296
  121. data/setup.rb +1 -1
  122. data/test/test_documentation.rb +43 -0
  123. data/test/webgen/cli/test_logger.rb +41 -0
  124. data/test/{test_contentprocessor_blocks.rb → webgen/content_processor/test_blocks.rb} +30 -28
  125. data/test/webgen/content_processor/test_builder.rb +25 -0
  126. data/test/webgen/content_processor/test_erb.rb +21 -0
  127. data/test/webgen/content_processor/test_erubis.rb +33 -0
  128. data/test/webgen/content_processor/test_fragments.rb +96 -0
  129. data/test/webgen/content_processor/test_haml.rb +24 -0
  130. data/test/webgen/content_processor/test_html_head.rb +78 -0
  131. data/test/webgen/content_processor/test_kramdown.rb +49 -0
  132. data/test/webgen/content_processor/test_maruku.rb +30 -0
  133. data/test/webgen/content_processor/test_r_discount.rb +18 -0
  134. data/test/webgen/content_processor/test_rdoc.rb +18 -0
  135. data/test/webgen/content_processor/test_redcloth.rb +23 -0
  136. data/test/webgen/content_processor/test_ruby.rb +24 -0
  137. data/test/webgen/content_processor/test_sass.rb +44 -0
  138. data/test/webgen/content_processor/test_scss.rb +23 -0
  139. data/test/webgen/content_processor/test_tags.rb +44 -0
  140. data/test/webgen/content_processor/test_tidy.rb +31 -0
  141. data/test/webgen/content_processor/test_tikz.rb +33 -0
  142. data/test/webgen/content_processor/test_xmllint.rb +32 -0
  143. data/test/webgen/destination/test_file_system.rb +54 -0
  144. data/test/webgen/item_tracker/test_file.rb +31 -0
  145. data/test/webgen/item_tracker/test_missing_node.rb +70 -0
  146. data/test/webgen/item_tracker/test_node_content.rb +42 -0
  147. data/test/webgen/item_tracker/test_node_meta_info.rb +44 -0
  148. data/test/webgen/item_tracker/test_nodes.rb +61 -0
  149. data/test/webgen/path_handler/test_base.rb +153 -0
  150. data/test/webgen/path_handler/test_copy.rb +56 -0
  151. data/test/webgen/path_handler/test_feed.rb +85 -0
  152. data/test/webgen/path_handler/test_meta_info.rb +98 -0
  153. data/test/webgen/path_handler/test_page.rb +25 -0
  154. data/test/webgen/path_handler/test_page_utils.rb +59 -0
  155. data/test/webgen/path_handler/test_sitemap.rb +95 -0
  156. data/test/webgen/path_handler/test_template.rb +64 -0
  157. data/test/webgen/path_handler/test_virtual.rb +87 -0
  158. data/test/webgen/source/test_file_system.rb +51 -0
  159. data/test/webgen/source/test_stacked.rb +35 -0
  160. data/test/{test_source_tararchive.rb → webgen/source/test_tar_archive.rb} +10 -25
  161. data/test/webgen/tag/test_breadcrumb_trail.rb +66 -0
  162. data/test/webgen/tag/test_coderay.rb +34 -0
  163. data/test/webgen/tag/test_date.rb +18 -0
  164. data/test/webgen/tag/test_execute_command.rb +36 -0
  165. data/test/webgen/tag/test_include_file.rb +35 -0
  166. data/test/webgen/tag/test_langbar.rb +50 -0
  167. data/test/webgen/tag/test_link.rb +40 -0
  168. data/test/webgen/tag/test_menu.rb +61 -0
  169. data/test/webgen/tag/test_meta_info.rb +25 -0
  170. data/test/webgen/tag/test_relocatable.rb +50 -0
  171. data/test/webgen/tag/test_tikz.rb +41 -0
  172. data/test/webgen/task/test_create_website.rb +46 -0
  173. data/test/webgen/test_blackboard.rb +31 -0
  174. data/test/webgen/test_bundle_loader.rb +55 -0
  175. data/test/{test_cache.rb → webgen/test_cache.rb} +3 -15
  176. data/test/webgen/test_cli.rb +41 -0
  177. data/test/webgen/test_configuration.rb +131 -0
  178. data/test/webgen/test_content_processor.rb +86 -0
  179. data/test/webgen/test_context.rb +73 -0
  180. data/test/webgen/test_core_ext.rb +20 -0
  181. data/test/webgen/test_destination.rb +48 -0
  182. data/test/webgen/test_error.rb +121 -0
  183. data/test/webgen/test_extension_manager.rb +70 -0
  184. data/test/webgen/test_item_tracker.rb +106 -0
  185. data/test/{test_languages.rb → webgen/test_languages.rb} +4 -4
  186. data/test/webgen/test_logger.rb +46 -0
  187. data/test/webgen/test_node.rb +178 -0
  188. data/test/webgen/test_node_finder.rb +127 -0
  189. data/test/{test_page.rb → webgen/test_page.rb} +44 -48
  190. data/test/webgen/test_path.rb +271 -0
  191. data/test/{test_webgentask.rb → webgen/test_rake_task.rb} +4 -4
  192. data/test/webgen/test_source.rb +59 -0
  193. data/test/webgen/test_tag.rb +137 -0
  194. data/test/webgen/test_task.rb +40 -0
  195. data/test/webgen/test_tree.rb +147 -0
  196. data/test/webgen/test_utils.rb +16 -0
  197. data/test/webgen/test_website.rb +45 -0
  198. data/test/webgen/utils/test_tag_parser.rb +99 -0
  199. metadata +292 -344
  200. data/data/webgen/passive_sources/templates/atom_feed.template +0 -39
  201. data/data/webgen/passive_sources/templates/rss_feed.template +0 -28
  202. data/data/webgen/resources.yaml +0 -4
  203. data/data/webgen/webgui/app.rb +0 -11
  204. data/data/webgen/webgui/controller/main.rb +0 -135
  205. data/data/webgen/webgui/layout/default.xhtml +0 -40
  206. data/data/webgen/webgui/overrides/win32console.rb +0 -0
  207. data/data/webgen/webgui/public/css/jquery.autocomplete.css +0 -50
  208. data/data/webgen/webgui/public/css/ramaze_error.css +0 -90
  209. data/data/webgen/webgui/public/css/style.css +0 -55
  210. data/data/webgen/webgui/public/img/headerbg.jpg +0 -0
  211. data/data/webgen/webgui/public/img/webgen_logo.png +0 -0
  212. data/data/webgen/webgui/public/js/jquery.autocomplete.js +0 -15
  213. data/data/webgen/webgui/public/js/jquery.js +0 -32
  214. data/data/webgen/webgui/start.rb +0 -9
  215. data/data/webgen/webgui/view/create_website.xhtml +0 -14
  216. data/data/webgen/webgui/view/error.xhtml +0 -64
  217. data/data/webgen/webgui/view/index.xhtml +0 -22
  218. data/data/webgen/webgui/view/manage_website.xhtml +0 -18
  219. data/data/webgen/website_skeleton/README +0 -10
  220. data/data/webgen/website_skeleton/Rakefile +0 -69
  221. data/data/webgen/website_skeleton/config.yaml +0 -35
  222. data/data/webgen/website_skeleton/ext/init.rb +0 -10
  223. data/doc/contentprocessor.template +0 -11
  224. data/doc/contentprocessor/blocks.page +0 -129
  225. data/doc/contentprocessor/builder.page +0 -79
  226. data/doc/contentprocessor/erb.page +0 -60
  227. data/doc/contentprocessor/erubis.page +0 -46
  228. data/doc/contentprocessor/fragments.page +0 -26
  229. data/doc/contentprocessor/haml.page +0 -46
  230. data/doc/contentprocessor/head.page +0 -31
  231. data/doc/contentprocessor/kramdown.page +0 -49
  232. data/doc/contentprocessor/less.page +0 -34
  233. data/doc/contentprocessor/maruku.page +0 -44
  234. data/doc/contentprocessor/rdiscount.page +0 -37
  235. data/doc/contentprocessor/rdoc.page +0 -36
  236. data/doc/contentprocessor/redcloth.page +0 -41
  237. data/doc/contentprocessor/sass.page +0 -31
  238. data/doc/contentprocessor/scss.page +0 -39
  239. data/doc/contentprocessor/tags.page +0 -73
  240. data/doc/contentprocessor/tidy.page +0 -14
  241. data/doc/contentprocessor/xmllint.page +0 -14
  242. data/doc/extensions.metainfo +0 -29
  243. data/doc/extensions.page +0 -15
  244. data/doc/extensions.template +0 -17
  245. data/doc/faq.page +0 -222
  246. data/doc/getting_started.page +0 -135
  247. data/doc/index.page +0 -71
  248. data/doc/manual.page +0 -727
  249. data/doc/reference_configuration.page +0 -1254
  250. data/doc/reference_metainfo.page +0 -265
  251. data/doc/reference_website_styles.page +0 -32
  252. data/doc/source/filesystem.page +0 -41
  253. data/doc/source/tararchive.page +0 -40
  254. data/doc/sourcehandler.template +0 -23
  255. data/doc/sourcehandler/copy.page +0 -19
  256. data/doc/sourcehandler/directory.page +0 -27
  257. data/doc/sourcehandler/feed.page +0 -102
  258. data/doc/sourcehandler/metainfo.page +0 -48
  259. data/doc/sourcehandler/page.page +0 -14
  260. data/doc/sourcehandler/sitemap.page +0 -46
  261. data/doc/sourcehandler/template.page +0 -45
  262. data/doc/sourcehandler/virtual.page +0 -49
  263. data/doc/tag.template +0 -25
  264. data/doc/tag/breadcrumbtrail.page +0 -40
  265. data/doc/tag/coderay.page +0 -53
  266. data/doc/tag/date.page +0 -31
  267. data/doc/tag/executecommand.page +0 -26
  268. data/doc/tag/includefile.page +0 -32
  269. data/doc/tag/langbar.page +0 -47
  270. data/doc/tag/link.page +0 -44
  271. data/doc/tag/menu.page +0 -109
  272. data/doc/tag/metainfo.page +0 -29
  273. data/doc/tag/relocatable.page +0 -38
  274. data/doc/tag/sitemap.page +0 -31
  275. data/doc/tag/tikz.page +0 -159
  276. data/doc/upgrading.page +0 -138
  277. data/doc/webgen_page_format.page +0 -129
  278. data/doc/website_styles.metainfo +0 -8
  279. data/lib/webgen/cli/apply_command.rb +0 -66
  280. data/lib/webgen/cli/run_command.rb +0 -22
  281. data/lib/webgen/cli/webgui_command.rb +0 -68
  282. data/lib/webgen/common.rb +0 -27
  283. data/lib/webgen/common/sitemap.rb +0 -83
  284. data/lib/webgen/contentprocessor.rb +0 -117
  285. data/lib/webgen/contentprocessor/blocks.rb +0 -92
  286. data/lib/webgen/contentprocessor/builder.rb +0 -29
  287. data/lib/webgen/contentprocessor/erb.rb +0 -26
  288. data/lib/webgen/contentprocessor/erubis.rb +0 -39
  289. data/lib/webgen/contentprocessor/fragments.rb +0 -25
  290. data/lib/webgen/contentprocessor/haml.rb +0 -34
  291. data/lib/webgen/contentprocessor/head.rb +0 -128
  292. data/lib/webgen/contentprocessor/kramdown.rb +0 -27
  293. data/lib/webgen/contentprocessor/kramdown/html.rb +0 -36
  294. data/lib/webgen/contentprocessor/less.rb +0 -35
  295. data/lib/webgen/contentprocessor/maruku.rb +0 -36
  296. data/lib/webgen/contentprocessor/rdiscount.rb +0 -19
  297. data/lib/webgen/contentprocessor/rdoc.rb +0 -20
  298. data/lib/webgen/contentprocessor/redcloth.rb +0 -21
  299. data/lib/webgen/contentprocessor/sass.rb +0 -22
  300. data/lib/webgen/contentprocessor/scss.rb +0 -22
  301. data/lib/webgen/contentprocessor/tags.rb +0 -170
  302. data/lib/webgen/contentprocessor/tidy.rb +0 -38
  303. data/lib/webgen/contentprocessor/xmllint.rb +0 -37
  304. data/lib/webgen/context/render.rb +0 -32
  305. data/lib/webgen/context/tags.rb +0 -20
  306. data/lib/webgen/coreext.rb +0 -13
  307. data/lib/webgen/default_config.rb +0 -240
  308. data/lib/webgen/loggable.rb +0 -25
  309. data/lib/webgen/output.rb +0 -86
  310. data/lib/webgen/output/filesystem.rb +0 -69
  311. data/lib/webgen/source/filesystem.rb +0 -61
  312. data/lib/webgen/source/resource.rb +0 -45
  313. data/lib/webgen/source/tararchive.rb +0 -78
  314. data/lib/webgen/sourcehandler.rb +0 -275
  315. data/lib/webgen/sourcehandler/base.rb +0 -281
  316. data/lib/webgen/sourcehandler/copy.rb +0 -44
  317. data/lib/webgen/sourcehandler/directory.rb +0 -30
  318. data/lib/webgen/sourcehandler/feed.rb +0 -92
  319. data/lib/webgen/sourcehandler/fragment.rb +0 -70
  320. data/lib/webgen/sourcehandler/memory.rb +0 -42
  321. data/lib/webgen/sourcehandler/metainfo.rb +0 -128
  322. data/lib/webgen/sourcehandler/page.rb +0 -64
  323. data/lib/webgen/sourcehandler/sitemap.rb +0 -60
  324. data/lib/webgen/sourcehandler/template.rb +0 -66
  325. data/lib/webgen/sourcehandler/virtual.rb +0 -117
  326. data/lib/webgen/tag/base.rb +0 -170
  327. data/lib/webgen/tag/breadcrumbtrail.rb +0 -70
  328. data/lib/webgen/tag/executecommand.rb +0 -31
  329. data/lib/webgen/tag/includefile.rb +0 -42
  330. data/lib/webgen/tag/metainfo.rb +0 -27
  331. data/lib/webgen/tag/sitemap.rb +0 -41
  332. data/lib/webgen/websiteaccess.rb +0 -31
  333. data/lib/webgen/websitemanager.rb +0 -125
  334. data/misc/default.css +0 -403
  335. data/misc/default.template +0 -76
  336. data/misc/htmldoc.metainfo +0 -26
  337. data/misc/htmldoc.virtual +0 -17
  338. data/misc/images/arrow.gif +0 -0
  339. data/misc/images/error.png +0 -0
  340. data/misc/images/headerbg.jpg +0 -0
  341. data/misc/images/important.png +0 -0
  342. data/misc/images/information.png +0 -0
  343. data/misc/images/quote.gif +0 -0
  344. data/misc/images/warning.png +0 -0
  345. data/misc/logo.svg +0 -313
  346. data/misc/style.page +0 -33
  347. data/test/helper.rb +0 -61
  348. data/test/test_blackboard.rb +0 -60
  349. data/test/test_cli.rb +0 -119
  350. data/test/test_common_sitemap.rb +0 -58
  351. data/test/test_configuration.rb +0 -68
  352. data/test/test_contentprocessor.rb +0 -39
  353. data/test/test_contentprocessor_builder.rb +0 -41
  354. data/test/test_contentprocessor_erb.rb +0 -33
  355. data/test/test_contentprocessor_erubis.rb +0 -62
  356. data/test/test_contentprocessor_fragments.rb +0 -43
  357. data/test/test_contentprocessor_haml.rb +0 -39
  358. data/test/test_contentprocessor_head.rb +0 -96
  359. data/test/test_contentprocessor_kramdown.rb +0 -56
  360. data/test/test_contentprocessor_less.rb +0 -40
  361. data/test/test_contentprocessor_maruku.rb +0 -33
  362. data/test/test_contentprocessor_rdiscount.rb +0 -21
  363. data/test/test_contentprocessor_rdoc.rb +0 -22
  364. data/test/test_contentprocessor_redcloth.rb +0 -26
  365. data/test/test_contentprocessor_sass.rb +0 -28
  366. data/test/test_contentprocessor_scss.rb +0 -28
  367. data/test/test_contentprocessor_tags.rb +0 -122
  368. data/test/test_contentprocessor_tidy.rb +0 -34
  369. data/test/test_contentprocessor_xmllint.rb +0 -38
  370. data/test/test_context.rb +0 -81
  371. data/test/test_error.rb +0 -93
  372. data/test/test_loggable.rb +0 -32
  373. data/test/test_logger.rb +0 -94
  374. data/test/test_node.rb +0 -469
  375. data/test/test_output_filesystem.rb +0 -60
  376. data/test/test_path.rb +0 -241
  377. data/test/test_source_filesystem.rb +0 -76
  378. data/test/test_source_resource.rb +0 -28
  379. data/test/test_source_stacked.rb +0 -49
  380. data/test/test_sourcehandler_base.rb +0 -136
  381. data/test/test_sourcehandler_copy.rb +0 -47
  382. data/test/test_sourcehandler_directory.rb +0 -38
  383. data/test/test_sourcehandler_feed.rb +0 -88
  384. data/test/test_sourcehandler_fragment.rb +0 -70
  385. data/test/test_sourcehandler_main.rb +0 -39
  386. data/test/test_sourcehandler_memory.rb +0 -44
  387. data/test/test_sourcehandler_metainfo.rb +0 -127
  388. data/test/test_sourcehandler_page.rb +0 -73
  389. data/test/test_sourcehandler_sitemap.rb +0 -68
  390. data/test/test_sourcehandler_template.rb +0 -68
  391. data/test/test_sourcehandler_virtual.rb +0 -106
  392. data/test/test_tag_base.rb +0 -62
  393. data/test/test_tag_breadcrumbtrail.rb +0 -91
  394. data/test/test_tag_coderay.rb +0 -45
  395. data/test/test_tag_date.rb +0 -18
  396. data/test/test_tag_executecommand.rb +0 -41
  397. data/test/test_tag_includefile.rb +0 -50
  398. data/test/test_tag_langbar.rb +0 -71
  399. data/test/test_tag_link.rb +0 -70
  400. data/test/test_tag_menu.rb +0 -207
  401. data/test/test_tag_metainfo.rb +0 -26
  402. data/test/test_tag_relocatable.rb +0 -60
  403. data/test/test_tag_sitemap.rb +0 -47
  404. data/test/test_tag_tikz.rb +0 -69
  405. data/test/test_tree.rb +0 -70
  406. data/test/test_website.rb +0 -130
  407. data/test/test_websiteaccess.rb +0 -25
  408. data/test/test_websitemanager.rb +0 -65
data/test/test_node.rb DELETED
@@ -1,469 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require 'test/unit'
4
- require 'helper'
5
- require 'webgen/node'
6
- require 'webgen/tree'
7
-
8
- class TestNode < Test::Unit::TestCase
9
-
10
- include Test::WebsiteHelper
11
-
12
- def setup
13
- super
14
- @tree = @website.tree
15
- end
16
-
17
- def create_default_nodes
18
- {
19
- :root => node = Webgen::Node.new(@tree.dummy_root, '/', '/'),
20
- :somename_en => child_en = Webgen::Node.new(node, '/somename.en.html', 'somename.html', {'lang' => 'en', 'title' => 'somename en'}),
21
- :somename_de => child_de = Webgen::Node.new(node, '/somename.de.html', 'somename.html', {'lang' => 'de', 'title' => 'somename de', 'sort_test' => 1}),
22
- :other => Webgen::Node.new(node, '/other.html', 'other.html', {'title' => 'other', 'sort_test' => 5}),
23
- :other_en => Webgen::Node.new(node, '/other1.html', 'other.html', {'lang' => 'en', 'title' => 'other en', 'sort_test' => 4}),
24
- :somename_en_frag => frag_en = Webgen::Node.new(child_en, '/somename.en.html#frag', '#othertest', {'title' => 'frag'}),
25
- :somename_de_frag => Webgen::Node.new(child_de, '/somename.de.html#frag', '#othertest', {'title' => 'frag'}),
26
- :somename_en_fragnest => Webgen::Node.new(frag_en, '/somename.en.html#fragnest/', '#nestedpath', {'title' => 'fragnest'}),
27
- :dir => dir = Webgen::Node.new(node, '/dir/', 'dir/', {'title' => 'dir'}),
28
- :dir_file => dir_file = Webgen::Node.new(dir, '/dir/file.html', 'file.html', {'title' => 'file'}),
29
- :dir_file_frag => Webgen::Node.new(dir_file, '/dir/file.html#frag', '#frag', {'title' => 'frag'}),
30
- :dir2 => dir2 = Webgen::Node.new(node, '/dir2/', 'dir2/', {'index_path' => 'index.html', 'title' => 'dir2'}),
31
- :dir2_index_en => Webgen::Node.new(dir2, '/dir2/index.html', 'index.html',
32
- {'lang' => 'en', 'routed_title' => 'routed', 'title' => 'index en', 'sort_info' => 1}),
33
- :dir2_index_de => Webgen::Node.new(dir2, '/dir2/index.de.html', 'index.html',
34
- {'lang' => 'de', 'routed_title' => 'routed_de', 'title' => 'index de', 'sort_info' => 2}),
35
- }
36
- end
37
-
38
- def test_initialize_and_reinit
39
- check_proc = proc do |node, parent, path, cn, lcn, alcn, lang, mi|
40
- assert_equal(parent, node.parent)
41
- assert_equal(path, node.path)
42
- assert_equal(cn, node.cn)
43
- assert_equal(lcn, node.lcn)
44
- assert_equal(alcn, node.alcn)
45
- assert_equal(lang, node.lang)
46
- assert_kind_of(Webgen::Language, node.lang) if node.lang
47
- assert(node.flagged?(:dirty))
48
- assert(node.flagged?(:created))
49
- assert_equal(mi, node.meta_info)
50
- assert_equal({:used_nodes => Set.new, :used_meta_info_nodes => Set.new}, node.node_info)
51
- mi.each {|k,v| assert_equal(v, node[k])}
52
- end
53
-
54
- node = Webgen::Node.new(@tree.dummy_root, '/', '/', {'lang' => 'de', :test => :value})
55
- check_proc.call(node, @tree.dummy_root, '/', '/', '/', '/', nil, {:test => :value})
56
-
57
- child = Webgen::Node.new(node, 'somename.html', 'somename.html', {'lang' => 'de'})
58
- check_proc.call(child, node, 'somename.html', 'somename.html', 'somename.de.html',
59
- '/somename.de.html', 'de', {})
60
-
61
- ['http://webgen.rubyforge.org', 'c:\\test'].each_with_index do |abspath, index|
62
- cn = 'test' + index.to_s + '.html'
63
- c = Webgen::Node.new(node, abspath, cn)
64
- check_proc.call(c, node, abspath, cn, cn, '/' + cn, nil, {})
65
- end
66
-
67
- child.reinit('somename.en.html', {'lang' => 'de', 'title' => 'test'})
68
- check_proc.call(child, node, 'somename.en.html', 'somename.html', 'somename.de.html',
69
- '/somename.de.html', 'de', {'title' => 'test'})
70
- end
71
-
72
- def test_type_checkers
73
- nodes = create_default_nodes
74
- assert(nodes[:root].is_directory?)
75
- assert(nodes[:somename_en].is_file?)
76
- assert(nodes[:somename_en_frag].is_fragment?)
77
- assert(nodes[:root].is_root?)
78
- assert(!nodes[:somename_en].is_root?)
79
- assert(nodes[:somename_en_fragnest].is_fragment?)
80
- assert(!nodes[:somename_en_fragnest].is_directory?)
81
- end
82
-
83
- def test_meta_info_assignment
84
- node = Webgen::Node.new(@tree.dummy_root, 'test/', 'test', {'lang' => 'de', :test => :value})
85
- node[:test] = :newvalue
86
- node[:other] = :value
87
- assert_equal(:newvalue, node[:test])
88
- assert_equal(:value, node[:other])
89
- end
90
-
91
- def test_flags
92
- node = Webgen::Node.new(@tree.dummy_root, 'test/', 'test', {'lang' => 'de', :test => :value})
93
- assert(node.flagged?(:created))
94
- assert(node.flagged?(:dirty))
95
- node.unflag(:dirty)
96
- assert(!node.flagged?(:dirty))
97
- node.flag(:a, :b, :c)
98
- assert(node.flagged?(:a))
99
- assert(node.flagged?(:b))
100
- assert(node.flagged?(:c))
101
- node.unflag(:a, :b, :c)
102
- assert(!node.flagged?(:a))
103
- assert(!node.flagged?(:b))
104
- assert(!node.flagged?(:c))
105
- end
106
-
107
- def test_in_lang
108
- nodes = create_default_nodes
109
-
110
- assert_equal(nodes[:somename_de], nodes[:somename_en].in_lang('de'))
111
- assert_equal(nodes[:somename_en], nodes[:somename_en].in_lang('en'))
112
- assert_equal(nodes[:somename_en], nodes[:somename_de].in_lang('en'))
113
- assert_equal(nil, nodes[:somename_de].in_lang('fr'))
114
- assert_equal(nil, nodes[:somename_en].in_lang(nil))
115
-
116
- assert_equal(nodes[:other_en], nodes[:other].in_lang('en'))
117
- assert_equal(nodes[:other], nodes[:other].in_lang('de'))
118
- assert_equal(nodes[:other], nodes[:other].in_lang(nil))
119
- assert_equal(nodes[:other], nodes[:other_en].in_lang(nil))
120
- assert_equal(nodes[:other], nodes[:other_en].in_lang('de'))
121
-
122
- assert_equal(nil, nodes[:somename_en_frag].in_lang(nil))
123
- assert_equal(nodes[:somename_en_frag], nodes[:somename_en_frag].in_lang('en'))
124
- assert_equal(nodes[:somename_de_frag], nodes[:somename_en_frag].in_lang('de'))
125
- end
126
-
127
- def test_resolve
128
- nodes = create_default_nodes
129
-
130
- [nodes[:root], nodes[:somename_de], nodes[:somename_en], nodes[:other]].each do |n|
131
- assert_equal(nil, n.resolve('somename.html', nil))
132
- assert_equal(nodes[:somename_en], n.resolve('somename.html', 'en'))
133
- assert_equal(nodes[:somename_de], n.resolve('somename.html', 'de'))
134
- assert_equal(nil, n.resolve('somename.html', 'fr'))
135
- assert_equal(nodes[:somename_en], n.resolve('somename.en.html', nil))
136
- assert_equal(nodes[:somename_en], n.resolve('somename.en.html', 'en'))
137
- assert_equal(nodes[:somename_en], n.resolve('somename.en.html', 'de'))
138
- assert_equal(nil, n.resolve('somename.fr.html', 'de'))
139
-
140
- assert_equal(nodes[:other], n.resolve('other.html', nil))
141
- assert_equal(nodes[:other], n.resolve('other.html', 'fr'))
142
- assert_equal(nodes[:other_en], n.resolve('other.html', 'en'))
143
- assert_equal(nodes[:other_en], n.resolve('other.en.html', nil))
144
- assert_equal(nodes[:other_en], n.resolve('other.en.html', 'de'))
145
- assert_equal(nil, n.resolve('other.fr.html', nil))
146
- assert_equal(nil, n.resolve('other.fr.html', 'en'))
147
- end
148
-
149
- assert_equal(nodes[:somename_en_frag], nodes[:somename_en].resolve('#othertest', 'de'))
150
- assert_equal(nodes[:somename_en_frag], nodes[:somename_en].resolve('#othertest', nil))
151
- assert_equal(nodes[:somename_en_fragnest], nodes[:somename_en].resolve('#nestedpath', nil))
152
-
153
- assert_equal(nil, nodes[:root].resolve('/somename.html#othertest', nil))
154
- assert_equal(nodes[:somename_en_frag], nodes[:root].resolve('/somename.html#othertest', 'en'))
155
- assert_equal(nodes[:somename_de_frag], nodes[:root].resolve('/somename.html#othertest', 'de'))
156
- assert_equal(nodes[:somename_en_frag], nodes[:root].resolve('/somename.en.html#othertest'))
157
- assert_equal(nodes[:somename_de_frag], nodes[:root].resolve('/somename.de.html#othertest'))
158
-
159
- assert_equal(nil, nodes[:dir2].resolve('index.html'))
160
- assert_equal(nodes[:dir2_index_en], nodes[:dir2].resolve('index.html', 'en'))
161
-
162
- assert_equal(nodes[:dir], nodes[:somename_en].resolve('/dir/'))
163
- assert_equal(nodes[:dir], nodes[:somename_en].resolve('/dir'))
164
- assert_equal(nodes[:root], nodes[:somename_en].resolve('/'))
165
- end
166
-
167
- def test_resolve_passive_nodes
168
- nodes = create_default_nodes
169
-
170
- assert_nil(nodes[:root].resolve('/images/webgen_logo.png'))
171
-
172
- shm = Webgen::SourceHandler::Main.new
173
- @website.config['passive_sources'] << ['/', "Webgen::Source::Resource", "webgen-passive-sources"]
174
- node = nodes[:root].resolve('/images/webgen_logo.png')
175
- assert_not_nil(node)
176
- assert_equal('/images/webgen_logo.png', node.alcn)
177
- assert_equal(['/images/', '/images/webgen_logo.png'].to_set, node.node_info[:used_meta_info_nodes])
178
- end
179
-
180
- def test_introspection
181
- node = Webgen::Node.new(@tree.dummy_root, '/', '/', {'lang' => 'de', :test => :value})
182
- assert(node.inspect =~ /alcn=\//)
183
- end
184
-
185
- def test_to_s
186
- node = Webgen::Node.new(@tree.dummy_root, '/', '/', {'lang' => 'de', :test => :value})
187
- assert_equal(node.alcn, node.to_s)
188
- end
189
-
190
- def test_changed
191
- node = Webgen::Node.new(@tree.dummy_root, 'test/', 'test', {'lang' => 'de', :test => :value})
192
- node.unflag(:dirty, :dirty_meta_info, :created)
193
-
194
- calls = 0
195
- @website.blackboard.add_listener(:node_changed?) {|n| assert(node, n); node.flag(:dirty); calls += 1}
196
- assert(node.changed?)
197
- assert_equal(1, calls)
198
- assert(node.changed?)
199
- assert_equal(1, calls)
200
-
201
- # Test :used_nodes array checking
202
- node.unflag(:dirty)
203
- node.node_info[:used_nodes] << node.alcn
204
- node.node_info[:used_nodes] << 'unknown alcn'
205
- node.node_info[:used_nodes] << @tree.dummy_root.alcn
206
- assert(node.changed?)
207
- assert_equal(1, calls)
208
-
209
- # Test :used_nodes array checking
210
- node.unflag(:dirty)
211
- node.node_info[:used_nodes] = Set.new
212
- node.node_info[:used_meta_info_nodes] << node.alcn
213
- assert(node.changed?)
214
- assert_equal(2, calls)
215
- node.unflag(:dirty)
216
- node.node_info[:used_meta_info_nodes] << 'unknown alcn'
217
- assert(node.changed?)
218
- assert_equal(2, calls)
219
-
220
- # Test circular depdendence
221
- other_node = Webgen::Node.new(@tree.dummy_root, '/other', 'test.l', {'lang' => 'de', :test => :value})
222
- other_node.flag(:dirty, :created)
223
- node.flag(:dirty)
224
- other_node.node_info[:used_nodes] = [node.alcn]
225
- node.node_info[:used_nodes] = [other_node.alcn]
226
- node.changed?
227
- end
228
-
229
- def test_user_nodes_changed?
230
- nodes = create_default_nodes
231
-
232
- assert(!nodes[:dir2_index_en].send(:user_nodes_changed?))
233
- nodes[:dir2_index_en]['used_nodes'] = '/some*.html'
234
- assert(nodes[:dir2_index_en].send(:user_nodes_changed?))
235
- nodes[:dir2_index_en]['used_nodes'] = '../some*.html'
236
- assert(nodes[:dir2_index_en].send(:user_nodes_changed?))
237
- nodes[:dir2_index_en]['used_nodes'] = '/someAA*.html'
238
- assert(!nodes[:dir2_index_en].send(:user_nodes_changed?))
239
- nodes[:dir2_index_en]['used_nodes'] = 'index.de.html'
240
- assert(nodes[:dir2_index_en].send(:user_nodes_changed?))
241
- end
242
-
243
- def test_meta_info_changed
244
- node = Webgen::Node.new(@tree.dummy_root, '/', '/')
245
- node.unflag(:dirty, :created)
246
-
247
- calls = 0
248
- @website.blackboard.add_listener(:node_meta_info_changed?) {|n| assert(node, n); node.flag(:dirty_meta_info); calls += 1}
249
- assert(node.meta_info_changed?)
250
- assert_equal(1, calls)
251
- assert(node.meta_info_changed?)
252
- assert_equal(1, calls)
253
- end
254
-
255
- def test_method_missing
256
- node = Webgen::Node.new(@tree.dummy_root, 'test/', 'test', {'lang' => 'de', :test => :value})
257
- assert_raise(NoMethodError) { node.unknown }
258
- obj = @website.cache.instance('Object')
259
- def obj.doit(node); :value; end
260
- node.node_info[:processor] = 'Object'
261
- assert_equal(:value, node.doit)
262
- end
263
-
264
- def test_matching
265
- root = Webgen::Node.new(@tree.dummy_root, '/', '/')
266
- node = Webgen::Node.new(root, 'somefile.de.html', 'somefile.html', {'lang' => 'de'})
267
- assert(node =~ '**/*')
268
- assert(node =~ '**/somefile.de.HTML')
269
- assert(node =~ '/**/somefile.*.html')
270
- assert(node !~ '/somefile.html')
271
- assert(node !~ '**/*.test')
272
- end
273
-
274
- def test_route_to
275
- nodes = create_default_nodes
276
-
277
- #arg is Node
278
- assert_equal('somename.en.html', nodes[:somename_en].route_to(nodes[:somename_en]))
279
- assert_equal('somename.de.html', nodes[:somename_en_frag].route_to(nodes[:somename_de]))
280
- assert_equal('file.html#frag', nodes[:dir].route_to(nodes[:dir_file_frag]))
281
- assert_equal('#frag', nodes[:dir_file].route_to(nodes[:dir_file_frag]))
282
- assert_equal('../dir2/index.html', nodes[:dir_file_frag].route_to(nodes[:dir2_index_en]))
283
- assert_equal('../dir2/index.html', nodes[:dir_file].route_to(nodes[:dir2_index_en]))
284
-
285
- assert_equal('./', nodes[:somename_en].route_to(nodes[:root]))
286
- assert_equal('../', nodes[:dir].route_to(nodes[:root]))
287
- assert_equal('dir/', nodes[:somename_en].route_to(nodes[:dir]))
288
-
289
- #arg is String
290
- assert_equal('somename.en.html', nodes[:somename_en].route_to('somename.en.html'))
291
- assert_equal('../other.html', nodes[:dir_file].route_to('/other.html'))
292
- assert_equal('../other', nodes[:dir_file].route_to('../other'))
293
- assert_equal('document/file2', nodes[:dir_file_frag].route_to('document/file2'))
294
- assert_equal('ftp://test', nodes[:dir].route_to('ftp://test'))
295
-
296
- #test args with '..' and '.': either too many of them or absolute path given
297
- assert_equal('../dir2', nodes[:dir_file].route_to('../../.././dir2'))
298
- assert_equal('../file', nodes[:dir_file].route_to('/dir/../file'))
299
- assert_equal('file', nodes[:dir_file].route_to('dir/../file'))
300
-
301
- #arg is something else
302
- assert_raise(ArgumentError) { nodes[:root].route_to(5) }
303
- end
304
-
305
- def test_routing_node
306
- nodes = create_default_nodes
307
-
308
- assert_equal(nodes[:somename_en], nodes[:somename_en].routing_node('en'))
309
-
310
- assert_equal(nodes[:dir], nodes[:dir].routing_node('en'))
311
- assert_equal(nodes[:dir2_index_en], nodes[:dir2].routing_node('en'))
312
- assert_equal(nodes[:dir2_index_en], nodes[:dir2].routing_node('en'))
313
- @website.cache.volatile.clear
314
- nodes[:dir2].meta_info['index_path'] = 'unknown'
315
- assert_equal(nodes[:dir2], nodes[:dir2].routing_node('en'))
316
- end
317
-
318
- def test_comparision_op
319
- nodes = create_default_nodes
320
- nodes[:somename_en]['title'] = 'somename'
321
- nodes[:other_en]['title'] = 'other'
322
-
323
- assert_equal(0, nodes[:somename_en] <=> nodes[:somename_en])
324
- assert_equal(1, nodes[:somename_en] <=> nodes[:other_en])
325
- assert_equal(-1, nodes[:other_en] <=> nodes[:somename_en])
326
- nodes[:other_en]['sort_info'] = 1
327
- assert_equal(1, nodes[:somename_en] <=> nodes[:other_en])
328
- nodes[:other_en]['sort_info'] = '2008-06-28'
329
- nodes[:somename_en]['sort_info'] = '2008-06-29'
330
- assert_equal(1, nodes[:somename_en] <=> nodes[:other_en])
331
- end
332
-
333
- def test_level
334
- nodes = create_default_nodes
335
- assert_equal(0, nodes[:root].level)
336
- assert_equal(1, nodes[:dir].level)
337
- assert_equal(2, nodes[:dir_file].level)
338
- assert_equal(3, nodes[:dir_file_frag].level)
339
- end
340
-
341
- def test_in_subtree_of
342
- nodes = create_default_nodes
343
-
344
- assert(nodes[:somename_en].in_subtree_of?(nodes[:root]))
345
- assert(nodes[:dir].in_subtree_of?(nodes[:root]))
346
-
347
- assert(nodes[:dir_file].in_subtree_of?(nodes[:dir]))
348
-
349
- assert(nodes[:dir_file_frag].in_subtree_of?(nodes[:root]))
350
- assert(nodes[:dir_file_frag].in_subtree_of?(nodes[:dir]))
351
- assert(nodes[:dir_file_frag].in_subtree_of?(nodes[:dir_file]))
352
-
353
- assert(!nodes[:dir2_index_en].in_subtree_of?(nodes[:dir]))
354
- assert(!nodes[:somename_en].in_subtree_of?(nodes[:dir]))
355
- assert(!nodes[:somename_en].in_subtree_of?(nodes[:dir_file]))
356
- assert(!nodes[:dir_file].in_subtree_of?(nodes[:dir2_index_en]))
357
- end
358
-
359
- def test_link_to
360
- nodes = create_default_nodes
361
-
362
- # general tests
363
- assert_equal('<a href="#frag">frag</a>',
364
- nodes[:somename_en].link_to(nodes[:somename_en_frag]))
365
- assert_equal('<a href="#frag">link_text</a>',
366
- nodes[:somename_en].link_to(nodes[:somename_en_frag], :link_text => 'link_text'))
367
- assert_equal('<a attr1="val1" href="#frag">frag</a>',
368
- nodes[:somename_en].link_to(nodes[:somename_en_frag], 'attr1' => 'val1'))
369
- assert_equal('<a href="#frag">frag</a>',
370
- nodes[:somename_en].link_to(nodes[:somename_en_frag], :attr1 => 'val1'))
371
- assert_equal('<a href="dir2/index.html">index en</a>',
372
- nodes[:somename_en].link_to(nodes[:dir2_index_en]))
373
-
374
- nodes[:somename_en_frag]['link_attrs'] = {:link_text => 'Default Text', 'class'=>'help'}
375
- assert_equal('<a attr1="val1" class="help" href="#frag">link_text</a>',
376
- nodes[:somename_en].link_to(nodes[:somename_en_frag], :link_text => 'link_text', 'attr1' => 'val1'))
377
-
378
- # links to directories
379
- assert_equal('<a href="dir2/index.de.html">routed_de</a>',
380
- nodes[:somename_de].link_to(nodes[:dir2]))
381
- assert_equal('<a href="dir2/index.html">routed</a>',
382
- nodes[:somename_en].link_to(nodes[:dir2]))
383
- assert_equal('<a href="dir2/index.de.html">routed_de</a>',
384
- nodes[:somename_en].link_to(nodes[:dir2], :lang => 'de'))
385
- assert_equal('<span>routed</span>',
386
- nodes[:dir2_index_en].link_to(nodes[:dir2]))
387
-
388
- # varying the website.link_to_current_page option
389
- @website.config['website.link_to_current_page'] = true
390
- assert_equal('<a class="help" href="#frag">Default Text</a>',
391
- nodes[:somename_en_frag].link_to(nodes[:somename_en_frag]))
392
- @website.config['website.link_to_current_page'] = false
393
- assert_equal('<span class="help">Default Text</span>',
394
- nodes[:somename_en_frag].link_to(nodes[:somename_en_frag]))
395
- end
396
-
397
- def test_url
398
- assert_equal("webgen://webgen.localhost/hallo", Webgen::Node.url("hallo").to_s)
399
- assert_equal("webgen://webgen.localhost/hallo%20du", Webgen::Node.url("hallo du").to_s)
400
- assert_equal("webgen://webgen.localhost/hall%C3%B6chen", Webgen::Node.url("hallöchen").to_s)
401
- assert_equal("webgen://webgen.localhost/hallo#du", Webgen::Node.url("hallo#du").to_s)
402
-
403
- assert_equal("webgen://webgen.localhost/test", Webgen::Node.url("/test").to_s)
404
- assert_equal("http://example.com/test", Webgen::Node.url("http://example.com/test").to_s)
405
-
406
- assert_equal("test", Webgen::Node.url("test", false).to_s)
407
- assert_equal("http://example.com/test", Webgen::Node.url("http://example.com/test", false).to_s)
408
- end
409
-
410
- def test_find
411
- nodes = create_default_nodes
412
-
413
- check = lambda do |correct, result|
414
- assert_equal(correct.collect {|n| nodes[n].alcn }, result.to_list.flatten)
415
- end
416
-
417
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag,
418
- :other, :other_en, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de],
419
- nodes[:root].find())
420
-
421
- # :levels
422
- check.call([],
423
- nodes[:root].find(:levels => 0))
424
- check.call([:somename_en, :somename_de, :other, :other_en, :dir, :dir2],
425
- nodes[:root].find(:levels => 1))
426
-
427
- # :alcn
428
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag,
429
- :other, :other_en, :dir, :dir2],
430
- nodes[:root].find(:alcn => '*'))
431
- check.call([:somename_en, :somename_de, :other, :other_en, :dir, :dir2],
432
- nodes[:root].find(:alcn => '*', :levels => 1))
433
- check.call([:somename_en, :other_en],
434
- nodes[:root].find(:alcn => '/*.en.html'))
435
-
436
- # :sort
437
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag,
438
- :other, :other_en, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de],
439
- nodes[:root].find(:sort => false))
440
- check.call([:dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de, :other, :other_en,
441
- :somename_de, :somename_de_frag, :somename_en, :somename_en_frag, :somename_en_fragnest],
442
- nodes[:root].find(:sort => true))
443
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de,
444
- :somename_de, :somename_de_frag, :other_en, :other],
445
- nodes[:root].find(:sort => 'sort_test'))
446
-
447
- # :limit
448
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag],
449
- nodes[:root].find(:limit => 5))
450
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag,
451
- :other, :other_en, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de],
452
- nodes[:root].find(:limit => 100))
453
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag,
454
- :other, :other_en, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de],
455
- nodes[:root].find(:limit => 'hallo'))
456
-
457
- # :offset
458
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag,
459
- :other, :other_en, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de],
460
- nodes[:root].find(:offset => 0))
461
- check.call([:other, :other_en, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de],
462
- nodes[:root].find(:offset => 5))
463
- check.call([:somename_en, :somename_en_frag, :somename_en_fragnest, :somename_de, :somename_de_frag,
464
- :other, :other_en, :dir, :dir_file, :dir_file_frag, :dir2, :dir2_index_en, :dir2_index_de],
465
- nodes[:root].find(:offset => 'hallo'))
466
-
467
- end
468
-
469
- end