adva_cms 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,441 @@
|
|
1
|
+
module Matchy
|
2
|
+
module Expectations
|
3
|
+
module TestCaseExtensions
|
4
|
+
def filter_attributes(options)
|
5
|
+
Matchy::Expectations::FilterAttributes.new(options, self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def act_as_nested_set
|
9
|
+
Matchy::Expectations::ActAsNestedSet.new(nil, self)
|
10
|
+
end
|
11
|
+
|
12
|
+
def act_as_taggable
|
13
|
+
Matchy::Expectations::ActAsTaggable.new(nil, self)
|
14
|
+
end
|
15
|
+
|
16
|
+
def act_as_role_context(options)
|
17
|
+
Matchy::Expectations::ActAsRoleContext.new(options, self)
|
18
|
+
end
|
19
|
+
|
20
|
+
def act_as_versioned
|
21
|
+
Matchy::Expectations::ActAsVersioned.new(nil, self)
|
22
|
+
end
|
23
|
+
|
24
|
+
def instantiate_with_sti
|
25
|
+
Matchy::Expectations::InstantiateWithSti.new(nil, self)
|
26
|
+
end
|
27
|
+
|
28
|
+
def have_permalink(column)
|
29
|
+
Matchy::Expectations::HavePermalink.new(column, self)
|
30
|
+
end
|
31
|
+
|
32
|
+
def filter_column(column)
|
33
|
+
Matchy::Expectations::FilterColumn.new(column, self)
|
34
|
+
end
|
35
|
+
|
36
|
+
def have_counter(name)
|
37
|
+
Matchy::Expectations::HaveCounter.new(name, self)
|
38
|
+
end
|
39
|
+
|
40
|
+
def have_many_comments
|
41
|
+
Matchy::Expectations::HaveManyComments.new(nil, self)
|
42
|
+
end
|
43
|
+
|
44
|
+
def have_many_themes
|
45
|
+
Matchy::Expectations::HaveManyThemes.new(nil, self)
|
46
|
+
end
|
47
|
+
|
48
|
+
def have_url_params(*names)
|
49
|
+
Matchy::Expectations::HaveUrlParams.new(names, self)
|
50
|
+
end
|
51
|
+
|
52
|
+
def act_as_authenticated_user
|
53
|
+
Matchy::Expectations::ActAsAuthenticatedUser.new(nil, self)
|
54
|
+
end
|
55
|
+
|
56
|
+
def have_authorized_tag(*args)
|
57
|
+
have_tag('.visible_for') { |tag| tag.should have_tag(*args) }
|
58
|
+
end
|
59
|
+
|
60
|
+
def be_primary
|
61
|
+
Matchy::Expectations::BePrimary.new(nil, self)
|
62
|
+
end
|
63
|
+
|
64
|
+
def have_excerpt
|
65
|
+
Matchy::Expectations::HaveExcerpt.new(nil, self)
|
66
|
+
end
|
67
|
+
|
68
|
+
def accept_comments
|
69
|
+
Matchy::Expectations::AcceptComments.new(nil, self)
|
70
|
+
end
|
71
|
+
|
72
|
+
def be_draft
|
73
|
+
Matchy::Expectations::BeDraft.new(nil, self)
|
74
|
+
end
|
75
|
+
|
76
|
+
def be_published
|
77
|
+
Matchy::Expectations::BePublished.new(nil, self)
|
78
|
+
end
|
79
|
+
|
80
|
+
def save_version
|
81
|
+
Matchy::Expectations::SaveVersion.new(nil, self)
|
82
|
+
end
|
83
|
+
|
84
|
+
def be_in_single_article_mode
|
85
|
+
Matchy::Expectations::BeInSingleArticleMode.new(nil, self)
|
86
|
+
end
|
87
|
+
|
88
|
+
def be_root_section
|
89
|
+
Matchy::Expectations::BeRootSection.new(nil, self)
|
90
|
+
end
|
91
|
+
|
92
|
+
def be_approved
|
93
|
+
Matchy::Expectations::BeApproved.new(nil, self)
|
94
|
+
end
|
95
|
+
|
96
|
+
def be_first
|
97
|
+
Matchy::Expectations::BeFirst.new(nil, self)
|
98
|
+
end
|
99
|
+
|
100
|
+
def be_last
|
101
|
+
Matchy::Expectations::BeLast.new(nil, self)
|
102
|
+
end
|
103
|
+
|
104
|
+
def be_owned_by(owner)
|
105
|
+
Matchy::Expectations::BeOwnedBy.new(owner, self)
|
106
|
+
end
|
107
|
+
|
108
|
+
def be_paged
|
109
|
+
Matchy::Expectations::BePaged.new(nil, self)
|
110
|
+
end
|
111
|
+
|
112
|
+
def have_valid_extension
|
113
|
+
Matchy::Expectations::HaveValidExtension.new(nil, self)
|
114
|
+
end
|
115
|
+
|
116
|
+
def be_delivered
|
117
|
+
Matchy::Expectations::BeDelivered.new(nil, self)
|
118
|
+
end
|
119
|
+
|
120
|
+
def be_queued
|
121
|
+
Matchy::Expectations::BeQueued.new(nil, self)
|
122
|
+
end
|
123
|
+
|
124
|
+
def be_editable
|
125
|
+
Matchy::Expectations::BeEditable.new(nil, self)
|
126
|
+
end
|
127
|
+
|
128
|
+
def be_pending
|
129
|
+
Matchy::Expectations::BePending.new(nil, self)
|
130
|
+
end
|
131
|
+
|
132
|
+
def be_active
|
133
|
+
Matchy::Expectations::BeActive.new(nil, self)
|
134
|
+
end
|
135
|
+
|
136
|
+
def be_anonymous
|
137
|
+
Matchy::Expectations::BeAnonymous.new(nil, self)
|
138
|
+
end
|
139
|
+
|
140
|
+
def be_registered
|
141
|
+
Matchy::Expectations::BeRegistered.new(nil, self)
|
142
|
+
end
|
143
|
+
|
144
|
+
def be_verified
|
145
|
+
Matchy::Expectations::BeVerified.new(nil, self)
|
146
|
+
end
|
147
|
+
|
148
|
+
def have_role(*args)
|
149
|
+
Matchy::Expectations::HaveRole.new(args, self)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
matcher "ActAsAuthenticatedUser",
|
154
|
+
"Expected %s to act as an authenticated user.",
|
155
|
+
"Expected %s not to act as an authenticated user." do |receiver|
|
156
|
+
@receiver = receiver
|
157
|
+
@receiver.included_modules.include? Authentication::InstanceMethods
|
158
|
+
end
|
159
|
+
|
160
|
+
matcher "ActAsNestedSet",
|
161
|
+
"Expected %s to act as a nested set.",
|
162
|
+
"Expected %s not act as a nested set." do |receiver|
|
163
|
+
@receiver = receiver
|
164
|
+
@receiver.included_modules.include? ActiveRecord::NestedSet::InstanceMethods
|
165
|
+
end
|
166
|
+
|
167
|
+
matcher "ActAsRoleContext",
|
168
|
+
"Expected %s to act as a role context.",
|
169
|
+
"Expected %s not act as a role context." do |receiver|
|
170
|
+
@receiver = receiver
|
171
|
+
@receiver.acts_as_role_context? # FIXME match options
|
172
|
+
end
|
173
|
+
|
174
|
+
matcher "ActAsTaggable",
|
175
|
+
"Expected %s to act as taggable.",
|
176
|
+
"Expected %s not act as a taggable." do |receiver|
|
177
|
+
@receiver = receiver
|
178
|
+
@receiver.acts_as_taggable?
|
179
|
+
end
|
180
|
+
|
181
|
+
matcher "ActAsVersioned",
|
182
|
+
"Expected %s to act as versioned.",
|
183
|
+
"Expected %s not act as versioned." do |receiver|
|
184
|
+
@receiver = receiver
|
185
|
+
@receiver.included_modules.include? ActiveRecord::Acts::Versioned::ActMethods
|
186
|
+
end
|
187
|
+
|
188
|
+
matcher "FilterAttributes",
|
189
|
+
"Expected %s to filter the attributes %s.",
|
190
|
+
"Expected %s not filter the attributes %s." do |receiver|
|
191
|
+
@receiver = receiver
|
192
|
+
@receiver.included_modules.include?(XssTerminate::InstanceMethods) &&
|
193
|
+
@receiver.xss_terminate_options.values_at(*@expected.keys).flatten == @expected.values.flatten
|
194
|
+
end
|
195
|
+
|
196
|
+
matcher "FilterColumn",
|
197
|
+
"Expected %s to filter the column %s.",
|
198
|
+
"Expected %s not filter the column %s." do |receiver|
|
199
|
+
@receiver = receiver
|
200
|
+
|
201
|
+
column = @expected
|
202
|
+
receiver.send "#{column}=", '*strong*'
|
203
|
+
RR.stub(receiver).filter.returns 'textile_filter'
|
204
|
+
receiver.send :process_filters
|
205
|
+
|
206
|
+
result = receiver.send("#{column}_html")
|
207
|
+
result == '<p><strong>strong</strong></p>'
|
208
|
+
end
|
209
|
+
|
210
|
+
matcher "HavePermalink",
|
211
|
+
"Expected %s to have a permalink generated from %s.",
|
212
|
+
"Expected %s not to have a permalink generated from %s." do |receiver|
|
213
|
+
@receiver = receiver
|
214
|
+
@receiver.respond_to?(:attribute_to_urlify) && @receiver.attribute_to_urlify == @expected
|
215
|
+
end
|
216
|
+
|
217
|
+
matcher "HaveCounter",
|
218
|
+
"Expected %s to have a counter named %s.",
|
219
|
+
"Expected %s not to have a counter named %s." do |receiver|
|
220
|
+
@receiver = receiver.is_a?(Class) ? receiver : receiver.class
|
221
|
+
!!@receiver.reflect_on_all_associations(:has_one).find { |a| a.name == :"#{@expected}_counter" }
|
222
|
+
end
|
223
|
+
|
224
|
+
matcher "HaveManyComments",
|
225
|
+
"Expected %s to have many comments.",
|
226
|
+
"Expected %s not have many comments." do |receiver|
|
227
|
+
@receiver = receiver
|
228
|
+
@receiver.has_many_comments?
|
229
|
+
end
|
230
|
+
|
231
|
+
matcher "HaveManyThemes",
|
232
|
+
"Expected %s to have many themes.",
|
233
|
+
"Expected %s not have many themes." do |receiver|
|
234
|
+
@receiver = receiver
|
235
|
+
@receiver.has_many_themes?
|
236
|
+
end
|
237
|
+
|
238
|
+
matcher "InstantiateWithSti",
|
239
|
+
"Expected %s to instantiate with sti.",
|
240
|
+
"Expected %s not instantiate with sti." do |receiver|
|
241
|
+
@receiver = receiver
|
242
|
+
@receiver.instantiates_with_sti?
|
243
|
+
end
|
244
|
+
|
245
|
+
matcher "HaveExcerpt",
|
246
|
+
"Expected %s to have an excerpt.",
|
247
|
+
"Expected %s not to have an excerpt." do |receiver|
|
248
|
+
@receiver = receiver
|
249
|
+
@receiver.has_excerpt?
|
250
|
+
end
|
251
|
+
|
252
|
+
matcher "AcceptComments",
|
253
|
+
"Expected %s to accept comments.",
|
254
|
+
"Expected %s not to accept comments." do |receiver|
|
255
|
+
@receiver = receiver
|
256
|
+
@receiver.accept_comments?
|
257
|
+
end
|
258
|
+
|
259
|
+
matcher "BePrimary",
|
260
|
+
"Expected %s to be primary.",
|
261
|
+
"Expected %s not to be primary." do |receiver|
|
262
|
+
@receiver = receiver
|
263
|
+
@receiver.primary?
|
264
|
+
end
|
265
|
+
|
266
|
+
matcher "BeDraft",
|
267
|
+
"Expected %s to be a draft.",
|
268
|
+
"Expected %s not to be a draft." do |receiver|
|
269
|
+
@receiver = receiver
|
270
|
+
@receiver.draft?
|
271
|
+
end
|
272
|
+
|
273
|
+
matcher "BePublished",
|
274
|
+
"Expected %s to be published.",
|
275
|
+
"Expected %s not to be published." do |receiver|
|
276
|
+
@receiver = receiver
|
277
|
+
@receiver.published?
|
278
|
+
end
|
279
|
+
|
280
|
+
matcher "SaveVersion",
|
281
|
+
"Expected %s to indicate to save a new version.",
|
282
|
+
"Expected %s not to indicate to save a new version." do |receiver|
|
283
|
+
@receiver = receiver
|
284
|
+
@receiver.save_version?
|
285
|
+
end
|
286
|
+
|
287
|
+
matcher "BeInSingleArticleMode",
|
288
|
+
"Expected %s to be in single article mode.",
|
289
|
+
"Expected %s not to be in single article mode." do |receiver|
|
290
|
+
@receiver = receiver
|
291
|
+
@receiver.single_article_mode
|
292
|
+
end
|
293
|
+
|
294
|
+
matcher "BeRootSection",
|
295
|
+
"Expected %s to be a root section.",
|
296
|
+
"Expected %s not to be a root section." do |receiver|
|
297
|
+
@receiver = receiver
|
298
|
+
@receiver.root_section?
|
299
|
+
end
|
300
|
+
|
301
|
+
matcher "BeApproved",
|
302
|
+
"Expected %s to be approved.",
|
303
|
+
"Expected %s not to be approved." do |receiver|
|
304
|
+
@receiver = receiver
|
305
|
+
@receiver.approved?
|
306
|
+
end
|
307
|
+
|
308
|
+
matcher "BeFirst",
|
309
|
+
"Expected %s to be first.",
|
310
|
+
"Expected %s not to be first." do |receiver|
|
311
|
+
@receiver = receiver
|
312
|
+
@receiver.first?
|
313
|
+
end
|
314
|
+
|
315
|
+
matcher "BeLast",
|
316
|
+
"Expected %s to be last.",
|
317
|
+
"Expected %s not to be last." do |receiver|
|
318
|
+
@receiver = receiver
|
319
|
+
@receiver.last?
|
320
|
+
end
|
321
|
+
|
322
|
+
matcher "BeOwnedBy",
|
323
|
+
"Expected %s to be owned by %s.",
|
324
|
+
"Expected %s not to be owned by %s." do |receiver|
|
325
|
+
@receiver = receiver
|
326
|
+
@receiver.owner == @expected
|
327
|
+
end
|
328
|
+
|
329
|
+
matcher "BePaged",
|
330
|
+
"Expected %s to be paged.",
|
331
|
+
"Expected %s not to be paged." do |receiver|
|
332
|
+
@receiver = receiver
|
333
|
+
@receiver.paged?
|
334
|
+
end
|
335
|
+
|
336
|
+
matcher "HaveValidExtension",
|
337
|
+
"Expected %s to have a valid extension.",
|
338
|
+
"Expected %s not to have a valid extension." do |receiver|
|
339
|
+
@receiver = receiver
|
340
|
+
@receiver.valid_extension?
|
341
|
+
end
|
342
|
+
|
343
|
+
matcher "BeDelivered",
|
344
|
+
"Expected %s to be delivered.",
|
345
|
+
"Expected %s not to be delivered." do |receiver|
|
346
|
+
@receiver = receiver
|
347
|
+
@receiver.delivered?
|
348
|
+
end
|
349
|
+
|
350
|
+
matcher "BeQueued",
|
351
|
+
"Expected %s to be queued.",
|
352
|
+
"Expected %s not to be queued." do |receiver|
|
353
|
+
@receiver = receiver
|
354
|
+
@receiver.queued?
|
355
|
+
end
|
356
|
+
|
357
|
+
matcher "BeEditable",
|
358
|
+
"Expected %s to be editable.",
|
359
|
+
"Expected %s not to be editable." do |receiver|
|
360
|
+
@receiver = receiver
|
361
|
+
@receiver.editable?
|
362
|
+
end
|
363
|
+
|
364
|
+
matcher "BePending",
|
365
|
+
"Expected %s to be pending.",
|
366
|
+
"Expected %s not to be pending." do |receiver|
|
367
|
+
@receiver = receiver
|
368
|
+
@receiver.pending?
|
369
|
+
end
|
370
|
+
|
371
|
+
matcher "BeActive",
|
372
|
+
"Expected %s to be active.",
|
373
|
+
"Expected %s not to be active." do |receiver|
|
374
|
+
@receiver = receiver
|
375
|
+
@receiver.active?
|
376
|
+
end
|
377
|
+
|
378
|
+
matcher "BeAnonymous",
|
379
|
+
"Expected %s to be anonymous.",
|
380
|
+
"Expected %s not to be anonymous." do |receiver|
|
381
|
+
@receiver = receiver
|
382
|
+
@receiver.anonymous?
|
383
|
+
end
|
384
|
+
|
385
|
+
matcher "BeRegistered",
|
386
|
+
"Expected %s to be registered.",
|
387
|
+
"Expected %s not to be registered." do |receiver|
|
388
|
+
@receiver = receiver
|
389
|
+
@receiver.registered?
|
390
|
+
end
|
391
|
+
|
392
|
+
matcher "BeVerified",
|
393
|
+
"Expected %s to be verified.",
|
394
|
+
"Expected %s not to be verified." do |receiver|
|
395
|
+
@receiver = receiver
|
396
|
+
@receiver.verified?
|
397
|
+
end
|
398
|
+
|
399
|
+
matcher "HaveRole",
|
400
|
+
"Expected %s to have role %s.",
|
401
|
+
"Expected %s not to have role %s." do |receiver|
|
402
|
+
@receiver = receiver
|
403
|
+
@receiver.has_role?(*@expected) # urgs
|
404
|
+
end
|
405
|
+
|
406
|
+
class HaveUrlParams < Base
|
407
|
+
def matches?(receiver)
|
408
|
+
@receiver = receiver
|
409
|
+
uri = receiver =~ /^http:/ ? "http://test.host#{receiver}" : receiver
|
410
|
+
query = URI.parse(uri).query || ''
|
411
|
+
params = CGI.parse(query)
|
412
|
+
|
413
|
+
# when expected is empty, that means that we expect any parameters to be present
|
414
|
+
return !params.empty? if @expected.empty?
|
415
|
+
|
416
|
+
present = @expected.collect do |expected|
|
417
|
+
expected if params.keys.include?(expected.to_s)
|
418
|
+
end.compact
|
419
|
+
present.size == @expected.size
|
420
|
+
end
|
421
|
+
|
422
|
+
def failure_message
|
423
|
+
if @expected.empty?
|
424
|
+
"expected #{@receiver} to have GET parameters"
|
425
|
+
else
|
426
|
+
expected = @expected.map(&:to_s).to_sentence
|
427
|
+
"expected #{@receiver} to have the GET parameters: #{expected}"
|
428
|
+
end
|
429
|
+
end
|
430
|
+
|
431
|
+
def negative_failure_message
|
432
|
+
if @expected.empty?
|
433
|
+
"expected #{@receiver} to not have any GET parameters"
|
434
|
+
else
|
435
|
+
expected = @expected.map(&:to_s).to_sentence
|
436
|
+
"expected #{@receiver} to not have the GET parameters: #{expected}"
|
437
|
+
end
|
438
|
+
end
|
439
|
+
end
|
440
|
+
end
|
441
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# let's have asset_select available in ActiveSupport test cases
|
2
|
+
ActiveSupport::TestCase.class_eval do
|
3
|
+
include ActionController::Assertions::SelectorAssertions
|
4
|
+
end
|
5
|
+
|
6
|
+
# strangely, request.path is empty when caching kicks in, this seems to fix that
|
7
|
+
ActionController::TestProcess.module_eval do
|
8
|
+
def build_request_uri_with_set_path(*args)
|
9
|
+
build_request_uri_without_set_path(*args)
|
10
|
+
@request.path = @request.env['REQUEST_URI']
|
11
|
+
end
|
12
|
+
alias_method_chain :build_request_uri, :set_path
|
13
|
+
end
|
14
|
+
|
15
|
+
ActionController::Caching::Pages::ClassMethods.module_eval do
|
16
|
+
def caches_page(*actions)
|
17
|
+
# We want to turn perform_caching on/off at runtime, so we need the filters to
|
18
|
+
# be registered no matter what. perform_caching is checked at all relevant other
|
19
|
+
# places, too, though.
|
20
|
+
# return unless perform_caching
|
21
|
+
options = actions.extract_options!
|
22
|
+
after_filter({:only => actions}.merge(options)) { |c| c.cache_page }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
ActionController::Assertions::RoutingAssertions.module_eval do
|
27
|
+
def recognized_request_for(path, request_method = nil)
|
28
|
+
path = "/#{path}" unless path.first == '/'
|
29
|
+
|
30
|
+
request = ActionController::TestRequest.new
|
31
|
+
request.env["REQUEST_METHOD"] = request_method.to_s.upcase if request_method
|
32
|
+
# Overwritten to use the existing request's host if present because Rails always
|
33
|
+
# creates a new request and gives us no way to initialize the request host
|
34
|
+
request.host = @request.host if @request
|
35
|
+
request.path = path
|
36
|
+
|
37
|
+
ActionController::Routing::Routes.recognize(request)
|
38
|
+
request
|
39
|
+
end
|
40
|
+
end
|