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.
Files changed (367) hide show
  1. data/README.markdown +1 -0
  2. data/app/assets/images/cms/file-uploading.gif +0 -0
  3. data/app/assets/javascripts/cms/application.js +1 -0
  4. data/app/assets/javascripts/cms/attachment_manager.js.erb +87 -0
  5. data/app/assets/javascripts/cms/core_library.js.erb +38 -25
  6. data/app/assets/stylesheets/cms/application.css.erb +1 -0
  7. data/app/assets/stylesheets/cms/attachment_manager.css.scss +28 -0
  8. data/app/controllers/cms/application_controller.rb +1 -1
  9. data/app/controllers/cms/attachments_controller.rb +45 -10
  10. data/app/controllers/cms/cache_controller.rb +1 -1
  11. data/app/controllers/cms/content_block_controller.rb +134 -122
  12. data/app/controllers/cms/content_controller.rb +143 -155
  13. data/app/controllers/cms/dashboard_controller.rb +11 -9
  14. data/app/controllers/cms/error_handling.rb +19 -7
  15. data/app/controllers/cms/file_blocks_controller.rb +2 -2
  16. data/app/controllers/cms/home_controller.rb +3 -0
  17. data/app/controllers/cms/section_nodes_controller.rb +52 -44
  18. data/app/controllers/cms/sections_controller.rb +4 -2
  19. data/app/controllers/cms/toolbar_controller.rb +14 -10
  20. data/app/helpers/cms/application_helper.rb +23 -19
  21. data/app/helpers/cms/form_builder.rb +65 -18
  22. data/app/helpers/cms/mobile_helper.rb +19 -0
  23. data/app/helpers/cms/path_helper.rb +30 -4
  24. data/app/helpers/cms/rendering_helper.rb +9 -1
  25. data/app/models/cms/abstract_file_block.rb +6 -6
  26. data/app/models/cms/attachment.rb +196 -107
  27. data/app/models/cms/category.rb +3 -0
  28. data/app/models/cms/category_type.rb +2 -0
  29. data/app/models/cms/connector.rb +3 -0
  30. data/app/models/cms/content_type.rb +3 -0
  31. data/app/models/cms/content_type_group.rb +2 -0
  32. data/app/models/cms/dynamic_view.rb +4 -0
  33. data/app/models/cms/email_message.rb +2 -0
  34. data/app/models/cms/file_block.rb +9 -2
  35. data/app/models/cms/group.rb +5 -2
  36. data/app/models/cms/group_permission.rb +2 -0
  37. data/app/models/cms/group_section.rb +3 -0
  38. data/app/models/cms/group_type.rb +2 -0
  39. data/app/models/cms/group_type_permission.rb +2 -0
  40. data/app/models/cms/html_block.rb +3 -2
  41. data/app/models/cms/image_block.rb +13 -2
  42. data/app/models/cms/page.rb +14 -3
  43. data/app/models/cms/page_route.rb +4 -0
  44. data/app/models/cms/page_route_condition.rb +1 -0
  45. data/app/models/cms/page_route_option.rb +2 -0
  46. data/app/models/cms/page_route_requirement.rb +1 -0
  47. data/app/models/cms/permission.rb +3 -0
  48. data/app/models/cms/portlet.rb +2 -2
  49. data/app/models/cms/redirect.rb +2 -0
  50. data/app/models/cms/section.rb +15 -1
  51. data/app/models/cms/section_node.rb +1 -0
  52. data/app/models/cms/site.rb +3 -0
  53. data/app/models/cms/tag.rb +2 -0
  54. data/app/models/cms/tagging.rb +3 -0
  55. data/app/models/cms/task.rb +5 -1
  56. data/app/models/cms/user.rb +1 -1
  57. data/app/models/cms/user_group_membership.rb +3 -0
  58. data/app/views/cms/attachments/_attachment.html.erb +14 -0
  59. data/app/views/cms/attachments/_attachment_table.html.erb +17 -0
  60. data/app/views/cms/attachments/_attachment_wrapper.html.erb +4 -0
  61. data/app/views/cms/blocks/index.html.erb +2 -3
  62. data/app/views/cms/blocks/show.html.erb +1 -1
  63. data/app/views/cms/dynamic_views/index.html.erb +1 -1
  64. data/app/views/cms/email_messages/index.html.erb +1 -1
  65. data/app/views/cms/file_blocks/_form.html.erb +1 -27
  66. data/app/views/cms/file_blocks/_section_selector.html.erb +13 -0
  67. data/app/views/cms/file_blocks/render.html.erb +3 -3
  68. data/app/views/cms/form_builder/_cms_attachment_manager.html.erb +26 -0
  69. data/app/views/cms/form_builder/_cms_file_field.html.erb +27 -35
  70. data/app/views/cms/groups/index.html.erb +1 -1
  71. data/app/views/cms/image_blocks/_form.html.erb +1 -27
  72. data/app/views/cms/image_blocks/render.html.erb +4 -1
  73. data/app/views/cms/page_routes/index.html.erb +3 -0
  74. data/app/views/cms/shared/error.xml.erb +8 -0
  75. data/app/views/cms/tags/render.html.erb +1 -1
  76. data/app/views/cms/toolbar/_mobile_toggle.html.erb +33 -0
  77. data/app/views/cms/users/index.html.erb +1 -1
  78. data/app/views/layouts/_page_toolbar.html.erb +2 -1
  79. data/bin/bcms +21 -26
  80. data/config/routes.rb +3 -2
  81. data/db/browsercms.seeds.rb +2 -1
  82. data/db/migrate/20111130221145_browsercms340.rb +5 -4
  83. data/db/migrate/20120329144406_browsercms350.rb +32 -0
  84. data/{test/dummy/db → db}/schema.rb +97 -128
  85. data/{performance_tuning_notes.md → doc/performance_tuning_notes.md} +0 -0
  86. data/doc/release_notes.md +74 -0
  87. data/lib/browsercms.rb +3 -0
  88. data/lib/cms/acts/content_block.rb +10 -2
  89. data/lib/cms/addressable.rb +8 -0
  90. data/lib/cms/attachments/attachment_serving.rb +59 -0
  91. data/lib/cms/attachments/configuration.rb +88 -0
  92. data/lib/cms/behaviors/attaching.rb +305 -136
  93. data/lib/cms/behaviors/connecting.rb +3 -4
  94. data/lib/cms/behaviors/dynamic_attributes.rb +121 -118
  95. data/lib/cms/behaviors/flush_cache_on_change.rb +1 -3
  96. data/lib/cms/behaviors/naming.rb +16 -0
  97. data/lib/cms/behaviors/pagination.rb +4 -1
  98. data/lib/cms/behaviors/publishing.rb +9 -3
  99. data/lib/cms/behaviors/searching.rb +3 -8
  100. data/lib/cms/behaviors/soft_deleting.rb +1 -0
  101. data/lib/cms/behaviors/taggable.rb +2 -0
  102. data/lib/cms/behaviors/versioning.rb +73 -120
  103. data/lib/cms/caching.rb +53 -11
  104. data/lib/cms/commands/actions.rb +19 -2
  105. data/lib/cms/configuration.rb +44 -0
  106. data/lib/cms/content_rendering_support.rb +9 -6
  107. data/lib/cms/default_accessible.rb +13 -0
  108. data/lib/cms/domain_support.rb +22 -0
  109. data/lib/cms/engine.rb +40 -19
  110. data/lib/cms/engine_helper.rb +54 -0
  111. data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +14 -2
  112. data/lib/cms/mobile_aware.rb +67 -0
  113. data/lib/cms/route_extensions.rb +3 -0
  114. data/lib/cms/upgrades/v3_5_0.rb +155 -0
  115. data/lib/cms/version.rb +6 -1
  116. data/lib/generators/cms/content_block/content_block_generator.rb +14 -9
  117. data/lib/generators/cms/content_block/templates/_form.html.erb +17 -6
  118. data/lib/generators/cms/content_block/templates/render.html.erb +12 -5
  119. data/lib/generators/cms/template/template_generator.rb +11 -2
  120. data/lib/tasks/cms.rake +23 -0
  121. data/lib/templates/active_record/model/model.rb +6 -0
  122. metadata +127 -517
  123. data/.gitignore +0 -24
  124. data/.rvmrc +0 -2
  125. data/Gemfile +0 -29
  126. data/Gemfile.lock +0 -196
  127. data/Rakefile +0 -97
  128. data/app/assets/images/browsercms/.gitkeep +0 -0
  129. data/app/controllers/browsercms/application_controller.rb +0 -4
  130. data/browsercms.gemspec +0 -35
  131. data/config/cucumber.yml +0 -8
  132. data/config/database.jdbcmysql.yml +0 -30
  133. data/config/database.mysql.yml +0 -27
  134. data/config/database.postgres.yml +0 -25
  135. data/config/database.sqlite3.yml +0 -11
  136. data/config/environment.rb +0 -6
  137. data/config/initializers/query_reviewer_patch.rb +0 -12
  138. data/config/initializers/rack_1_2_1_patch.rb +0 -12
  139. data/config/locales/en.yml +0 -5
  140. data/features/acts_as_content_page.feature +0 -62
  141. data/features/add_content_to_pages.feature +0 -45
  142. data/features/caching.feature +0 -13
  143. data/features/ckeditor.feature +0 -11
  144. data/features/commands/confirm_aruba_works.feature +0 -24
  145. data/features/commands/generate_module.feature +0 -54
  146. data/features/commands/install_browsercms.feature +0 -21
  147. data/features/commands/new_demo_project.feature +0 -30
  148. data/features/commands/new_projects.feature +0 -50
  149. data/features/commands/upgrade_modules_to_3_4_0_from_3_1_x.feature +0 -19
  150. data/features/commands/upgrade_project_to_3_4_0_from_3_3_x.feature +0 -52
  151. data/features/commands/upgrading_modules.feature +0 -67
  152. data/features/content_blocks/manage_custom_blocks.feature +0 -67
  153. data/features/content_blocks/manage_html_blocks.feature +0 -48
  154. data/features/content_blocks/manage_image_blocks.feature +0 -41
  155. data/features/content_files.feature +0 -37
  156. data/features/content_pages.feature +0 -21
  157. data/features/generators/content_blocks_for_modules.feature +0 -58
  158. data/features/generators/content_blocks_for_projects.feature +0 -109
  159. data/features/install_content.feature +0 -25
  160. data/features/jquery-testplan.txt +0 -12
  161. data/features/manage_groups.feature +0 -33
  162. data/features/manage_page_routes.feature +0 -72
  163. data/features/manage_redirects.feature +0 -20
  164. data/features/manage_sections.feature +0 -12
  165. data/features/manage_tasks.feature +0 -25
  166. data/features/manage_users.feature +0 -38
  167. data/features/page_templates.feature +0 -49
  168. data/features/portlets/email_friend_portlet.feature +0 -29
  169. data/features/portlets/portlets.feature +0 -100
  170. data/features/portlets/tag_cloud_portlet.feature +0 -28
  171. data/features/sitemap/create_pages.feature +0 -15
  172. data/features/sitemap/manage_links.feature +0 -29
  173. data/features/sitemap/sitemap.feature +0 -18
  174. data/features/step_definitions/acts_as_content_page_steps.rb.rb +0 -3
  175. data/features/step_definitions/ckeditor_steps.rb +0 -13
  176. data/features/step_definitions/command_line_steps.rb +0 -212
  177. data/features/step_definitions/content_pages_steps.rb +0 -170
  178. data/features/step_definitions/data_steps.rb +0 -48
  179. data/features/step_definitions/edit_page_templates_steps.rb +0 -21
  180. data/features/step_definitions/html_blocks_steps.rb +0 -9
  181. data/features/step_definitions/install_content_steps.rb +0 -4
  182. data/features/step_definitions/manage_content_blocks_steps.rb +0 -26
  183. data/features/step_definitions/manage_image_blocks_steps.rb +0 -31
  184. data/features/step_definitions/manage_sections_steps.rb +0 -18
  185. data/features/step_definitions/manage_user_steps.rb +0 -22
  186. data/features/step_definitions/more_custom_block_steps.rb +0 -34
  187. data/features/step_definitions/page_route_steps.rb +0 -65
  188. data/features/step_definitions/page_template_steps.rb +0 -5
  189. data/features/step_definitions/permissions_steps.rb +0 -13
  190. data/features/step_definitions/portlets_steps.rb +0 -64
  191. data/features/step_definitions/redirect_steps.rb +0 -12
  192. data/features/step_definitions/sitemap_steps.rb +0 -18
  193. data/features/step_definitions/tag_cloud_steps.rb +0 -11
  194. data/features/step_definitions/task_steps.rb +0 -4
  195. data/features/step_definitions/taxonomy_steps.rb +0 -16
  196. data/features/step_definitions/upgrade_module_steps.rb +0 -76
  197. data/features/step_definitions/web_steps.rb +0 -211
  198. data/features/support/async_support.rb +0 -17
  199. data/features/support/command_line_helpers.rb +0 -63
  200. data/features/support/debug_formatter.rb +0 -7
  201. data/features/support/debugging.rb +0 -28
  202. data/features/support/env.rb +0 -73
  203. data/features/support/git_api.rb +0 -9
  204. data/features/support/open_on_first_failure.rb +0 -25
  205. data/features/support/paths.rb +0 -32
  206. data/features/support/rails_api.rb +0 -8
  207. data/features/support/selectors.rb +0 -39
  208. data/features/support/transforms.rb +0 -7
  209. data/features/taxonomy/add_content_with_category.feature +0 -30
  210. data/features/taxonomy/manage_categories.feature +0 -20
  211. data/features/taxonomy/manage_category_types.feature +0 -16
  212. data/lib/cms/init.rb +0 -105
  213. data/lib/tasks/data.rake +0 -43
  214. data/lib/tasks/db.rake +0 -82
  215. data/public/styled_file_field/index.html +0 -72
  216. data/script/cucumber +0 -10
  217. data/script/rails +0 -6
  218. data/test/console_helper.rb +0 -5
  219. data/test/custom_assertions.rb +0 -84
  220. data/test/dummy/Rakefile +0 -7
  221. data/test/dummy/app/assets/javascripts/application.js +0 -9
  222. data/test/dummy/app/assets/javascripts/content_page.js +0 -2
  223. data/test/dummy/app/assets/stylesheets/application.css +0 -7
  224. data/test/dummy/app/assets/stylesheets/content_page.css +0 -4
  225. data/test/dummy/app/controllers/application_controller.rb +0 -3
  226. data/test/dummy/app/controllers/cms/products_controller.rb +0 -2
  227. data/test/dummy/app/controllers/cms/sample_blocks_controller.rb +0 -3
  228. data/test/dummy/app/controllers/content_page_controller.rb +0 -13
  229. data/test/dummy/app/helpers/application_helper.rb +0 -2
  230. data/test/dummy/app/helpers/content_page_helper.rb +0 -2
  231. data/test/dummy/app/mailers/.gitkeep +0 -0
  232. data/test/dummy/app/models/.gitkeep +0 -0
  233. data/test/dummy/app/models/cms/sample_block.rb +0 -22
  234. data/test/dummy/app/models/product.rb +0 -5
  235. data/test/dummy/app/views/cms/products/_form.html.erb +0 -7
  236. data/test/dummy/app/views/cms/products/render.html.erb +0 -3
  237. data/test/dummy/app/views/content_page/custom_page.html.erb +0 -3
  238. data/test/dummy/app/views/content_page/index.html.erb +0 -2
  239. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  240. data/test/dummy/app/views/layouts/templates/default.html.erb +0 -17
  241. data/test/dummy/app/views/layouts/templates/subpage.html.erb +0 -16
  242. data/test/dummy/app/views/test_route/index.html.erb +0 -14
  243. data/test/dummy/config.ru +0 -4
  244. data/test/dummy/config/application.rb +0 -45
  245. data/test/dummy/config/boot.rb +0 -10
  246. data/test/dummy/config/database.yml +0 -27
  247. data/test/dummy/config/environment.rb +0 -5
  248. data/test/dummy/config/environments/development.rb +0 -32
  249. data/test/dummy/config/environments/production.rb +0 -60
  250. data/test/dummy/config/environments/test.rb +0 -46
  251. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  252. data/test/dummy/config/initializers/browsercms.rb +0 -7
  253. data/test/dummy/config/initializers/inflections.rb +0 -10
  254. data/test/dummy/config/initializers/mime_types.rb +0 -5
  255. data/test/dummy/config/initializers/quiet_sprocket_assets.rb +0 -13
  256. data/test/dummy/config/initializers/secret_token.rb +0 -7
  257. data/test/dummy/config/initializers/session_store.rb +0 -8
  258. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  259. data/test/dummy/config/locales/en.yml +0 -5
  260. data/test/dummy/config/routes.rb +0 -23
  261. data/test/dummy/db/migrate/20111228141250_create_products.rb +0 -16
  262. data/test/dummy/db/seeds.rb +0 -1
  263. data/test/dummy/lib/assets/.gitkeep +0 -0
  264. data/test/dummy/public/404.html +0 -26
  265. data/test/dummy/public/422.html +0 -26
  266. data/test/dummy/public/500.html +0 -26
  267. data/test/dummy/public/favicon.ico +0 -0
  268. data/test/dummy/script/rails +0 -6
  269. data/test/dummy/test/functional/content_page_controller_test.rb +0 -9
  270. data/test/dummy/test/unit/helpers/content_page_helper_test.rb +0 -4
  271. data/test/factories.rb +0 -235
  272. data/test/fixtures/multipart/foo.jpg +0 -0
  273. data/test/fixtures/multipart/sample_upload.txt +0 -1
  274. data/test/fixtures/multipart/second_upload.txt +0 -1
  275. data/test/fixtures/multipart/test.jpg +0 -0
  276. data/test/fixtures/multipart/version1.txt +0 -1
  277. data/test/fixtures/multipart/version2.txt +0 -1
  278. data/test/functional/cms/cache_controller_test.rb +0 -16
  279. data/test/functional/cms/categories_controller_test.rb +0 -28
  280. data/test/functional/cms/connectors_controller_test.rb +0 -64
  281. data/test/functional/cms/content_block_controller_test.rb +0 -127
  282. data/test/functional/cms/content_controller_test.rb +0 -351
  283. data/test/functional/cms/dashboard_controller_test.rb +0 -20
  284. data/test/functional/cms/file_blocks_controller_test.rb +0 -55
  285. data/test/functional/cms/home_controller_test.rb +0 -160
  286. data/test/functional/cms/html_blocks_controller_test.rb +0 -159
  287. data/test/functional/cms/image_blocks_controller_test.rb +0 -78
  288. data/test/functional/cms/links_controller_test.rb +0 -92
  289. data/test/functional/cms/log/test.log +0 -0
  290. data/test/functional/cms/pages_controller_test.rb +0 -233
  291. data/test/functional/cms/portlets_controller_test.rb +0 -57
  292. data/test/functional/cms/sections_controller_test.rb +0 -234
  293. data/test/functional/cms/sessions_controller_test.rb +0 -80
  294. data/test/functional/cms/tasks_controller_test.rb +0 -64
  295. data/test/functional/cms/toolbar_controller_test.rb +0 -76
  296. data/test/functional/cms/users_controller_test.rb +0 -218
  297. data/test/integration/cms/password_management_test.rb +0 -66
  298. data/test/integration/sitemap_performance_test.rb +0 -26
  299. data/test/mock_file.rb +0 -33
  300. data/test/performance/browsing_test.rb +0 -9
  301. data/test/support/engine_controller_hacks.rb +0 -34
  302. data/test/support/factory_helpers.rb +0 -57
  303. data/test/support/rails_3_1_routes_hack.rb +0 -70
  304. data/test/test_helper.rb +0 -199
  305. data/test/test_logging.rb +0 -67
  306. data/test/unit/active_record_callbacks.rb +0 -50
  307. data/test/unit/behaviors/attaching_test.rb +0 -370
  308. data/test/unit/behaviors/cms_user_test.rb +0 -67
  309. data/test/unit/behaviors/connectable_test.rb +0 -32
  310. data/test/unit/behaviors/connecting_test.rb +0 -56
  311. data/test/unit/behaviors/dynamic_attributes_test.rb +0 -74
  312. data/test/unit/behaviors/namespacing_test.rb +0 -76
  313. data/test/unit/behaviors/publishable_test.rb +0 -83
  314. data/test/unit/behaviors/rendering_test.rb +0 -68
  315. data/test/unit/behaviors/searching_test.rb +0 -102
  316. data/test/unit/behaviors/taggable_test.rb +0 -110
  317. data/test/unit/behaviors/userstamping_test.rb +0 -27
  318. data/test/unit/behaviors/versioning_test.rb +0 -102
  319. data/test/unit/extensions/active_record/base_test.rb +0 -25
  320. data/test/unit/extensions/hash_test.rb +0 -26
  321. data/test/unit/extensions/integer_test.rb +0 -10
  322. data/test/unit/extensions/string_test.rb +0 -14
  323. data/test/unit/factories_test.rb +0 -50
  324. data/test/unit/generators/install_generator_test.rb +0 -15
  325. data/test/unit/helpers/application_helper_test.rb +0 -104
  326. data/test/unit/helpers/date_picker_test.rb +0 -17
  327. data/test/unit/helpers/menu_helper_test.rb +0 -240
  328. data/test/unit/helpers/page_helper_test.rb +0 -69
  329. data/test/unit/helpers/path_helper_test.rb +0 -38
  330. data/test/unit/helpers/rendering_helper_test.rb +0 -8
  331. data/test/unit/lib/acts_as_content_page_test.rb +0 -72
  332. data/test/unit/lib/cms/authentication/controller_test.rb +0 -20
  333. data/test/unit/lib/cms/engine_helper_test.rb +0 -119
  334. data/test/unit/lib/cms/sitemap_test.rb +0 -210
  335. data/test/unit/lib/cms_domain_support_test.rb +0 -44
  336. data/test/unit/lib/command_line_test.rb +0 -70
  337. data/test/unit/lib/content_block_test.rb +0 -304
  338. data/test/unit/lib/content_rendering_support_test.rb +0 -40
  339. data/test/unit/lib/generators_test.rb +0 -40
  340. data/test/unit/lib/routes_test.rb +0 -98
  341. data/test/unit/mock_file_test.rb +0 -19
  342. data/test/unit/models/attachment_test.rb +0 -160
  343. data/test/unit/models/category_test.rb +0 -40
  344. data/test/unit/models/category_type_test.rb +0 -8
  345. data/test/unit/models/connector_test.rb +0 -152
  346. data/test/unit/models/content_type_group_test.rb +0 -26
  347. data/test/unit/models/content_type_test.rb +0 -177
  348. data/test/unit/models/dynamic_views_test.rb +0 -36
  349. data/test/unit/models/email_page_portlet_test.rb +0 -20
  350. data/test/unit/models/file_block_test.rb +0 -246
  351. data/test/unit/models/group_test.rb +0 -29
  352. data/test/unit/models/html_block_test.rb +0 -121
  353. data/test/unit/models/image_block_test.rb +0 -35
  354. data/test/unit/models/link_test.rb +0 -52
  355. data/test/unit/models/namespaces_test.rb +0 -57
  356. data/test/unit/models/page_partial_test.rb +0 -37
  357. data/test/unit/models/page_route_test.rb +0 -113
  358. data/test/unit/models/page_template_test.rb +0 -50
  359. data/test/unit/models/page_test.rb +0 -879
  360. data/test/unit/models/permission_test.rb +0 -10
  361. data/test/unit/models/portlet_test.rb +0 -99
  362. data/test/unit/models/sections_test.rb +0 -278
  363. data/test/unit/models/site_test.rb +0 -50
  364. data/test/unit/models/task_test.rb +0 -150
  365. data/test/unit/models/user_test.rb +0 -358
  366. data/test/unit/schema_statements_test.rb +0 -137
  367. 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
-