browsercms 3.4.2 → 3.5.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +1 -0
- data/app/assets/images/cms/file-uploading.gif +0 -0
- data/app/assets/javascripts/cms/application.js +1 -0
- data/app/assets/javascripts/cms/attachment_manager.js.erb +87 -0
- data/app/assets/javascripts/cms/core_library.js.erb +38 -25
- data/app/assets/stylesheets/cms/application.css.erb +1 -0
- data/app/assets/stylesheets/cms/attachment_manager.css.scss +28 -0
- data/app/controllers/cms/application_controller.rb +1 -1
- data/app/controllers/cms/attachments_controller.rb +45 -10
- data/app/controllers/cms/cache_controller.rb +1 -1
- data/app/controllers/cms/content_block_controller.rb +134 -122
- data/app/controllers/cms/content_controller.rb +143 -155
- data/app/controllers/cms/dashboard_controller.rb +11 -9
- data/app/controllers/cms/error_handling.rb +19 -7
- data/app/controllers/cms/file_blocks_controller.rb +2 -2
- data/app/controllers/cms/home_controller.rb +3 -0
- data/app/controllers/cms/section_nodes_controller.rb +52 -44
- data/app/controllers/cms/sections_controller.rb +4 -2
- data/app/controllers/cms/toolbar_controller.rb +14 -10
- data/app/helpers/cms/application_helper.rb +23 -19
- data/app/helpers/cms/form_builder.rb +65 -18
- data/app/helpers/cms/mobile_helper.rb +19 -0
- data/app/helpers/cms/path_helper.rb +30 -4
- data/app/helpers/cms/rendering_helper.rb +9 -1
- data/app/models/cms/abstract_file_block.rb +6 -6
- data/app/models/cms/attachment.rb +196 -107
- data/app/models/cms/category.rb +3 -0
- data/app/models/cms/category_type.rb +2 -0
- data/app/models/cms/connector.rb +3 -0
- data/app/models/cms/content_type.rb +3 -0
- data/app/models/cms/content_type_group.rb +2 -0
- data/app/models/cms/dynamic_view.rb +4 -0
- data/app/models/cms/email_message.rb +2 -0
- data/app/models/cms/file_block.rb +9 -2
- data/app/models/cms/group.rb +5 -2
- data/app/models/cms/group_permission.rb +2 -0
- data/app/models/cms/group_section.rb +3 -0
- data/app/models/cms/group_type.rb +2 -0
- data/app/models/cms/group_type_permission.rb +2 -0
- data/app/models/cms/html_block.rb +3 -2
- data/app/models/cms/image_block.rb +13 -2
- data/app/models/cms/page.rb +14 -3
- data/app/models/cms/page_route.rb +4 -0
- data/app/models/cms/page_route_condition.rb +1 -0
- data/app/models/cms/page_route_option.rb +2 -0
- data/app/models/cms/page_route_requirement.rb +1 -0
- data/app/models/cms/permission.rb +3 -0
- data/app/models/cms/portlet.rb +2 -2
- data/app/models/cms/redirect.rb +2 -0
- data/app/models/cms/section.rb +15 -1
- data/app/models/cms/section_node.rb +1 -0
- data/app/models/cms/site.rb +3 -0
- data/app/models/cms/tag.rb +2 -0
- data/app/models/cms/tagging.rb +3 -0
- data/app/models/cms/task.rb +5 -1
- data/app/models/cms/user.rb +1 -1
- data/app/models/cms/user_group_membership.rb +3 -0
- data/app/views/cms/attachments/_attachment.html.erb +14 -0
- data/app/views/cms/attachments/_attachment_table.html.erb +17 -0
- data/app/views/cms/attachments/_attachment_wrapper.html.erb +4 -0
- data/app/views/cms/blocks/index.html.erb +2 -3
- data/app/views/cms/blocks/show.html.erb +1 -1
- data/app/views/cms/dynamic_views/index.html.erb +1 -1
- data/app/views/cms/email_messages/index.html.erb +1 -1
- data/app/views/cms/file_blocks/_form.html.erb +1 -27
- data/app/views/cms/file_blocks/_section_selector.html.erb +13 -0
- data/app/views/cms/file_blocks/render.html.erb +3 -3
- data/app/views/cms/form_builder/_cms_attachment_manager.html.erb +26 -0
- data/app/views/cms/form_builder/_cms_file_field.html.erb +27 -35
- data/app/views/cms/groups/index.html.erb +1 -1
- data/app/views/cms/image_blocks/_form.html.erb +1 -27
- data/app/views/cms/image_blocks/render.html.erb +4 -1
- data/app/views/cms/page_routes/index.html.erb +3 -0
- data/app/views/cms/shared/error.xml.erb +8 -0
- data/app/views/cms/tags/render.html.erb +1 -1
- data/app/views/cms/toolbar/_mobile_toggle.html.erb +33 -0
- data/app/views/cms/users/index.html.erb +1 -1
- data/app/views/layouts/_page_toolbar.html.erb +2 -1
- data/bin/bcms +21 -26
- data/config/routes.rb +3 -2
- data/db/browsercms.seeds.rb +2 -1
- data/db/migrate/20111130221145_browsercms340.rb +5 -4
- data/db/migrate/20120329144406_browsercms350.rb +32 -0
- data/{test/dummy/db → db}/schema.rb +97 -128
- data/{performance_tuning_notes.md → doc/performance_tuning_notes.md} +0 -0
- data/doc/release_notes.md +74 -0
- data/lib/browsercms.rb +3 -0
- data/lib/cms/acts/content_block.rb +10 -2
- data/lib/cms/addressable.rb +8 -0
- data/lib/cms/attachments/attachment_serving.rb +59 -0
- data/lib/cms/attachments/configuration.rb +88 -0
- data/lib/cms/behaviors/attaching.rb +305 -136
- data/lib/cms/behaviors/connecting.rb +3 -4
- data/lib/cms/behaviors/dynamic_attributes.rb +121 -118
- data/lib/cms/behaviors/flush_cache_on_change.rb +1 -3
- data/lib/cms/behaviors/naming.rb +16 -0
- data/lib/cms/behaviors/pagination.rb +4 -1
- data/lib/cms/behaviors/publishing.rb +9 -3
- data/lib/cms/behaviors/searching.rb +3 -8
- data/lib/cms/behaviors/soft_deleting.rb +1 -0
- data/lib/cms/behaviors/taggable.rb +2 -0
- data/lib/cms/behaviors/versioning.rb +73 -120
- data/lib/cms/caching.rb +53 -11
- data/lib/cms/commands/actions.rb +19 -2
- data/lib/cms/configuration.rb +44 -0
- data/lib/cms/content_rendering_support.rb +9 -6
- data/lib/cms/default_accessible.rb +13 -0
- data/lib/cms/domain_support.rb +22 -0
- data/lib/cms/engine.rb +40 -19
- data/lib/cms/engine_helper.rb +54 -0
- data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +14 -2
- data/lib/cms/mobile_aware.rb +67 -0
- data/lib/cms/route_extensions.rb +3 -0
- data/lib/cms/upgrades/v3_5_0.rb +155 -0
- data/lib/cms/version.rb +6 -1
- data/lib/generators/cms/content_block/content_block_generator.rb +14 -9
- data/lib/generators/cms/content_block/templates/_form.html.erb +17 -6
- data/lib/generators/cms/content_block/templates/render.html.erb +12 -5
- data/lib/generators/cms/template/template_generator.rb +11 -2
- data/lib/tasks/cms.rake +23 -0
- data/lib/templates/active_record/model/model.rb +6 -0
- metadata +127 -517
- data/.gitignore +0 -24
- data/.rvmrc +0 -2
- data/Gemfile +0 -29
- data/Gemfile.lock +0 -196
- data/Rakefile +0 -97
- data/app/assets/images/browsercms/.gitkeep +0 -0
- data/app/controllers/browsercms/application_controller.rb +0 -4
- data/browsercms.gemspec +0 -35
- data/config/cucumber.yml +0 -8
- data/config/database.jdbcmysql.yml +0 -30
- data/config/database.mysql.yml +0 -27
- data/config/database.postgres.yml +0 -25
- data/config/database.sqlite3.yml +0 -11
- data/config/environment.rb +0 -6
- data/config/initializers/query_reviewer_patch.rb +0 -12
- data/config/initializers/rack_1_2_1_patch.rb +0 -12
- data/config/locales/en.yml +0 -5
- data/features/acts_as_content_page.feature +0 -62
- data/features/add_content_to_pages.feature +0 -45
- data/features/caching.feature +0 -13
- data/features/ckeditor.feature +0 -11
- data/features/commands/confirm_aruba_works.feature +0 -24
- data/features/commands/generate_module.feature +0 -54
- data/features/commands/install_browsercms.feature +0 -21
- data/features/commands/new_demo_project.feature +0 -30
- data/features/commands/new_projects.feature +0 -50
- data/features/commands/upgrade_modules_to_3_4_0_from_3_1_x.feature +0 -19
- data/features/commands/upgrade_project_to_3_4_0_from_3_3_x.feature +0 -52
- data/features/commands/upgrading_modules.feature +0 -67
- data/features/content_blocks/manage_custom_blocks.feature +0 -67
- data/features/content_blocks/manage_html_blocks.feature +0 -48
- data/features/content_blocks/manage_image_blocks.feature +0 -41
- data/features/content_files.feature +0 -37
- data/features/content_pages.feature +0 -21
- data/features/generators/content_blocks_for_modules.feature +0 -58
- data/features/generators/content_blocks_for_projects.feature +0 -109
- data/features/install_content.feature +0 -25
- data/features/jquery-testplan.txt +0 -12
- data/features/manage_groups.feature +0 -33
- data/features/manage_page_routes.feature +0 -72
- data/features/manage_redirects.feature +0 -20
- data/features/manage_sections.feature +0 -12
- data/features/manage_tasks.feature +0 -25
- data/features/manage_users.feature +0 -38
- data/features/page_templates.feature +0 -49
- data/features/portlets/email_friend_portlet.feature +0 -29
- data/features/portlets/portlets.feature +0 -100
- data/features/portlets/tag_cloud_portlet.feature +0 -28
- data/features/sitemap/create_pages.feature +0 -15
- data/features/sitemap/manage_links.feature +0 -29
- data/features/sitemap/sitemap.feature +0 -18
- data/features/step_definitions/acts_as_content_page_steps.rb.rb +0 -3
- data/features/step_definitions/ckeditor_steps.rb +0 -13
- data/features/step_definitions/command_line_steps.rb +0 -212
- data/features/step_definitions/content_pages_steps.rb +0 -170
- data/features/step_definitions/data_steps.rb +0 -48
- data/features/step_definitions/edit_page_templates_steps.rb +0 -21
- data/features/step_definitions/html_blocks_steps.rb +0 -9
- data/features/step_definitions/install_content_steps.rb +0 -4
- data/features/step_definitions/manage_content_blocks_steps.rb +0 -26
- data/features/step_definitions/manage_image_blocks_steps.rb +0 -31
- data/features/step_definitions/manage_sections_steps.rb +0 -18
- data/features/step_definitions/manage_user_steps.rb +0 -22
- data/features/step_definitions/more_custom_block_steps.rb +0 -34
- data/features/step_definitions/page_route_steps.rb +0 -65
- data/features/step_definitions/page_template_steps.rb +0 -5
- data/features/step_definitions/permissions_steps.rb +0 -13
- data/features/step_definitions/portlets_steps.rb +0 -64
- data/features/step_definitions/redirect_steps.rb +0 -12
- data/features/step_definitions/sitemap_steps.rb +0 -18
- data/features/step_definitions/tag_cloud_steps.rb +0 -11
- data/features/step_definitions/task_steps.rb +0 -4
- data/features/step_definitions/taxonomy_steps.rb +0 -16
- data/features/step_definitions/upgrade_module_steps.rb +0 -76
- data/features/step_definitions/web_steps.rb +0 -211
- data/features/support/async_support.rb +0 -17
- data/features/support/command_line_helpers.rb +0 -63
- data/features/support/debug_formatter.rb +0 -7
- data/features/support/debugging.rb +0 -28
- data/features/support/env.rb +0 -73
- data/features/support/git_api.rb +0 -9
- data/features/support/open_on_first_failure.rb +0 -25
- data/features/support/paths.rb +0 -32
- data/features/support/rails_api.rb +0 -8
- data/features/support/selectors.rb +0 -39
- data/features/support/transforms.rb +0 -7
- data/features/taxonomy/add_content_with_category.feature +0 -30
- data/features/taxonomy/manage_categories.feature +0 -20
- data/features/taxonomy/manage_category_types.feature +0 -16
- data/lib/cms/init.rb +0 -105
- data/lib/tasks/data.rake +0 -43
- data/lib/tasks/db.rake +0 -82
- data/public/styled_file_field/index.html +0 -72
- data/script/cucumber +0 -10
- data/script/rails +0 -6
- data/test/console_helper.rb +0 -5
- data/test/custom_assertions.rb +0 -84
- data/test/dummy/Rakefile +0 -7
- data/test/dummy/app/assets/javascripts/application.js +0 -9
- data/test/dummy/app/assets/javascripts/content_page.js +0 -2
- data/test/dummy/app/assets/stylesheets/application.css +0 -7
- data/test/dummy/app/assets/stylesheets/content_page.css +0 -4
- data/test/dummy/app/controllers/application_controller.rb +0 -3
- data/test/dummy/app/controllers/cms/products_controller.rb +0 -2
- data/test/dummy/app/controllers/cms/sample_blocks_controller.rb +0 -3
- data/test/dummy/app/controllers/content_page_controller.rb +0 -13
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/helpers/content_page_helper.rb +0 -2
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/cms/sample_block.rb +0 -22
- data/test/dummy/app/models/product.rb +0 -5
- data/test/dummy/app/views/cms/products/_form.html.erb +0 -7
- data/test/dummy/app/views/cms/products/render.html.erb +0 -3
- data/test/dummy/app/views/content_page/custom_page.html.erb +0 -3
- data/test/dummy/app/views/content_page/index.html.erb +0 -2
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/app/views/layouts/templates/default.html.erb +0 -17
- data/test/dummy/app/views/layouts/templates/subpage.html.erb +0 -16
- data/test/dummy/app/views/test_route/index.html.erb +0 -14
- data/test/dummy/config.ru +0 -4
- data/test/dummy/config/application.rb +0 -45
- data/test/dummy/config/boot.rb +0 -10
- data/test/dummy/config/database.yml +0 -27
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -32
- data/test/dummy/config/environments/production.rb +0 -60
- data/test/dummy/config/environments/test.rb +0 -46
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/browsercms.rb +0 -7
- data/test/dummy/config/initializers/inflections.rb +0 -10
- data/test/dummy/config/initializers/mime_types.rb +0 -5
- data/test/dummy/config/initializers/quiet_sprocket_assets.rb +0 -13
- data/test/dummy/config/initializers/secret_token.rb +0 -7
- data/test/dummy/config/initializers/session_store.rb +0 -8
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -5
- data/test/dummy/config/routes.rb +0 -23
- data/test/dummy/db/migrate/20111228141250_create_products.rb +0 -16
- data/test/dummy/db/seeds.rb +0 -1
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/public/404.html +0 -26
- data/test/dummy/public/422.html +0 -26
- data/test/dummy/public/500.html +0 -26
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +0 -6
- data/test/dummy/test/functional/content_page_controller_test.rb +0 -9
- data/test/dummy/test/unit/helpers/content_page_helper_test.rb +0 -4
- data/test/factories.rb +0 -235
- data/test/fixtures/multipart/foo.jpg +0 -0
- data/test/fixtures/multipart/sample_upload.txt +0 -1
- data/test/fixtures/multipart/second_upload.txt +0 -1
- data/test/fixtures/multipart/test.jpg +0 -0
- data/test/fixtures/multipart/version1.txt +0 -1
- data/test/fixtures/multipart/version2.txt +0 -1
- data/test/functional/cms/cache_controller_test.rb +0 -16
- data/test/functional/cms/categories_controller_test.rb +0 -28
- data/test/functional/cms/connectors_controller_test.rb +0 -64
- data/test/functional/cms/content_block_controller_test.rb +0 -127
- data/test/functional/cms/content_controller_test.rb +0 -351
- data/test/functional/cms/dashboard_controller_test.rb +0 -20
- data/test/functional/cms/file_blocks_controller_test.rb +0 -55
- data/test/functional/cms/home_controller_test.rb +0 -160
- data/test/functional/cms/html_blocks_controller_test.rb +0 -159
- data/test/functional/cms/image_blocks_controller_test.rb +0 -78
- data/test/functional/cms/links_controller_test.rb +0 -92
- data/test/functional/cms/log/test.log +0 -0
- data/test/functional/cms/pages_controller_test.rb +0 -233
- data/test/functional/cms/portlets_controller_test.rb +0 -57
- data/test/functional/cms/sections_controller_test.rb +0 -234
- data/test/functional/cms/sessions_controller_test.rb +0 -80
- data/test/functional/cms/tasks_controller_test.rb +0 -64
- data/test/functional/cms/toolbar_controller_test.rb +0 -76
- data/test/functional/cms/users_controller_test.rb +0 -218
- data/test/integration/cms/password_management_test.rb +0 -66
- data/test/integration/sitemap_performance_test.rb +0 -26
- data/test/mock_file.rb +0 -33
- data/test/performance/browsing_test.rb +0 -9
- data/test/support/engine_controller_hacks.rb +0 -34
- data/test/support/factory_helpers.rb +0 -57
- data/test/support/rails_3_1_routes_hack.rb +0 -70
- data/test/test_helper.rb +0 -199
- data/test/test_logging.rb +0 -67
- data/test/unit/active_record_callbacks.rb +0 -50
- data/test/unit/behaviors/attaching_test.rb +0 -370
- data/test/unit/behaviors/cms_user_test.rb +0 -67
- data/test/unit/behaviors/connectable_test.rb +0 -32
- data/test/unit/behaviors/connecting_test.rb +0 -56
- data/test/unit/behaviors/dynamic_attributes_test.rb +0 -74
- data/test/unit/behaviors/namespacing_test.rb +0 -76
- data/test/unit/behaviors/publishable_test.rb +0 -83
- data/test/unit/behaviors/rendering_test.rb +0 -68
- data/test/unit/behaviors/searching_test.rb +0 -102
- data/test/unit/behaviors/taggable_test.rb +0 -110
- data/test/unit/behaviors/userstamping_test.rb +0 -27
- data/test/unit/behaviors/versioning_test.rb +0 -102
- data/test/unit/extensions/active_record/base_test.rb +0 -25
- data/test/unit/extensions/hash_test.rb +0 -26
- data/test/unit/extensions/integer_test.rb +0 -10
- data/test/unit/extensions/string_test.rb +0 -14
- data/test/unit/factories_test.rb +0 -50
- data/test/unit/generators/install_generator_test.rb +0 -15
- data/test/unit/helpers/application_helper_test.rb +0 -104
- data/test/unit/helpers/date_picker_test.rb +0 -17
- data/test/unit/helpers/menu_helper_test.rb +0 -240
- data/test/unit/helpers/page_helper_test.rb +0 -69
- data/test/unit/helpers/path_helper_test.rb +0 -38
- data/test/unit/helpers/rendering_helper_test.rb +0 -8
- data/test/unit/lib/acts_as_content_page_test.rb +0 -72
- data/test/unit/lib/cms/authentication/controller_test.rb +0 -20
- data/test/unit/lib/cms/engine_helper_test.rb +0 -119
- data/test/unit/lib/cms/sitemap_test.rb +0 -210
- data/test/unit/lib/cms_domain_support_test.rb +0 -44
- data/test/unit/lib/command_line_test.rb +0 -70
- data/test/unit/lib/content_block_test.rb +0 -304
- data/test/unit/lib/content_rendering_support_test.rb +0 -40
- data/test/unit/lib/generators_test.rb +0 -40
- data/test/unit/lib/routes_test.rb +0 -98
- data/test/unit/mock_file_test.rb +0 -19
- data/test/unit/models/attachment_test.rb +0 -160
- data/test/unit/models/category_test.rb +0 -40
- data/test/unit/models/category_type_test.rb +0 -8
- data/test/unit/models/connector_test.rb +0 -152
- data/test/unit/models/content_type_group_test.rb +0 -26
- data/test/unit/models/content_type_test.rb +0 -177
- data/test/unit/models/dynamic_views_test.rb +0 -36
- data/test/unit/models/email_page_portlet_test.rb +0 -20
- data/test/unit/models/file_block_test.rb +0 -246
- data/test/unit/models/group_test.rb +0 -29
- data/test/unit/models/html_block_test.rb +0 -121
- data/test/unit/models/image_block_test.rb +0 -35
- data/test/unit/models/link_test.rb +0 -52
- data/test/unit/models/namespaces_test.rb +0 -57
- data/test/unit/models/page_partial_test.rb +0 -37
- data/test/unit/models/page_route_test.rb +0 -113
- data/test/unit/models/page_template_test.rb +0 -50
- data/test/unit/models/page_test.rb +0 -879
- data/test/unit/models/permission_test.rb +0 -10
- data/test/unit/models/portlet_test.rb +0 -99
- data/test/unit/models/sections_test.rb +0 -278
- data/test/unit/models/site_test.rb +0 -50
- data/test/unit/models/task_test.rb +0 -150
- data/test/unit/models/user_test.rb +0 -358
- data/test/unit/schema_statements_test.rb +0 -137
- data/todo_list.markdown +0 -50
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
@cli
|
|
2
|
-
Feature: Upgrading BrowserCMS
|
|
3
|
-
As a developer who has a lot of module to maintain, I really don't want to have to work off a checklist and
|
|
4
|
-
would rather have an idiot proof script that will upgrade my module for me.
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given I am working on a BrowserCMS v3.3.x module named "bcms_petstore"
|
|
8
|
-
|
|
9
|
-
Scenario: Verify a Rails 3.0 app was created
|
|
10
|
-
Then the following directories should exist:
|
|
11
|
-
| script |
|
|
12
|
-
| app |
|
|
13
|
-
And the following files should exist:
|
|
14
|
-
| config.ru |
|
|
15
|
-
|
|
16
|
-
Scenario: Avoid accidentally updating projects
|
|
17
|
-
Given I cd to ".."
|
|
18
|
-
And I am working on a BrowserCMS v3.3.x project named "petstore"
|
|
19
|
-
When I run `bcms-upgrade module`
|
|
20
|
-
Then the output should contain "This does not appear to be a BrowserCMS module. Skipping update"
|
|
21
|
-
And the following files should exist:
|
|
22
|
-
| config.ru |
|
|
23
|
-
|
|
24
|
-
Scenario: Upgrade a Module from 3.3.x to 3.4.x
|
|
25
|
-
When I run `bcms-upgrade module`
|
|
26
|
-
And the output should not contain "Upgrading to BrowserCMS 3.3.x..."
|
|
27
|
-
Then the file "script/rails" should contain "test/dummy/script/rails"
|
|
28
|
-
And the following files should not exist:
|
|
29
|
-
| config.ru |
|
|
30
|
-
| MIT-LICENSE |
|
|
31
|
-
| README.rdoc |
|
|
32
|
-
| config/database.yml |
|
|
33
|
-
| app/controllers/application_controller.rb |
|
|
34
|
-
| app/helpers/application_helper.rb |
|
|
35
|
-
| app/views/layouts |
|
|
36
|
-
# Confirm a Rails 3 mountable app was created
|
|
37
|
-
And the following directories should exist:
|
|
38
|
-
| app/assets/javascripts |
|
|
39
|
-
| test/dummy |
|
|
40
|
-
And the following directories should not exist:
|
|
41
|
-
| public |
|
|
42
|
-
And the file "test/dummy/config/database.yml" should contain "@original-yml"
|
|
43
|
-
And the file "config/routes.rb" should not contain "@original-routes"
|
|
44
|
-
And the file "config/routes.rb" should contain "BcmsPetstore::Engine.routes.draw"
|
|
45
|
-
And the file "lib/bcms_petstore/engine.rb" should contain "require 'browsercms'"
|
|
46
|
-
And the file "lib/bcms_petstore/engine.rb" should contain "@original-engine"
|
|
47
|
-
And the file "lib/bcms_petstore/version.rb" should contain "@original-version"
|
|
48
|
-
And the file "app/assets/test.html" should contain "@original-html"
|
|
49
|
-
And the file "app/assets/js/test.js" should contain "@original-js"
|
|
50
|
-
And the file "test/dummy/config/routes.rb" should contain "mount_browsercms"
|
|
51
|
-
And the following files should not exist:
|
|
52
|
-
| db/migrate/20080815014337_browsercms_3_0_0.rb |
|
|
53
|
-
| db/migrate/20091109175123_browsercms_3_0_5.rb |
|
|
54
|
-
| db/schema.rb |
|
|
55
|
-
| db/seeds.rb |
|
|
56
|
-
| db/development.sqlite3 |
|
|
57
|
-
And the following files should exist:
|
|
58
|
-
| db/migrate/my_module_migration.rb |
|
|
59
|
-
And the file "bcms_petstore.gemspec" should contain "@original-gemspec"
|
|
60
|
-
And the following files should exist:
|
|
61
|
-
| test/dummy/db/seeds.rb |
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
Feature: Manage Content Blocks
|
|
2
|
-
In BrowserCMS projects developers should be able to generate and manage content blocks via the UI.
|
|
3
|
-
This blocks will be generated as Rails resources, with a controller and views.
|
|
4
|
-
|
|
5
|
-
Background:
|
|
6
|
-
Given the cms database is populated
|
|
7
|
-
And a Content Type named "Product" is registered
|
|
8
|
-
And I am logged in as a Content Editor
|
|
9
|
-
|
|
10
|
-
Scenario: List Content Blocks
|
|
11
|
-
When I request /cms/products
|
|
12
|
-
Then I should see "List Products"
|
|
13
|
-
|
|
14
|
-
Scenario: List Content Blocks
|
|
15
|
-
When I request /cms/content_library
|
|
16
|
-
Then I should see the following content:
|
|
17
|
-
| Product |
|
|
18
|
-
| Text |
|
|
19
|
-
| File |
|
|
20
|
-
| Image |
|
|
21
|
-
| Portlet |
|
|
22
|
-
| Category |
|
|
23
|
-
| Category Type |
|
|
24
|
-
| Tag |
|
|
25
|
-
|
|
26
|
-
Scenario: Create a new block
|
|
27
|
-
When I request /cms/products/new
|
|
28
|
-
Then I should see "Add New Product"
|
|
29
|
-
When I fill in "Name" with "iPhone"
|
|
30
|
-
And I fill in "Price" with "400"
|
|
31
|
-
And I click on "Save"
|
|
32
|
-
Then I should see "iPhone"
|
|
33
|
-
Then I should see "400"
|
|
34
|
-
|
|
35
|
-
Scenario: Delete a block
|
|
36
|
-
Given the following products exist:
|
|
37
|
-
| id | name | price |
|
|
38
|
-
| 1 | iPhone | 400 |
|
|
39
|
-
| 2 | Kindle Fire | 200 |
|
|
40
|
-
When I delete "Kindle Fire"
|
|
41
|
-
Then I should be redirected to /cms/products
|
|
42
|
-
|
|
43
|
-
Scenario: Add to a page
|
|
44
|
-
When I visit /
|
|
45
|
-
And I turn on edit mode for /
|
|
46
|
-
And I add content to the main area of the page
|
|
47
|
-
And I click on "Product"
|
|
48
|
-
And I fill in "Name" with "iPhone"
|
|
49
|
-
And I click on "Save"
|
|
50
|
-
Then the response should be 200
|
|
51
|
-
And I should see "Name: iPhone"
|
|
52
|
-
|
|
53
|
-
Scenario: View Usages
|
|
54
|
-
Given a product "iPhone" has been added to a page
|
|
55
|
-
When I view that product
|
|
56
|
-
Then the response should be 200
|
|
57
|
-
And the page header should be "View Product 'iPhone'"
|
|
58
|
-
And I should see "Used on: 1 page"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
Feature: Manage Html Blocks
|
|
2
|
-
As a content editor I should be able to add new HTML content to a site
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given the cms database is populated
|
|
6
|
-
And I am logged in as a Content Editor
|
|
7
|
-
|
|
8
|
-
Scenario: List Html Blocks
|
|
9
|
-
Given the following Html blocks exist:
|
|
10
|
-
| name |
|
|
11
|
-
| Hello CMS |
|
|
12
|
-
Given I request /cms/html_blocks
|
|
13
|
-
Then the response should be 200
|
|
14
|
-
Then "Text" should be selected as the current Content Type
|
|
15
|
-
And I should see the following content:
|
|
16
|
-
| Hello CMS |
|
|
17
|
-
| Include body? |
|
|
18
|
-
|
|
19
|
-
Scenario: Publishing a New Block
|
|
20
|
-
Given I request /cms/html_blocks/new
|
|
21
|
-
Then I should see a page titled "Add New Text"
|
|
22
|
-
When I fill in "Name" with "Hello World"
|
|
23
|
-
And I click on "Save And Publish"
|
|
24
|
-
Then I should see a page titled "Content Library / View Text"
|
|
25
|
-
And I should see the following content:
|
|
26
|
-
| published |
|
|
27
|
-
| View Text 'Hello World' |
|
|
28
|
-
|
|
29
|
-
Scenario: Publishing an existing block
|
|
30
|
-
Given the following Html blocks exist:
|
|
31
|
-
| id | name |
|
|
32
|
-
| 100 | Hello |
|
|
33
|
-
When I request /cms/html_blocks/100/edit
|
|
34
|
-
When I fill in "Name" with "Hello World"
|
|
35
|
-
And I click on "Save And Publish"
|
|
36
|
-
Then I should see a page titled "Content Library / View Text"
|
|
37
|
-
And I should see the following content:
|
|
38
|
-
| published |
|
|
39
|
-
| View Text 'Hello World' |
|
|
40
|
-
|
|
41
|
-
Scenario: View Usages
|
|
42
|
-
Given html with "Hello World" has been added to a page
|
|
43
|
-
When I view that block
|
|
44
|
-
Then the response should be 200
|
|
45
|
-
And the page header should be "View Text"
|
|
46
|
-
And I should see "Used on: 1 page"
|
|
47
|
-
|
|
48
|
-
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
Feature: Manage Image Blocks
|
|
2
|
-
Content editors should be able to upload images into the content library.
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given the cms database is populated
|
|
6
|
-
And I am logged in as a Content Editor
|
|
7
|
-
And the following images exist:
|
|
8
|
-
| id | name |
|
|
9
|
-
| 150 | An LOL Cat Picture |
|
|
10
|
-
Then an image with id "150" should exist
|
|
11
|
-
|
|
12
|
-
Scenario: List Images
|
|
13
|
-
When I visit /cms/image_blocks
|
|
14
|
-
Then I should see a page titled "Content Library / List Images"
|
|
15
|
-
And I should see the following content:
|
|
16
|
-
| An LOL Cat Picture |
|
|
17
|
-
And I should see the section search filter
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Scenario: Add New Image
|
|
21
|
-
Given I visit /cms/image_blocks/new
|
|
22
|
-
Then I should see a page titled "Content Library / Add New Image"
|
|
23
|
-
|
|
24
|
-
Scenario: Edit an Image
|
|
25
|
-
When I visit /cms/image_blocks/150/edit
|
|
26
|
-
Then I should see a page titled "Content Library / Edit Image"
|
|
27
|
-
And the page header should be "Edit Image 'An LOL Cat Picture'"
|
|
28
|
-
|
|
29
|
-
Scenario: Move an Image to another Section
|
|
30
|
-
And the following sections exist:
|
|
31
|
-
| name |
|
|
32
|
-
| Image Gallery |
|
|
33
|
-
When I visit /cms/image_blocks/150/edit
|
|
34
|
-
And I select "Image Gallery" from "Section"
|
|
35
|
-
And I click on "Save"
|
|
36
|
-
Then the section 150 should be moved to "Image Gallery"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
Feature: Content Files
|
|
2
|
-
The content management system should serve text and other uploaded files.
|
|
3
|
-
|
|
4
|
-
Background:
|
|
5
|
-
Given the cms database is populated
|
|
6
|
-
|
|
7
|
-
Scenario: Serve Text Files
|
|
8
|
-
Given a text file named "/test.txt" exists with:
|
|
9
|
-
"""
|
|
10
|
-
Test Content
|
|
11
|
-
"""
|
|
12
|
-
When I request /test.txt
|
|
13
|
-
Then I should see "Test Content"
|
|
14
|
-
|
|
15
|
-
Scenario: Guests viewing protected file
|
|
16
|
-
Given a protected text file named "/test.txt" exists with:
|
|
17
|
-
"""
|
|
18
|
-
Test Content
|
|
19
|
-
"""
|
|
20
|
-
When I request /test.txt
|
|
21
|
-
Then the response should be 403
|
|
22
|
-
And I should see a page titled "Access Denied"
|
|
23
|
-
|
|
24
|
-
Scenario: Authorized users viewing protected file
|
|
25
|
-
Given a protected text file named "/test.txt" exists with:
|
|
26
|
-
"""
|
|
27
|
-
Test Content
|
|
28
|
-
"""
|
|
29
|
-
When login as an authorized user
|
|
30
|
-
And I request /test.txt
|
|
31
|
-
Then the response should be 200
|
|
32
|
-
And I should see "Test Content"
|
|
33
|
-
|
|
34
|
-
Scenario: Guests viewing an Archived file
|
|
35
|
-
Given an archived file named "/test.txt" exists
|
|
36
|
-
When I request /test.txt
|
|
37
|
-
Then I should see the CMS 404 page
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Feature: Content Pages
|
|
2
|
-
Visitors should be able to see content pages
|
|
3
|
-
|
|
4
|
-
# This should be ported from test/functional/content_controller_test.rbover time.
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given the cms database is populated
|
|
8
|
-
|
|
9
|
-
Scenario: Page Not Found as Guest
|
|
10
|
-
Given I request /a/non-existent/page
|
|
11
|
-
Then I should see the CMS 404 page
|
|
12
|
-
|
|
13
|
-
Scenario: Viewing an archived page as a Guest
|
|
14
|
-
Given an archived page at "/an/archived-page" exists
|
|
15
|
-
When I request /an/archived-page
|
|
16
|
-
Then I should see the CMS 404 page
|
|
17
|
-
|
|
18
|
-
Scenario: A guest accesses a protected page
|
|
19
|
-
Given a protected page at "/protected-page" exists
|
|
20
|
-
When I request /protected-page
|
|
21
|
-
Then I should see the CMS :forbidden page
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
@cli
|
|
2
|
-
Feature: Generate Content Blocks
|
|
3
|
-
Developers should be able to generate content blocks within projects to define new data structures.
|
|
4
|
-
|
|
5
|
-
Background:
|
|
6
|
-
Given I create a module named "bcms_widgets"
|
|
7
|
-
When I cd into the project "bcms_widgets"
|
|
8
|
-
|
|
9
|
-
Scenario: Generate content block in a module
|
|
10
|
-
When I run `rails g cms:content_block product name:string price:string`
|
|
11
|
-
And the file "app/models/bcms_widgets/product.rb" should contain:
|
|
12
|
-
"""
|
|
13
|
-
module BcmsWidgets
|
|
14
|
-
class Product < ActiveRecord::Base
|
|
15
|
-
acts_as_content_block
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
"""
|
|
19
|
-
And the file "app/controllers/bcms_widgets/products_controller.rb" should contain:
|
|
20
|
-
"""
|
|
21
|
-
module BcmsWidgets
|
|
22
|
-
class ProductsController < Cms::ContentBlockController
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
"""
|
|
26
|
-
And the file "app/views/bcms_widgets/products/render.html.erb" should contain:
|
|
27
|
-
"""
|
|
28
|
-
<p><b>Name:</b> <%= @content_block.name %></p>
|
|
29
|
-
<p><b>Price:</b> <%= @content_block.price %></p>
|
|
30
|
-
"""
|
|
31
|
-
And a migration named "create_bcms_widgets_products.rb" should contain:
|
|
32
|
-
"""
|
|
33
|
-
class CreateBcmsWidgetsProducts < ActiveRecord::Migration
|
|
34
|
-
def change
|
|
35
|
-
Cms::ContentType.create!(:name => "BcmsWidgets::Product", :group_name => "BcmsWidgets")
|
|
36
|
-
create_content_table :bcms_widgets_products, :prefix=>false do |t|
|
|
37
|
-
t.string :name
|
|
38
|
-
t.string :price
|
|
39
|
-
|
|
40
|
-
t.timestamps
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
"""
|
|
45
|
-
And the file "config/routes.rb" should contain:
|
|
46
|
-
"""
|
|
47
|
-
BcmsWidgets::Engine.routes.draw do
|
|
48
|
-
content_blocks :products
|
|
49
|
-
|
|
50
|
-
end
|
|
51
|
-
"""
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
@cli
|
|
2
|
-
Feature:
|
|
3
|
-
Developers working in BrowserCMS projects should be able to generate blocks.
|
|
4
|
-
|
|
5
|
-
Background:
|
|
6
|
-
Given a BrowserCMS project named "petstore" exists
|
|
7
|
-
And I cd into the project "petstore"
|
|
8
|
-
|
|
9
|
-
Scenario: Create an content block for a project
|
|
10
|
-
When I run `rails g cms:content_block product name:string price:string`
|
|
11
|
-
And the file "app/models/product.rb" should contain:
|
|
12
|
-
"""
|
|
13
|
-
class Product < ActiveRecord::Base
|
|
14
|
-
acts_as_content_block
|
|
15
|
-
end
|
|
16
|
-
"""
|
|
17
|
-
And a file named "test/unit/product_test.rb" should exist
|
|
18
|
-
And the file "app/controllers/cms/products_controller.rb" should contain:
|
|
19
|
-
"""
|
|
20
|
-
class Cms::ProductsController < Cms::ContentBlockController
|
|
21
|
-
end
|
|
22
|
-
"""
|
|
23
|
-
And the file "app/views/cms/products/render.html.erb" should contain:
|
|
24
|
-
"""
|
|
25
|
-
<p><b>Name:</b> <%= @content_block.name %></p>
|
|
26
|
-
<p><b>Price:</b> <%= @content_block.price %></p>
|
|
27
|
-
"""
|
|
28
|
-
And a migration named "create_products.rb" should contain:
|
|
29
|
-
"""
|
|
30
|
-
class CreateProducts < ActiveRecord::Migration
|
|
31
|
-
def change
|
|
32
|
-
Cms::ContentType.create!(:name => "Product", :group_name => "Product")
|
|
33
|
-
create_content_table :products, :prefix=>false do |t|
|
|
34
|
-
t.string :name
|
|
35
|
-
t.string :price
|
|
36
|
-
|
|
37
|
-
t.timestamps
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
"""
|
|
42
|
-
And the file "config/routes.rb" should contain:
|
|
43
|
-
"""
|
|
44
|
-
Petstore::Application.routes.draw do
|
|
45
|
-
namespace :cms do content_blocks :products end
|
|
46
|
-
|
|
47
|
-
mount_browsercms
|
|
48
|
-
"""
|
|
49
|
-
|
|
50
|
-
Scenario: With Belongs To
|
|
51
|
-
When I run `rails g cms:content_block product size:belongs_to`
|
|
52
|
-
Then the file "app/models/product.rb" should contain:
|
|
53
|
-
"""
|
|
54
|
-
class Product < ActiveRecord::Base
|
|
55
|
-
acts_as_content_block
|
|
56
|
-
belongs_to :size
|
|
57
|
-
end
|
|
58
|
-
"""
|
|
59
|
-
And a migration named "create_products.rb" should contain:
|
|
60
|
-
"""
|
|
61
|
-
t.belongs_to :size
|
|
62
|
-
"""
|
|
63
|
-
|
|
64
|
-
Scenario: With Categories
|
|
65
|
-
When I run `rails g cms:content_block product category:category`
|
|
66
|
-
Then the file "app/models/product.rb" should contain:
|
|
67
|
-
"""
|
|
68
|
-
class Product < ActiveRecord::Base
|
|
69
|
-
acts_as_content_block
|
|
70
|
-
belongs_to_category
|
|
71
|
-
end
|
|
72
|
-
"""
|
|
73
|
-
And a migration named "create_products.rb" should contain:
|
|
74
|
-
"""
|
|
75
|
-
t.belongs_to :category
|
|
76
|
-
"""
|
|
77
|
-
|
|
78
|
-
Scenario: With Attachments
|
|
79
|
-
When I run `rails g cms:content_block product attachment:attachment`
|
|
80
|
-
Then the file "app/models/product.rb" should contain:
|
|
81
|
-
"""
|
|
82
|
-
class Product < ActiveRecord::Base
|
|
83
|
-
acts_as_content_block :belongs_to_attachment => true
|
|
84
|
-
end
|
|
85
|
-
"""
|
|
86
|
-
And a migration named "create_products.rb" should contain the following:
|
|
87
|
-
| t.belongs_to :attachment |
|
|
88
|
-
| t.integer :attachment_version |
|
|
89
|
-
|
|
90
|
-
Scenario: With Html attributes
|
|
91
|
-
When I run `rails g cms:content_block product content:html`
|
|
92
|
-
Then a migration named "create_products.rb" should contain the following:
|
|
93
|
-
| t.text :content, :size => (64.kilobytes + 1) |
|
|
94
|
-
|
|
95
|
-
Scenario: [Bug Fix] Block names starting with 'do' should work
|
|
96
|
-
When I run `rails g cms:content_block dog`
|
|
97
|
-
And a migration named "create_dogs.rb" should contain:
|
|
98
|
-
"""
|
|
99
|
-
class CreateDogs < ActiveRecord::Migration
|
|
100
|
-
def change
|
|
101
|
-
Cms::ContentType.create!(:name => "Dog", :group_name => "Dog")
|
|
102
|
-
create_content_table :dogs, :prefix=>false do |t|
|
|
103
|
-
|
|
104
|
-
t.timestamps
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
"""
|
|
109
|
-
|