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.
- data/API.rdoc +143 -0
- data/AUTHORS +0 -1
- data/COPYING +17 -8
- data/ChangeLog +4456 -0
- data/GPL +623 -289
- data/README.md +71 -0
- data/Rakefile +87 -99
- data/VERSION +1 -1
- data/bin/webgen +1 -7
- data/data/webgen/basic_website_template/ext/init.rb +15 -0
- data/data/webgen/basic_website_template/webgen.config +18 -0
- data/data/webgen/bundle_template_files/README.md.erb +24 -0
- data/data/webgen/bundle_template_files/Rakefile.erb +36 -0
- data/data/webgen/bundle_template_files/info.yaml.erb +16 -0
- data/data/webgen/bundle_template_files/init.rb.erb +1 -0
- data/data/webgen/passive_sources/default.metainfo +32 -0
- data/data/webgen/passive_sources/stylesheets/coderay-default.css +109 -118
- data/data/webgen/passive_sources/templates/feed.template +62 -0
- data/data/webgen/passive_sources/templates/sitemap.template +3 -6
- data/data/webgen/passive_sources/templates/tag.template +42 -0
- data/data/webgen/website_bundles/default/README +2 -2
- data/lib/webgen/blackboard.rb +15 -51
- data/lib/webgen/bundle/built-in-show-changes/init.rb +54 -0
- data/lib/webgen/bundle/built-in/init.rb +366 -0
- data/lib/webgen/bundle_loader.rb +126 -0
- data/lib/webgen/cache.rb +9 -18
- data/lib/webgen/cli.rb +131 -58
- data/lib/webgen/cli/bundle_command.rb +30 -0
- data/lib/webgen/cli/create_bundle_command.rb +46 -0
- data/lib/webgen/cli/create_command.rb +48 -60
- data/lib/webgen/cli/generate_command.rb +25 -0
- data/lib/webgen/cli/install_bundle_command.rb +34 -0
- data/lib/webgen/cli/list_bundle_command.rb +108 -0
- data/lib/webgen/cli/logger.rb +45 -0
- data/lib/webgen/cli/show_command.rb +30 -0
- data/lib/webgen/cli/show_config_command.rb +63 -0
- data/lib/webgen/cli/show_dependencies_command.rb +103 -0
- data/lib/webgen/cli/show_extensions_command.rb +74 -0
- data/lib/webgen/cli/utils.rb +68 -95
- data/lib/webgen/configuration.rb +143 -105
- data/lib/webgen/content_processor.rb +160 -0
- data/lib/webgen/content_processor/blocks.rb +96 -0
- data/lib/webgen/content_processor/builder.rb +25 -0
- data/lib/webgen/content_processor/erb.rb +25 -0
- data/lib/webgen/content_processor/erubis.rb +31 -0
- data/lib/webgen/content_processor/fragments.rb +82 -0
- data/lib/webgen/content_processor/haml.rb +25 -0
- data/lib/webgen/content_processor/html_head.rb +157 -0
- data/lib/webgen/content_processor/kramdown.rb +49 -0
- data/lib/webgen/content_processor/maruku.rb +39 -0
- data/lib/webgen/content_processor/r_discount.rb +21 -0
- data/lib/webgen/content_processor/rdoc.rb +22 -0
- data/lib/webgen/content_processor/redcloth.rb +23 -0
- data/lib/webgen/content_processor/ruby.rb +20 -0
- data/lib/webgen/content_processor/sass.rb +145 -0
- data/lib/webgen/content_processor/scss.rb +23 -0
- data/lib/webgen/content_processor/tags.rb +30 -0
- data/lib/webgen/content_processor/tidy.rb +32 -0
- data/lib/webgen/content_processor/tikz.rb +116 -0
- data/lib/webgen/content_processor/xmllint.rb +31 -0
- data/lib/webgen/context.rb +57 -29
- data/lib/webgen/context/html_head.rb +60 -0
- data/lib/webgen/context/nodes.rb +32 -27
- data/lib/webgen/context/rendering.rb +39 -0
- data/lib/webgen/context/webgen_tags.rb +25 -0
- data/lib/webgen/core_ext.rb +25 -0
- data/lib/webgen/destination.rb +151 -0
- data/lib/webgen/destination/file_system.rb +62 -0
- data/lib/webgen/error.rb +59 -49
- data/lib/webgen/extension_manager.rb +121 -0
- data/lib/webgen/item_tracker.rb +237 -0
- data/lib/webgen/item_tracker/file.rb +39 -0
- data/lib/webgen/item_tracker/missing_node.rb +61 -0
- data/lib/webgen/item_tracker/node_content.rb +40 -0
- data/lib/webgen/item_tracker/node_meta_info.rb +53 -0
- data/lib/webgen/item_tracker/nodes.rb +92 -0
- data/lib/webgen/logger.rb +26 -82
- data/lib/webgen/node.rb +122 -367
- data/lib/webgen/node_finder.rb +336 -0
- data/lib/webgen/page.rb +48 -85
- data/lib/webgen/path.rb +218 -156
- data/lib/webgen/path_handler.rb +400 -0
- data/lib/webgen/path_handler/base.rb +220 -0
- data/lib/webgen/path_handler/copy.rb +78 -0
- data/lib/webgen/path_handler/directory.rb +21 -0
- data/lib/webgen/path_handler/feed.rb +82 -0
- data/lib/webgen/path_handler/meta_info.rb +84 -0
- data/lib/webgen/path_handler/page.rb +38 -0
- data/lib/webgen/path_handler/page_utils.rb +79 -0
- data/lib/webgen/path_handler/sitemap.rb +52 -0
- data/lib/webgen/path_handler/template.rb +96 -0
- data/lib/webgen/path_handler/virtual.rb +85 -0
- data/lib/webgen/{webgentask.rb → rake_task.rb} +31 -27
- data/lib/webgen/source.rb +106 -24
- data/lib/webgen/source/file_system.rb +41 -0
- data/lib/webgen/source/stacked.rb +49 -53
- data/lib/webgen/source/tar_archive.rb +59 -0
- data/lib/webgen/tag.rb +250 -19
- data/lib/webgen/tag/breadcrumb_trail.rb +65 -0
- data/lib/webgen/tag/coderay.rb +32 -35
- data/lib/webgen/tag/date.rb +9 -9
- data/lib/webgen/tag/execute_command.rb +31 -0
- data/lib/webgen/tag/include_file.rb +32 -0
- data/lib/webgen/tag/langbar.rb +31 -47
- data/lib/webgen/tag/link.rb +17 -18
- data/lib/webgen/tag/menu.rb +27 -189
- data/lib/webgen/tag/meta_info.rb +31 -0
- data/lib/webgen/tag/relocatable.rb +48 -39
- data/lib/webgen/tag/tikz.rb +24 -100
- data/lib/webgen/task.rb +99 -0
- data/lib/webgen/task/create_bundle.rb +73 -0
- data/lib/webgen/task/create_website.rb +94 -0
- data/lib/webgen/task/generate_website.rb +47 -0
- data/lib/webgen/test_helper.rb +183 -0
- data/lib/webgen/tree.rb +95 -46
- data/lib/webgen/utils.rb +39 -0
- data/lib/webgen/utils/external_command.rb +27 -0
- data/lib/webgen/utils/tag_parser.rb +124 -0
- data/lib/webgen/version.rb +1 -1
- data/lib/webgen/website.rb +134 -296
- data/setup.rb +1 -1
- data/test/test_documentation.rb +43 -0
- data/test/webgen/cli/test_logger.rb +41 -0
- data/test/{test_contentprocessor_blocks.rb → webgen/content_processor/test_blocks.rb} +30 -28
- data/test/webgen/content_processor/test_builder.rb +25 -0
- data/test/webgen/content_processor/test_erb.rb +21 -0
- data/test/webgen/content_processor/test_erubis.rb +33 -0
- data/test/webgen/content_processor/test_fragments.rb +96 -0
- data/test/webgen/content_processor/test_haml.rb +24 -0
- data/test/webgen/content_processor/test_html_head.rb +78 -0
- data/test/webgen/content_processor/test_kramdown.rb +49 -0
- data/test/webgen/content_processor/test_maruku.rb +30 -0
- data/test/webgen/content_processor/test_r_discount.rb +18 -0
- data/test/webgen/content_processor/test_rdoc.rb +18 -0
- data/test/webgen/content_processor/test_redcloth.rb +23 -0
- data/test/webgen/content_processor/test_ruby.rb +24 -0
- data/test/webgen/content_processor/test_sass.rb +44 -0
- data/test/webgen/content_processor/test_scss.rb +23 -0
- data/test/webgen/content_processor/test_tags.rb +44 -0
- data/test/webgen/content_processor/test_tidy.rb +31 -0
- data/test/webgen/content_processor/test_tikz.rb +33 -0
- data/test/webgen/content_processor/test_xmllint.rb +32 -0
- data/test/webgen/destination/test_file_system.rb +54 -0
- data/test/webgen/item_tracker/test_file.rb +31 -0
- data/test/webgen/item_tracker/test_missing_node.rb +70 -0
- data/test/webgen/item_tracker/test_node_content.rb +42 -0
- data/test/webgen/item_tracker/test_node_meta_info.rb +44 -0
- data/test/webgen/item_tracker/test_nodes.rb +61 -0
- data/test/webgen/path_handler/test_base.rb +153 -0
- data/test/webgen/path_handler/test_copy.rb +56 -0
- data/test/webgen/path_handler/test_feed.rb +85 -0
- data/test/webgen/path_handler/test_meta_info.rb +98 -0
- data/test/webgen/path_handler/test_page.rb +25 -0
- data/test/webgen/path_handler/test_page_utils.rb +59 -0
- data/test/webgen/path_handler/test_sitemap.rb +95 -0
- data/test/webgen/path_handler/test_template.rb +64 -0
- data/test/webgen/path_handler/test_virtual.rb +87 -0
- data/test/webgen/source/test_file_system.rb +51 -0
- data/test/webgen/source/test_stacked.rb +35 -0
- data/test/{test_source_tararchive.rb → webgen/source/test_tar_archive.rb} +10 -25
- data/test/webgen/tag/test_breadcrumb_trail.rb +66 -0
- data/test/webgen/tag/test_coderay.rb +34 -0
- data/test/webgen/tag/test_date.rb +18 -0
- data/test/webgen/tag/test_execute_command.rb +36 -0
- data/test/webgen/tag/test_include_file.rb +35 -0
- data/test/webgen/tag/test_langbar.rb +50 -0
- data/test/webgen/tag/test_link.rb +40 -0
- data/test/webgen/tag/test_menu.rb +61 -0
- data/test/webgen/tag/test_meta_info.rb +25 -0
- data/test/webgen/tag/test_relocatable.rb +50 -0
- data/test/webgen/tag/test_tikz.rb +41 -0
- data/test/webgen/task/test_create_website.rb +46 -0
- data/test/webgen/test_blackboard.rb +31 -0
- data/test/webgen/test_bundle_loader.rb +55 -0
- data/test/{test_cache.rb → webgen/test_cache.rb} +3 -15
- data/test/webgen/test_cli.rb +41 -0
- data/test/webgen/test_configuration.rb +131 -0
- data/test/webgen/test_content_processor.rb +86 -0
- data/test/webgen/test_context.rb +73 -0
- data/test/webgen/test_core_ext.rb +20 -0
- data/test/webgen/test_destination.rb +48 -0
- data/test/webgen/test_error.rb +121 -0
- data/test/webgen/test_extension_manager.rb +70 -0
- data/test/webgen/test_item_tracker.rb +106 -0
- data/test/{test_languages.rb → webgen/test_languages.rb} +4 -4
- data/test/webgen/test_logger.rb +46 -0
- data/test/webgen/test_node.rb +178 -0
- data/test/webgen/test_node_finder.rb +127 -0
- data/test/{test_page.rb → webgen/test_page.rb} +44 -48
- data/test/webgen/test_path.rb +271 -0
- data/test/{test_webgentask.rb → webgen/test_rake_task.rb} +4 -4
- data/test/webgen/test_source.rb +59 -0
- data/test/webgen/test_tag.rb +137 -0
- data/test/webgen/test_task.rb +40 -0
- data/test/webgen/test_tree.rb +147 -0
- data/test/webgen/test_utils.rb +16 -0
- data/test/webgen/test_website.rb +45 -0
- data/test/webgen/utils/test_tag_parser.rb +99 -0
- metadata +292 -344
- data/data/webgen/passive_sources/templates/atom_feed.template +0 -39
- data/data/webgen/passive_sources/templates/rss_feed.template +0 -28
- data/data/webgen/resources.yaml +0 -4
- data/data/webgen/webgui/app.rb +0 -11
- data/data/webgen/webgui/controller/main.rb +0 -135
- data/data/webgen/webgui/layout/default.xhtml +0 -40
- data/data/webgen/webgui/overrides/win32console.rb +0 -0
- data/data/webgen/webgui/public/css/jquery.autocomplete.css +0 -50
- data/data/webgen/webgui/public/css/ramaze_error.css +0 -90
- data/data/webgen/webgui/public/css/style.css +0 -55
- data/data/webgen/webgui/public/img/headerbg.jpg +0 -0
- data/data/webgen/webgui/public/img/webgen_logo.png +0 -0
- data/data/webgen/webgui/public/js/jquery.autocomplete.js +0 -15
- data/data/webgen/webgui/public/js/jquery.js +0 -32
- data/data/webgen/webgui/start.rb +0 -9
- data/data/webgen/webgui/view/create_website.xhtml +0 -14
- data/data/webgen/webgui/view/error.xhtml +0 -64
- data/data/webgen/webgui/view/index.xhtml +0 -22
- data/data/webgen/webgui/view/manage_website.xhtml +0 -18
- data/data/webgen/website_skeleton/README +0 -10
- data/data/webgen/website_skeleton/Rakefile +0 -69
- data/data/webgen/website_skeleton/config.yaml +0 -35
- data/data/webgen/website_skeleton/ext/init.rb +0 -10
- data/doc/contentprocessor.template +0 -11
- data/doc/contentprocessor/blocks.page +0 -129
- data/doc/contentprocessor/builder.page +0 -79
- data/doc/contentprocessor/erb.page +0 -60
- data/doc/contentprocessor/erubis.page +0 -46
- data/doc/contentprocessor/fragments.page +0 -26
- data/doc/contentprocessor/haml.page +0 -46
- data/doc/contentprocessor/head.page +0 -31
- data/doc/contentprocessor/kramdown.page +0 -49
- data/doc/contentprocessor/less.page +0 -34
- data/doc/contentprocessor/maruku.page +0 -44
- data/doc/contentprocessor/rdiscount.page +0 -37
- data/doc/contentprocessor/rdoc.page +0 -36
- data/doc/contentprocessor/redcloth.page +0 -41
- data/doc/contentprocessor/sass.page +0 -31
- data/doc/contentprocessor/scss.page +0 -39
- data/doc/contentprocessor/tags.page +0 -73
- data/doc/contentprocessor/tidy.page +0 -14
- data/doc/contentprocessor/xmllint.page +0 -14
- data/doc/extensions.metainfo +0 -29
- data/doc/extensions.page +0 -15
- data/doc/extensions.template +0 -17
- data/doc/faq.page +0 -222
- data/doc/getting_started.page +0 -135
- data/doc/index.page +0 -71
- data/doc/manual.page +0 -727
- data/doc/reference_configuration.page +0 -1254
- data/doc/reference_metainfo.page +0 -265
- data/doc/reference_website_styles.page +0 -32
- data/doc/source/filesystem.page +0 -41
- data/doc/source/tararchive.page +0 -40
- data/doc/sourcehandler.template +0 -23
- data/doc/sourcehandler/copy.page +0 -19
- data/doc/sourcehandler/directory.page +0 -27
- data/doc/sourcehandler/feed.page +0 -102
- data/doc/sourcehandler/metainfo.page +0 -48
- data/doc/sourcehandler/page.page +0 -14
- data/doc/sourcehandler/sitemap.page +0 -46
- data/doc/sourcehandler/template.page +0 -45
- data/doc/sourcehandler/virtual.page +0 -49
- data/doc/tag.template +0 -25
- data/doc/tag/breadcrumbtrail.page +0 -40
- data/doc/tag/coderay.page +0 -53
- data/doc/tag/date.page +0 -31
- data/doc/tag/executecommand.page +0 -26
- data/doc/tag/includefile.page +0 -32
- data/doc/tag/langbar.page +0 -47
- data/doc/tag/link.page +0 -44
- data/doc/tag/menu.page +0 -109
- data/doc/tag/metainfo.page +0 -29
- data/doc/tag/relocatable.page +0 -38
- data/doc/tag/sitemap.page +0 -31
- data/doc/tag/tikz.page +0 -159
- data/doc/upgrading.page +0 -138
- data/doc/webgen_page_format.page +0 -129
- data/doc/website_styles.metainfo +0 -8
- data/lib/webgen/cli/apply_command.rb +0 -66
- data/lib/webgen/cli/run_command.rb +0 -22
- data/lib/webgen/cli/webgui_command.rb +0 -68
- data/lib/webgen/common.rb +0 -27
- data/lib/webgen/common/sitemap.rb +0 -83
- data/lib/webgen/contentprocessor.rb +0 -117
- data/lib/webgen/contentprocessor/blocks.rb +0 -92
- data/lib/webgen/contentprocessor/builder.rb +0 -29
- data/lib/webgen/contentprocessor/erb.rb +0 -26
- data/lib/webgen/contentprocessor/erubis.rb +0 -39
- data/lib/webgen/contentprocessor/fragments.rb +0 -25
- data/lib/webgen/contentprocessor/haml.rb +0 -34
- data/lib/webgen/contentprocessor/head.rb +0 -128
- data/lib/webgen/contentprocessor/kramdown.rb +0 -27
- data/lib/webgen/contentprocessor/kramdown/html.rb +0 -36
- data/lib/webgen/contentprocessor/less.rb +0 -35
- data/lib/webgen/contentprocessor/maruku.rb +0 -36
- data/lib/webgen/contentprocessor/rdiscount.rb +0 -19
- data/lib/webgen/contentprocessor/rdoc.rb +0 -20
- data/lib/webgen/contentprocessor/redcloth.rb +0 -21
- data/lib/webgen/contentprocessor/sass.rb +0 -22
- data/lib/webgen/contentprocessor/scss.rb +0 -22
- data/lib/webgen/contentprocessor/tags.rb +0 -170
- data/lib/webgen/contentprocessor/tidy.rb +0 -38
- data/lib/webgen/contentprocessor/xmllint.rb +0 -37
- data/lib/webgen/context/render.rb +0 -32
- data/lib/webgen/context/tags.rb +0 -20
- data/lib/webgen/coreext.rb +0 -13
- data/lib/webgen/default_config.rb +0 -240
- data/lib/webgen/loggable.rb +0 -25
- data/lib/webgen/output.rb +0 -86
- data/lib/webgen/output/filesystem.rb +0 -69
- data/lib/webgen/source/filesystem.rb +0 -61
- data/lib/webgen/source/resource.rb +0 -45
- data/lib/webgen/source/tararchive.rb +0 -78
- data/lib/webgen/sourcehandler.rb +0 -275
- data/lib/webgen/sourcehandler/base.rb +0 -281
- data/lib/webgen/sourcehandler/copy.rb +0 -44
- data/lib/webgen/sourcehandler/directory.rb +0 -30
- data/lib/webgen/sourcehandler/feed.rb +0 -92
- data/lib/webgen/sourcehandler/fragment.rb +0 -70
- data/lib/webgen/sourcehandler/memory.rb +0 -42
- data/lib/webgen/sourcehandler/metainfo.rb +0 -128
- data/lib/webgen/sourcehandler/page.rb +0 -64
- data/lib/webgen/sourcehandler/sitemap.rb +0 -60
- data/lib/webgen/sourcehandler/template.rb +0 -66
- data/lib/webgen/sourcehandler/virtual.rb +0 -117
- data/lib/webgen/tag/base.rb +0 -170
- data/lib/webgen/tag/breadcrumbtrail.rb +0 -70
- data/lib/webgen/tag/executecommand.rb +0 -31
- data/lib/webgen/tag/includefile.rb +0 -42
- data/lib/webgen/tag/metainfo.rb +0 -27
- data/lib/webgen/tag/sitemap.rb +0 -41
- data/lib/webgen/websiteaccess.rb +0 -31
- data/lib/webgen/websitemanager.rb +0 -125
- data/misc/default.css +0 -403
- data/misc/default.template +0 -76
- data/misc/htmldoc.metainfo +0 -26
- data/misc/htmldoc.virtual +0 -17
- data/misc/images/arrow.gif +0 -0
- data/misc/images/error.png +0 -0
- data/misc/images/headerbg.jpg +0 -0
- data/misc/images/important.png +0 -0
- data/misc/images/information.png +0 -0
- data/misc/images/quote.gif +0 -0
- data/misc/images/warning.png +0 -0
- data/misc/logo.svg +0 -313
- data/misc/style.page +0 -33
- data/test/helper.rb +0 -61
- data/test/test_blackboard.rb +0 -60
- data/test/test_cli.rb +0 -119
- data/test/test_common_sitemap.rb +0 -58
- data/test/test_configuration.rb +0 -68
- data/test/test_contentprocessor.rb +0 -39
- data/test/test_contentprocessor_builder.rb +0 -41
- data/test/test_contentprocessor_erb.rb +0 -33
- data/test/test_contentprocessor_erubis.rb +0 -62
- data/test/test_contentprocessor_fragments.rb +0 -43
- data/test/test_contentprocessor_haml.rb +0 -39
- data/test/test_contentprocessor_head.rb +0 -96
- data/test/test_contentprocessor_kramdown.rb +0 -56
- data/test/test_contentprocessor_less.rb +0 -40
- data/test/test_contentprocessor_maruku.rb +0 -33
- data/test/test_contentprocessor_rdiscount.rb +0 -21
- data/test/test_contentprocessor_rdoc.rb +0 -22
- data/test/test_contentprocessor_redcloth.rb +0 -26
- data/test/test_contentprocessor_sass.rb +0 -28
- data/test/test_contentprocessor_scss.rb +0 -28
- data/test/test_contentprocessor_tags.rb +0 -122
- data/test/test_contentprocessor_tidy.rb +0 -34
- data/test/test_contentprocessor_xmllint.rb +0 -38
- data/test/test_context.rb +0 -81
- data/test/test_error.rb +0 -93
- data/test/test_loggable.rb +0 -32
- data/test/test_logger.rb +0 -94
- data/test/test_node.rb +0 -469
- data/test/test_output_filesystem.rb +0 -60
- data/test/test_path.rb +0 -241
- data/test/test_source_filesystem.rb +0 -76
- data/test/test_source_resource.rb +0 -28
- data/test/test_source_stacked.rb +0 -49
- data/test/test_sourcehandler_base.rb +0 -136
- data/test/test_sourcehandler_copy.rb +0 -47
- data/test/test_sourcehandler_directory.rb +0 -38
- data/test/test_sourcehandler_feed.rb +0 -88
- data/test/test_sourcehandler_fragment.rb +0 -70
- data/test/test_sourcehandler_main.rb +0 -39
- data/test/test_sourcehandler_memory.rb +0 -44
- data/test/test_sourcehandler_metainfo.rb +0 -127
- data/test/test_sourcehandler_page.rb +0 -73
- data/test/test_sourcehandler_sitemap.rb +0 -68
- data/test/test_sourcehandler_template.rb +0 -68
- data/test/test_sourcehandler_virtual.rb +0 -106
- data/test/test_tag_base.rb +0 -62
- data/test/test_tag_breadcrumbtrail.rb +0 -91
- data/test/test_tag_coderay.rb +0 -45
- data/test/test_tag_date.rb +0 -18
- data/test/test_tag_executecommand.rb +0 -41
- data/test/test_tag_includefile.rb +0 -50
- data/test/test_tag_langbar.rb +0 -71
- data/test/test_tag_link.rb +0 -70
- data/test/test_tag_menu.rb +0 -207
- data/test/test_tag_metainfo.rb +0 -26
- data/test/test_tag_relocatable.rb +0 -60
- data/test/test_tag_sitemap.rb +0 -47
- data/test/test_tag_tikz.rb +0 -69
- data/test/test_tree.rb +0 -70
- data/test/test_website.rb +0 -130
- data/test/test_websiteaccess.rb +0 -25
- data/test/test_websitemanager.rb +0 -65
@@ -1,91 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'webgen/tree'
|
6
|
-
require 'webgen/contentprocessor'
|
7
|
-
require 'webgen/tag'
|
8
|
-
|
9
|
-
class TestTagBreadcrumbTrail < Test::Unit::TestCase
|
10
|
-
|
11
|
-
include Test::WebsiteHelper
|
12
|
-
|
13
|
-
def setup
|
14
|
-
super
|
15
|
-
@obj = Webgen::Tag::BreadcrumbTrail.new
|
16
|
-
end
|
17
|
-
|
18
|
-
def create_default_nodes
|
19
|
-
{
|
20
|
-
:root => root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/', {'index_path' => 'index.html'}),
|
21
|
-
:dir1 => dir1 = Webgen::Node.new(root, '/dir1/', 'dir1/', {'title' => 'Dir1'}),
|
22
|
-
:dir11 => dir11 = Webgen::Node.new(dir1, '/dir1/dir11/', 'dir11/', {'index_path' => 'index.html'}),
|
23
|
-
:index11_en => Webgen::Node.new(dir11, '/dir1/dir11/index.html', 'index.html',
|
24
|
-
{'lang' => 'en', 'routed_title' => 'Dir11', 'title' => 'Index'}),
|
25
|
-
:file11_en => Webgen::Node.new(dir11, '/dir1/dir11/file111.html', 'file111.html',
|
26
|
-
{'lang' => 'en', 'title' => 'File111'}),
|
27
|
-
:index_en => Webgen::Node.new(root, '/index.html', 'index.html', {'lang' => 'en'}),
|
28
|
-
}
|
29
|
-
end
|
30
|
-
|
31
|
-
def call(context, separator, omit_index_path, start_level, end_level)
|
32
|
-
@obj.set_params({'tag.breadcrumbtrail.separator' => separator,
|
33
|
-
'tag.breadcrumbtrail.omit_index_path' => omit_index_path,
|
34
|
-
'tag.breadcrumbtrail.start_level' => start_level,
|
35
|
-
'tag.breadcrumbtrail.end_level' => end_level})
|
36
|
-
result = @obj.call('breadcrumbTrail', '', context)
|
37
|
-
@obj.set_params({})
|
38
|
-
result
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_call
|
42
|
-
nodes = create_default_nodes
|
43
|
-
context = Webgen::Context.new(:chain => [nodes[:file11_en]])
|
44
|
-
|
45
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a> / <a href="index.html">Dir11</a> / <span>File111</span>',
|
46
|
-
call(context, ' / ', false, 0, -1))
|
47
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a> / <a href="index.html">Dir11</a> / <span>File111</span>',
|
48
|
-
call(context, ' / ', true, 0, -1))
|
49
|
-
assert_equal('<a href="../">Dir1</a> / <a href="index.html">Dir11</a>',
|
50
|
-
call(context, ' / ', true, 1, -2))
|
51
|
-
assert_equal('<a href="../">Dir1</a> / <a href="index.html">Dir11</a>',
|
52
|
-
call(context, ' / ', false, 1, -2))
|
53
|
-
|
54
|
-
|
55
|
-
context[:chain] = [nodes[:index11_en]]
|
56
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a> / <span>Dir11</span> / <span>Index</span>',
|
57
|
-
call(context, ' / ', false, 0, -1))
|
58
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a> / <span>Dir11</span>',
|
59
|
-
call(context, ' / ', true, 0, -1))
|
60
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a> / <span>Dir11</span>',
|
61
|
-
call(context, ' / ', false, 0, -2))
|
62
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a>',
|
63
|
-
call(context, ' / ', true, 0, -2))
|
64
|
-
|
65
|
-
assert_equal('<a href="../../index.html"></a> | <a href="../">Dir1</a> | <span>Dir11</span> | <span>Index</span>',
|
66
|
-
call(context, ' | ', false, 0, -1))
|
67
|
-
|
68
|
-
|
69
|
-
nodes[:index11_en]['omit_index_path'] = false
|
70
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a> / <span>Dir11</span> / <span>Index</span>',
|
71
|
-
call(context, ' / ', true, 0, -1))
|
72
|
-
nodes[:index11_en]['omit_index_path'] = true
|
73
|
-
assert_equal('<a href="../../index.html"></a> / <a href="../">Dir1</a> / <span>Dir11</span>',
|
74
|
-
call(context, ' / ', false, 0, -1))
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_node_changed
|
78
|
-
nodes = create_default_nodes
|
79
|
-
context = Webgen::Context.new(:chain => [nodes[:file11_en]])
|
80
|
-
call(context, ' / ', false, 0, -1)
|
81
|
-
|
82
|
-
nodes[:file11_en].unflag(:dirty)
|
83
|
-
@website.blackboard.dispatch_msg(:node_changed?, nodes[:file11_en])
|
84
|
-
assert(!nodes[:file11_en].flagged?(:dirty))
|
85
|
-
|
86
|
-
nodes[:index11_en].flag(:dirty_meta_info)
|
87
|
-
@website.blackboard.dispatch_msg(:node_changed?, nodes[:file11_en])
|
88
|
-
assert(nodes[:file11_en].flagged?(:dirty))
|
89
|
-
end
|
90
|
-
|
91
|
-
end
|
data/test/test_tag_coderay.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'webgen/tag'
|
6
|
-
|
7
|
-
class TestTagCoderay < Test::Unit::TestCase
|
8
|
-
|
9
|
-
include Test::WebsiteHelper
|
10
|
-
|
11
|
-
def setup
|
12
|
-
super
|
13
|
-
@obj = Webgen::Tag::Coderay.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def call(context, body, lang, process, css = 'style')
|
17
|
-
@obj.set_params({'tag.coderay.lang' => lang,
|
18
|
-
'tag.coderay.process' => process,
|
19
|
-
'tag.coderay.css' => css})
|
20
|
-
result = @obj.call('coderay', body, context)
|
21
|
-
@obj.set_params({})
|
22
|
-
result
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_call
|
26
|
-
root = Webgen::Node.new(@website.tree.dummy_root, '/', '/', {'title' => 'Hallo'})
|
27
|
-
context = Webgen::Context.new(:chain => [root])
|
28
|
-
|
29
|
-
assert(call(context, 'TestData', 'html', false).include?('TestData'))
|
30
|
-
assert(call(context, '{title:}', :ruby, true).include?('Hallo'))
|
31
|
-
|
32
|
-
assert(call(context, 'TestData', 'ruby', false, 'other').include?('class="co"'))
|
33
|
-
assert(!@website.tree['/stylesheets/coderay-default.css'])
|
34
|
-
|
35
|
-
@website.blackboard.del_listener(:node_meta_info_changed?, Webgen::SourceHandler::Main.new.method(:meta_info_changed?))
|
36
|
-
@website.config['passive_sources'] << ['/', "Webgen::Source::Resource", "webgen-passive-sources"]
|
37
|
-
assert(call(context, 'TestData', 'ruby', false, 'class').include?('class="co"'))
|
38
|
-
assert(@website.tree['/stylesheets/coderay-default.css'])
|
39
|
-
assert_equal('stylesheets/coderay-default.css', context.persistent[:cp_head][:css_file].first)
|
40
|
-
|
41
|
-
def @obj.require(lib); raise LoadError; end
|
42
|
-
assert_raise(Webgen::LoadError) { @obj.call('coderay', '', context) }
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
data/test/test_tag_date.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'webgen/contentprocessor'
|
6
|
-
require 'webgen/tag'
|
7
|
-
require 'time'
|
8
|
-
|
9
|
-
class TestTagDate < Test::Unit::TestCase
|
10
|
-
|
11
|
-
include Test::WebsiteHelper
|
12
|
-
|
13
|
-
def test_call
|
14
|
-
@obj = Webgen::Tag::Date.new
|
15
|
-
assert_not_nil(Time.parse(@obj.call('date', '', Webgen::Context.new)))
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'webgen/tag'
|
6
|
-
|
7
|
-
class TestTagExecuteCommand < Test::Unit::TestCase
|
8
|
-
|
9
|
-
include Test::WebsiteHelper
|
10
|
-
|
11
|
-
def setup
|
12
|
-
super
|
13
|
-
@obj = Webgen::Tag::ExecuteCommand.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def call(context, command, process, escape)
|
17
|
-
@obj.set_params({'tag.executecommand.command' => command,
|
18
|
-
'tag.executecommand.process_output' => process,
|
19
|
-
'tag.executecommand.escape_html' => escape})
|
20
|
-
result = @obj.call('execute_cmd', '', context)
|
21
|
-
@obj.set_params({})
|
22
|
-
[result.first.chomp.strip, result.last]
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_call
|
26
|
-
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
27
|
-
context = Webgen::Context.new(:chain => [root])
|
28
|
-
|
29
|
-
test_text = "a\"b\""
|
30
|
-
assert_equal([test_text, false], call(context, echo_cmd(test_text), false, false))
|
31
|
-
assert_equal([test_text, true], call(context, echo_cmd(test_text), true, false))
|
32
|
-
assert_equal(['a"b"', true], call(context, echo_cmd(test_text), true, true))
|
33
|
-
assert_equal(['a"b"', true], call(context, echo_cmd(test_text), true, true))
|
34
|
-
assert_raise(Webgen::RenderError) { call(context, 'invalid_echo_command', true, true) }
|
35
|
-
end
|
36
|
-
|
37
|
-
def echo_cmd(data)
|
38
|
-
(Config::CONFIG['host_os'] =~ /mswin|mingw/ ? "echo #{data}" : "echo '#{data}'")
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'fileutils'
|
6
|
-
require 'tempfile'
|
7
|
-
require 'webgen/tag'
|
8
|
-
|
9
|
-
class TestTagIncludeFile < Test::Unit::TestCase
|
10
|
-
|
11
|
-
include Test::WebsiteHelper
|
12
|
-
|
13
|
-
def setup
|
14
|
-
super
|
15
|
-
@obj = Webgen::Tag::IncludeFile.new
|
16
|
-
end
|
17
|
-
|
18
|
-
def call(context, filename, process, escape)
|
19
|
-
@obj.set_params({'tag.includefile.filename' => filename,
|
20
|
-
'tag.includefile.process_output' => process,
|
21
|
-
'tag.includefile.escape_html' => escape})
|
22
|
-
result = @obj.call('include_file', '', context)
|
23
|
-
@obj.set_params({})
|
24
|
-
result
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_call
|
28
|
-
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
29
|
-
context = Webgen::Context.new(:chain => [root])
|
30
|
-
|
31
|
-
content = "<a>This is 'a' Test</a>"
|
32
|
-
file = Tempfile.new('webgen-test-file')
|
33
|
-
file.write(content)
|
34
|
-
file.close
|
35
|
-
|
36
|
-
assert_equal([content, false], call(context, file.path, false, false))
|
37
|
-
assert_equal([content, true], call(context, file.path, true, false))
|
38
|
-
assert_equal([CGI::escapeHTML(content), true], call(context, file.path, true, true))
|
39
|
-
assert_raise(Errno::ENOENT) { call(context, 'invalidfile', true, true) }
|
40
|
-
|
41
|
-
root.unflag(:dirty)
|
42
|
-
@website.blackboard.dispatch_msg(:node_changed?, root)
|
43
|
-
assert(!root.flagged?(:dirty))
|
44
|
-
|
45
|
-
File.utime(Time.now + 1, Time.now + 1, file.path)
|
46
|
-
@website.blackboard.dispatch_msg(:node_changed?, root)
|
47
|
-
assert(root.flagged?(:dirty))
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
data/test/test_tag_langbar.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'webgen/tag'
|
6
|
-
|
7
|
-
class TestTagLangbar < Test::Unit::TestCase
|
8
|
-
|
9
|
-
include Test::WebsiteHelper
|
10
|
-
|
11
|
-
def setup
|
12
|
-
super
|
13
|
-
@obj = Webgen::Tag::Langbar.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def create_default_nodes
|
17
|
-
{
|
18
|
-
:root => root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/', {'index_path' => 'index.html'}),
|
19
|
-
:file_en => Webgen::Node.new(root, '/file1.html', 'file1.html', {'lang' => 'en', 'title' => 'File1'}),
|
20
|
-
:index_en => Webgen::Node.new(root, '/index.html', 'index.html', {'lang' => 'en'}),
|
21
|
-
:index_de => Webgen::Node.new(root, '/index.de.html', 'index.html', {'lang' => 'de'}),
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_call
|
26
|
-
nodes = create_default_nodes
|
27
|
-
|
28
|
-
de_link = '<a href="index.de.html">de</a>'
|
29
|
-
en_link = '<span class="webgen-langbar-current-lang">en</span>'
|
30
|
-
check_results(nodes[:index_en], "#{de_link} | #{en_link}", de_link, "#{de_link} | #{en_link}", de_link)
|
31
|
-
|
32
|
-
check_results(nodes[:file_en], en_link, '', '', '')
|
33
|
-
|
34
|
-
@obj.set_params('tag.langbar.show_single_lang' => true, 'tag.langbar.show_own_lang' => true, 'tag.langbar.separator' => ' --- ')
|
35
|
-
assert_equal(["#{de_link} --- #{en_link}", false],
|
36
|
-
@obj.call('langbar', '', Webgen::Context.new(:chain => [nodes[:index_en]])))
|
37
|
-
|
38
|
-
@obj.set_params('tag.langbar.show_single_lang' => true, 'tag.langbar.show_own_lang' => true,
|
39
|
-
'tag.langbar.lang_names' => {'de' => 'Deutsch'})
|
40
|
-
assert_equal(["<a href=\"index.de.html\">Deutsch</a> | #{en_link}", false],
|
41
|
-
@obj.call('langbar', '', Webgen::Context.new(:chain => [nodes[:index_en]])))
|
42
|
-
|
43
|
-
@obj.set_params('tag.langbar.show_single_lang' => true, 'tag.langbar.show_own_lang' => true,
|
44
|
-
'tag.langbar.process_output' => true)
|
45
|
-
assert_equal(["#{de_link} | #{en_link}", true],
|
46
|
-
@obj.call('langbar', '', Webgen::Context.new(:chain => [nodes[:index_en]])))
|
47
|
-
|
48
|
-
nodes[:index_en].unflag(:dirty)
|
49
|
-
@website.blackboard.dispatch_msg(:node_changed?, nodes[:index_en])
|
50
|
-
assert(!nodes[:index_en].flagged?(:dirty))
|
51
|
-
nodes[:index_en].tree.delete_node(nodes[:index_de])
|
52
|
-
@website.blackboard.dispatch_msg(:node_changed?, nodes[:index_en])
|
53
|
-
assert(nodes[:index_en].flagged?(:dirty))
|
54
|
-
end
|
55
|
-
|
56
|
-
def check_results(node, both_true, both_false, first_false, second_false)
|
57
|
-
context = Webgen::Context.new(:chain => [node])
|
58
|
-
@obj.set_params('tag.langbar.show_single_lang'=>true, 'tag.langbar.show_own_lang'=>true)
|
59
|
-
assert_equal(both_true, @obj.call('langbar', '', context).first)
|
60
|
-
|
61
|
-
@obj.set_params('tag.langbar.show_single_lang'=>false, 'tag.langbar.show_own_lang'=>false)
|
62
|
-
assert_equal(both_false, @obj.call('langbar', '', context).first)
|
63
|
-
|
64
|
-
@obj.set_params('tag.langbar.show_single_lang'=>false, 'tag.langbar.show_own_lang'=>true)
|
65
|
-
assert_equal(first_false, @obj.call('langbar', '', context).first)
|
66
|
-
|
67
|
-
@obj.set_params('tag.langbar.show_single_lang'=>true, 'tag.langbar.show_own_lang'=>false)
|
68
|
-
assert_equal(second_false, @obj.call('langbar', '', context).first)
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
data/test/test_tag_link.rb
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'webgen/tree'
|
6
|
-
require 'webgen/contentprocessor'
|
7
|
-
require 'webgen/tag'
|
8
|
-
|
9
|
-
class TestTagLink < Test::Unit::TestCase
|
10
|
-
|
11
|
-
include Test::WebsiteHelper
|
12
|
-
|
13
|
-
def setup
|
14
|
-
super
|
15
|
-
@obj = Webgen::Tag::Link.new
|
16
|
-
end
|
17
|
-
|
18
|
-
def call(context)
|
19
|
-
@obj.call('link', '', context)
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_call
|
23
|
-
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
24
|
-
node = Webgen::Node.new(root, '/file.html', 'file.html', {'lang' => 'en'})
|
25
|
-
dir = Webgen::Node.new(root, '/dir/', 'dir/', 'index_path' => "index.html")
|
26
|
-
file = Webgen::Node.new(dir, '/dir/file.html', 'file.html', {'lang' => 'en', 'title' => 'Dir/File'})
|
27
|
-
Webgen::Node.new(dir, '/dir/other.de.html', 'other.html', {'lang' => 'de'})
|
28
|
-
Webgen::Node.new(file, '/dir/file.html#fragment', '#fragment')
|
29
|
-
dir2 = Webgen::Node.new(root, '/dir2/', 'dir2/', 'index_path' => "index.html")
|
30
|
-
Webgen::Node.new(dir2, '/dir2/index.html', 'index.html')
|
31
|
-
|
32
|
-
context = Webgen::Context.new(:chain => [node])
|
33
|
-
|
34
|
-
# no path set
|
35
|
-
node.unflag(:dirty)
|
36
|
-
@obj.set_params('tag.link.path' => nil)
|
37
|
-
assert_equal('<span></span>', call(context))
|
38
|
-
assert(!node.flagged?(:dirty))
|
39
|
-
|
40
|
-
# invalid paths
|
41
|
-
@obj.set_params('tag.link.path' => ':/asdf=-)')
|
42
|
-
assert_raise(Webgen::RenderError) { call(context) }
|
43
|
-
|
44
|
-
# basic node resolving
|
45
|
-
@obj.set_params('tag.link.path' => 'dir/file.html')
|
46
|
-
assert_equal('<a href="dir/file.html">Dir/File</a>', call(context))
|
47
|
-
@obj.set_params('tag.link.path' => 'dir/file.html', 'tag.link.attr' => {'title' => 'other'})
|
48
|
-
assert_equal('<a href="dir/file.html" title="other">Dir/File</a>', call(context))
|
49
|
-
@obj.set_params('tag.link.path' => 'dir/other.html')
|
50
|
-
assert_equal('', call(context))
|
51
|
-
assert(node.flagged?(:dirty))
|
52
|
-
|
53
|
-
# non-existing fragments
|
54
|
-
@obj.set_params('tag.link.path' => 'file.html#hallo')
|
55
|
-
assert_equal('', call(context))
|
56
|
-
|
57
|
-
# directory paths
|
58
|
-
@obj.set_params('tag.link.path' => 'dir')
|
59
|
-
assert_equal('<a href="dir/"></a>', call(context))
|
60
|
-
@obj.set_params('tag.link.path' => 'dir2')
|
61
|
-
assert_equal('<a href="dir2/index.html"></a>', call(context))
|
62
|
-
|
63
|
-
# used node information correctly set
|
64
|
-
node.node_info[:used_meta_info_nodes] = Set.new
|
65
|
-
@obj.set_params('tag.link.path' => 'dir/file.html')
|
66
|
-
call(context)
|
67
|
-
assert(Set.new([file.alcn]), node.node_info[:used_meta_info_nodes])
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
data/test/test_tag_menu.rb
DELETED
@@ -1,207 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'test/unit'
|
4
|
-
require 'helper'
|
5
|
-
require 'webgen/tree'
|
6
|
-
require 'webgen/contentprocessor'
|
7
|
-
require 'webgen/tag'
|
8
|
-
|
9
|
-
class TestTagMenu < Test::Unit::TestCase
|
10
|
-
|
11
|
-
include Test::WebsiteHelper
|
12
|
-
|
13
|
-
def setup
|
14
|
-
super
|
15
|
-
@obj = Webgen::Tag::Menu.new
|
16
|
-
end
|
17
|
-
|
18
|
-
def create_default_nodes
|
19
|
-
{
|
20
|
-
:root => root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/', {'index_path' => 'index.html'}),
|
21
|
-
:dir1 => dir1 = Webgen::Node.new(root, '/dir1/', 'dir1/'),
|
22
|
-
:dir11 => dir11 = Webgen::Node.new(dir1, '/dir1/dir11/', 'dir11/', {'index_path' => 'index.html'}),
|
23
|
-
:file111_en => Webgen::Node.new(dir11, '/dir1/dir11/file111.en.html', 'file111.html', {'lang' => 'en', 'in_menu' => true}),
|
24
|
-
:file111_de => Webgen::Node.new(dir11, '/dir1/dir11/file111.de.html', 'file111.html', {'lang' => 'de', 'in_menu' => true}),
|
25
|
-
:index11_en => Webgen::Node.new(dir11, '/dir1/dir11/index.en.html', 'index.html', {'lang' => 'en', 'in_menu' => true}),
|
26
|
-
:file11_en => file11 = Webgen::Node.new(dir1, '/dir1/file11.en.html', 'file11.html', {'lang' => 'en', 'in_menu' => true}),
|
27
|
-
:file11_en_f1 => file11_f1 = Webgen::Node.new(file11, '/dir1/file11.en.html#f1', '#f1', {'in_menu' => true}),
|
28
|
-
:file11_en_f11 => Webgen::Node.new(file11_f1, '/dir1/file11.en.html#f11', '#f11', {'in_menu' => true}),
|
29
|
-
:file11_en_f2 => Webgen::Node.new(file11, '/dir1/file11.en.html#f2', '#f2', {'in_menu' => true}),
|
30
|
-
:dir2 => dir2 = Webgen::Node.new(root, '/dir2/', 'dir2/'),
|
31
|
-
:file21_en => Webgen::Node.new(dir2, '/dir2/file21.en.html', 'file21.html', {'lang' => 'en', 'in_menu' => true}),
|
32
|
-
:dir3 => dir3 = Webgen::Node.new(root, '/dir3/', 'dir3/'),
|
33
|
-
:file31_en => file31 = Webgen::Node.new(dir3, '/dir3/file31.en.html', 'file31.html', {'lang' => 'en', 'in_menu' => false}),
|
34
|
-
:file31_en_f1 => Webgen::Node.new(file31, '/dir3/file31.en.html#f1', '#f1', {'in_menu' => true}),
|
35
|
-
:file1_de => Webgen::Node.new(root, '/file1.de.html', 'file1.html', {'lang' => 'de', 'in_menu' => true}),
|
36
|
-
:index_en => Webgen::Node.new(root, '/index.en.html', 'index.html', {'lang' => 'en'}),
|
37
|
-
}
|
38
|
-
end
|
39
|
-
|
40
|
-
def build_menu(node, options)
|
41
|
-
@obj.set_params(options_hash(*options))
|
42
|
-
output = @obj.send(:specific_menu_tree_for, node)
|
43
|
-
@obj.set_params({})
|
44
|
-
output
|
45
|
-
end
|
46
|
-
|
47
|
-
def options_hash(start_level, min_levels, max_levels, subtree, used_nodes = 'all')
|
48
|
-
{'tag.menu.start_level' => start_level, 'tag.menu.min_levels' => min_levels, 'tag.menu.max_levels' => max_levels,
|
49
|
-
'tag.menu.show_current_subtree_only' => subtree, 'tag.menu.used_nodes' => used_nodes }
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_call
|
53
|
-
nodes = create_default_nodes
|
54
|
-
|
55
|
-
output = @obj.call('menu', '', Webgen::Context.new(:chain => [nodes[:file11_en]]))
|
56
|
-
assert_equal("<ul><li class=\"webgen-menu-level1 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"./\"></a>" +
|
57
|
-
"<ul><li class=\"webgen-menu-level2 webgen-menu-submenu\"><a href=\"dir11/index.en.html\"></a></li>" +
|
58
|
-
"<li class=\"webgen-menu-level2 webgen-menu-item-selected\"><span></span></li></ul></li>" +
|
59
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../dir2/\"></a></li>" +
|
60
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../dir3/\"></a></li></ul>", output)
|
61
|
-
|
62
|
-
output = @obj.call('menu', '', Webgen::Context.new(:chain => [nodes[:index11_en]]))
|
63
|
-
assert_equal("<ul><li class=\"webgen-menu-level1 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"../\"></a>" +
|
64
|
-
"<ul><li class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><span></span>" +
|
65
|
-
"<ul><li class=\"webgen-menu-level3\"><a href=\"file111.en.html\"></a></li>" +
|
66
|
-
"<li class=\"webgen-menu-level3 webgen-menu-item-selected\"><span></span></li></ul></li>" +
|
67
|
-
"<li class=\"webgen-menu-level2\"><a href=\"../file11.en.html\"></a></li></ul></li>" +
|
68
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../../dir2/\"></a></li>" +
|
69
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../../dir3/\"></a></li></ul>", output)
|
70
|
-
|
71
|
-
@obj.set_params('tag.menu.nested' => false)
|
72
|
-
output = @obj.call('menu', '', Webgen::Context.new(:chain => [nodes[:index11_en]]))
|
73
|
-
@obj.set_params({})
|
74
|
-
assert_equal("<ul><li class=\"webgen-menu-level1 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"../\"></a></li>" +
|
75
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../../dir2/\"></a></li>" +
|
76
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../../dir3/\"></a></li></ul>" +
|
77
|
-
"<ul><li class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><span></span></li>" +
|
78
|
-
"<li class=\"webgen-menu-level2\"><a href=\"../file11.en.html\"></a></li></ul>" +
|
79
|
-
"<ul><li class=\"webgen-menu-level3\"><a href=\"file111.en.html\"></a></li>" +
|
80
|
-
"<li class=\"webgen-menu-level3 webgen-menu-item-selected\"><span></span></li></ul>", output)
|
81
|
-
|
82
|
-
@obj.set_params('tag.menu.used_nodes' => 'fragments')
|
83
|
-
output = @obj.call('menu', '', Webgen::Context.new(:chain => [nodes[:file11_en]]))
|
84
|
-
@obj.set_params({})
|
85
|
-
assert_equal("<ul><li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"#f1\"></a></li>" +
|
86
|
-
"<li class=\"webgen-menu-level1\"><a href=\"#f2\"></a></li></ul>", output)
|
87
|
-
|
88
|
-
@obj.set_params('tag.menu.start_level' => 5)
|
89
|
-
output = @obj.call('menu', '', Webgen::Context.new(:chain => [nodes[:file11_en]]))
|
90
|
-
@obj.set_params({})
|
91
|
-
assert_equal("", output)
|
92
|
-
|
93
|
-
nodes.each {|k,v| v.unflag(:dirty)}
|
94
|
-
@website.blackboard.dispatch_msg(:node_changed?, nodes[:file11_en])
|
95
|
-
assert(!nodes[:file11_en].flagged?(:dirty))
|
96
|
-
|
97
|
-
nodes[:index11_en].flag(:dirty_meta_info)
|
98
|
-
@website.blackboard.dispatch_msg(:node_changed?, nodes[:file11_en])
|
99
|
-
assert(nodes[:file11_en].flagged?(:dirty))
|
100
|
-
|
101
|
-
nodes.each {|k,v| v.unflag(:dirty)}
|
102
|
-
nodes[:file11_en_f2]['in_menu'] = false
|
103
|
-
@website.blackboard.dispatch_msg(:node_changed?, nodes[:file11_en])
|
104
|
-
assert(nodes[:file11_en].flagged?(:dirty))
|
105
|
-
end
|
106
|
-
|
107
|
-
def test_menu_tree_for_lang_and_create_menu_tree
|
108
|
-
nodes = create_default_nodes
|
109
|
-
|
110
|
-
tree_en = @obj.send(:menu_tree_for_lang, 'en', nodes[:root])
|
111
|
-
expected = [nodes[:dir1], nodes[:dir11], nodes[:file111_en], nodes[:index11_en],
|
112
|
-
nodes[:file11_en], nodes[:file11_en_f1], nodes[:file11_en_f11], nodes[:file11_en_f2],
|
113
|
-
nodes[:dir2], nodes[:file21_en],
|
114
|
-
nodes[:dir3], nodes[:file31_en], nodes[:file31_en_f1]].collect {|n| n.alcn}
|
115
|
-
|
116
|
-
assert_equal(expected, tree_en.to_lcn_list.flatten)
|
117
|
-
|
118
|
-
tree_de = @obj.send(:menu_tree_for_lang, 'de', nodes[:root])
|
119
|
-
expected = [nodes[:dir1], nodes[:dir11], nodes[:file111_de], nodes[:file1_de]].collect {|n| n.alcn}
|
120
|
-
|
121
|
-
assert_equal(expected, tree_de.to_lcn_list.flatten)
|
122
|
-
end
|
123
|
-
|
124
|
-
def test_specific_menu_tree_for_and_build_specific_menu_tree
|
125
|
-
nodes = create_default_nodes
|
126
|
-
|
127
|
-
# testing min_levels and max_levels
|
128
|
-
output = build_menu(nodes[:index_en], [1, 1, 1, true])
|
129
|
-
expected = [nodes[:dir1], nodes[:dir2], nodes[:dir3]].collect {|n| n.alcn}
|
130
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
131
|
-
|
132
|
-
output = build_menu(nodes[:index_en], [1, 2, 1, true])
|
133
|
-
expected = [nodes[:dir1], nodes[:dir2], nodes[:dir3]].collect {|n| n.alcn}
|
134
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
135
|
-
|
136
|
-
output = build_menu(nodes[:index_en], [1, 2, 2, true])
|
137
|
-
expected = [nodes[:dir1], nodes[:dir11], nodes[:file11_en], nodes[:dir2], nodes[:file21_en],
|
138
|
-
nodes[:dir3], nodes[:file31_en]].collect {|n| n.alcn}
|
139
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
140
|
-
|
141
|
-
# testing show_current_subtree_only
|
142
|
-
output = build_menu(nodes[:file11_en], [1, 1, 2, true])
|
143
|
-
expected = [nodes[:dir1], nodes[:dir11], nodes[:file11_en], nodes[:dir2], nodes[:dir3]].collect {|n| n.alcn}
|
144
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
145
|
-
|
146
|
-
output = build_menu(nodes[:file11_en], [1, 1, 2, false])
|
147
|
-
expected = [nodes[:dir1], nodes[:dir11], nodes[:file11_en], nodes[:dir2], nodes[:file21_en],
|
148
|
-
nodes[:dir3], nodes[:file31_en]].collect {|n| n.alcn}
|
149
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
150
|
-
|
151
|
-
# testing start_level
|
152
|
-
output = build_menu(nodes[:index_en], [2, 1, 1, true])
|
153
|
-
assert_equal([], output.to_lcn_list.flatten)
|
154
|
-
|
155
|
-
output = build_menu(nodes[:file11_en], [2, 1, 2, true])
|
156
|
-
expected = [nodes[:dir11], nodes[:file11_en]].collect {|n| n.alcn}
|
157
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
158
|
-
|
159
|
-
output = build_menu(nodes[:file11_en], [2, 1, 2, false])
|
160
|
-
expected = [nodes[:dir11], nodes[:file11_en]].collect {|n| n.alcn}
|
161
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
162
|
-
|
163
|
-
output = build_menu(nodes[:file11_en], [2, 2, 2, false])
|
164
|
-
expected = [nodes[:dir11], nodes[:file111_en], nodes[:index11_en],
|
165
|
-
nodes[:file11_en], nodes[:file11_en_f1], nodes[:file11_en_f2]].collect {|n| n.alcn}
|
166
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
167
|
-
|
168
|
-
output = build_menu(nodes[:file111_en], [2, 1, 2, true])
|
169
|
-
expected = [nodes[:dir11], nodes[:file111_en], nodes[:index11_en], nodes[:file11_en]].collect {|n| n.alcn}
|
170
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
171
|
-
|
172
|
-
# testing used_nodes=files setting
|
173
|
-
output = build_menu(nodes[:file11_en], [2, 2, 2, false, 'files'])
|
174
|
-
expected = [nodes[:dir11], nodes[:file111_en], nodes[:index11_en], nodes[:file11_en]].collect {|n| n.alcn}
|
175
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
176
|
-
|
177
|
-
output = build_menu(nodes[:file11_en], [1, 1, 1, true, 'files'])
|
178
|
-
expected = [nodes[:dir1], nodes[:dir2]].collect {|n| n.alcn}
|
179
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
180
|
-
|
181
|
-
# testing used_nodes=fragments setting
|
182
|
-
output = build_menu(nodes[:file11_en], [1, 1, 2, false, 'fragments'])
|
183
|
-
expected = [nodes[:file11_en_f1], nodes[:file11_en_f2]].collect {|n| n.alcn}
|
184
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
185
|
-
|
186
|
-
output = build_menu(nodes[:file11_en], [1, 2, 2, false, 'fragments'])
|
187
|
-
expected = [nodes[:file11_en_f1], nodes[:file11_en_f11], nodes[:file11_en_f2]].collect {|n| n.alcn}
|
188
|
-
assert_equal(expected, output.to_lcn_list.flatten)
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_create_output_and_menu_item_details
|
192
|
-
nodes = create_default_nodes
|
193
|
-
tree = build_menu(nodes[:file111_en], [1, 2, 3, true])
|
194
|
-
context = Webgen::Context.new(:chain => [nodes[:file111_en]])
|
195
|
-
assert_equal("<ul><li class=\"webgen-menu-level1 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"../\"></a>" +
|
196
|
-
"<ul><li class=\"webgen-menu-level2 webgen-menu-submenu webgen-menu-submenu-inhierarchy\"><a href=\"index.en.html\"></a>" +
|
197
|
-
"<ul><li class=\"webgen-menu-level3 webgen-menu-item-selected\"><span></span></li>" +
|
198
|
-
"<li class=\"webgen-menu-level3\"><a href=\"index.en.html\"></a></li></ul></li>" +
|
199
|
-
"<li class=\"webgen-menu-level2\"><a href=\"../file11.en.html\"></a></li></ul></li>" +
|
200
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../../dir2/\"></a>" +
|
201
|
-
"<ul><li class=\"webgen-menu-level2\"><a href=\"../../dir2/file21.en.html\"></a></li></ul></li>" +
|
202
|
-
"<li class=\"webgen-menu-level1 webgen-menu-submenu\"><a href=\"../../dir3/\"></a>" +
|
203
|
-
"<ul><li class=\"webgen-menu-level2\"><a href=\"../../dir3/file31.en.html\"></a></li></ul></li></ul>",
|
204
|
-
@obj.send(:create_output_nested, context, tree))
|
205
|
-
end
|
206
|
-
|
207
|
-
end
|