bf4-browsercms 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.txt +165 -0
- data/README.markdown +57 -0
- data/app/controllers/application_controller.rb +14 -0
- data/app/controllers/cms/application_controller.rb +69 -0
- data/app/controllers/cms/attachments_controller.rb +11 -0
- data/app/controllers/cms/base_controller.rb +13 -0
- data/app/controllers/cms/cache_controller.rb +22 -0
- data/app/controllers/cms/categories_controller.rb +5 -0
- data/app/controllers/cms/category_types_controller.rb +5 -0
- data/app/controllers/cms/connectors_controller.rb +63 -0
- data/app/controllers/cms/content_block_controller.rb +285 -0
- data/app/controllers/cms/content_controller.rb +176 -0
- data/app/controllers/cms/content_types_controller.rb +7 -0
- data/app/controllers/cms/dashboard_controller.rb +10 -0
- data/app/controllers/cms/dynamic_views_controller.rb +65 -0
- data/app/controllers/cms/email_messages_controller.rb +14 -0
- data/app/controllers/cms/error_handling.rb +25 -0
- data/app/controllers/cms/file_blocks_controller.rb +2 -0
- data/app/controllers/cms/groups_controller.rb +26 -0
- data/app/controllers/cms/home_controller.rb +5 -0
- data/app/controllers/cms/html_blocks_controller.rb +2 -0
- data/app/controllers/cms/image_blocks_controller.rb +2 -0
- data/app/controllers/cms/links_controller.rb +67 -0
- data/app/controllers/cms/page_route_conditions_controller.rb +2 -0
- data/app/controllers/cms/page_route_options_controller.rb +56 -0
- data/app/controllers/cms/page_route_requirements_controller.rb +2 -0
- data/app/controllers/cms/page_routes_controller.rb +45 -0
- data/app/controllers/cms/pages_controller.rb +135 -0
- data/app/controllers/cms/portlet_controller.rb +12 -0
- data/app/controllers/cms/portlets_controller.rb +40 -0
- data/app/controllers/cms/redirects_controller.rb +19 -0
- data/app/controllers/cms/resource_controller.rb +108 -0
- data/app/controllers/cms/routes_controller.rb +23 -0
- data/app/controllers/cms/section_nodes_controller.rb +40 -0
- data/app/controllers/cms/sections_controller.rb +130 -0
- data/app/controllers/cms/sessions_controller.rb +71 -0
- data/app/controllers/cms/tags_controller.rb +12 -0
- data/app/controllers/cms/task_items_controller.rb +52 -0
- data/app/controllers/cms/toolbar_controller.rb +12 -0
- data/app/controllers/cms/users_controller.rb +100 -0
- data/app/controllers/tests/pretend_controller.rb +32 -0
- data/app/helpers/application_helper.rb +3 -0
- data/app/helpers/cms/application_helper.rb +187 -0
- data/app/helpers/cms/form_builder.rb +176 -0
- data/app/helpers/cms/form_tag_helper.rb +32 -0
- data/app/helpers/cms/menu_helper.rb +165 -0
- data/app/helpers/cms/page_helper.rb +92 -0
- data/app/helpers/cms/path_helper.rb +48 -0
- data/app/helpers/cms/rendering_helper.rb +38 -0
- data/app/helpers/cms/section_nodes_helper.rb +13 -0
- data/app/helpers/cms/template_support.rb +21 -0
- data/app/models/abstract_file_block.rb +17 -0
- data/app/models/attachment.rb +193 -0
- data/app/models/category.rb +40 -0
- data/app/models/category_type.rb +34 -0
- data/app/models/connector.rb +80 -0
- data/app/models/content_type.rb +95 -0
- data/app/models/content_type_group.rb +3 -0
- data/app/models/dynamic_view.rb +80 -0
- data/app/models/email_message.rb +31 -0
- data/app/models/email_message_mailer.rb +11 -0
- data/app/models/file_block.rb +21 -0
- data/app/models/forgot_password_mailer.rb +12 -0
- data/app/models/group.rb +41 -0
- data/app/models/group_permission.rb +7 -0
- data/app/models/group_section.rb +4 -0
- data/app/models/group_type.rb +12 -0
- data/app/models/group_type_permission.rb +4 -0
- data/app/models/guest_user.rb +53 -0
- data/app/models/html_block.rb +40 -0
- data/app/models/image_block.rb +22 -0
- data/app/models/link.rb +35 -0
- data/app/models/page.rb +275 -0
- data/app/models/page_partial.rb +22 -0
- data/app/models/page_route.rb +58 -0
- data/app/models/page_route_condition.rb +2 -0
- data/app/models/page_route_option.rb +3 -0
- data/app/models/page_route_requirement.rb +2 -0
- data/app/models/page_template.rb +48 -0
- data/app/models/permission.rb +10 -0
- data/app/models/portlet.rb +167 -0
- data/app/models/redirect.rb +4 -0
- data/app/models/section.rb +147 -0
- data/app/models/section_node.rb +93 -0
- data/app/models/site.rb +41 -0
- data/app/models/tag.rb +62 -0
- data/app/models/tagging.rb +9 -0
- data/app/models/task_item.rb +67 -0
- data/app/models/user.rb +169 -0
- data/app/models/user_group_membership.rb +4 -0
- data/app/portlets/dynamic_portlet.rb +7 -0
- data/app/portlets/email_page_portlet.rb +24 -0
- data/app/portlets/forgot_password_portlet.rb +28 -0
- data/app/portlets/login_portlet.rb +10 -0
- data/app/portlets/reset_password_portlet.rb +28 -0
- data/app/portlets/tag_cloud_portlet.rb +13 -0
- data/app/views/cms/blocks/_hidden_fields.html.erb +10 -0
- data/app/views/cms/blocks/_toolbar.html.erb +9 -0
- data/app/views/cms/blocks/_toolbar_for_collection.html.erb +26 -0
- data/app/views/cms/blocks/_toolbar_for_member.html.erb +38 -0
- data/app/views/cms/blocks/edit.html.erb +25 -0
- data/app/views/cms/blocks/index.html.erb +128 -0
- data/app/views/cms/blocks/new.html.erb +21 -0
- data/app/views/cms/blocks/show.html.erb +40 -0
- data/app/views/cms/blocks/usages.html.erb +44 -0
- data/app/views/cms/blocks/versions.html.erb +90 -0
- data/app/views/cms/cache/show.html.erb +12 -0
- data/app/views/cms/categories/_form.html.erb +36 -0
- data/app/views/cms/category_types/_form.html.erb +1 -0
- data/app/views/cms/connectors/new.html.erb +71 -0
- data/app/views/cms/content/no_page.html.erb +37 -0
- data/app/views/cms/content/show.html.erb +21 -0
- data/app/views/cms/content_types/index.html.erb +14 -0
- data/app/views/cms/dashboard/_page_drafts.html.erb +49 -0
- data/app/views/cms/dashboard/_task_items.html.erb +55 -0
- data/app/views/cms/dashboard/index.html.erb +15 -0
- data/app/views/cms/dynamic_views/_form.html.erb +11 -0
- data/app/views/cms/dynamic_views/edit.html.erb +3 -0
- data/app/views/cms/dynamic_views/index.html.erb +52 -0
- data/app/views/cms/dynamic_views/new.html.erb +3 -0
- data/app/views/cms/email_messages/index.html.erb +39 -0
- data/app/views/cms/email_messages/show.html.erb +57 -0
- data/app/views/cms/file_blocks/_form.html.erb +30 -0
- data/app/views/cms/file_blocks/render.html.erb +5 -0
- data/app/views/cms/forgot_password_mailer/reset_password.text.html.erb +3 -0
- data/app/views/cms/forgot_password_mailer/reset_password.text.plain.erb +3 -0
- data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
- data/app/views/cms/form_builder/_cms_date_picker.html.erb +12 -0
- data/app/views/cms/form_builder/_cms_datetime_select.html.erb +12 -0
- data/app/views/cms/form_builder/_cms_drop_down.html.erb +12 -0
- data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
- data/app/views/cms/form_builder/_cms_file_field.html.erb +36 -0
- data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
- data/app/views/cms/form_builder/_cms_tag_list.html.erb +15 -0
- data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
- data/app/views/cms/form_builder/_cms_text_area.html.erb +13 -0
- data/app/views/cms/form_builder/_cms_text_editor.html.erb +18 -0
- data/app/views/cms/form_builder/_cms_text_field.html.erb +12 -0
- data/app/views/cms/groups/_form.html.erb +45 -0
- data/app/views/cms/groups/_permissions.html.erb +37 -0
- data/app/views/cms/groups/_sections.html.erb +19 -0
- data/app/views/cms/groups/edit.html.erb +4 -0
- data/app/views/cms/groups/index.html.erb +58 -0
- data/app/views/cms/groups/new.html.erb +4 -0
- data/app/views/cms/html_blocks/_form.html.erb +3 -0
- data/app/views/cms/html_blocks/render.html.erb +1 -0
- data/app/views/cms/image_blocks/_form.html.erb +30 -0
- data/app/views/cms/image_blocks/render.html.erb +1 -0
- data/app/views/cms/links/_form.html.erb +13 -0
- data/app/views/cms/links/destroy.js.rjs +2 -0
- data/app/views/cms/links/edit.html.erb +14 -0
- data/app/views/cms/links/new.html.erb +15 -0
- data/app/views/cms/menus/_menu.html.erb +9 -0
- data/app/views/cms/menus/_menu_item.html.erb +11 -0
- data/app/views/cms/page_routes/_form.html.erb +11 -0
- data/app/views/cms/page_routes/edit.html.erb +3 -0
- data/app/views/cms/page_routes/index.html.erb +56 -0
- data/app/views/cms/page_routes/new.html.erb +3 -0
- data/app/views/cms/page_routes/show.html.erb +14 -0
- data/app/views/cms/pages/_edit_connector.html.erb +27 -0
- data/app/views/cms/pages/_edit_container.html.erb +12 -0
- data/app/views/cms/pages/_form.html.erb +46 -0
- data/app/views/cms/pages/edit.html.erb +23 -0
- data/app/views/cms/pages/new.html.erb +33 -0
- data/app/views/cms/pages/versions.html.erb +91 -0
- data/app/views/cms/redirects/_form.html.erb +15 -0
- data/app/views/cms/redirects/edit.html.erb +3 -0
- data/app/views/cms/redirects/index.html.erb +50 -0
- data/app/views/cms/redirects/new.html.erb +3 -0
- data/app/views/cms/routes/index.html.erb +40 -0
- data/app/views/cms/section_nodes/_link.html.erb +11 -0
- data/app/views/cms/section_nodes/_node.html.erb +34 -0
- data/app/views/cms/section_nodes/_page.html.erb +14 -0
- data/app/views/cms/section_nodes/_section.html.erb +12 -0
- data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
- data/app/views/cms/section_nodes/index.html.erb +31 -0
- data/app/views/cms/sections/_form.html.erb +59 -0
- data/app/views/cms/sections/_page.html.erb +4 -0
- data/app/views/cms/sections/_section.html.erb +8 -0
- data/app/views/cms/sections/destroy.js.rjs +2 -0
- data/app/views/cms/sections/edit.html.erb +10 -0
- data/app/views/cms/sections/file_browser.xml.builder +14 -0
- data/app/views/cms/sections/index.html.erb +23 -0
- data/app/views/cms/sections/new.html.erb +21 -0
- data/app/views/cms/sessions/new.html.erb +32 -0
- data/app/views/cms/shared/_admin_sidebar.html.erb +30 -0
- data/app/views/cms/shared/_exception.html.erb +6 -0
- data/app/views/cms/shared/_pagination.html.erb +31 -0
- data/app/views/cms/shared/_version_conflict_diff.html.erb +11 -0
- data/app/views/cms/shared/_version_conflict_error.html.erb +6 -0
- data/app/views/cms/shared/access_denied.html.erb +3 -0
- data/app/views/cms/shared/error.html.erb +40 -0
- data/app/views/cms/tags/_form.html.erb +1 -0
- data/app/views/cms/tags/render.html.erb +53 -0
- data/app/views/cms/task_items/new.html.erb +36 -0
- data/app/views/cms/toolbar/index.html.erb +1 -0
- data/app/views/cms/users/_form.html.erb +12 -0
- data/app/views/cms/users/_groups.html.erb +12 -0
- data/app/views/cms/users/_password.html.erb +8 -0
- data/app/views/cms/users/_toolbar.html.erb +22 -0
- data/app/views/cms/users/_user_fields.html.erb +20 -0
- data/app/views/cms/users/change_password.html.erb +21 -0
- data/app/views/cms/users/edit.html.erb +16 -0
- data/app/views/cms/users/index.html.erb +62 -0
- data/app/views/cms/users/new.html.erb +13 -0
- data/app/views/cms/users/show.html.erb +50 -0
- data/app/views/layouts/_cms_toolbar.html.erb +54 -0
- data/app/views/layouts/_page_toolbar.html.erb +118 -0
- data/app/views/layouts/application.html.erb +11 -0
- data/app/views/layouts/cms/_footer.erb +4 -0
- data/app/views/layouts/cms/_head.html.erb +28 -0
- data/app/views/layouts/cms/administration.html.erb +51 -0
- data/app/views/layouts/cms/application.html.erb +25 -0
- data/app/views/layouts/cms/content_library.html.erb +94 -0
- data/app/views/layouts/cms/dashboard.html.erb +16 -0
- data/app/views/layouts/cms/login.html.erb +30 -0
- data/app/views/layouts/cms/section_nodes.html.erb +20 -0
- data/app/views/layouts/cms/thickbox.html.erb +24 -0
- data/app/views/layouts/cms/toolbar.html.erb +23 -0
- data/app/views/portlets/dynamic/_form.html.erb +3 -0
- data/app/views/portlets/email_page/_form.html.erb +7 -0
- data/app/views/portlets/email_page/render.html.erb +17 -0
- data/app/views/portlets/forgot_password/_form.html.erb +6 -0
- data/app/views/portlets/forgot_password/render.html.erb +14 -0
- data/app/views/portlets/login/_form.html.erb +6 -0
- data/app/views/portlets/login/render.html.erb +27 -0
- data/app/views/portlets/portlets/_form.html.erb +19 -0
- data/app/views/portlets/reset_password/_form.html.erb +3 -0
- data/app/views/portlets/reset_password/render.html.erb +24 -0
- data/app/views/portlets/tag_cloud/_form.html.erb +4 -0
- data/app/views/portlets/tag_cloud/render.html.erb +5 -0
- data/app/views/tests/pretend/open_with_layout.html.erb +2 -0
- data/bf4-browsercms.gemspec +1030 -0
- data/db/demo/data.rb +97 -0
- data/db/demo/page_partials/_footer.html.erb +6 -0
- data/db/demo/page_partials/_header.html.erb +24 -0
- data/db/demo/page_templates/home_page.html.erb +49 -0
- data/db/demo/page_templates/sub_page.html.erb +37 -0
- data/db/migrate/20080815014337_browsercms_3_0_0.rb +274 -0
- data/db/migrate/20081114172307_load_seed_data.rb +92 -0
- data/db/migrate/20091109175123_browsercms_3_0_5.rb +9 -0
- data/db/migrate/20110127230131_change_task_to_task_item_due_to_namespace_issue.rb +9 -0
- data/doc/app/classes/AbstractFileBlock.html +146 -0
- data/doc/app/classes/ActiveRecord.html +105 -0
- data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +242 -0
- data/doc/app/classes/ActiveSupport.html +111 -0
- data/doc/app/classes/ActiveSupport/Cache.html +111 -0
- data/doc/app/classes/ActiveSupport/Cache/FileStore.html +146 -0
- data/doc/app/classes/ActsAsList.html +147 -0
- data/doc/app/classes/ActsAsList/ClassMethods.html +202 -0
- data/doc/app/classes/ActsAsList/InstanceMethods.html +510 -0
- data/doc/app/classes/ApplicationController.html +119 -0
- data/doc/app/classes/ApplicationHelper.html +112 -0
- data/doc/app/classes/Attachment.html +726 -0
- data/doc/app/classes/Category.html +230 -0
- data/doc/app/classes/CategoryType.html +214 -0
- data/doc/app/classes/Cms.html +638 -0
- data/doc/app/classes/Cms/Acts.html +111 -0
- data/doc/app/classes/Cms/Acts/ContentBlock.html +146 -0
- data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +165 -0
- data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +140 -0
- data/doc/app/classes/Cms/ApplicationController.html +418 -0
- data/doc/app/classes/Cms/ApplicationHelper.html +814 -0
- data/doc/app/classes/Cms/AttachmentsController.html +154 -0
- data/doc/app/classes/Cms/Authentication.html +116 -0
- data/doc/app/classes/Cms/Authentication/Controller.html +702 -0
- data/doc/app/classes/Cms/Authentication/Model.html +165 -0
- data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +246 -0
- data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +412 -0
- data/doc/app/classes/Cms/BaseController.html +113 -0
- data/doc/app/classes/Cms/Behaviors.html +235 -0
- data/doc/app/classes/Cms/Behaviors/Archiving.html +147 -0
- data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +220 -0
- data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +175 -0
- data/doc/app/classes/Cms/Behaviors/Attaching.html +160 -0
- data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +670 -0
- data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +188 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +140 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +178 -0
- data/doc/app/classes/Cms/Behaviors/ClassMethods.html +272 -0
- data/doc/app/classes/Cms/Behaviors/Connecting.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +188 -0
- data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +312 -0
- data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +184 -0
- data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +285 -0
- data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +181 -0
- data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +243 -0
- data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +178 -0
- data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +142 -0
- data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +175 -0
- data/doc/app/classes/Cms/Behaviors/Hiding.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Hiding/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +220 -0
- data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +176 -0
- data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +234 -0
- data/doc/app/classes/Cms/Behaviors/Pagination.html +151 -0
- data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +252 -0
- data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +437 -0
- data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +146 -0
- data/doc/app/classes/Cms/Behaviors/Publishing.html +179 -0
- data/doc/app/classes/Cms/Behaviors/Publishing/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +333 -0
- data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +180 -0
- data/doc/app/classes/Cms/Behaviors/Rendering.html +179 -0
- data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +186 -0
- data/doc/app/classes/Cms/Behaviors/Searching.html +147 -0
- data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +164 -0
- data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +188 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +148 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +217 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +247 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +205 -0
- data/doc/app/classes/Cms/Behaviors/Taggable.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +164 -0
- data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +197 -0
- data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +182 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +143 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +181 -0
- data/doc/app/classes/Cms/Behaviors/Versioning.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +237 -0
- data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +685 -0
- data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +290 -0
- data/doc/app/classes/Cms/CacheController.html +174 -0
- data/doc/app/classes/Cms/Caching.html +171 -0
- data/doc/app/classes/Cms/CategoriesController.html +113 -0
- data/doc/app/classes/Cms/CategoryTypesController.html +148 -0
- data/doc/app/classes/Cms/ConnectorsController.html +215 -0
- data/doc/app/classes/Cms/ContentBlockController.html +1175 -0
- data/doc/app/classes/Cms/ContentController.html +313 -0
- data/doc/app/classes/Cms/ContentTypesController.html +148 -0
- data/doc/app/classes/Cms/DashboardController.html +151 -0
- data/doc/app/classes/Cms/DataLoader.html +182 -0
- data/doc/app/classes/Cms/DynamicViewsController.html +359 -0
- data/doc/app/classes/Cms/EmailMessagesController.html +172 -0
- data/doc/app/classes/Cms/ErrorHandling.html +172 -0
- data/doc/app/classes/Cms/Errors.html +111 -0
- data/doc/app/classes/Cms/Errors/AccessDenied.html +146 -0
- data/doc/app/classes/Cms/Extensions.html +140 -0
- data/doc/app/classes/Cms/Extensions/ActionView.html +111 -0
- data/doc/app/classes/Cms/Extensions/ActionView/Base.html +141 -0
- data/doc/app/classes/Cms/Extensions/ActiveRecord.html +116 -0
- data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +144 -0
- data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +140 -0
- data/doc/app/classes/Cms/Extensions/Hash.html +175 -0
- data/doc/app/classes/Cms/Extensions/Integer.html +146 -0
- data/doc/app/classes/Cms/Extensions/NilClass.html +212 -0
- data/doc/app/classes/Cms/Extensions/String.html +212 -0
- data/doc/app/classes/Cms/FileBlocksController.html +113 -0
- data/doc/app/classes/Cms/FormBuilder.html +312 -0
- data/doc/app/classes/Cms/FormTagHelper.html +245 -0
- data/doc/app/classes/Cms/GroupsController.html +225 -0
- data/doc/app/classes/Cms/HomeController.html +148 -0
- data/doc/app/classes/Cms/HtmlBlocksController.html +113 -0
- data/doc/app/classes/Cms/ImageBlocksController.html +113 -0
- data/doc/app/classes/Cms/LinksController.html +341 -0
- data/doc/app/classes/Cms/MenuHelper.html +330 -0
- data/doc/app/classes/Cms/PageHelper.html +292 -0
- data/doc/app/classes/Cms/PageRouteConditionsController.html +113 -0
- data/doc/app/classes/Cms/PageRouteOptionsController.html +355 -0
- data/doc/app/classes/Cms/PageRouteRequirementsController.html +113 -0
- data/doc/app/classes/Cms/PageRoutesController.html +284 -0
- data/doc/app/classes/Cms/PagesController.html +331 -0
- data/doc/app/classes/Cms/PathHelper.html +268 -0
- data/doc/app/classes/Cms/PortletController.html +150 -0
- data/doc/app/classes/Cms/PortletsController.html +301 -0
- data/doc/app/classes/Cms/RedirectsController.html +172 -0
- data/doc/app/classes/Cms/ResourceController.html +616 -0
- data/doc/app/classes/Cms/Routes.html +303 -0
- data/doc/app/classes/Cms/RoutesController.html +164 -0
- data/doc/app/classes/Cms/SectionNodesController.html +272 -0
- data/doc/app/classes/Cms/SectionNodesHelper.html +145 -0
- data/doc/app/classes/Cms/SectionsController.html +542 -0
- data/doc/app/classes/Cms/SessionsController.html +270 -0
- data/doc/app/classes/Cms/TagsController.html +152 -0
- data/doc/app/classes/Cms/TasksController.html +221 -0
- data/doc/app/classes/Cms/ToolbarController.html +153 -0
- data/doc/app/classes/Cms/UsersController.html +405 -0
- data/doc/app/classes/Connector.html +350 -0
- data/doc/app/classes/ContentType.html +448 -0
- data/doc/app/classes/ContentTypeGroup.html +111 -0
- data/doc/app/classes/DynamicPortlet.html +148 -0
- data/doc/app/classes/DynamicView.html +411 -0
- data/doc/app/classes/EmailMessage.html +228 -0
- data/doc/app/classes/EmailMessageMailer.html +150 -0
- data/doc/app/classes/EmailPagePortlet.html +184 -0
- data/doc/app/classes/FileBlock.html +202 -0
- data/doc/app/classes/Group.html +170 -0
- data/doc/app/classes/GroupPermission.html +111 -0
- data/doc/app/classes/GroupSection.html +111 -0
- data/doc/app/classes/GroupType.html +111 -0
- data/doc/app/classes/GroupTypePermission.html +111 -0
- data/doc/app/classes/GuestUser.html +347 -0
- data/doc/app/classes/HtmlBlock.html +170 -0
- data/doc/app/classes/ImageBlock.html +202 -0
- data/doc/app/classes/InitialData.html +171 -0
- data/doc/app/classes/Link.html +249 -0
- data/doc/app/classes/LoginPortlet.html +151 -0
- data/doc/app/classes/Page.html +954 -0
- data/doc/app/classes/PagePartial.html +201 -0
- data/doc/app/classes/PageRoute.html +335 -0
- data/doc/app/classes/PageRouteCondition.html +113 -0
- data/doc/app/classes/PageRouteOption.html +111 -0
- data/doc/app/classes/PageRouteRequirement.html +113 -0
- data/doc/app/classes/PageTemplate.html +278 -0
- data/doc/app/classes/Permission.html +111 -0
- data/doc/app/classes/Portlet.html +738 -0
- data/doc/app/classes/Redirect.html +111 -0
- data/doc/app/classes/Section.html +580 -0
- data/doc/app/classes/SectionNode.html +410 -0
- data/doc/app/classes/Sequence.html +146 -0
- data/doc/app/classes/Site.html +253 -0
- data/doc/app/classes/Tag.html +292 -0
- data/doc/app/classes/TagCloudPortlet.html +176 -0
- data/doc/app/classes/Tagging.html +146 -0
- data/doc/app/classes/Task.html +288 -0
- data/doc/app/classes/User.html +618 -0
- data/doc/app/classes/UserGroupMembership.html +111 -0
- data/doc/app/created.rid +1 -0
- data/doc/app/files/app/controllers/application_controller_rb.html +109 -0
- data/doc/app/files/app/controllers/cms/application_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/attachments_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/base_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/cache_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/categories_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/category_types_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +107 -0
- data/doc/app/files/app/controllers/cms/content_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/content_types_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/dynamic_views_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/email_messages_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/error_handling_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/file_blocks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/groups_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/home_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/html_blocks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/image_blocks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/links_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_route_conditions_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_route_options_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_route_requirements_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_routes_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/pages_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/portlet_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/redirects_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/resource_controller_rb.html +108 -0
- data/doc/app/files/app/controllers/cms/routes_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/sections_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +107 -0
- data/doc/app/files/app/controllers/cms/tags_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/tasks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/toolbar_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/users_controller_rb.html +101 -0
- data/doc/app/files/app/helpers/application_helper_rb.html +108 -0
- data/doc/app/files/app/helpers/cms/application_helper_rb.html +107 -0
- data/doc/app/files/app/helpers/cms/form_builder_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/form_tag_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/menu_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/page_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/path_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/section_nodes_helper_rb.html +101 -0
- data/doc/app/files/app/models/abstract_file_block_rb.html +101 -0
- data/doc/app/files/app/models/attachment_rb.html +109 -0
- data/doc/app/files/app/models/category_rb.html +101 -0
- data/doc/app/files/app/models/category_type_rb.html +101 -0
- data/doc/app/files/app/models/connector_rb.html +101 -0
- data/doc/app/files/app/models/content_type_group_rb.html +101 -0
- data/doc/app/files/app/models/content_type_rb.html +101 -0
- data/doc/app/files/app/models/dynamic_view_rb.html +101 -0
- data/doc/app/files/app/models/email_message_mailer_rb.html +101 -0
- data/doc/app/files/app/models/email_message_rb.html +101 -0
- data/doc/app/files/app/models/file_block_rb.html +101 -0
- data/doc/app/files/app/models/group_permission_rb.html +101 -0
- data/doc/app/files/app/models/group_rb.html +101 -0
- data/doc/app/files/app/models/group_section_rb.html +101 -0
- data/doc/app/files/app/models/group_type_permission_rb.html +101 -0
- data/doc/app/files/app/models/group_type_rb.html +101 -0
- data/doc/app/files/app/models/guest_user_rb.html +101 -0
- data/doc/app/files/app/models/html_block_rb.html +101 -0
- data/doc/app/files/app/models/image_block_rb.html +101 -0
- data/doc/app/files/app/models/link_rb.html +101 -0
- data/doc/app/files/app/models/page_partial_rb.html +101 -0
- data/doc/app/files/app/models/page_rb.html +101 -0
- data/doc/app/files/app/models/page_route_condition_rb.html +101 -0
- data/doc/app/files/app/models/page_route_option_rb.html +101 -0
- data/doc/app/files/app/models/page_route_rb.html +101 -0
- data/doc/app/files/app/models/page_route_requirement_rb.html +101 -0
- data/doc/app/files/app/models/page_template_rb.html +101 -0
- data/doc/app/files/app/models/permission_rb.html +101 -0
- data/doc/app/files/app/models/portlet_rb.html +101 -0
- data/doc/app/files/app/models/redirect_rb.html +101 -0
- data/doc/app/files/app/models/section_node_rb.html +101 -0
- data/doc/app/files/app/models/section_rb.html +101 -0
- data/doc/app/files/app/models/site_rb.html +101 -0
- data/doc/app/files/app/models/tag_rb.html +101 -0
- data/doc/app/files/app/models/tagging_rb.html +101 -0
- data/doc/app/files/app/models/task_rb.html +101 -0
- data/doc/app/files/app/models/user_group_membership_rb.html +101 -0
- data/doc/app/files/app/models/user_rb.html +108 -0
- data/doc/app/files/app/portlets/dynamic_portlet_rb.html +101 -0
- data/doc/app/files/app/portlets/email_page_portlet_rb.html +101 -0
- data/doc/app/files/app/portlets/login_portlet_rb.html +101 -0
- data/doc/app/files/app/portlets/tag_cloud_portlet_rb.html +101 -0
- data/doc/app/files/doc/README_FOR_APP.html +127 -0
- data/doc/app/files/lib/acts_as_list_rb.html +101 -0
- data/doc/app/files/lib/browsercms_rb.html +113 -0
- data/doc/app/files/lib/cms/acts/content_block_rb.html +101 -0
- data/doc/app/files/lib/cms/authentication/controller_rb.html +101 -0
- data/doc/app/files/lib/cms/authentication/model_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/archiving_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/attaching_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/categorizing_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/connecting_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/dynamic_attributes_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/flush_cache_on_change_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/hiding_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/pagination_rb.html +107 -0
- data/doc/app/files/lib/cms/behaviors/publishing_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/rendering_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/searching_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/soft_deleting_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/taggable_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/userstamping_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/versioning_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors_rb.html +147 -0
- data/doc/app/files/lib/cms/caching_rb.html +101 -0
- data/doc/app/files/lib/cms/data_loader_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/action_view/base_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_record/base_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_record/errors_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_support/cache/file_store_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/hash_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/integer_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/nil_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/string_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions_rb.html +101 -0
- data/doc/app/files/lib/cms/init_rb.html +101 -0
- data/doc/app/files/lib/cms/routes_rb.html +101 -0
- data/doc/app/files/lib/initial_data_rb.html +101 -0
- data/doc/app/files/lib/sequence_rb.html +101 -0
- data/doc/app/fr_class_index.html +205 -0
- data/doc/app/fr_file_index.html +152 -0
- data/doc/app/fr_method_index.html +738 -0
- data/doc/app/index.html +24 -0
- data/doc/app/rdoc-style.css +208 -0
- data/doc/guides/html/build_it_yourself.html +175 -0
- data/doc/guides/html/building_modules.html +193 -0
- data/doc/guides/html/deployment_guide.html +181 -0
- data/doc/guides/html/designer_guide.html +163 -0
- data/doc/guides/html/developer_guide.html +304 -0
- data/doc/guides/html/files/javascripts/code_highlighter.js +188 -0
- data/doc/guides/html/files/javascripts/guides.js +7 -0
- data/doc/guides/html/files/javascripts/highlighters.js +90 -0
- data/doc/guides/html/files/stylesheets/main.css +441 -0
- data/doc/guides/html/files/stylesheets/reset.css +43 -0
- data/doc/guides/html/files/stylesheets/style.css +13 -0
- data/doc/guides/html/files/stylesheets/syntax.css +31 -0
- data/doc/guides/html/getting_started.html +181 -0
- data/doc/guides/html/images/bg.png +0 -0
- data/doc/guides/html/images/bottom_cap.png +0 -0
- data/doc/guides/html/images/browsercms_logo.png +0 -0
- data/doc/guides/html/images/dot.png +0 -0
- data/doc/guides/html/images/icons/README +5 -0
- data/doc/guides/html/images/icons/callouts/1.png +0 -0
- data/doc/guides/html/images/icons/callouts/10.png +0 -0
- data/doc/guides/html/images/icons/callouts/11.png +0 -0
- data/doc/guides/html/images/icons/callouts/12.png +0 -0
- data/doc/guides/html/images/icons/callouts/13.png +0 -0
- data/doc/guides/html/images/icons/callouts/14.png +0 -0
- data/doc/guides/html/images/icons/callouts/15.png +0 -0
- data/doc/guides/html/images/icons/callouts/2.png +0 -0
- data/doc/guides/html/images/icons/callouts/3.png +0 -0
- data/doc/guides/html/images/icons/callouts/4.png +0 -0
- data/doc/guides/html/images/icons/callouts/5.png +0 -0
- data/doc/guides/html/images/icons/callouts/6.png +0 -0
- data/doc/guides/html/images/icons/callouts/7.png +0 -0
- data/doc/guides/html/images/icons/callouts/8.png +0 -0
- data/doc/guides/html/images/icons/callouts/9.png +0 -0
- data/doc/guides/html/images/icons/caution.png +0 -0
- data/doc/guides/html/images/icons/example.png +0 -0
- data/doc/guides/html/images/icons/home.png +0 -0
- data/doc/guides/html/images/icons/important.png +0 -0
- data/doc/guides/html/images/icons/next.png +0 -0
- data/doc/guides/html/images/icons/note.png +0 -0
- data/doc/guides/html/images/icons/prev.png +0 -0
- data/doc/guides/html/images/icons/tip.png +0 -0
- data/doc/guides/html/images/icons/up.png +0 -0
- data/doc/guides/html/images/icons/warning.png +0 -0
- data/doc/guides/html/images/top_cap.png +0 -0
- data/doc/guides/html/images/top_cap_content.png +0 -0
- data/doc/guides/html/index.html +168 -0
- data/doc/guides/html/installing_modules.html +181 -0
- data/doc/guides/html/user_guide.html +266 -0
- data/lib/acts_as_list.rb +256 -0
- data/lib/browsercms.rb +12 -0
- data/lib/cms/acts/content_block.rb +31 -0
- data/lib/cms/acts/content_page.rb +69 -0
- data/lib/cms/authentication/controller.rb +214 -0
- data/lib/cms/authentication/model.rb +116 -0
- data/lib/cms/behaviors.rb +33 -0
- data/lib/cms/behaviors/archiving.rb +43 -0
- data/lib/cms/behaviors/attaching.rb +184 -0
- data/lib/cms/behaviors/categorizing.rb +31 -0
- data/lib/cms/behaviors/connecting.rb +99 -0
- data/lib/cms/behaviors/dynamic_attributes.rb +367 -0
- data/lib/cms/behaviors/flush_cache_on_change.rb +33 -0
- data/lib/cms/behaviors/hiding.rb +46 -0
- data/lib/cms/behaviors/pagination.rb +209 -0
- data/lib/cms/behaviors/publishing.rb +123 -0
- data/lib/cms/behaviors/rendering.rb +156 -0
- data/lib/cms/behaviors/searching.rb +49 -0
- data/lib/cms/behaviors/soft_deleting.rb +77 -0
- data/lib/cms/behaviors/taggable.rb +57 -0
- data/lib/cms/behaviors/userstamping.rb +37 -0
- data/lib/cms/behaviors/versioning.rb +273 -0
- data/lib/cms/caching.rb +20 -0
- data/lib/cms/content_rendering_support.rb +96 -0
- data/lib/cms/data_loader.rb +28 -0
- data/lib/cms/domain_support.rb +20 -0
- data/lib/cms/extensions.rb +4 -0
- data/lib/cms/extensions/action_view/base.rb +13 -0
- data/lib/cms/extensions/active_record/base.rb +16 -0
- data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +88 -0
- data/lib/cms/extensions/active_record/errors.rb +12 -0
- data/lib/cms/extensions/active_support/cache/file_store.rb +9 -0
- data/lib/cms/extensions/hash.rb +21 -0
- data/lib/cms/extensions/integer.rb +16 -0
- data/lib/cms/extensions/nil.rb +19 -0
- data/lib/cms/extensions/string.rb +19 -0
- data/lib/cms/init.rb +100 -0
- data/lib/cms/routes.rb +136 -0
- data/lib/initial_data.rb +30 -0
- data/lib/sequence.rb +6 -0
- data/lib/tasks/cms.rake +39 -0
- data/lib/tasks/db.rake +71 -0
- data/lib/tasks/dev.rake +20 -0
- data/public/images/cms/administration/user_browser_bg.gif +0 -0
- data/public/images/cms/bg.png +0 -0
- data/public/images/cms/bl_curve.png +0 -0
- data/public/images/cms/bottom_cap.png +0 -0
- data/public/images/cms/bottom_cap_content.png +0 -0
- data/public/images/cms/browse.gif +0 -0
- data/public/images/cms/browser_media_logo.png +0 -0
- data/public/images/cms/browsercms_logo.png +0 -0
- data/public/images/cms/buttons/button.png +0 -0
- data/public/images/cms/buttons/button_bg.png +0 -0
- data/public/images/cms/buttons/button_cap.png +0 -0
- data/public/images/cms/buttons/button_cap_h.png +0 -0
- data/public/images/cms/buttons/button_cap_off.gif +0 -0
- data/public/images/cms/buttons/button_cap_off_middle.gif +0 -0
- data/public/images/cms/buttons/button_h.png +0 -0
- data/public/images/cms/buttons/button_left_bg.png +0 -0
- data/public/images/cms/buttons/button_off.png +0 -0
- data/public/images/cms/buttons/button_off_middle.png +0 -0
- data/public/images/cms/buttons/delete_x.png +0 -0
- data/public/images/cms/buttons/delete_x_disabled.png +0 -0
- data/public/images/cms/buttons/delete_x_h.png +0 -0
- data/public/images/cms/buttons/sm_button.gif +0 -0
- data/public/images/cms/buttons/sm_button_2.gif +0 -0
- data/public/images/cms/buttons/sm_button_2_h.gif +0 -0
- data/public/images/cms/buttons/sm_button_h.gif +0 -0
- data/public/images/cms/containers/add.gif +0 -0
- data/public/images/cms/containers/alpha.png +0 -0
- data/public/images/cms/containers/beta.png +0 -0
- data/public/images/cms/containers/delete.gif +0 -0
- data/public/images/cms/containers/down.gif +0 -0
- data/public/images/cms/containers/edit.gif +0 -0
- data/public/images/cms/containers/up.gif +0 -0
- data/public/images/cms/containers/view.gif +0 -0
- data/public/images/cms/content_bg.gif +0 -0
- data/public/images/cms/dashboard/bottom_cap.png +0 -0
- data/public/images/cms/dashboard/bottom_cap_content.png +0 -0
- data/public/images/cms/dashboard/header_bg.gif +0 -0
- data/public/images/cms/dashboard/header_left_bg.gif +0 -0
- data/public/images/cms/dashboard/table_header_bg.gif +0 -0
- data/public/images/cms/dashboard/top_cap.png +0 -0
- data/public/images/cms/dashed.gif +0 -0
- data/public/images/cms/datepicker/clear.gif +0 -0
- data/public/images/cms/datepicker/close.gif +0 -0
- data/public/images/cms/dk_button_l.gif +0 -0
- data/public/images/cms/dk_button_r.gif +0 -0
- data/public/images/cms/dot.png +0 -0
- data/public/images/cms/draft_status.gif +0 -0
- data/public/images/cms/gray_long_bg.gif +0 -0
- data/public/images/cms/icons/actions/add.png +0 -0
- data/public/images/cms/icons/actions/config.png +0 -0
- data/public/images/cms/icons/actions/connect.png +0 -0
- data/public/images/cms/icons/actions/delete.png +0 -0
- data/public/images/cms/icons/actions/down.png +0 -0
- data/public/images/cms/icons/actions/edit.png +0 -0
- data/public/images/cms/icons/actions/folder.png +0 -0
- data/public/images/cms/icons/actions/folder_add.png +0 -0
- data/public/images/cms/icons/actions/folder_delete.png +0 -0
- data/public/images/cms/icons/actions/folder_edit.png +0 -0
- data/public/images/cms/icons/actions/folder_move.png +0 -0
- data/public/images/cms/icons/actions/folder_open.png +0 -0
- data/public/images/cms/icons/actions/history.png +0 -0
- data/public/images/cms/icons/actions/home.png +0 -0
- data/public/images/cms/icons/actions/left.png +0 -0
- data/public/images/cms/icons/actions/link.png +0 -0
- data/public/images/cms/icons/actions/page.png +0 -0
- data/public/images/cms/icons/actions/page_add.png +0 -0
- data/public/images/cms/icons/actions/page_edit.png +0 -0
- data/public/images/cms/icons/actions/page_move.png +0 -0
- data/public/images/cms/icons/actions/redo.png +0 -0
- data/public/images/cms/icons/actions/refresh.png +0 -0
- data/public/images/cms/icons/actions/right.png +0 -0
- data/public/images/cms/icons/actions/root_folder.png +0 -0
- data/public/images/cms/icons/actions/root_link.png +0 -0
- data/public/images/cms/icons/actions/root_page.png +0 -0
- data/public/images/cms/icons/actions/undo.png +0 -0
- data/public/images/cms/icons/actions/up.png +0 -0
- data/public/images/cms/icons/actions/view.png +0 -0
- data/public/images/cms/icons/file_types/doc.png +0 -0
- data/public/images/cms/icons/file_types/file.png +0 -0
- data/public/images/cms/icons/file_types/gif.png +0 -0
- data/public/images/cms/icons/file_types/htm.png +0 -0
- data/public/images/cms/icons/file_types/pdf.png +0 -0
- data/public/images/cms/icons/file_types/ppt.png +0 -0
- data/public/images/cms/icons/file_types/swf.png +0 -0
- data/public/images/cms/icons/file_types/txt.png +0 -0
- data/public/images/cms/icons/file_types/xls.png +0 -0
- data/public/images/cms/icons/file_types/xml.png +0 -0
- data/public/images/cms/icons/file_types/zip.png +0 -0
- data/public/images/cms/icons/status/archived.gif +0 -0
- data/public/images/cms/icons/status/draft.gif +0 -0
- data/public/images/cms/icons/status/hidden.gif +0 -0
- data/public/images/cms/icons/status/locked.gif +0 -0
- data/public/images/cms/icons/status/published.gif +0 -0
- data/public/images/cms/icons/status/unlocked.gif +0 -0
- data/public/images/cms/icons/user.png +0 -0
- data/public/images/cms/login_bg.jpg +0 -0
- data/public/images/cms/login_bottom.jpg +0 -0
- data/public/images/cms/login_top.gif +0 -0
- data/public/images/cms/lt_button_bg.gif +0 -0
- data/public/images/cms/lt_button_l.gif +0 -0
- data/public/images/cms/lt_button_r.gif +0 -0
- data/public/images/cms/menu.png +0 -0
- data/public/images/cms/menu/block_cap_h.gif +0 -0
- data/public/images/cms/menu/bottom_cap.png +0 -0
- data/public/images/cms/menu/bottom_cap_menu.png +0 -0
- data/public/images/cms/menu/bottom_cap_menu_first.png +0 -0
- data/public/images/cms/menu/menu_header_first_bg.gif +0 -0
- data/public/images/cms/menu/selected_block_cap.gif +0 -0
- data/public/images/cms/menu/top_cap.png +0 -0
- data/public/images/cms/menu/top_cap_menu_header.png +0 -0
- data/public/images/cms/menu_h.gif +0 -0
- data/public/images/cms/menu_header.png +0 -0
- data/public/images/cms/menu_open.png +0 -0
- data/public/images/cms/menu_open_bg.gif +0 -0
- data/public/images/cms/nav.png +0 -0
- data/public/images/cms/nav/on_bg.gif +0 -0
- data/public/images/cms/nav_admin.gif +0 -0
- data/public/images/cms/nav_admin_h.gif +0 -0
- data/public/images/cms/nav_admin_on.gif +0 -0
- data/public/images/cms/nav_cap.png +0 -0
- data/public/images/cms/nav_cap_h.gif +0 -0
- data/public/images/cms/nav_content_library.gif +0 -0
- data/public/images/cms/nav_content_library_h.gif +0 -0
- data/public/images/cms/nav_content_library_on.gif +0 -0
- data/public/images/cms/nav_dash.gif +0 -0
- data/public/images/cms/nav_dash_h.gif +0 -0
- data/public/images/cms/nav_dash_on.gif +0 -0
- data/public/images/cms/nav_h.gif +0 -0
- data/public/images/cms/nav_sitemap.gif +0 -0
- data/public/images/cms/nav_sitemap_h.gif +0 -0
- data/public/images/cms/nav_sitemap_on.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_bg.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_bg.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_draft_bg.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_draft_l.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_draft_r.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_l.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_published_bg.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_published_l.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_published_r.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_inset_r.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_l.gif +0 -0
- data/public/images/cms/page_toolbar/page_toolbar_r.gif +0 -0
- data/public/images/cms/page_toolbar/status_draft_bg.gif +0 -0
- data/public/images/cms/page_toolbar/status_draft_l.gif +0 -0
- data/public/images/cms/page_toolbar/status_l.gif +0 -0
- data/public/images/cms/page_toolbar/status_published_bg.gif +0 -0
- data/public/images/cms/page_toolbar/status_published_l.gif +0 -0
- data/public/images/cms/page_toolbar/visual_editor_bg.gif +0 -0
- data/public/images/cms/page_toolbar/visual_editor_end.gif +0 -0
- data/public/images/cms/page_toolbar/visual_editor_r.gif +0 -0
- data/public/images/cms/page_toolbar/visual_editor_state_bg.gif +0 -0
- data/public/images/cms/pages/add_connectable.gif +0 -0
- data/public/images/cms/pages/connect_connectable.gif +0 -0
- data/public/images/cms/pages/container_border.gif +0 -0
- data/public/images/cms/pages/container_border_l.gif +0 -0
- data/public/images/cms/pages/container_border_r.gif +0 -0
- data/public/images/cms/pages/delete_connectable.gif +0 -0
- data/public/images/cms/pages/down_connectable.gif +0 -0
- data/public/images/cms/pages/down_connectable_disabled.gif +0 -0
- data/public/images/cms/pages/edit_connectable.gif +0 -0
- data/public/images/cms/pages/edit_connectable_2.gif +0 -0
- data/public/images/cms/pages/show_connectable.gif +0 -0
- data/public/images/cms/pages/up_connectable.gif +0 -0
- data/public/images/cms/pages/up_connectable_disabled.gif +0 -0
- data/public/images/cms/pagination/first.gif +0 -0
- data/public/images/cms/pagination/first_h.gif +0 -0
- data/public/images/cms/pagination/input.gif +0 -0
- data/public/images/cms/pagination/last.gif +0 -0
- data/public/images/cms/pagination/last_h.gif +0 -0
- data/public/images/cms/pagination/next.gif +0 -0
- data/public/images/cms/pagination/next_h.gif +0 -0
- data/public/images/cms/pagination/previous.gif +0 -0
- data/public/images/cms/pagination/previous_h.gif +0 -0
- data/public/images/cms/published_status.gif +0 -0
- data/public/images/cms/search.png +0 -0
- data/public/images/cms/search_submit.gif +0 -0
- data/public/images/cms/search_submit_h.gif +0 -0
- data/public/images/cms/searchbox_gradient.gif +0 -0
- data/public/images/cms/select_bg.gif +0 -0
- data/public/images/cms/select_bg_2.gif +0 -0
- data/public/images/cms/sitemap/bottom_cap.png +0 -0
- data/public/images/cms/sitemap/buffer_caps.png +0 -0
- data/public/images/cms/sitemap/contract.png +0 -0
- data/public/images/cms/sitemap/corners.gif +0 -0
- data/public/images/cms/sitemap/corners_hover.gif +0 -0
- data/public/images/cms/sitemap/divider.gif +0 -0
- data/public/images/cms/sitemap/expand.png +0 -0
- data/public/images/cms/sitemap/gradient.gif +0 -0
- data/public/images/cms/sitemap/gray_contract.png +0 -0
- data/public/images/cms/sitemap/gray_expand.png +0 -0
- data/public/images/cms/sitemap/no_contents.png +0 -0
- data/public/images/cms/sitemap/site_root_cap.png +0 -0
- data/public/images/cms/sitemap/tooltip.gif +0 -0
- data/public/images/cms/sitemap/top_cap_content.png +0 -0
- data/public/images/cms/solid.gif +0 -0
- data/public/images/cms/table/bl.gif +0 -0
- data/public/images/cms/table/br.gif +0 -0
- data/public/images/cms/table/divider.gif +0 -0
- data/public/images/cms/table/td_cap_first_h.gif +0 -0
- data/public/images/cms/table/td_cap_first_s.gif +0 -0
- data/public/images/cms/table/td_cap_last_h.gif +0 -0
- data/public/images/cms/table/td_cap_last_s.gif +0 -0
- data/public/images/cms/table/td_last_bg.gif +0 -0
- data/public/images/cms/table/th_bg.gif +0 -0
- data/public/images/cms/table/th_divider.gif +0 -0
- data/public/images/cms/table/th_last_bg.gif +0 -0
- data/public/images/cms/table/tl.gif +0 -0
- data/public/images/cms/table/tr.gif +0 -0
- data/public/images/cms/table/tr_bg.gif +0 -0
- data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
- data/public/images/cms/thickbox/macFFBgHack.png +0 -0
- data/public/images/cms/toolbar_bg.png +0 -0
- data/public/images/cms/top_cap.png +0 -0
- data/public/images/cms/top_cap_content.png +0 -0
- data/public/images/cms/top_cap_menu_header.png +0 -0
- data/public/images/cms/user_search_submit.gif +0 -0
- data/public/images/cms/usercontrols_bg.png +0 -0
- data/public/images/cms/usercontrols_bg_cap.png +0 -0
- data/public/javascripts/cms/application.js +148 -0
- data/public/javascripts/cms/content_library.js +36 -0
- data/public/javascripts/cms/editor.js +50 -0
- data/public/javascripts/cms/sitemap.js +438 -0
- data/public/javascripts/jquery-ui.js +298 -0
- data/public/javascripts/jquery.contextMenu.js +211 -0
- data/public/javascripts/jquery.cookie.js +96 -0
- data/public/javascripts/jquery.dimensions.js +119 -0
- data/public/javascripts/jquery.js +19 -0
- data/public/javascripts/jquery.selectbox-1.0.js +246 -0
- data/public/javascripts/jquery.taglist.js +136 -0
- data/public/javascripts/jquery.thickbox.js +10 -0
- data/public/site/customconfig.js +1 -0
- data/public/stylesheets/cms/administration.css +91 -0
- data/public/stylesheets/cms/application.css +166 -0
- data/public/stylesheets/cms/block.css +26 -0
- data/public/stylesheets/cms/buttons.css +120 -0
- data/public/stylesheets/cms/content_library.css +139 -0
- data/public/stylesheets/cms/content_types.css +4 -0
- data/public/stylesheets/cms/dashboard.css +118 -0
- data/public/stylesheets/cms/data_table.css +156 -0
- data/public/stylesheets/cms/date_picker.css +78 -0
- data/public/stylesheets/cms/form_layout.css +279 -0
- data/public/stylesheets/cms/jquery.contextMenu.css +61 -0
- data/public/stylesheets/cms/login.css +78 -0
- data/public/stylesheets/cms/menu.css +116 -0
- data/public/stylesheets/cms/nav.css +99 -0
- data/public/stylesheets/cms/page_toolbar.css +135 -0
- data/public/stylesheets/cms/reset.css +46 -0
- data/public/stylesheets/cms/selectbox.css +56 -0
- data/public/stylesheets/cms/sitemap.css +390 -0
- data/public/stylesheets/cms/taglist.css +18 -0
- data/public/stylesheets/cms/thickbox.css +163 -0
- data/public/themes/blue_steel/images/logo.jpg +0 -0
- data/public/themes/blue_steel/images/splash.jpg +0 -0
- data/public/themes/blue_steel/stylesheets/style.css +257 -0
- data/rails/init.rb +3 -0
- data/rails_generators/browser_cms/USAGE +2 -0
- data/rails_generators/browser_cms/browser_cms_generator.rb +35 -0
- data/rails_generators/browser_cms/templates/README +1 -0
- data/rails_generators/browser_cms_demo_site/USAGE +1 -0
- data/rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb +63 -0
- data/rails_generators/browser_cms_demo_site/templates/migration.rb +21 -0
- data/rails_generators/content_block/USAGE +32 -0
- data/rails_generators/content_block/content_block_generator.rb +69 -0
- data/rails_generators/content_block/templates/_form.html.erb +22 -0
- data/rails_generators/content_block/templates/content_block.rb +27 -0
- data/rails_generators/content_block/templates/controller.rb +2 -0
- data/rails_generators/content_block/templates/functional_test.erb +11 -0
- data/rails_generators/content_block/templates/migration.rb +38 -0
- data/rails_generators/content_block/templates/render.html.erb +14 -0
- data/rails_generators/content_block/templates/unit_test.erb +9 -0
- data/rails_generators/portlet/USAGE +37 -0
- data/rails_generators/portlet/portlet_generator.rb +31 -0
- data/rails_generators/portlet/templates/_form.html.erb +5 -0
- data/rails_generators/portlet/templates/portlet.rb +10 -0
- data/rails_generators/portlet/templates/render.html.erb +1 -0
- data/rails_generators/portlet/templates/unit_test.erb +9 -0
- data/templates/blank.rb +30 -0
- data/templates/demo.rb +28 -0
- data/templates/module.rb +945 -0
- data/test/custom_assertions.rb +68 -0
- data/test/factories.rb +109 -0
- data/test/functional/cms/cache_controller_test.rb +14 -0
- data/test/functional/cms/categories_controller_test.rb +25 -0
- data/test/functional/cms/connectors_controller_test.rb +60 -0
- data/test/functional/cms/content_block_controller_test.rb +120 -0
- data/test/functional/cms/content_controller_test.rb +434 -0
- data/test/functional/cms/content_types_controller_test.rb +18 -0
- data/test/functional/cms/dashboard_controller_test.rb +17 -0
- data/test/functional/cms/dynamic_views_controller_test.rb +28 -0
- data/test/functional/cms/file_blocks_controller_test.rb +51 -0
- data/test/functional/cms/groups_controller_test.rb +50 -0
- data/test/functional/cms/home_controller_test.rb +156 -0
- data/test/functional/cms/html_blocks_controller_test.rb +163 -0
- data/test/functional/cms/image_blocks_controller_test.rb +75 -0
- data/test/functional/cms/links_controller_test.rb +148 -0
- data/test/functional/cms/pages_controller_test.rb +227 -0
- data/test/functional/cms/portlets_controller_test.rb +67 -0
- data/test/functional/cms/section_nodes_controller_test.rb +84 -0
- data/test/functional/cms/sections_controller_test.rb +225 -0
- data/test/functional/cms/sessions_controller_test.rb +76 -0
- data/test/functional/cms/toolbar_controller_test.rb +64 -0
- data/test/functional/cms/users_controller_test.rb +231 -0
- data/test/functional/tests/pretend_controller_test.rb +54 -0
- data/test/integration/cms/ckeditor_test.rb +20 -0
- data/test/integration/cms/password_management_test.rb +57 -0
- data/test/integration/login_test.rb +14 -0
- data/test/test_helper.rb +175 -0
- data/test/test_logging.rb +67 -0
- data/test/unit/behaviors/attaching_test.rb +359 -0
- data/test/unit/behaviors/dynamic_attributes_test.rb +38 -0
- data/test/unit/behaviors/publishable_test.rb +53 -0
- data/test/unit/behaviors/searching_test.rb +102 -0
- data/test/unit/behaviors/taggable_test.rb +109 -0
- data/test/unit/extensions/active_record/base_test.rb +10 -0
- data/test/unit/extensions/hash_test.rb +17 -0
- data/test/unit/extensions/integer_test.rb +10 -0
- data/test/unit/helpers/application_helper_test.rb +77 -0
- data/test/unit/helpers/form_builder_test.rb +36 -0
- data/test/unit/helpers/menu_helper_test.rb +225 -0
- data/test/unit/helpers/page_helper_test.rb +65 -0
- data/test/unit/helpers/path_helper_test.rb +57 -0
- data/test/unit/lib/acts_as_content_page_test.rb +72 -0
- data/test/unit/lib/cms_domain_support_test.rb +43 -0
- data/test/unit/lib/content_block_test.rb +203 -0
- data/test/unit/lib/content_rendering_support_test.rb +40 -0
- data/test/unit/lib/generators_test.rb +40 -0
- data/test/unit/lib/routes_test.rb +57 -0
- data/test/unit/models/attachment_test.rb +96 -0
- data/test/unit/models/category_test.rb +40 -0
- data/test/unit/models/category_type_test.rb +8 -0
- data/test/unit/models/connector_test.rb +152 -0
- data/test/unit/models/content_type_test.rb +44 -0
- data/test/unit/models/email_page_portlet_test.rb +14 -0
- data/test/unit/models/file_block_test.rb +211 -0
- data/test/unit/models/group_test.rb +13 -0
- data/test/unit/models/html_block_test.rb +102 -0
- data/test/unit/models/link_test.rb +8 -0
- data/test/unit/models/page_partial_test.rb +29 -0
- data/test/unit/models/page_route_test.rb +29 -0
- data/test/unit/models/page_template_test.rb +37 -0
- data/test/unit/models/page_test.rb +726 -0
- data/test/unit/models/permission_test.rb +10 -0
- data/test/unit/models/portlet_test.rb +69 -0
- data/test/unit/models/section_node_test.rb +92 -0
- data/test/unit/models/sections_test.rb +137 -0
- data/test/unit/models/site_test.rb +50 -0
- data/test/unit/models/task_test.rb +126 -0
- data/test/unit/models/user_test.rb +239 -0
- data/test/unit/schema_statements_test.rb +41 -0
- metadata +1131 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../test_helper')
|
2
|
+
|
3
|
+
ActiveRecord::Base.connection.instance_eval do
|
4
|
+
drop_table(:publishables) if table_exists?(:publishables)
|
5
|
+
create_table(:publishables) do |t|
|
6
|
+
t.string :name
|
7
|
+
t.boolean :published, :default => false
|
8
|
+
end
|
9
|
+
drop_table(:unpublishables) if table_exists?(:unpublishables)
|
10
|
+
create_table(:unpublishables) do |t|
|
11
|
+
t.string :name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Publishable < ActiveRecord::Base
|
16
|
+
is_publishable
|
17
|
+
end
|
18
|
+
|
19
|
+
class Unpublishable < ActiveRecord::Base
|
20
|
+
end
|
21
|
+
|
22
|
+
class PublishableTestCase < ActiveSupport::TestCase
|
23
|
+
def test_publishable
|
24
|
+
@object = Publishable.new(:name => "New Record")
|
25
|
+
assert @object.publishable?
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_save
|
29
|
+
@object = Publishable.new(:name => "New Record")
|
30
|
+
assert @object.save
|
31
|
+
assert !@object.published?
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_publish_on_save
|
35
|
+
@object = Publishable.new(:name => "New Record")
|
36
|
+
@object.publish_on_save = true
|
37
|
+
assert @object.save
|
38
|
+
log_table_without_stamps Publishable
|
39
|
+
assert @object.reload.published?
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_unpublishable
|
43
|
+
@object = Unpublishable.new(:name => "New Record")
|
44
|
+
assert !@object.publishable?
|
45
|
+
assert @object.save
|
46
|
+
assert !@object.publishable?
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_not_publishable_if_connect_to_page_id_is_blank
|
50
|
+
assert HtmlBlock.new(:connect_to_page_id => "").publishable?
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../test_helper')
|
2
|
+
|
3
|
+
ActiveRecord::Base.connection.instance_eval do
|
4
|
+
drop_table(:searchable_content_block_parents) if table_exists?(:searchable_content_block_parents)
|
5
|
+
create_table(:searchable_content_block_parents) {|t| t.string :name }
|
6
|
+
drop_table(:searchable_content_blocks) if table_exists?(:searchable_content_blocks)
|
7
|
+
drop_table(:searchable_content_block_versions) if table_exists?(:searchable_content_block_versions)
|
8
|
+
create_versioned_table(:searchable_content_blocks) do |t|
|
9
|
+
t.integer :parent_id
|
10
|
+
t.string :name
|
11
|
+
t.boolean :deleted, :default => 0
|
12
|
+
t.integer :created_by
|
13
|
+
t.integer :updated_by
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
|
17
|
+
# Verifies that blocks are created with a :name column if one is not specified.
|
18
|
+
drop_table(:searchable_block_without_names) if table_exists?(:searchable_block_without_names)
|
19
|
+
drop_table(:searchable_block_without_name_versions) if table_exists?(:searchable_block_without_name_versions)
|
20
|
+
create_versioned_table(:searchable_block_without_names) do |t|
|
21
|
+
t.string :title
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class SearchableContentBlockParent < ActiveRecord::Base
|
26
|
+
has_many :children, :class_name => "SearchableContentBlock", :foreign_key => "parent_id"
|
27
|
+
end
|
28
|
+
|
29
|
+
class SearchableContentBlock < ActiveRecord::Base
|
30
|
+
acts_as_content_block
|
31
|
+
belongs_to :parent, :class_name => "SearchableContentBlockParent"
|
32
|
+
named_scope :created_after, lambda{|time| {:conditions => ["created_at > ?", time]}}
|
33
|
+
end
|
34
|
+
|
35
|
+
class SearchableContentBlockTest < ActiveSupport::TestCase
|
36
|
+
def test_searchable
|
37
|
+
@parent = SearchableContentBlockParent.create!(:name => "Papa")
|
38
|
+
@a1 = @parent.children.create!(:name => "a1")
|
39
|
+
@a2 = @parent.children.create!(:name => "a2")
|
40
|
+
@b1 = @parent.children.create!(:name => "b1")
|
41
|
+
@b2 = @parent.children.create!(:name => "b2")
|
42
|
+
|
43
|
+
assert SearchableContentBlock.searchable?
|
44
|
+
assert_equal [@a1, @a2], SearchableContentBlock.search("a").all
|
45
|
+
assert_equal [@a2, @a1], SearchableContentBlock.search(:term => "a", :order => "id desc").all
|
46
|
+
assert_equal [@a2, @a1], SearchableContentBlock.created_after(1.hour.ago).search(:term => "a", :order => "id desc").all
|
47
|
+
assert_equal [@a2, @a1], @parent.children.created_after(1.hour.ago).search(:term => "a", :order => "id desc").all
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class SearchableHtmlBlockTest < ActiveSupport::TestCase
|
52
|
+
def test_searchable
|
53
|
+
@a1 = Factory(:html_block, :name => "a1", :content => "a one")
|
54
|
+
@a2 = Factory(:html_block, :name => "a2", :content => "a two")
|
55
|
+
@b1 = Factory(:html_block, :name => "b1", :content => "b one")
|
56
|
+
@b2 = Factory(:html_block, :name => "b2", :content => "b two")
|
57
|
+
|
58
|
+
assert HtmlBlock.searchable?
|
59
|
+
assert_equal [@a2, @b2], HtmlBlock.search("2").all
|
60
|
+
assert HtmlBlock.search(:term => "one").all.empty?
|
61
|
+
assert_equal [@a1, @b1], HtmlBlock.search(:term => "one", :include_body => true).all
|
62
|
+
assert HtmlBlock.search(nil).include?(@b2)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
class SearchableBlockWithoutName < ActiveRecord::Base
|
68
|
+
acts_as_content_block
|
69
|
+
end
|
70
|
+
|
71
|
+
class SearchableBlockWithoutNameTest < ActiveSupport::TestCase
|
72
|
+
|
73
|
+
test "Creating a test only ActiveRecord should work" do
|
74
|
+
block = SearchableBlockWithoutName.create!(:title => "TITLE")
|
75
|
+
|
76
|
+
assert_not_nil block
|
77
|
+
assert_equal block, SearchableBlockWithoutName.find(block.id)
|
78
|
+
end
|
79
|
+
|
80
|
+
test "Blocks should have a :name column by default" do
|
81
|
+
block = SearchableBlockWithoutName.create!(:name => "NAME")
|
82
|
+
|
83
|
+
assert_equal block, SearchableBlockWithoutName.find_by_name("NAME")
|
84
|
+
assert_equal "NAME", block.name
|
85
|
+
end
|
86
|
+
|
87
|
+
test "Search method should not fail if block has no :name field" do
|
88
|
+
block = SearchableBlockWithoutName.create!(:name => ":implicitly specfied")
|
89
|
+
|
90
|
+
assert_equal SearchableBlockWithoutName.all.size, SearchableBlockWithoutName.search({}).size, "Should list all rows when no param is passed in."
|
91
|
+
end
|
92
|
+
|
93
|
+
test "Versions table for block should have 'name' attribute as well" do
|
94
|
+
name = ":implicitly specfied"
|
95
|
+
block = SearchableBlockWithoutName.create!(:name => name)
|
96
|
+
block.title = "Something New"
|
97
|
+
block.save!
|
98
|
+
|
99
|
+
v1 = block.find_version(1)
|
100
|
+
assert_equal name, v1.name
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../test_helper')
|
2
|
+
|
3
|
+
ActiveRecord::Base.connection.instance_eval do
|
4
|
+
drop_table(:taggable_articles) if table_exists?(:taggable_articles)
|
5
|
+
create_table(:taggable_articles) {|t| t.string :name }
|
6
|
+
|
7
|
+
drop_table(:versioned_taggable_articles) if table_exists?(:versioned_taggable_articles)
|
8
|
+
drop_table(:versioned_taggable_article_versions) if table_exists?(:versioned_taggable_article_versions)
|
9
|
+
create_versioned_table(:versioned_taggable_articles) do |t|
|
10
|
+
t.string :name
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class TaggableArticle < ActiveRecord::Base
|
15
|
+
is_taggable
|
16
|
+
end
|
17
|
+
|
18
|
+
class VersionedTaggableArticle < ActiveRecord::Base
|
19
|
+
acts_as_content_block :taggable => true
|
20
|
+
end
|
21
|
+
|
22
|
+
class TaggableBlockTest < ActiveSupport::TestCase
|
23
|
+
def test_tagging
|
24
|
+
article = TaggableArticle.create!(:name => "foo")
|
25
|
+
assert_equal 0, article.taggings.count
|
26
|
+
assert_equal 0, article.tags.count
|
27
|
+
assert_equal 0, Tag.count
|
28
|
+
assert_equal 0, Tagging.count
|
29
|
+
|
30
|
+
article.tag_list = "foo bar"
|
31
|
+
assert article.save
|
32
|
+
assert_equal 2, article.taggings.count
|
33
|
+
assert_equal 2, article.tags.count
|
34
|
+
assert_equal 2, Tag.count
|
35
|
+
assert_equal 2, Tagging.count
|
36
|
+
|
37
|
+
assert_equal [article], TaggableArticle.tagged_with("foo").all
|
38
|
+
assert_equal [article], TaggableArticle.tagged_with("bar").all
|
39
|
+
assert TaggableArticle.tagged_with("bang").all.empty?
|
40
|
+
|
41
|
+
article.tag_list = "foo bang"
|
42
|
+
assert article.save
|
43
|
+
assert_equal 2, article.taggings.count
|
44
|
+
assert_equal 2, article.tags.count
|
45
|
+
assert_equal 3, Tag.count
|
46
|
+
assert_equal 2, Tagging.count
|
47
|
+
|
48
|
+
assert_equal [article], TaggableArticle.tagged_with("foo").all
|
49
|
+
assert_equal [article], TaggableArticle.tagged_with("bang").all
|
50
|
+
assert TaggableArticle.tagged_with("bar").all.empty?
|
51
|
+
|
52
|
+
assert_equal "bang foo", article.tag_list
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_tag_cloud
|
56
|
+
25.times do |n|
|
57
|
+
tag_list = ["article"]
|
58
|
+
tag_list << "first" if n == 0
|
59
|
+
tag_list << "even" if n.even?
|
60
|
+
tag_list << "five" if n % 5 == 0
|
61
|
+
tag_list << "last" if n == 24
|
62
|
+
TaggableArticle.create!(:name => "Article ##{n}", :tag_list => tag_list.join(" ") )
|
63
|
+
end
|
64
|
+
|
65
|
+
tag_counts = Tag.counts(:limit => 4)
|
66
|
+
assert_equal 4, tag_counts.size
|
67
|
+
assert_equal Tag.find_by_name("article"), tag_counts[0]
|
68
|
+
assert_equal "25", tag_counts[0].count
|
69
|
+
assert_equal Tag.find_by_name("even"), tag_counts[1]
|
70
|
+
assert_equal "13", tag_counts[1].count
|
71
|
+
assert_equal Tag.find_by_name("five"), tag_counts[2]
|
72
|
+
assert_equal "5", tag_counts[2].count
|
73
|
+
assert_equal Tag.find_by_name("first"), tag_counts[3]
|
74
|
+
assert_equal "1", tag_counts[3].count
|
75
|
+
|
76
|
+
tag_cloud = Tag.cloud(:sizes => 9)
|
77
|
+
assert_equal 5, tag_cloud.size
|
78
|
+
assert_equal Tag.find_by_name("article"), tag_cloud[0]
|
79
|
+
assert_equal 6, tag_cloud[0].size
|
80
|
+
assert_equal Tag.find_by_name("even"), tag_cloud[1]
|
81
|
+
assert_equal 3, tag_cloud[1].size
|
82
|
+
assert_equal Tag.find_by_name("five"), tag_cloud[2]
|
83
|
+
assert_equal 1, tag_cloud[2].size
|
84
|
+
assert_equal Tag.find_by_name("first"), tag_cloud[3]
|
85
|
+
assert_equal 0, tag_cloud[3].size
|
86
|
+
assert_equal Tag.find_by_name("last"), tag_cloud[4]
|
87
|
+
assert_equal 0, tag_cloud[4].size
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
class VersionedTaggableBlockTest < ActiveSupport::TestCase
|
93
|
+
def test_tagging
|
94
|
+
article = VersionedTaggableArticle.create!(:name => "foo")
|
95
|
+
assert_equal 0, article.taggings.count
|
96
|
+
assert_equal 0, article.tags.count
|
97
|
+
assert_equal 0, Tag.count
|
98
|
+
assert_equal 0, Tagging.count
|
99
|
+
|
100
|
+
article.tag_list = "foo bar"
|
101
|
+
assert article.save
|
102
|
+
assert_equal 2, article.taggings.count
|
103
|
+
assert_equal 2, article.tags.count
|
104
|
+
assert_equal 2, Tag.count
|
105
|
+
assert_equal 2, Tagging.count
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../../test_helper')
|
2
|
+
|
3
|
+
class ActiveRecord::BaseTest < ActiveSupport::TestCase
|
4
|
+
def test_updated_on_string
|
5
|
+
base = HtmlBlock.new
|
6
|
+
assert_nil base.updated_on_string
|
7
|
+
base.updated_at = Time.zone.parse("1978-07-06")
|
8
|
+
assert_equal "Jul 6, 1978", base.updated_on_string
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../test_helper')
|
2
|
+
|
3
|
+
class HashTest < ActiveSupport::TestCase
|
4
|
+
def test_except
|
5
|
+
x = {:a => 1, :b => 2}
|
6
|
+
assert_equal({:b => 2}, x.except(:a))
|
7
|
+
assert_equal({:a => 1, :b => 2}, x)
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_extract!
|
11
|
+
x = {:a => 1, :b => 2}
|
12
|
+
y = x.extract!(:b, :c)
|
13
|
+
assert_equal({:a => 1}, x)
|
14
|
+
assert_equal({:b => 2}, y)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../test_helper')
|
2
|
+
|
3
|
+
class IntegerTest < ActiveSupport::TestCase
|
4
|
+
def test_round_bytes
|
5
|
+
assert_equal "99.44 MB", (99.megabytes + 450.kilobytes).round_bytes
|
6
|
+
assert_equal "12.04 KB", (12.kilobytes + 45).round_bytes
|
7
|
+
assert_equal "999 bytes", 999.round_bytes
|
8
|
+
assert_equal "0 bytes", nil.round_bytes
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../test_helper')
|
2
|
+
|
3
|
+
class Cms::ApplicationHelperTest < ActionView::TestCase
|
4
|
+
|
5
|
+
def test_url_with_mode
|
6
|
+
[
|
7
|
+
[["http://localhost:3000", "edit"], "?mode=edit"],
|
8
|
+
[["http://localhost:3000/", "edit"], "/?mode=edit"],
|
9
|
+
[["http://localhost:3000/foo", "edit"], "/foo?mode=edit"],
|
10
|
+
[["http://localhost:3000/foo?bar=1", "edit"], "/foo?bar=1&mode=edit"],
|
11
|
+
[["http://localhost:3000/foo?mode=view", "edit"], "/foo?mode=edit"],
|
12
|
+
[["http://localhost:3000/foo?bar=1&mode=view", "edit"], "/foo?bar=1&mode=edit"],
|
13
|
+
[["http://localhost:3000/foo?other_mode=1&mode=view", "edit"], "/foo?other_mode=1&mode=edit"],
|
14
|
+
[["/foo?other_mode=1&mode=view", "edit"], "/foo?other_mode=1&mode=edit"]
|
15
|
+
].each do |args, expected|
|
16
|
+
assert_equal expected, url_with_mode(*args)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_determine_order
|
21
|
+
assert_equal "foo", determine_order("foo desc", "foo desc")
|
22
|
+
assert_equal "foo", determine_order("foo desc", "foo")
|
23
|
+
assert_equal "foo desc", determine_order("foo", "foo desc")
|
24
|
+
assert_equal "foo desc", determine_order("foo", "foo")
|
25
|
+
assert_equal "bar desc", determine_order("foo", "bar desc")
|
26
|
+
assert_equal "bar", determine_order("foo", "bar")
|
27
|
+
end
|
28
|
+
|
29
|
+
# returns content supplied to this method for testing
|
30
|
+
def content_for(name, content = nil, &block)
|
31
|
+
return name, content
|
32
|
+
end
|
33
|
+
def test_require_stylesheet_link_renders_to_correct_area
|
34
|
+
stylesheet = 'site'
|
35
|
+
stylesheet2 = 'site2'
|
36
|
+
# default = :html_head
|
37
|
+
assert_equal :html_head, require_stylesheet_link(stylesheet)[0]
|
38
|
+
assert_equal :other_place, require_stylesheet_link(stylesheet2, :other_place)[0]
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_require_stylesheet_link_renders_link_tag
|
42
|
+
stylesheet = 'site'
|
43
|
+
assert_equal stylesheet_link_tag(stylesheet), require_stylesheet_link(stylesheet)[1]
|
44
|
+
end
|
45
|
+
def test_require_stylesheet_link_renders_link_tags
|
46
|
+
stylesheet = ['site','site2']
|
47
|
+
assert_equal stylesheet_link_tag(stylesheet), require_stylesheet_link(stylesheet)[1]
|
48
|
+
end
|
49
|
+
def test_require_stylesheet_link_does_not_re_render_tag
|
50
|
+
stylesheet = 'site'
|
51
|
+
stylesheet2 = ['site','site2']
|
52
|
+
require_stylesheet_link(stylesheet)
|
53
|
+
assert_equal stylesheet_link_tag('site2'), require_stylesheet_link(stylesheet2)[1]
|
54
|
+
end
|
55
|
+
def test_require_javascript_include_renders_to_correct_area
|
56
|
+
js = 'site'
|
57
|
+
js2 = 'site2'
|
58
|
+
# default = :html_head
|
59
|
+
assert_equal :html_head, require_javascript_include(js)[0]
|
60
|
+
assert_equal :other_place, require_javascript_include(js2, :other_place)[0]
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_require_javascript_include_renders_link_tag
|
64
|
+
js = 'site'
|
65
|
+
assert_equal javascript_include_tag(js), require_javascript_include(js)[1]
|
66
|
+
end
|
67
|
+
def test_require_javascript_include_renders_link_tags
|
68
|
+
js = ['site','site2']
|
69
|
+
assert_equal javascript_include_tag(js), require_javascript_include(js)[1]
|
70
|
+
end
|
71
|
+
def test_require_javascript_include_does_not_re_render_tag
|
72
|
+
js = 'site'
|
73
|
+
js2 = ['site','site2']
|
74
|
+
require_javascript_include(js)
|
75
|
+
assert_equal javascript_include_tag('site2'), require_javascript_include(js2)[1]
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../test_helper')
|
2
|
+
|
3
|
+
silence_warnings do
|
4
|
+
|
5
|
+
class Block < Struct.new(:id, :name)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class FormBuilderTest < ActionView::TestCase
|
10
|
+
tests ActionView::Helpers::FormHelper
|
11
|
+
|
12
|
+
|
13
|
+
def setup
|
14
|
+
@block = Block.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def teardown
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
test "cms_text_area with a fairly weak and semi-pointless test" do
|
23
|
+
|
24
|
+
self.expects(:block_path).returns("/")
|
25
|
+
self.expects(:protect_against_forgery?).returns(false).at_least_once
|
26
|
+
|
27
|
+
self.expects(:render).at_least_once
|
28
|
+
self.expects(:next_tabindex).returns({})
|
29
|
+
|
30
|
+
form_for (@block) do |f|
|
31
|
+
f.cms_text_area(:name)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,225 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/../../test_helper')
|
2
|
+
|
3
|
+
class Cms::MenuHelperTest < ActionView::TestCase
|
4
|
+
|
5
|
+
def test_menu_items
|
6
|
+
Page.first.update_attributes(:hidden => true, :publish_on_save => true)
|
7
|
+
create_nfl_data
|
8
|
+
|
9
|
+
expected = [
|
10
|
+
{ :id => "section_#{@afc.id}", :url => "/buf", :name => "AFC", :children => [
|
11
|
+
{ :id => "section_#{@afc_east.id}", :url => "/buf", :name => "East" },
|
12
|
+
{ :id => "section_#{@afc_north.id}", :url => "/bal", :name => "North", :children => [
|
13
|
+
{ :id => "page_#{@bal.id}", :selected => true, :url => "/bal", :name => "Baltimore Ravens" },
|
14
|
+
{ :id => "page_#{@cin.id}", :url => "/cin", :name => "Cincinnati Bengals" },
|
15
|
+
{ :id => "page_#{@cle.id}", :url => "/cle", :name => "Cleveland Browns" },
|
16
|
+
{ :id => "page_#{@pit.id}", :url => "/pit", :name => "Pittsburgh Steelers" }
|
17
|
+
] },
|
18
|
+
{ :id => "section_#{@afc_south.id}", :url => "/hou", :name => "South" },
|
19
|
+
{ :id => "section_#{@afc_west.id}", :url => "/den", :name => "West" }
|
20
|
+
] },
|
21
|
+
{ :id => "section_#{@nfc.id}", :url => "/dal", :name => "NFC" }
|
22
|
+
]
|
23
|
+
|
24
|
+
assert_equal expected, menu_items(:page => @bal)
|
25
|
+
|
26
|
+
@page = @bal
|
27
|
+
assert_equal expected, menu_items
|
28
|
+
|
29
|
+
expected = [
|
30
|
+
{ :id => "section_#{@afc.id}", :url => "/buf", :name => "AFC", :children => [
|
31
|
+
{ :id => "section_#{@afc_east.id}", :url => "/buf", :name => "East" },
|
32
|
+
{ :id => "section_#{@afc_north.id}", :url => "/bal", :name => "North" },
|
33
|
+
{ :id => "section_#{@afc_south.id}", :url => "/hou", :name => "South" },
|
34
|
+
{ :id => "section_#{@afc_west.id}", :url => "/den", :name => "West" }
|
35
|
+
] },
|
36
|
+
{ :id => "section_#{@nfc.id}", :url => "/dal", :name => "NFC" }
|
37
|
+
]
|
38
|
+
|
39
|
+
assert_equal expected, menu_items(:depth => 2)
|
40
|
+
|
41
|
+
expected = [
|
42
|
+
{ :id => "section_#{@afc_east.id}", :url => "/buf", :name => "East" },
|
43
|
+
{ :id => "section_#{@afc_north.id}", :url => "/bal", :name => "North", :children => [
|
44
|
+
{ :id => "page_#{@bal.id}", :selected => true, :url => "/bal", :name => "Baltimore Ravens" },
|
45
|
+
{ :id => "page_#{@cin.id}", :url => "/cin", :name => "Cincinnati Bengals" },
|
46
|
+
{ :id => "page_#{@cle.id}", :url => "/cle", :name => "Cleveland Browns" },
|
47
|
+
{ :id => "page_#{@pit.id}", :url => "/pit", :name => "Pittsburgh Steelers" }
|
48
|
+
] },
|
49
|
+
{ :id => "section_#{@afc_south.id}", :url => "/hou", :name => "South" },
|
50
|
+
{ :id => "section_#{@afc_west.id}", :url => "/den", :name => "West" }
|
51
|
+
]
|
52
|
+
|
53
|
+
assert_equal expected, menu_items(:from_top => 1, :depth => 2)
|
54
|
+
|
55
|
+
expected = [
|
56
|
+
{ :id => "section_#{@afc.id}", :url => "/buf", :name => "AFC", :children => [
|
57
|
+
{ :id => "section_#{@afc_east.id}", :url => "/buf", :name => "East" },
|
58
|
+
{ :id => "section_#{@afc_north.id}", :url => "/bal", :name => "North" },
|
59
|
+
{ :id => "section_#{@afc_south.id}", :url => "/hou", :name => "South" },
|
60
|
+
{ :id => "section_#{@afc_west.id}", :url => "/den", :name => "West" }
|
61
|
+
] },
|
62
|
+
{ :id => "section_#{@nfc.id}", :url => "/dal", :name => "NFC", :children => [
|
63
|
+
{ :id => "section_#{@nfc_east.id}", :url => "/dal", :name => "East" },
|
64
|
+
{ :id => "section_#{@nfc_north.id}", :url => "/chi", :name => "North" },
|
65
|
+
{ :id => "section_#{@nfc_south.id}", :url => "/atl", :name => "South" },
|
66
|
+
{ :id => "section_#{@nfc_west.id}", :url => "/ari", :name => "West" }
|
67
|
+
] }
|
68
|
+
]
|
69
|
+
|
70
|
+
assert_equal expected, menu_items(:depth => 2, :show_all_siblings => true)
|
71
|
+
|
72
|
+
expected = [
|
73
|
+
{ :id => "section_#{@afc.id}", :url => "/buf", :name => "AFC" },
|
74
|
+
{ :id => "section_#{@nfc.id}", :url => "/dal", :name => "NFC" }
|
75
|
+
]
|
76
|
+
|
77
|
+
assert_equal expected, menu_items(:depth => 1)
|
78
|
+
|
79
|
+
expected = [
|
80
|
+
{ :id => "section_#{@afc_east.id}", :url => "/buf", :name => "East" },
|
81
|
+
{ :id => "section_#{@afc_north.id}", :url => "/bal", :name => "North" },
|
82
|
+
{ :id => "section_#{@afc_south.id}", :url => "/hou", :name => "South" },
|
83
|
+
{ :id => "section_#{@afc_west.id}", :url => "/den", :name => "West" }
|
84
|
+
]
|
85
|
+
|
86
|
+
assert_equal expected, menu_items(:from_top => 1, :depth => 1)
|
87
|
+
|
88
|
+
expected = [
|
89
|
+
{ :id => "section_#{@afc_east.id}", :url => "/buf", :name => "East" },
|
90
|
+
{ :id => "section_#{@afc_north.id}", :url => "/bal", :name => "North" },
|
91
|
+
{ :id => "section_#{@afc_south.id}", :url => "/hou", :name => "South" }
|
92
|
+
]
|
93
|
+
|
94
|
+
assert_equal expected, menu_items(:from_top => 1, :depth => 1, :limit => 3)
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_menu_with_links
|
99
|
+
Page.first.update_attributes(:hidden => true, :publish_on_save => true)
|
100
|
+
|
101
|
+
@news = Factory(:section, :parent => root_section, :name => "News", :path => "/whatever")
|
102
|
+
@press_releases = Factory(:page, :section => @news, :name => "Press Releases", :path => "/press_releases", :publish_on_save => true)
|
103
|
+
@corporate_news = Factory(:link, :section => @news, :name => "Corporate News", :url => "/news", :new_window => false, :publish_on_save => true)
|
104
|
+
@cnn = Factory(:link, :section => @news, :name => "CNN", :url => "http://www.cnn.com", :new_window => true, :publish_on_save => true)
|
105
|
+
|
106
|
+
expected = [
|
107
|
+
{ :id => "section_#{@news.id}", :url => "/press_releases", :name => "News", :children => [
|
108
|
+
{ :id => "page_#{@press_releases.id}", :selected => true, :url => "/press_releases", :name => "Press Releases" },
|
109
|
+
{ :id => "link_#{@corporate_news.id}", :url => "/news", :name => "Corporate News" },
|
110
|
+
{ :id => "link_#{@cnn.id}", :url => "http://www.cnn.com", :target => "_blank", :name => "CNN" }
|
111
|
+
] }
|
112
|
+
]
|
113
|
+
|
114
|
+
@page = @press_releases
|
115
|
+
assert_equal expected, menu_items
|
116
|
+
assert_equal [], menu_items(:from_top => 42)
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_render_menu_does_not_show_unpublished_pages
|
120
|
+
@section = Factory(:section, :name => "Test", :path => "/test")
|
121
|
+
@page = Factory(:page, :section => @section, :name => "Overview", :path => "/test", :publish_on_save => true)
|
122
|
+
|
123
|
+
@draft_page = Factory(:page, :section => @section, :name => "Draft v1", :path => "/draft", :publish_on_save => true)
|
124
|
+
@draft_page.update_attributes(:name => "Draft v2")
|
125
|
+
@never_published = Factory(:page, :section => @section, :name => "Never Published", :path => "/never_published")
|
126
|
+
|
127
|
+
expected = [
|
128
|
+
{ :id => "page_#{@page.id}", :name => "Overview", :url => "/test", :selected => true },
|
129
|
+
{ :id => "page_#{@draft_page.id}", :name => "Draft v1", :url => "/draft" }
|
130
|
+
]
|
131
|
+
|
132
|
+
assert_equal expected, menu_items(:from_top => 1)
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_render_menu_with_path
|
136
|
+
@test = Factory(:page, :section => root_section, :name => "Test", :path => "/test", :publish_on_save => true)
|
137
|
+
@footer = Factory(:section, :parent => root_section, :name => "Footer", :path => "/footer")
|
138
|
+
@about_us = Factory(:page, :section => @footer, :name => "About Us", :path => "/about_us", :publish_on_save => true)
|
139
|
+
@contact_us = Factory(:page, :section => @footer, :name => "Contact Us", :path => "/contact_us", :publish_on_save => true)
|
140
|
+
@privacy_policy = Factory(:page, :section => @footer, :name => "Privacy Policy", :path => "/privacy_policy", :publish_on_save => true)
|
141
|
+
|
142
|
+
expected = [
|
143
|
+
{ :id => "page_#{@about_us.id}", :url => "/about_us", :name => "About Us" },
|
144
|
+
{ :id => "page_#{@contact_us.id}", :url => "/contact_us", :name => "Contact Us" },
|
145
|
+
{ :id => "page_#{@privacy_policy.id}", :url => "/privacy_policy", :name => "Privacy Policy" }
|
146
|
+
]
|
147
|
+
|
148
|
+
actual = menu_items(:page => @test, :path => "/footer", :from_top => 1)
|
149
|
+
assert_equal expected, actual
|
150
|
+
|
151
|
+
expected = [
|
152
|
+
{ :id => "page_#{@about_us.id}", :url => "/about_us", :name => "About Us" },
|
153
|
+
{ :id => "page_#{@contact_us.id}", :url => "/contact_us", :name => "Contact Us", :selected => true },
|
154
|
+
{ :id => "page_#{@privacy_policy.id}", :url => "/privacy_policy", :name => "Privacy Policy" }
|
155
|
+
]
|
156
|
+
|
157
|
+
actual = menu_items(:page => @contact_us, :path => "/footer", :from_top => 1)
|
158
|
+
assert_equal expected, actual
|
159
|
+
end
|
160
|
+
|
161
|
+
test "nil current page should return empty string" do
|
162
|
+
@page = nil
|
163
|
+
self.expects(:render).never
|
164
|
+
|
165
|
+
assert_equal "", render_menu
|
166
|
+
end
|
167
|
+
|
168
|
+
protected
|
169
|
+
def create_nfl_data
|
170
|
+
@afc = Factory(:section, :parent => root_section, :name => "AFC")
|
171
|
+
|
172
|
+
@afc_east = Factory(:section, :parent => @afc, :name => "East")
|
173
|
+
@buf = Factory(:page, :section => @afc_east, :name => "Buffalo Bills", :path => "/buf", :publish_on_save => true)
|
174
|
+
@mia = Factory(:page, :section => @afc_east, :name => "Miami Dolphins", :path => "/mia", :publish_on_save => true)
|
175
|
+
@ne = Factory(:page, :section => @afc_east, :name => "New England Patriots", :path => "/ne", :publish_on_save => true)
|
176
|
+
@nyj = Factory(:page, :section => @afc_east, :name => "New York Jets", :path => "/nyj", :publish_on_save => true)
|
177
|
+
|
178
|
+
@afc_north = Factory(:section, :parent => @afc, :name => "North")
|
179
|
+
@bal = Factory(:page, :section => @afc_north, :name => "Baltimore Ravens", :path => "/bal", :publish_on_save => true)
|
180
|
+
@cin = Factory(:page, :section => @afc_north, :name => "Cincinnati Bengals", :path => "/cin", :publish_on_save => true)
|
181
|
+
@cle = Factory(:page, :section => @afc_north, :name => "Cleveland Browns", :path => "/cle", :publish_on_save => true)
|
182
|
+
@pit = Factory(:page, :section => @afc_north, :name => "Pittsburgh Steelers", :path => "/pit", :publish_on_save => true)
|
183
|
+
|
184
|
+
@afc_south = Factory(:section, :parent => @afc, :name => "South")
|
185
|
+
@hou = Factory(:page, :section => @afc_south, :name => "Houston Texans", :path => "/hou", :publish_on_save => true)
|
186
|
+
@ind = Factory(:page, :section => @afc_south, :name => "Indianapolis Colts", :path => "/ind", :publish_on_save => true)
|
187
|
+
@jac = Factory(:page, :section => @afc_south, :name => "Jacksonville Jaguars", :path => "/jac", :publish_on_save => true)
|
188
|
+
@ten = Factory(:page, :section => @afc_south, :name => "Tennessee Titans", :path => "/ten", :publish_on_save => true)
|
189
|
+
|
190
|
+
@afc_west = Factory(:section, :parent => @afc, :name => "West")
|
191
|
+
@den = Factory(:page, :section => @afc_west, :name => "Denver Broncos", :path => "/den", :publish_on_save => true)
|
192
|
+
@kc = Factory(:page, :section => @afc_west, :name => "Kansas City Chiefs", :path => "/kc", :publish_on_save => true)
|
193
|
+
@oak = Factory(:page, :section => @afc_west, :name => "Oakland Raiders", :path => "/oak", :publish_on_save => true)
|
194
|
+
@sd = Factory(:page, :section => @afc_west, :name => "San Diego Chargers", :path => "/sd", :publish_on_save => true)
|
195
|
+
|
196
|
+
@nfc = Factory(:section, :parent => root_section, :name => "NFC")
|
197
|
+
|
198
|
+
@nfc_east = Factory(:section, :parent => @nfc, :name => "East")
|
199
|
+
@dal = Factory(:page, :section => @nfc_east, :name => "Dallas Cowboys", :path => "/dal", :publish_on_save => true)
|
200
|
+
@nyg = Factory(:page, :section => @nfc_east, :name => "New York Giants", :path => "/nyg", :publish_on_save => true)
|
201
|
+
@phi = Factory(:page, :section => @nfc_east, :name => "Philadelphia Eagles", :path => "/phi", :publish_on_save => true)
|
202
|
+
@was = Factory(:page, :section => @nfc_east, :name => "Washington Redskins", :path => "/was", :publish_on_save => true)
|
203
|
+
|
204
|
+
@nfc_north = Factory(:section, :parent => @nfc, :name => "North")
|
205
|
+
@chi = Factory(:page, :section => @nfc_north, :name => "Chicago Bears", :path => "/chi", :publish_on_save => true)
|
206
|
+
@det = Factory(:page, :section => @nfc_north, :name => "Detroit Lions", :path => "/det", :publish_on_save => true)
|
207
|
+
@gb = Factory(:page, :section => @nfc_north, :name => "Green Bay Packers", :path => "/gb", :publish_on_save => true)
|
208
|
+
@min = Factory(:page, :section => @nfc_north, :name => "Minnesota Vikings", :path => "/min", :publish_on_save => true)
|
209
|
+
|
210
|
+
@nfc_south = Factory(:section, :parent => @nfc, :name => "South")
|
211
|
+
@atl = Factory(:page, :section => @nfc_south, :name => "Atlanta Falcons", :path => "/atl", :publish_on_save => true)
|
212
|
+
@car = Factory(:page, :section => @nfc_south, :name => "Carolina Pathers", :path => "/car", :publish_on_save => true)
|
213
|
+
@no = Factory(:page, :section => @nfc_south, :name => "New Orleans Saints", :path => "/no", :publish_on_save => true)
|
214
|
+
@tb = Factory(:page, :section => @nfc_south, :name => "Tampa Bay Buccaneers", :path => "/tb", :publish_on_save => true)
|
215
|
+
|
216
|
+
@nfc_west = Factory(:section, :parent => @nfc, :name => "West")
|
217
|
+
@ari = Factory(:page, :section => @nfc_west, :name => "Arizona Cardinals", :path => "/ari", :publish_on_save => true)
|
218
|
+
@sf = Factory(:page, :section => @nfc_west, :name => "San Francisco 49ers", :path => "/sf", :publish_on_save => true)
|
219
|
+
@sea = Factory(:page, :section => @nfc_west, :name => "Seattle Seahawks", :path => "/sea", :publish_on_save => true)
|
220
|
+
@stl = Factory(:page, :section => @nfc_west, :name => "St. Louis Rams", :path => "/stl", :publish_on_save => true)
|
221
|
+
|
222
|
+
end
|
223
|
+
|
224
|
+
|
225
|
+
end
|