adva_cms 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/NOTES +132 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/adva_cms.gemspec +22 -0
- data/app/assets/images/adva_cms/admin/header_bg.png +0 -0
- data/app/assets/images/adva_cms/admin/section_menu_bg.png +0 -0
- data/app/assets/images/adva_cms/admin/tab_action_active.png +0 -0
- data/app/assets/images/adva_cms/admin/tab_main_active.png +0 -0
- data/app/assets/images/adva_cms/admin/tab_sidebar_active.png +0 -0
- data/app/assets/images/adva_cms/admin/tab_top_active.png +0 -0
- data/app/assets/images/adva_cms/asset_selected.png +0 -0
- data/app/assets/images/adva_cms/avatar.gif +0 -0
- data/app/assets/images/adva_cms/filter-bg.png +0 -0
- data/app/assets/images/adva_cms/icons/accept.png +0 -0
- data/app/assets/images/adva_cms/icons/add.png +0 -0
- data/app/assets/images/adva_cms/icons/arrow_cross.png +0 -0
- data/app/assets/images/adva_cms/icons/arrow_cross_2.png +0 -0
- data/app/assets/images/adva_cms/icons/arrow_cross_3.png +0 -0
- data/app/assets/images/adva_cms/icons/arrow_up_down.png +0 -0
- data/app/assets/images/adva_cms/icons/assets/audio.png +0 -0
- data/app/assets/images/adva_cms/icons/assets/doc.png +0 -0
- data/app/assets/images/adva_cms/icons/assets/pdf.png +0 -0
- data/app/assets/images/adva_cms/icons/assets/video.png +0 -0
- data/app/assets/images/adva_cms/icons/attach.png +0 -0
- data/app/assets/images/adva_cms/icons/bin.png +0 -0
- data/app/assets/images/adva_cms/icons/bin_closed.png +0 -0
- data/app/assets/images/adva_cms/icons/bin_empty.png +0 -0
- data/app/assets/images/adva_cms/icons/bullet_black.png +0 -0
- data/app/assets/images/adva_cms/icons/bullet_delete.png +0 -0
- data/app/assets/images/adva_cms/icons/bullet_error.png +0 -0
- data/app/assets/images/adva_cms/icons/bullet_go.png +0 -0
- data/app/assets/images/adva_cms/icons/bullet_red.png +0 -0
- data/app/assets/images/adva_cms/icons/bullet_white.png +0 -0
- data/app/assets/images/adva_cms/icons/bullet_yellow.png +0 -0
- data/app/assets/images/adva_cms/icons/cancel.png +0 -0
- data/app/assets/images/adva_cms/icons/comment.gif +0 -0
- data/app/assets/images/adva_cms/icons/comment.png +0 -0
- data/app/assets/images/adva_cms/icons/comment_add.png +0 -0
- data/app/assets/images/adva_cms/icons/comment_blue.gif +0 -0
- data/app/assets/images/adva_cms/icons/comment_delete.png +0 -0
- data/app/assets/images/adva_cms/icons/comment_edit.png +0 -0
- data/app/assets/images/adva_cms/icons/comment_yellow.gif +0 -0
- data/app/assets/images/adva_cms/icons/cross.png +0 -0
- data/app/assets/images/adva_cms/icons/delete.png +0 -0
- data/app/assets/images/adva_cms/icons/eye.png +0 -0
- data/app/assets/images/adva_cms/icons/favorites.png +0 -0
- data/app/assets/images/adva_cms/icons/help.png +0 -0
- data/app/assets/images/adva_cms/icons/hourglass.png +0 -0
- data/app/assets/images/adva_cms/icons/icon_attachment.gif +0 -0
- data/app/assets/images/adva_cms/icons/icon_padlock.gif +0 -0
- data/app/assets/images/adva_cms/icons/link.png +0 -0
- data/app/assets/images/adva_cms/icons/lock.png +0 -0
- data/app/assets/images/adva_cms/icons/magnifier.png +0 -0
- data/app/assets/images/adva_cms/icons/minus.gif +0 -0
- data/app/assets/images/adva_cms/icons/page_add.png +0 -0
- data/app/assets/images/adva_cms/icons/page_delete.png +0 -0
- data/app/assets/images/adva_cms/icons/page_edit.png +0 -0
- data/app/assets/images/adva_cms/icons/page_favorites.png +0 -0
- data/app/assets/images/adva_cms/icons/page_go.png +0 -0
- data/app/assets/images/adva_cms/icons/page_green.png +0 -0
- data/app/assets/images/adva_cms/icons/page_red.png +0 -0
- data/app/assets/images/adva_cms/icons/page_white_add.png +0 -0
- data/app/assets/images/adva_cms/icons/page_white_delete.png +0 -0
- data/app/assets/images/adva_cms/icons/page_white_edit.png +0 -0
- data/app/assets/images/adva_cms/icons/page_white_go.png +0 -0
- data/app/assets/images/adva_cms/icons/page_white_link.png +0 -0
- data/app/assets/images/adva_cms/icons/page_white_magnify.png +0 -0
- data/app/assets/images/adva_cms/icons/pencil.png +0 -0
- data/app/assets/images/adva_cms/icons/star.png +0 -0
- data/app/assets/images/adva_cms/icons/stop.png +0 -0
- data/app/assets/images/adva_cms/icons/tag_green.png +0 -0
- data/app/assets/images/adva_cms/icons/tick.png +0 -0
- data/app/assets/images/adva_cms/icons/zoom.png +0 -0
- data/app/assets/images/adva_cms/indicator.gif +0 -0
- data/app/assets/images/adva_cms/preview.png +0 -0
- data/app/assets/images/adva_cms/rails.png +0 -0
- data/app/assets/images/adva_cms/sortable_tree/drag.png +0 -0
- data/app/assets/images/adva_cms/theme_selected.png +0 -0
- data/app/assets/javascripts/admin.js +1 -0
- data/app/assets/javascripts/adva_cms/admin/jquery.admin.js +23 -0
- data/app/assets/javascripts/adva_cms/admin/jquery.article.js +22 -0
- data/app/assets/javascripts/adva_cms/admin/jquery.cached_pages.js +14 -0
- data/app/assets/javascripts/adva_cms/admin/jquery.table_tree.js +7 -0
- data/app/assets/javascripts/adva_cms/application.js +14 -0
- data/app/assets/javascripts/adva_cms/base.js +4 -0
- data/app/assets/javascripts/adva_cms/cookie.js +49 -0
- data/app/assets/javascripts/adva_cms/jquery.common.js +41 -0
- data/app/assets/javascripts/adva_cms/jquery.dates.js +51 -0
- data/app/assets/javascripts/adva_cms/jquery.flash.js +57 -0
- data/app/assets/javascripts/adva_cms/jquery.roles.js +25 -0
- data/app/assets/javascripts/adva_cms/jquery/jquery-lowpro.js +224 -0
- data/app/assets/javascripts/adva_cms/jquery/jquery.qtip.js +2085 -0
- data/app/assets/javascripts/adva_cms/jquery/jquery.table_tree.js +307 -0
- data/app/assets/javascripts/adva_cms/jquery/jquery.tablednd_0_5.js +386 -0
- data/app/assets/javascripts/adva_cms/json.js +139 -0
- data/app/assets/stylesheets/admin.css +1 -0
- data/app/assets/stylesheets/adva_cms/admin.css +16 -0
- data/app/assets/stylesheets/adva_cms/admin/alternate/common.css +76 -0
- data/app/assets/stylesheets/adva_cms/admin/alternate/forms.css +121 -0
- data/app/assets/stylesheets/adva_cms/admin/alternate/header.css +125 -0
- data/app/assets/stylesheets/adva_cms/admin/alternate/layout.css +103 -0
- data/app/assets/stylesheets/adva_cms/admin/alternate/lists.css +153 -0
- data/app/assets/stylesheets/adva_cms/admin/alternate/sidebar.css +65 -0
- data/app/assets/stylesheets/adva_cms/admin/alternate/top.css +123 -0
- data/app/assets/stylesheets/adva_cms/admin/common.css +76 -0
- data/app/assets/stylesheets/adva_cms/admin/content.css +11 -0
- data/app/assets/stylesheets/adva_cms/admin/forms.css +116 -0
- data/app/assets/stylesheets/adva_cms/admin/header.css +114 -0
- data/app/assets/stylesheets/adva_cms/admin/helptip.css +35 -0
- data/app/assets/stylesheets/adva_cms/admin/layout.css +56 -0
- data/app/assets/stylesheets/adva_cms/admin/lists.css +152 -0
- data/app/assets/stylesheets/adva_cms/admin/projection.css +118 -0
- data/app/assets/stylesheets/adva_cms/admin/reset.css +25 -0
- data/app/assets/stylesheets/adva_cms/admin/screen/top.css +8 -0
- data/app/assets/stylesheets/adva_cms/admin/sidebar.css +67 -0
- data/app/assets/stylesheets/adva_cms/admin/themes.css +49 -0
- data/app/assets/stylesheets/adva_cms/admin/top.css +83 -0
- data/app/assets/stylesheets/adva_cms/admin/users.css +40 -0
- data/app/assets/stylesheets/adva_cms/common.css +49 -0
- data/app/assets/stylesheets/adva_cms/default.css +201 -0
- data/app/assets/stylesheets/adva_cms/forms.css +60 -0
- data/app/assets/stylesheets/adva_cms/jquery/alternate/jquery.tooltip.css +13 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_888888_256x240.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/stylesheets/adva_cms/jquery/jquery-ui.css +406 -0
- data/app/assets/stylesheets/adva_cms/jquery/jquery.tooltip.css +10 -0
- data/app/assets/stylesheets/adva_cms/layout/login.css +8 -0
- data/app/assets/stylesheets/adva_cms/layout/simple.css +8 -0
- data/app/assets/stylesheets/adva_cms/menu.css +129 -0
- data/app/assets/stylesheets/adva_cms/reset.css +25 -0
- data/app/controllers/admin/base_controller.rb +101 -0
- data/app/controllers/admin/categories_controller.rb +3 -0
- data/app/controllers/admin/install_controller.rb +61 -0
- data/app/controllers/admin/page/articles_controller.rb +150 -0
- data/app/controllers/admin/page/categories_controller.rb +62 -0
- data/app/controllers/admin/page/contents_controller.rb +52 -0
- data/app/controllers/admin/page/links_controller.rb +69 -0
- data/app/controllers/admin/pages_controller.rb +2 -0
- data/app/controllers/admin/plugins_controller.rb +40 -0
- data/app/controllers/admin/sections_controller.rb +91 -0
- data/app/controllers/admin/sites_controller.rb +99 -0
- data/app/controllers/articles_controller.rb +81 -0
- data/app/controllers/base_controller.rb +82 -0
- data/app/helpers/admin/base_helper.rb +106 -0
- data/app/helpers/base_helper.rb +56 -0
- data/app/helpers/content_helper.rb +90 -0
- data/app/helpers/resource_helper.rb +127 -0
- data/app/models/article.rb +40 -0
- data/app/models/categorization.rb +4 -0
- data/app/models/category.rb +60 -0
- data/app/models/content.rb +155 -0
- data/app/models/event.rb +34 -0
- data/app/models/link.rb +4 -0
- data/app/models/page.rb +36 -0
- data/app/models/section.rb +126 -0
- data/app/models/site.rb +104 -0
- data/app/views/admin/cached_pages/_filter.html.erb +8 -0
- data/app/views/admin/cached_pages/destroy.js.erb +18 -0
- data/app/views/admin/cached_pages/index.html.erb +26 -0
- data/app/views/admin/install/confirmation.html.erb +10 -0
- data/app/views/admin/install/index.html.erb +38 -0
- data/app/views/admin/page/articles/_form.html.erb +40 -0
- data/app/views/admin/page/articles/_options.html.erb +20 -0
- data/app/views/admin/page/articles/edit.html.erb +15 -0
- data/app/views/admin/page/articles/new.html.erb +12 -0
- data/app/views/admin/page/categories/edit.html.erb +22 -0
- data/app/views/admin/page/categories/index.html.erb +23 -0
- data/app/views/admin/page/categories/new.html.erb +19 -0
- data/app/views/admin/page/contents/index.html.erb +40 -0
- data/app/views/admin/page/links/_form.html.erb +26 -0
- data/app/views/admin/page/links/_options.html.erb +23 -0
- data/app/views/admin/page/links/edit.html.erb +12 -0
- data/app/views/admin/page/links/new.html.erb +12 -0
- data/app/views/admin/plugins/_form.html.erb +11 -0
- data/app/views/admin/plugins/index.html.erb +16 -0
- data/app/views/admin/plugins/show.html.erb +43 -0
- data/app/views/admin/sections/_form.html.haml +20 -0
- data/app/views/admin/sections/edit.html.haml +6 -0
- data/app/views/admin/sections/index.html.erb +27 -0
- data/app/views/admin/sections/new.html.erb +29 -0
- data/app/views/admin/sections/settings/_page.html.haml +10 -0
- data/app/views/admin/shared/_header.html.erb +18 -0
- data/app/views/admin/shared/_language_select.html.erb +6 -0
- data/app/views/admin/shared/_section.html.erb +8 -0
- data/app/views/admin/shared/_section_summary.html.erb +23 -0
- data/app/views/admin/shared/_section_tree.html.erb +23 -0
- data/app/views/admin/sites/_email_notifications.html.erb +9 -0
- data/app/views/admin/sites/_form.html.erb +15 -0
- data/app/views/admin/sites/_recent_users.html.erb +11 -0
- data/app/views/admin/sites/_sections.html.erb +10 -0
- data/app/views/admin/sites/_unapproved_comments.html.erb +10 -0
- data/app/views/admin/sites/edit.html.erb +4 -0
- data/app/views/admin/sites/index.html.erb +21 -0
- data/app/views/admin/sites/multi_sites_disabled.html.erb +11 -0
- data/app/views/admin/sites/new.html.erb +21 -0
- data/app/views/admin/sites/show.html.erb +16 -0
- data/app/views/categories/_checkboxes.html.erb +12 -0
- data/app/views/layouts/admin.html.haml +50 -0
- data/app/views/layouts/default.html.erb +38 -0
- data/app/views/layouts/simple.html.erb +22 -0
- data/app/views/pages/articles/index.html.erb +10 -0
- data/app/views/pages/articles/show.html.erb +17 -0
- data/app/views/shared/_flash.html.erb +3 -0
- data/app/views/shared/_footer.html.erb +4 -0
- data/app/views/shared/_menu.html.erb +10 -0
- data/app/views/shared/_sidebar.html.erb +19 -0
- data/app/views/shared/messages/insufficient_permissions.html.erb +4 -0
- data/config/environment.rb +21 -0
- data/config/initializers/has_options.rb +2 -0
- data/config/initializers/has_permalink.rb +27 -0
- data/config/initializers/mailer.rb +12 -0
- data/config/initializers/menus.rb +184 -0
- data/config/initializers/roles.rb +91 -0
- data/config/initializers/settings.rb +26 -0
- data/config/initializers/site.rb +5 -0
- data/config/initializers/translations_are_a_pain.rb +9 -0
- data/config/locales/en.yml +1295 -0
- data/config/routes.rb +47 -0
- data/db/migrate/20080401000001_create_sites_table.rb +28 -0
- data/db/migrate/20080401000002_create_sections_table.rb +25 -0
- data/db/migrate/20080401000003_create_contents_table.rb +35 -0
- data/db/migrate/20080401000004_create_categories_table.rb +17 -0
- data/db/migrate/20080401000005_create_category_assignments.rb +12 -0
- data/db/migrate/20080401000006_create_taggable_tables.rb +26 -0
- data/db/migrate/20080710000000_create_plugin_configs.rb +13 -0
- data/db/migrate/20080715131051_plugin_owner_column.rb +13 -0
- data/db/migrate/20081208161500_add_content_type_to_join_tables.rb +10 -0
- data/db/migrate/20090216114034_rename_category_assignment_to_categorization.rb +13 -0
- data/db/migrate/20090305123429_move_sections_to_pages.rb +9 -0
- data/db/migrate/20090519132700_add_published_at_to_sections.rb +10 -0
- data/db/migrate/20090702085459_create_section_translations.rb +9 -0
- data/db/migrate/20090702200226_create_category_translations.rb +9 -0
- data/db/migrate/20090707171100_upgrade_paperclip_paths.rb +31 -0
- data/db/migrate/20090709111934_add_email_notification_to_site.rb +12 -0
- data/db/migrate/20091026000906_add_nesting_to_articles.rb +26 -0
- data/db/migrate/20140721000000_add_title_to_contents.rb +7 -0
- data/lib/adva_cms.rb +50 -0
- data/lib/adva_cms/version.rb +3 -0
- data/lib/core_ext.rb +7 -0
- data/lib/extensible_forms.rb +283 -0
- data/lib/has_options.rb +46 -0
- data/lib/html_diff.rb +48 -0
- data/lib/rails_ext.rb +15 -0
- data/lib/rails_ext/action_controller/cacheable_flash.rb +30 -0
- data/lib/rails_ext/action_controller/content_for_assignments.rb +105 -0
- data/lib/rails_ext/action_controller/default_params.rb +19 -0
- data/lib/rails_ext/action_controller/event_helper.rb +18 -0
- data/lib/rails_ext/action_controller/page_caching.rb +23 -0
- data/lib/rails_ext/action_controller/render_with_error_proc.rb +46 -0
- data/lib/rails_ext/action_controller/responds_to_parent.rb +46 -0
- data/lib/rails_ext/action_controller/url_for_returning.rb +12 -0
- data/lib/rails_ext/active_record/exists.rb +5 -0
- data/lib/rails_ext/active_record/sti_instantiation.rb +35 -0
- data/lib/rails_ext/active_record/sticky_changes.rb +30 -0
- data/lib/rails_ext/railties/plugin.rb +58 -0
- data/lib/rails_ext/railties/plugin_configuration.rb +72 -0
- data/lib/rails_ext/railties/plugin_initializers.rb +25 -0
- data/lib/registry.rb +49 -0
- data/lib/tasks/adva_cms.rake +178 -0
- data/lib/tasks/translation.rake +69 -0
- data/lib/time_hacks.rb +57 -0
- data/lib/webrat_patch.rb +11 -0
- data/locale/rails/fr.yml +123 -0
- data/test/NOTES +56 -0
- data/test/contexts.rb +365 -0
- data/test/fixtures.rb +190 -0
- data/test/fixtures/templates/alternative_templates/index.html.erb +1 -0
- data/test/fixtures/templates/context_templates_test/index.html.erb +1 -0
- data/test/fixtures/templates/context_templates_test/show.html.erb +0 -0
- data/test/fixtures/templates/layouts/alternative.html.erb +0 -0
- data/test/fixtures/templates/layouts/default.html.erb +0 -0
- data/test/fixtures/templates/menu/shared/_menu.html.erb +8 -0
- data/test/functional/admin/articles_controller_test.rb +329 -0
- data/test/functional/admin/base_controller_test.rb +68 -0
- data/test/functional/admin/cached_pages_controller_test.rb +66 -0
- data/test/functional/admin/categories_controller_test.rb +164 -0
- data/test/functional/admin/cells_controller_spec.rb +32 -0
- data/test/functional/admin/install_controller_test.rb +89 -0
- data/test/functional/admin/plugins_controller_test.rb +93 -0
- data/test/functional/admin/sections_controller_test.rb +201 -0
- data/test/functional/admin/sites_controller_test.rb +240 -0
- data/test/functional/asset_tag_expansions_test.rb +82 -0
- data/test/functional/base_controller_test.rb +73 -0
- data/test/functional/page_articles_controller_test.rb +168 -0
- data/test/functional/page_articles_routes_test.rb +73 -0
- data/test/integration/admin/cached_pages_test.rb +43 -0
- data/test/integration/admin/categories_test.rb +66 -0
- data/test/integration/admin/custom_templates_test.rb +42 -0
- data/test/integration/admin/filtering_articles_test.rb +32 -0
- data/test/integration/admin/plugins.rb +32 -0
- data/test/integration/admin/section_article_test.rb +150 -0
- data/test/integration/admin/section_test.rb +88 -0
- data/test/integration/admin/sites_test.rb +48 -0
- data/test/integration/installation_test.rb +109 -0
- data/test/integration/page_article_comment_test.rb +51 -0
- data/test/integration/page_article_test.rb +87 -0
- data/test/integration/section_index_test.rb +37 -0
- data/test/javascript/assets/jquery-lowpro.js +224 -0
- data/test/javascript/assets/jquery-ui.js +298 -0
- data/test/javascript/assets/jquery.js +4376 -0
- data/test/javascript/assets/testrunner.js +815 -0
- data/test/javascript/assets/testsuite.css +120 -0
- data/test/javascript/lib/jstest.rb +588 -0
- data/test/javascript/templates/test_case.erb +33 -0
- data/test/plugins/adva_context_templates/context_templates_test.rb +138 -0
- data/test/plugins/adva_post_ping/controller/integration_test.rb +78 -0
- data/test/plugins/adva_post_ping/post_ping_test.rb +94 -0
- data/test/plugins/adva_url_history/article_test.rb +94 -0
- data/test/plugins/adva_url_history/init_url_history.rb +18 -0
- data/test/plugins/adva_url_history/section_test.rb +49 -0
- data/test/test_helper.rb +75 -0
- data/test/test_helper/clear_directories.rb +16 -0
- data/test/test_helper/ensure_single_site_mode.rb +10 -0
- data/test/test_helper/extensions/cacheable_flash.rb +14 -0
- data/test/test_helper/extensions/cronjob.rb +11 -0
- data/test/test_helper/extensions/even_test_log.rb +21 -0
- data/test/test_helper/extensions/integration_test.rb +78 -0
- data/test/test_helper/extensions/matchy.rb +365 -0
- data/test/test_helper/extensions/matchy_adva_cms.rb +441 -0
- data/test/test_helper/extensions/rails_patch.rb +40 -0
- data/test/test_helper/extensions/rr.rb +7 -0
- data/test/test_helper/extensions/test_unit.rb +35 -0
- data/test/test_helper/extensions/with_sugar.rb +166 -0
- data/test/test_helper/parse_options.rb +18 -0
- data/test/test_helper/setup_db_transaction.rb +15 -0
- data/test/test_helper/setup_webrat.rb +9 -0
- data/test/test_helper/test_server/init.rb +15 -0
- data/test/unit/helpers/admin/base_helper_test.rb +139 -0
- data/test/unit/helpers/base_helper_spec.rb +54 -0
- data/test/unit/helpers/base_helper_test.rb +165 -0
- data/test/unit/helpers/content_helper_test.rb +127 -0
- data/test/unit/helpers/resource_helper_test.rb +180 -0
- data/test/unit/i18n_test.rb +22 -0
- data/test/unit/lib/cells_ext_spec.rb +96 -0
- data/test/unit/lib/extensible_forms_test.rb +362 -0
- data/test/unit/lib/menu_test.rb +119 -0
- data/test/unit/lib/rails_ext/content_for_assignments_test.rb +75 -0
- data/test/unit/lib/rails_ext/plugin_configuration_test.rb +40 -0
- data/test/unit/lib/rails_ext/sticky_changes_test.rb +33 -0
- data/test/unit/lib/registry_test.rb +91 -0
- data/test/unit/lib/routing_filter/routing_filter_categories_spec.rb +63 -0
- data/test/unit/lib/routing_filter/routing_filter_categories_test.rb +159 -0
- data/test/unit/lib/routing_filter/routing_filter_locale_spec.rb +73 -0
- data/test/unit/lib/routing_filter/routing_filter_root_blog_archive_spec.rb +40 -0
- data/test/unit/lib/routing_filter/routing_filter_root_section_articles_spec.rb +48 -0
- data/test/unit/lib/routing_filter/routing_filter_root_wikipages_spec.rb +40 -0
- data/test/unit/lib/routing_filter/routing_filter_sections_spec.rb +143 -0
- data/test/unit/lib/routing_filter/routing_filter_sections_test.rb +32 -0
- data/test/unit/lib/routing_filter/routing_filter_sets_test.rb +86 -0
- data/test/unit/models/article_test.rb +191 -0
- data/test/unit/models/category_test.rb +68 -0
- data/test/unit/models/content_test.rb +409 -0
- data/test/unit/models/counter_test.rb +43 -0
- data/test/unit/models/event_test.rb +41 -0
- data/test/unit/models/nested_categories_test.rb +34 -0
- data/test/unit/models/page_test.rb +63 -0
- data/test/unit/models/section_test.rb +315 -0
- data/test/unit/models/site_test.rb +199 -0
- data/test/unit/observers/activities_article_observer_test.rb +42 -0
- data/vendor/gems/belongs_to_cacheable/.gitignore +17 -0
- data/vendor/gems/belongs_to_cacheable/Gemfile +4 -0
- data/vendor/gems/belongs_to_cacheable/LICENSE +22 -0
- data/vendor/gems/belongs_to_cacheable/README.md +29 -0
- data/vendor/gems/belongs_to_cacheable/Rakefile +2 -0
- data/vendor/gems/belongs_to_cacheable/belongs_to_cacheable.gemspec +22 -0
- data/vendor/gems/belongs_to_cacheable/init.rb +1 -0
- data/vendor/gems/belongs_to_cacheable/lib/active_record/belongs_to_cacheable.rb +77 -0
- data/vendor/gems/belongs_to_cacheable/lib/belongs_to_cacheable.rb +3 -0
- data/vendor/gems/belongs_to_cacheable/lib/belongs_to_cacheable/version.rb +3 -0
- data/vendor/gems/belongs_to_cacheable/spec/belongs_to_cacheable_spec.rb +52 -0
- data/vendor/gems/belongs_to_cacheable/spec/spec_helper.rb +50 -0
- data/vendor/gems/filtered_column/.gitignore +17 -0
- data/vendor/gems/filtered_column/Gemfile +4 -0
- data/vendor/gems/filtered_column/LICENSE +22 -0
- data/vendor/gems/filtered_column/README +4 -0
- data/vendor/gems/filtered_column/README.md +29 -0
- data/vendor/gems/filtered_column/Rakefile +23 -0
- data/vendor/gems/filtered_column/filtered_column.gemspec +17 -0
- data/vendor/gems/filtered_column/lib/filtered_column.rb +17 -0
- data/vendor/gems/filtered_column/lib/filtered_column/filters/base.rb +28 -0
- data/vendor/gems/filtered_column/lib/filtered_column/filters/smartypants_filter.rb +14 -0
- data/vendor/gems/filtered_column/lib/filtered_column/filters/textile_filter.rb +13 -0
- data/vendor/gems/filtered_column/lib/filtered_column/macros/base.rb +25 -0
- data/vendor/gems/filtered_column/lib/filtered_column/mixin.rb +46 -0
- data/vendor/gems/filtered_column/lib/filtered_column/processor.rb +52 -0
- data/vendor/gems/filtered_column/lib/filtered_column/version.rb +3 -0
- data/vendor/gems/filtered_column/tasks/filtered_column_tasks.rake +4 -0
- data/vendor/gems/filtered_column/test/abstract_unit.rb +73 -0
- data/vendor/gems/filtered_column/test/filtered_column_test.rb +53 -0
- data/vendor/gems/filtered_column/test/macro_filter_test.rb +23 -0
- data/vendor/gems/has_counter/.gitignore +17 -0
- data/vendor/gems/has_counter/Gemfile +4 -0
- data/vendor/gems/has_counter/LICENSE +22 -0
- data/vendor/gems/has_counter/MIT-LICENSE +20 -0
- data/vendor/gems/has_counter/README.markdown +64 -0
- data/vendor/gems/has_counter/README.md +29 -0
- data/vendor/gems/has_counter/Rakefile +2 -0
- data/vendor/gems/has_counter/db/migrate/20080601194338_create_counters_table.rb.rb +13 -0
- data/vendor/gems/has_counter/has_counter.gemspec +17 -0
- data/vendor/gems/has_counter/lib/active_record/has_counter.rb +64 -0
- data/vendor/gems/has_counter/lib/counter.rb +23 -0
- data/vendor/gems/has_counter/lib/has_counter.rb +4 -0
- data/vendor/gems/has_counter/lib/has_counter/version.rb +3 -0
- data/vendor/gems/has_counter/spec/has_counter.spec.log +0 -0
- data/vendor/gems/has_counter/spec/has_counter.sqlite3.db +0 -0
- data/vendor/gems/has_counter/spec/has_counter_spec.rb +55 -0
- data/vendor/gems/has_counter/spec/spec_helper.rb +117 -0
- data/vendor/gems/has_filter/.gitignore +17 -0
- data/vendor/gems/has_filter/Gemfile +4 -0
- data/vendor/gems/has_filter/LICENSE +22 -0
- data/vendor/gems/has_filter/README.md +29 -0
- data/vendor/gems/has_filter/Rakefile +2 -0
- data/vendor/gems/has_filter/app/assets/images/has_filter/filter_add.png +0 -0
- data/vendor/gems/has_filter/app/assets/images/has_filter/filter_button_left.png +0 -0
- data/vendor/gems/has_filter/app/assets/images/has_filter/filter_button_right.png +0 -0
- data/vendor/gems/has_filter/app/assets/images/has_filter/filter_remove.png +0 -0
- data/vendor/gems/has_filter/app/assets/javascripts/has_filter/filter.js +35 -0
- data/vendor/gems/has_filter/app/assets/javascripts/has_filter/jquery.filter.js +23 -0
- data/vendor/gems/has_filter/app/assets/stylesheets/has_filter/alternate/filter.css +102 -0
- data/vendor/gems/has_filter/app/assets/stylesheets/has_filter/filter.css +100 -0
- data/vendor/gems/has_filter/app/helpers/filter_helper.rb +3 -0
- data/vendor/gems/has_filter/has_filter.gemspec +17 -0
- data/vendor/gems/has_filter/init.rb +3 -0
- data/vendor/gems/has_filter/lib/has_filter.rb +22 -0
- data/vendor/gems/has_filter/lib/has_filter/active_record/act_macro.rb +102 -0
- data/vendor/gems/has_filter/lib/has_filter/filter.rb +17 -0
- data/vendor/gems/has_filter/lib/has_filter/filter/base.rb +67 -0
- data/vendor/gems/has_filter/lib/has_filter/filter/categorized.rb +24 -0
- data/vendor/gems/has_filter/lib/has_filter/filter/chain.rb +45 -0
- data/vendor/gems/has_filter/lib/has_filter/filter/set.rb +80 -0
- data/vendor/gems/has_filter/lib/has_filter/filter/state.rb +25 -0
- data/vendor/gems/has_filter/lib/has_filter/filter/tagged.rb +22 -0
- data/vendor/gems/has_filter/lib/has_filter/filter/text.rb +55 -0
- data/vendor/gems/has_filter/lib/has_filter/version.rb +3 -0
- data/vendor/gems/has_filter/test/db/setup.rb +45 -0
- data/vendor/gems/has_filter/test/db/test.sqlite3.db +0 -0
- data/vendor/gems/has_filter/test/fixtures.rb +15 -0
- data/vendor/gems/has_filter/test/has_filter/filter_chain_test.rb +41 -0
- data/vendor/gems/has_filter/test/has_filter/filter_scopes_test.rb +102 -0
- data/vendor/gems/has_filter/test/has_filter/filter_tags_test.rb +113 -0
- data/vendor/gems/has_filter/test/has_filter/integration.rb +15 -0
- data/vendor/gems/has_filter/test/has_filter/scopes_test.rb +48 -0
- data/vendor/gems/has_filter/test/log/test.log +34346 -0
- data/vendor/gems/has_filter/test/models.rb +23 -0
- data/vendor/gems/has_filter/test/templates/has_filter/test/index.html.erb +5 -0
- data/vendor/gems/has_filter/test/test_helper.rb +66 -0
- data/vendor/gems/simple_taggable/.gitignore +17 -0
- data/vendor/gems/simple_taggable/Gemfile +4 -0
- data/vendor/gems/simple_taggable/LICENSE +22 -0
- data/vendor/gems/simple_taggable/README +24 -0
- data/vendor/gems/simple_taggable/README.md +29 -0
- data/vendor/gems/simple_taggable/Rakefile +2 -0
- data/vendor/gems/simple_taggable/lib/simple_taggable.rb +153 -0
- data/vendor/gems/simple_taggable/lib/simple_taggable/version.rb +3 -0
- data/vendor/gems/simple_taggable/lib/tag.rb +31 -0
- data/vendor/gems/simple_taggable/lib/tag_list.rb +90 -0
- data/vendor/gems/simple_taggable/lib/tagging.rb +8 -0
- data/vendor/gems/simple_taggable/simple_taggable.gemspec +17 -0
- data/vendor/gems/simple_taggable/test/db/schema.rb +41 -0
- data/vendor/gems/simple_taggable/test/db/simple_taggable.sqlite3.db +0 -0
- data/vendor/gems/simple_taggable/test/fixtures/magazine.rb +3 -0
- data/vendor/gems/simple_taggable/test/fixtures/magazines.yml +2 -0
- data/vendor/gems/simple_taggable/test/fixtures/photo.rb +8 -0
- data/vendor/gems/simple_taggable/test/fixtures/photos.yml +19 -0
- data/vendor/gems/simple_taggable/test/fixtures/post.rb +5 -0
- data/vendor/gems/simple_taggable/test/fixtures/posts.yml +27 -0
- data/vendor/gems/simple_taggable/test/fixtures/subscription.rb +4 -0
- data/vendor/gems/simple_taggable/test/fixtures/subscriptions.yml +3 -0
- data/vendor/gems/simple_taggable/test/fixtures/taggings.yml +112 -0
- data/vendor/gems/simple_taggable/test/fixtures/tags.yml +14 -0
- data/vendor/gems/simple_taggable/test/fixtures/user.rb +6 -0
- data/vendor/gems/simple_taggable/test/fixtures/users.yml +5 -0
- data/vendor/gems/simple_taggable/test/log/simple_taggable.log +1614 -0
- data/vendor/gems/simple_taggable/test/simple_taggable_test.rb +226 -0
- data/vendor/gems/simple_taggable/test/tag_list_test.rb +105 -0
- data/vendor/gems/simple_taggable/test/test_helper.rb +80 -0
- data/vendor/gems/table_builder/.gitignore +17 -0
- data/vendor/gems/table_builder/Gemfile +4 -0
- data/vendor/gems/table_builder/LICENSE +22 -0
- data/vendor/gems/table_builder/README.md +29 -0
- data/vendor/gems/table_builder/Rakefile +2 -0
- data/vendor/gems/table_builder/lib/table_builder.rb +27 -0
- data/vendor/gems/table_builder/lib/table_builder/body.rb +28 -0
- data/vendor/gems/table_builder/lib/table_builder/cell.rb +21 -0
- data/vendor/gems/table_builder/lib/table_builder/column.rb +26 -0
- data/vendor/gems/table_builder/lib/table_builder/foot.rb +6 -0
- data/vendor/gems/table_builder/lib/table_builder/head.rb +16 -0
- data/vendor/gems/table_builder/lib/table_builder/row.rb +40 -0
- data/vendor/gems/table_builder/lib/table_builder/rows.rb +26 -0
- data/vendor/gems/table_builder/lib/table_builder/table.rb +75 -0
- data/vendor/gems/table_builder/lib/table_builder/tag.rb +58 -0
- data/vendor/gems/table_builder/lib/table_builder/version.rb +3 -0
- data/vendor/gems/table_builder/table_builder.gemspec +17 -0
- data/vendor/gems/table_builder/test/fixtures/templates/table_all.html.erb +20 -0
- data/vendor/gems/table_builder/test/fixtures/templates/table_auto_body.html.erb +3 -0
- data/vendor/gems/table_builder/test/fixtures/templates/table_auto_columns.html.erb +1 -0
- data/vendor/gems/table_builder/test/fixtures/templates/table_simple.html.erb +7 -0
- data/vendor/gems/table_builder/test/table_builder/table_test.rb +230 -0
- data/vendor/gems/table_builder/test/test_helper.rb +49 -0
- data/vendor/gems/tags/.gitignore +17 -0
- data/vendor/gems/tags/Gemfile +4 -0
- data/vendor/gems/tags/LICENSE +22 -0
- data/vendor/gems/tags/README.md +29 -0
- data/vendor/gems/tags/Rakefile +2 -0
- data/vendor/gems/tags/lib/breadcrumbs.rb +13 -0
- data/vendor/gems/tags/lib/menu.rb +179 -0
- data/vendor/gems/tags/lib/menu/builder.rb +74 -0
- data/vendor/gems/tags/lib/tags.rb +7 -0
- data/vendor/gems/tags/lib/tags/tag.rb +125 -0
- data/vendor/gems/tags/lib/tags/version.rb +3 -0
- data/vendor/gems/tags/tags.gemspec +17 -0
- data/vendor/gems/tags/test/tags/menu_test.rb +173 -0
- data/vendor/gems/tags/test/tags/tag_test.rb +13 -0
- data/vendor/gems/tags/test/test_helper.rb +18 -0
- data/vendor/gems/xss_terminate/.gitignore +17 -0
- data/vendor/gems/xss_terminate/Gemfile +4 -0
- data/vendor/gems/xss_terminate/LICENSE +22 -0
- data/vendor/gems/xss_terminate/MIT-LICENSE +20 -0
- data/vendor/gems/xss_terminate/README +94 -0
- data/vendor/gems/xss_terminate/README.md +29 -0
- data/vendor/gems/xss_terminate/Rakefile +23 -0
- data/vendor/gems/xss_terminate/lib/html5lib_sanitize.rb +2453 -0
- data/vendor/gems/xss_terminate/lib/rails_sanitize.rb +8 -0
- data/vendor/gems/xss_terminate/lib/xss_terminate.rb +141 -0
- data/vendor/gems/xss_terminate/lib/xss_terminate/version.rb +3 -0
- data/vendor/gems/xss_terminate/tasks/xss_terminate_tasks.rake +7 -0
- data/vendor/gems/xss_terminate/test/models/comment.rb +5 -0
- data/vendor/gems/xss_terminate/test/models/entry.rb +7 -0
- data/vendor/gems/xss_terminate/test/models/message.rb +3 -0
- data/vendor/gems/xss_terminate/test/models/person.rb +5 -0
- data/vendor/gems/xss_terminate/test/models/review.rb +5 -0
- data/vendor/gems/xss_terminate/test/schema.rb +34 -0
- data/vendor/gems/xss_terminate/test/setup_test.rb +16 -0
- data/vendor/gems/xss_terminate/test/xss_terminate_test.rb +50 -0
- data/vendor/gems/xss_terminate/xss_terminate.gemspec +17 -0
- metadata +744 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
3
|
+
|
|
4
|
+
describe "Routing Filter::Locale" do
|
|
5
|
+
include SpecRoutingHelper
|
|
6
|
+
|
|
7
|
+
describe "#before_recognize_path" do
|
|
8
|
+
describe "given an incoming root path" do
|
|
9
|
+
controller_name 'base'
|
|
10
|
+
|
|
11
|
+
it "should prepend the defaule_locale to the path when no locale is given (i.e. /)" do
|
|
12
|
+
before_recognize(:locale, '/').should == '/en/'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should not modify the path when a locale given (i.e. /de)" do
|
|
16
|
+
before_recognize(:locale, '/de').should == '/de'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should prepend the defaule_locale to the path when no locale but a similar path segment is given (i.e. /de-something)" do
|
|
20
|
+
before_recognize(:locale, '/de-something').should == '/en/de-something'
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe "#before_url_helper" do
|
|
26
|
+
controller_name 'base'
|
|
27
|
+
|
|
28
|
+
before :each do
|
|
29
|
+
@base = mock 'base'
|
|
30
|
+
# @base.instance_variable_set :@locale, 'de'
|
|
31
|
+
I18n.locale = :de
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should unshift the current locale to the args when they are a non empty array" do
|
|
35
|
+
before_url_helper(:locale, @base, ['foo']).should == ['de', 'foo']
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should not modify the args when they are an empty array" do
|
|
39
|
+
before_url_helper(:locale, @base, []).should == []
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "should not modify the args when they are an array with an options hash that contains the locale" do
|
|
43
|
+
before_url_helper(:locale, @base, [{'locale' => 'en', 'foo' => 'bar'}]).should == [{'locale' => 'en', 'foo' => 'bar'}]
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should set the current locale to the args when they are an array with an options hash that does not contain the locale" do
|
|
47
|
+
before_url_helper(:locale, @base, [{'foo' => 'bar'}]).should == [{'locale' => 'de', 'foo' => 'bar'}]
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
describe "#after_url_helper" do
|
|
52
|
+
controller_name 'base'
|
|
53
|
+
|
|
54
|
+
[['url', 'http://localhost:3000'], ['path', '']].each do |type, host|
|
|
55
|
+
it "should not modify the generated #{type} if no locale is present" do
|
|
56
|
+
after_url_helper(:locale, nil, "#{host}/something").should == "#{host}/something"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "should not modify the generated path/url if the locale is not the default locale" do
|
|
60
|
+
after_url_helper(:locale, nil, "#{host}/de/something").should == "#{host}/de/something"
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "should remove the default locale from the generated path/url if it's followed by end-of-line" do
|
|
64
|
+
after_url_helper(:locale, nil, "#{host}/en").should == "#{host}/"
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it "should remove the default locale from the generated path/url if it's followed by a slash" do
|
|
68
|
+
after_url_helper(:locale, nil, "#{host}/en/").should == "#{host}/"
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
=end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# we're using a standard route instead of this filter now
|
|
2
|
+
|
|
3
|
+
# require File.dirname(__FILE__) + '/../spec_helper'
|
|
4
|
+
# require File.dirname(__FILE__) + '/../spec_routing_helper'
|
|
5
|
+
# require File.dirname(__FILE__) + '/../spec_mocks'
|
|
6
|
+
#
|
|
7
|
+
# describe "Routing Filter::RootBlogArchive" do
|
|
8
|
+
# include SpecRoutingHelper
|
|
9
|
+
# include SpecMocks
|
|
10
|
+
#
|
|
11
|
+
# describe "#before_recognize_path" do
|
|
12
|
+
# describe "given an incoming root blog archive path with no locale (like /2008/1)" do
|
|
13
|
+
# controller_name 'base'
|
|
14
|
+
#
|
|
15
|
+
# it "should insert the blog path segment to the path when the root section is a blog" do
|
|
16
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_blog)
|
|
17
|
+
# before_recognize_path(:root_blog_archive, '/2008/1').should == '/blog/2008/1'
|
|
18
|
+
# end
|
|
19
|
+
#
|
|
20
|
+
# it "should not modify the path when the root section is not a blog" do
|
|
21
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_section)
|
|
22
|
+
# before_recognize_path(:root_blog_archive, '/2008/1').should == '/2008/1'
|
|
23
|
+
# end
|
|
24
|
+
# end
|
|
25
|
+
#
|
|
26
|
+
# describe "given an incoming root blog archive path with a locale and trailing stuff (like /de/2008/1/something)" do
|
|
27
|
+
# controller_name 'base'
|
|
28
|
+
#
|
|
29
|
+
# it "should insert the blog path segment to the path when the root section is a blog" do
|
|
30
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_blog)
|
|
31
|
+
# before_recognize_path(:root_blog_archive, '/de/2008/1/something').should == '/de/blog/2008/1/something'
|
|
32
|
+
# end
|
|
33
|
+
#
|
|
34
|
+
# it "should not modify the path when the root section is not a blog" do
|
|
35
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_section)
|
|
36
|
+
# before_recognize_path(:root_blog_archive, '/de/2008/1/something').should == '/de/2008/1/something'
|
|
37
|
+
# end
|
|
38
|
+
# end
|
|
39
|
+
# end
|
|
40
|
+
# end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
return nil
|
|
3
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
4
|
+
#require File.dirname(__FILE__) + '/../spec_mocks'
|
|
5
|
+
|
|
6
|
+
describe "Routing Filter::RootSectionArticles" do
|
|
7
|
+
include SpecRoutingHelper
|
|
8
|
+
#include SpecMocks
|
|
9
|
+
|
|
10
|
+
describe "#before_recognize_path" do
|
|
11
|
+
describe "given an incoming root article permalink path with no locale (like /an-article)" do
|
|
12
|
+
controller_name 'base'
|
|
13
|
+
|
|
14
|
+
before :each do
|
|
15
|
+
@section = mock_section(:articles => mock('articles_proxy', :permalinks => ['an-article']))
|
|
16
|
+
Site.should_receive(:find_by_host).and_return mock_site(@section)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should insert the section path segment to the path when the article belongs to the root section" do
|
|
20
|
+
before_recognize_path(:root_section_articles, '/an-article').should == '/section/an-article'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should not modify the path when the article does not belong to the root section" do
|
|
24
|
+
@section.articles.should_receive(:permalinks).and_return ['another-article']
|
|
25
|
+
before_recognize_path(:root_section_articles, '/an-article').should == '/an-article'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe "given an incoming root article permalink path with a locale (like /de/an-article)" do
|
|
30
|
+
controller_name 'base'
|
|
31
|
+
|
|
32
|
+
before :each do
|
|
33
|
+
@section = mock_section(:articles => mock('articles_proxy', :permalinks => ['an-article']))
|
|
34
|
+
Site.should_receive(:find_by_host).and_return mock_site(@section)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should insert the section path segment to the path when the article belongs to the root section" do
|
|
38
|
+
before_recognize_path(:root_section_articles, '/de/an-article').should == '/de/section/an-article'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should not modify the path when the article does not belong to the root section" do
|
|
42
|
+
@section.articles.should_receive(:permalinks).and_return ['another-article']
|
|
43
|
+
before_recognize_path(:root_section_articles, '/de/an-article').should == '/de/an-article'
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
=end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# we're using a standard route instead of this filter now
|
|
2
|
+
|
|
3
|
+
# require File.dirname(__FILE__) + '/../spec_helper'
|
|
4
|
+
# require File.dirname(__FILE__) + '/../spec_routing_helper'
|
|
5
|
+
# require File.dirname(__FILE__) + '/../spec_mocks'
|
|
6
|
+
#
|
|
7
|
+
# describe "Routing Filter::RootWikipages" do
|
|
8
|
+
# include SpecRoutingHelper
|
|
9
|
+
# include SpecMocks
|
|
10
|
+
#
|
|
11
|
+
# describe "#before_recognize_path" do
|
|
12
|
+
# describe "given an incoming root wikipage path with no locale (like /pages/something)" do
|
|
13
|
+
# controller_name 'base'
|
|
14
|
+
#
|
|
15
|
+
# it "should insert the section path segment to the path when the root section is a wiki" do
|
|
16
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_wiki)
|
|
17
|
+
# before_recognize_path(:root_wikipages, '/pages/something').should == '/wiki/pages/something'
|
|
18
|
+
# end
|
|
19
|
+
#
|
|
20
|
+
# it "should not modify the path when the root section is not a wiki" do
|
|
21
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_section)
|
|
22
|
+
# before_recognize_path(:root_wikipages, '/pages/something').should == '/pages/something'
|
|
23
|
+
# end
|
|
24
|
+
# end
|
|
25
|
+
#
|
|
26
|
+
# describe "given an incoming root wikipage path with a locale (like /de/pages/something)" do
|
|
27
|
+
# controller_name 'base'
|
|
28
|
+
#
|
|
29
|
+
# it "should insert the section path segment to the path when the root section is a wiki" do
|
|
30
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_wiki)
|
|
31
|
+
# before_recognize_path(:root_wikipages, '/de/pages/something').should == '/de/wiki/pages/something'
|
|
32
|
+
# end
|
|
33
|
+
#
|
|
34
|
+
# it "should not modify the path when the root section is not a wiki" do
|
|
35
|
+
# Site.should_receive(:find_by_host).and_return mock_site(mock_section)
|
|
36
|
+
# before_recognize_path(:root_wikipages, '/de/pages/something').should == '/de/pages/something'
|
|
37
|
+
# end
|
|
38
|
+
# end
|
|
39
|
+
# end
|
|
40
|
+
# end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
3
|
+
#require File.dirname(__FILE__) + '/../spec_mocks'
|
|
4
|
+
|
|
5
|
+
describe "Routing Filter::Sections" do
|
|
6
|
+
include SpecRoutingHelper
|
|
7
|
+
#include SpecMocks
|
|
8
|
+
|
|
9
|
+
describe "#before_recognize_path" do
|
|
10
|
+
before :each do
|
|
11
|
+
stub_scenario :site
|
|
12
|
+
@site.sections.stub!(:paths).and_return ['section', 'section/subsection']
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe "given an incoming root path" do
|
|
16
|
+
controller_name 'base'
|
|
17
|
+
before :each do
|
|
18
|
+
Site.should_receive(:find_by_host).with('test.host').and_return mock_site
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should rewrite the path to /:root_section_pat when no locale is given (i.e. /)" do
|
|
22
|
+
before_recognize_path(:sections, '/').should == '/sections/1'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should rewrite the path to /sections/:root_section_id when a locale given (i.e. /de)" do
|
|
26
|
+
before_recognize_path(:sections, '/de').should == '/de/sections/1'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should rewrite the path to /sections/:root_section_id when a locale and a trailing slash are given (i.e. /de/)" do
|
|
30
|
+
before_recognize_path(:sections, '/de/').should == '/de/sections/1'
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe "given an incoming section path" do
|
|
35
|
+
before :each do
|
|
36
|
+
Site.should_receive(:find_by_host).with('test.host').and_return mock_section
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe "without a locale (like /section)" do
|
|
40
|
+
controller_name 'base'
|
|
41
|
+
|
|
42
|
+
it "should rewrite the path to /sections/:section_id" do
|
|
43
|
+
before_recognize_path(:sections, '/section').should == '/sections/1'
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should rewrite the path to /sections/:section_id leaving trailing stuff as is" do
|
|
47
|
+
before_recognize_path(:sections, '/section/something').should == '/sections/1/something'
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
describe "with a locale (like /en/section)" do
|
|
52
|
+
controller_name 'base'
|
|
53
|
+
|
|
54
|
+
it "should rewrite the path to /:locale/sections/:section_id" do
|
|
55
|
+
before_recognize_path(:sections, '/en/section').should == '/en/sections/1'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should rewrite the path to /:locale/sections/:section_id leaving trailing stuff as is" do
|
|
59
|
+
before_recognize_path(:sections, '/en/section/something').should == '/en/sections/1/something'
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
describe "given an incoming nested section path" do
|
|
65
|
+
before :each do
|
|
66
|
+
Site.should_receive(:find_by_host).with('test.host').and_return mock_section
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
describe "without a locale (like /section/subsection)" do
|
|
70
|
+
controller_name 'base'
|
|
71
|
+
|
|
72
|
+
it "should rewrite the path to /sections/:section_id" do
|
|
73
|
+
before_recognize_path(:sections, '/section/subsection').should == '/sections/1'
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it "should rewrite the path to /sections/:section_id leaving trailing stuff as is" do
|
|
77
|
+
before_recognize_path(:sections, '/section/subsection/something').should == '/sections/1/something'
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
describe "with a locale (like /en/section/subsection)" do
|
|
82
|
+
controller_name 'base'
|
|
83
|
+
|
|
84
|
+
it "should rewrite the path to /:locale/sections/:section_id" do
|
|
85
|
+
before_recognize_path(:sections, '/en/section/subsection').should == '/en/sections/1'
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it "should rewrite the path to /:locale/sections/:section_id leaving trailing stuff as is" do
|
|
89
|
+
before_recognize_path(:sections, '/en/section/subsection/something').should == '/en/sections/1/something'
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
describe "#after_url_helper" do
|
|
96
|
+
before :each do
|
|
97
|
+
@section = mock_section
|
|
98
|
+
Section.stub!(:types).and_return ['Page']
|
|
99
|
+
Section.should_receive(:find).with("1").and_return @section
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
[['path', ''], ['url', 'http://localhost:3000']].each do |type, host|
|
|
103
|
+
describe "given a generated section #{type}" do
|
|
104
|
+
[['without a locale', ''], ['with a locale', '/de']].each do |locale_text, locale|
|
|
105
|
+
describe "#{locale_text} (like #{host}#{locale}/sections/1)" do
|
|
106
|
+
describe "when the section is not the root section" do
|
|
107
|
+
controller_name 'base'
|
|
108
|
+
|
|
109
|
+
before :each do
|
|
110
|
+
@section.should_receive(:root_section?).and_return(false)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it "should rewrite the path to #{host}#{locale}/:page_path" do
|
|
114
|
+
after_url_helper(:sections, nil, "#{host}#{locale}/sections/1").should == "#{host}#{locale}/section/"
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it "should rewrite the path to #{host}#{locale}/page_path leaving trailing stuff as is" do
|
|
118
|
+
after_url_helper(:sections, nil, "#{host}#{locale}/sections/1/something").should == "#{host}#{locale}/section/something"
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
describe "when the section is the root section" do
|
|
123
|
+
controller_name "base"
|
|
124
|
+
|
|
125
|
+
before :each do
|
|
126
|
+
@section.should_receive(:root_section?).and_return(true)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it "should rewrite the path to #{host}#{locale}/" do
|
|
130
|
+
after_url_helper(:sections, nil, "#{host}#{locale}/sections/1").should == "#{host}#{locale}/"
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
it "should rewrite the path to #{host}#{locale}/ leaving trailing stuff as is" do
|
|
134
|
+
after_url_helper(:sections, nil, "#{host}#{locale}/sections/1/something").should == "#{host}#{locale}/something"
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
=end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../test_helper')
|
|
2
|
+
$:.unshift File.expand_path(File.dirname(__FILE__) + '/../../../lib')
|
|
3
|
+
require 'routing_filter/section_paths'
|
|
4
|
+
|
|
5
|
+
module RoutingFilterTests
|
|
6
|
+
class SectionsTest < ActiveSupport::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
super
|
|
9
|
+
@site = Site.first
|
|
10
|
+
@section = @site.sections.find_by_title('a page')
|
|
11
|
+
@sorted_section_paths = @site.sections.paths.sort{|a, b| b.size <=> a.size }.join('|')
|
|
12
|
+
@filter = RoutingFilter::SectionPaths.new({})
|
|
13
|
+
@base_route = "http://www.bogus.info"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Protected methods
|
|
17
|
+
|
|
18
|
+
test "paths_for_site sorts and returns all the section paths for the site" do
|
|
19
|
+
assert_equal @sorted_section_paths, @filter.send(:paths_for_site, @site)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
test "paths_for_site returns an empty array if no site is given" do
|
|
23
|
+
assert_equal [], @filter.send(:paths_for_site, nil)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
test "section_by_path detects the section from path - standard paths" do
|
|
27
|
+
%w( an-unpublished-section another-page letter-test an-album öäü a-page ).each do |pattern|
|
|
28
|
+
assert @filter.send(:section_by_path, @site, pattern)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../test_helper')
|
|
2
|
+
$:.unshift File.expand_path(File.dirname(__FILE__) + '/../../../lib')
|
|
3
|
+
require 'routing_filter/sets'
|
|
4
|
+
|
|
5
|
+
module RoutingFilterTests
|
|
6
|
+
class SetsTest < ActiveSupport::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
super
|
|
9
|
+
@filter = RoutingFilter::Sets.new({})
|
|
10
|
+
@base_route = "/albums/1/sets/"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
test "filter is a sets routing filter" do
|
|
14
|
+
assert @filter.is_a?(RoutingFilter::Sets)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
test "it correctly recognizes the set from url - standard set" do
|
|
18
|
+
standard_set.each do |route|
|
|
19
|
+
assert_equal 'a-set', @filter.match_path(@base_route + route, ['albums'])[2]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
test "it correctly recognizes the set from url - child set" do
|
|
24
|
+
child_set.each do |route|
|
|
25
|
+
assert_equal 'a-set/child', @filter.match_path(@base_route + route, ['albums'])[2]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
test "it correctly recognizes the set from url - set with digit" do
|
|
30
|
+
set_with_digit.each do |route|
|
|
31
|
+
assert_equal 'set-666', @filter.match_path(@base_route + route, ['albums'])[2]
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
test "it correctly recognizes the set from url - child set with digit" do
|
|
36
|
+
child_set_with_digit.each do |route|
|
|
37
|
+
assert_equal 'set-666/kid69', @filter.match_path(@base_route + route, ['albums'])[2]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
test "it correctly recognizes the set from url - set with digits only" do
|
|
42
|
+
digit_set.each do |route|
|
|
43
|
+
assert_equal '1234', @filter.match_path(@base_route + route, ['albums'])[2]
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
test "it correctly recognizes the set from url - child set with digits only" do
|
|
48
|
+
digit_child_set.each do |route|
|
|
49
|
+
assert_equal '1234/567', @filter.match_path(@base_route + route, ['albums'])[2]
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
test "it fails to recognize four digit child sets" do
|
|
54
|
+
assert_equal '1234', @filter.match_path(@base_route + "1234/5678", ['albums'])[2]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
test "it fails to recognize four and two digit parent child combinations under the root set level" do
|
|
58
|
+
assert_equal '1234/56', @filter.match_path(@base_route + "1234/56", ['albums'])[2]
|
|
59
|
+
assert_equal '1234', @filter.match_path(@base_route + "1234/4567/89", ['albums'])[2]
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def standard_set
|
|
63
|
+
%w( a-set a-set/2009/1 a-set/2009/12 a-set.atom a-set.html a-set.pdf )
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def child_set
|
|
67
|
+
%w( a-set/child a-set/child/2009/1 a-set/child/2009/12 a-set/child.atom a-set/child.html a-set/child.pdf )
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def set_with_digit
|
|
71
|
+
%w( set-666 set-666/2009/1 set-666/2009/12 set-666.atom set-666.html set-666.pdf )
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def child_set_with_digit
|
|
75
|
+
%w( set-666/kid69 set-666/kid69/2009/1 set-666/kid69/2009/12 set-666/kid69.atom set-666/kid69.html set-666/kid69.pdf )
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def digit_set
|
|
79
|
+
%w( 1234 1234/2009/1 1234/2009/12 1234.atom 1234.html 1234.pdf )
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def digit_child_set
|
|
83
|
+
%w( 1234/567 1234/567/2009/1 1234/567/2009/12 1234/567.atom 1234/567.html 1234/567.pdf )
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|