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,48 +0,0 @@
1
- Then /^I should see the following content:$/ do |table|
2
- table.raw.each do |row|
3
- assert page.has_content?(row[0]), "Couldn't find #{row[0]}' anywhere on the page."
4
- end
5
- end
6
-
7
- When /^I should not see the following content:$/ do |table|
8
- table.raw.each do |row|
9
- assert !page.has_content?(row[0]), "Found #{row[0]}' on the page when it was not expected to be there."
10
- end
11
- end
12
-
13
-
14
- # Creates a CMS::FileBlock
15
- Given /^a text file named "([^"]*)" exists with:$/ do |file_name, text|
16
- create_file(file_name, text)
17
- end
18
-
19
- Given /^a protected text file named "([^"]*)" exists with:$/ do |file_name, text|
20
- file = create_file(file_name, text)
21
- section = Factory(:protected_section)
22
- file.update_attributes(:attachment_section => section)
23
- end
24
-
25
- Given /^an archived file named "([^"]*)" exists$/ do |file_name|
26
- file = create_file(file_name)
27
- file.update_attributes(:archived => true, :publish_on_save => true)
28
- assert file.attachment.archived?, "File should be archived"
29
- end
30
-
31
- When /^I (?:request|visit) (#{PATH})$/ do |path|
32
- visit path
33
- end
34
-
35
- Given /^there is an Html Block with:$/ do |table|
36
- Factory(:html_block, table.hashes.first)
37
- end
38
-
39
- # When there is a 'Portlet' with:
40
- # | name | content |
41
- # | A | B |
42
- When /^there is a "([^"]*)" with:$/ do |model_class, table|
43
- @subject = Factory(model_class.underscore.to_sym, table.hashes.first)
44
- end
45
-
46
- When /^there is a page with:$/ do |table|
47
- Factory(:public_page, { :publish_on_save=>true }.merge(table.hashes.first))
48
- end
@@ -1,21 +0,0 @@
1
- Given /^the following page template exists:$/ do |table|
2
- @page_templates =[]
3
- table.hashes.each do |r|
4
- @page_templates << Factory(:page_template, r)
5
- end
6
- end
7
-
8
- When /^I edit that page template$/ do
9
- visit "/cms/page_templates/#{@page_templates.first.id}/edit"
10
- end
11
- When /^I delete that page template$/ do
12
- page.driver.delete "/cms/page_templates/#{@page_templates.first.id}"
13
- assert_equal 302, page.status_code, "Should redirect after deleting"
14
- visit "/cms/page_templates"
15
- end
16
-
17
- When /^I should not see the "([^"]*)" template in the table$/ do |content|
18
- within ".data" do
19
- assert !page.has_content?(content)
20
- end
21
- end
@@ -1,9 +0,0 @@
1
- # i.e. | id | name |
2
- # | 1 | A |
3
- Given /^the following Html blocks exist:$/ do |table|
4
- table.hashes.each do |row|
5
- b = Cms::HtmlBlock.new(row)
6
- b.id = row['id']
7
- b.save!
8
- end
9
- end
@@ -1,4 +0,0 @@
1
- Given /^the cms database is populated$/ do
2
- Cms::DataLoader.silent_mode = true
3
- load File.join(File.dirname(__FILE__), '../../db/seeds.rb')
4
- end
@@ -1,26 +0,0 @@
1
- When /^a Content Type named "Product" is registered$/ do
2
- p = "Product"
3
- Cms::ContentType.create!(:name => p, :group_name => p)
4
- end
5
- Given /^the following products exist:$/ do |table|
6
- # table is a | 1 | iPhone | 400 |
7
- table.hashes.each do |row|
8
- Product.create!(:id=>row['id'], :name=>row['name'], :price=>row['price'])
9
- end
10
- end
11
- When /^I delete "([^"]*)"$/ do |product_name|
12
- p = Product.find_by_name(product_name)
13
- page.driver.delete "/cms/products/#{p.id}"
14
- end
15
- Then /^I should be redirected to ([^"]*)$/ do |path|
16
- assert_equal "http://www.example.com#{path}", page.response_headers["Location"]
17
- end
18
-
19
- Then /^"([^"]*)" should be selected as the current Content Type$/ do |name|
20
- select = name.tableize.singularize
21
- if name == "Text"
22
- select = "html_block"
23
- end
24
- li = find(:xpath, "//li[@rel='select-#{select}']")
25
- assert li['class'].include?("on")
26
- end
@@ -1,31 +0,0 @@
1
- Then /^the section (\d+) should be moved to "([^"]*)"$/ do |image_block_id, section_name|
2
- assert_equal section_name, Cms::ImageBlock.find(image_block_id.to_i).parent.name
3
- end
4
-
5
- Then /^the following images exist:$/ do |table|
6
- table.hashes.each do |row|
7
- if row['section']
8
- row[:attachment_section_id] = Cms::Section.find_by_name(row.delete('section'))
9
- end
10
- b = Factory(:image_block, row)
11
- b.id = row['id']
12
- b.save!
13
- end
14
- end
15
-
16
- Then /^the following sections exist:$/ do |table|
17
- table.hashes.each do |row|
18
- Factory(:section, row)
19
- end
20
- end
21
-
22
- When /^I should see the section search filter$/ do
23
- terms = %w{
24
- All sections
25
- My Site
26
- system
27
- }
28
- terms.each do |text|
29
- assert page.has_content?(text)
30
- end
31
- end
@@ -1,18 +0,0 @@
1
- Given /^I am adding a section to the root section$/ do
2
- section = Cms::Section.root.first
3
- visit "/cms/sections/new?section_id=#{section.id}"
4
- end
5
-
6
- When /^I create a public section$/ do
7
- fill_in "Name", :with=> "A New Section"
8
- fill_in "Path", :with=> "/my-new-section"
9
- ["Content Editors", "Cms Administrators", "Guest"].each do |checkbox|
10
- check checkbox
11
- end
12
- click_on "Save"
13
- end
14
-
15
- When /^the new section should be accessible to everyone$/ do
16
- section = Cms::Section.last
17
- assert_equal Cms::Group.count, section.groups.size
18
- end
@@ -1,22 +0,0 @@
1
- When /^fill valid fields for a new user named "([^"]*)"$/ do |username|
2
- fill_in "Username", :with=>username
3
- fill_in "Email", :with=>"#{username}@example.com"
4
- fill_in "First Name", :with=>"Mr."
5
- fill_in "Last Name", :with=>"Blank"
6
- fill_in "Password", :with=>"abc123"
7
- fill_in "Confirm Password", :with=>"abc123"
8
- click_on "Save"
9
- end
10
- Given /^the following content editor exists:$/ do |table|
11
- table.hashes.each do |row|
12
- row['login'] = row.delete('username')
13
- Factory(:content_editor, row)
14
- end
15
- end
16
- When /^I login as:$/ do |table|
17
- user = table.hashes.first
18
- visit '/cms/login'
19
- fill_in 'login', :with => user['login']
20
- fill_in 'password', :with => user['password']
21
- click_button 'LOGIN'
22
- end
@@ -1,34 +0,0 @@
1
- # Merge this into manage_content_block_steps after pulling this forward into 3.5.x
2
-
3
- When /^I add content to the main area of the page$/ do
4
- click_on "add_new_content_main"
5
- end
6
-
7
- Given /^a product "([^"]*)" has been added to a page$/ do |name|
8
- @product = Product.create!(:name => name)
9
- page = Factory(:public_page)
10
- page.add_content(@product)
11
- page.publish!
12
- end
13
-
14
- When /^I view that product$/ do
15
- visit "/cms/products/#{@product.id}"
16
- end
17
-
18
- Given /^html with "([^"]*)" has been added to a page$/ do |body|
19
- @block = Factory(:html_block, :content => body)
20
- page = Factory(:public_page)
21
- page.add_content(@block)
22
- page.publish!
23
- end
24
-
25
- When /^I view that block/ do
26
- visit "/cms/html_blocks/#{@block.id}"
27
- end
28
-
29
- Given /^portlet named "([^"]*)" has been added to a page$/ do |name|
30
- @subject = Factory(:portlet, :name=>name)
31
- page = Factory(:public_page)
32
- page.add_content(@subject)
33
- page.publish!
34
- end
@@ -1,65 +0,0 @@
1
- When /^create a Page Route with the following:$/ do |table|
2
- redirect = table.hashes.first
3
- select "/ (Home)", :from=>"Page"
4
- fill_in "Name", :with=>redirect['name']
5
- fill_in "Pattern", :with=>"/any/pattern"
6
- click_on 'Save'
7
- end
8
-
9
- Given /^a Page Route exists$/ do
10
- @last_route = Factory(:page_route)
11
- end
12
- When /^I edit that page route$/ do
13
- visit "/cms/page_routes/#{@last_route.id}/edit"
14
- end
15
-
16
- Given /^a public page exists$/ do
17
- @last_page = Factory(:public_page)
18
- end
19
-
20
- When /^there is a portlet that displays ":name" from the route$/ do
21
- @portlet = Factory(:portlet, :template=>"Hello <%= @name %>")
22
- @last_page.add_content(@portlet)
23
- @last_page.publish!
24
- end
25
-
26
- When /^a page route with the pattern "([^"]*)" exists$/ do |pattern|
27
- @route = Factory(:page_route, :pattern=>pattern, :page=>@last_page, :code=>"@name = params[:name]")
28
- end
29
-
30
- Given /^there is a dynamic page that looks up content by date$/ do
31
- @last_page = Factory(:public_page)
32
-
33
- template = <<ERB
34
- <%= @result %>
35
- ERB
36
- @portlet = Factory(:portlet, :template=>template)
37
- @last_page.add_content(@portlet)
38
- @last_page.publish!
39
- end
40
-
41
-
42
- When /^a page route with following exists:$/ do |table|
43
- data = table.hashes.first
44
- code = <<RUBY
45
- if params[:year] == "2011"
46
- @result = "I worked"
47
- else
48
- @result = "I didn't work"
49
- end
50
- RUBY
51
- @route = Factory(:page_route, :pattern=> data['pattern'], :code => code, :page=>@last_page)
52
- @route.add_constraint(:year, data['constraint']) if data['constraint']
53
- @route.via = data['method'] if data['method']
54
- @route.save!
55
- end
56
- Then /^I should see content for that year only$/ do
57
- assert page.has_content?("I worked")
58
- end
59
-
60
- When /^I POST to (.+)$/ do |path|
61
- page.driver.post(path)
62
- end
63
- When /^I search for a path including "([^"]*)"$/ do |pattern|
64
- visit "/cms/routes?path=#{pattern}"
65
- end
@@ -1,5 +0,0 @@
1
- Given /^there are (\d+) page templates$/ do |count|
2
- count.to_i.times do |i|
3
- Factory(:page_template)
4
- end
5
- end
@@ -1,13 +0,0 @@
1
- When /^the new group should have edit and publish permissions$/ do
2
- group = Cms::Group.last
3
- assert_equal 2, group.permissions.count
4
- assert group.has_permission?(:edit_content)
5
- assert group.has_permission?(:publish_content)
6
- end
7
-
8
- When /^the new group should have neither edit nor publish permissions$/ do
9
- group = Cms::Group.last
10
- assert_equal 0, group.permissions.count
11
- assert !group.has_permission?(:edit_content)
12
- assert !group.has_permission?(:publish_content)
13
- end
@@ -1,64 +0,0 @@
1
- # Steps for portlet.features
2
- When /^I delete that portlet$/ do
3
- # cms_portlet_path(@subject) seemed to create a wrong path: /cms/portlets.1 rather than the below statement
4
- page.driver.delete "/cms/portlets/#{@subject.id}"
5
- end
6
-
7
- # Why oh why does path lookup with engines not work (i.e. want to say portlet_path(@subject))
8
- When /^I view that portlet$/ do
9
- visit "/cms/portlets/#{@subject.id}"
10
- end
11
-
12
- When /^I edit that portlet$/ do
13
- visit "/cms/portlets/#{@subject.id}/edit"
14
- end
15
-
16
- When /^I visit that page$/ do
17
- assert_not_nil @last_page, "Couldn't find @last_page to visit. Check the order on steps'"
18
- visit @last_page.path
19
- end
20
-
21
-
22
- Given /^a page with a portlet that raises a Not Found exception exists$/ do
23
- @last_page = Factory(:public_page)
24
- @raises_not_found = Factory(:portlet, :code => 'raise ActiveRecord::RecordNotFound', :template=>"I shouldn't be shown.'")
25
- @last_page.add_content(@raises_not_found)
26
- @last_page.publish!
27
- assert @last_page.published?
28
- end
29
-
30
- When /^a page with a portlet that raises an Access Denied exception exists$/ do
31
- @last_page = Factory(:public_page)
32
- @raises_access_denied = Factory(:portlet, :code => 'raise Cms::Errors::AccessDenied', :template=>"I shouldn't be shown.'")
33
- @last_page.add_content(@raises_access_denied)
34
- @last_page.publish!
35
- assert @last_page.published?
36
- end
37
-
38
- When /^a page with a portlet that display "([^"]*)" exists$/ do |view|
39
- @last_page = Factory(:public_page)
40
- portlet = Factory(:portlet, :template=>view)
41
- @last_page.add_content(portlet)
42
- @last_page.publish!
43
- assert @last_page.published?
44
- end
45
-
46
- When /^a page with a portlet that raises both a 404 and 403 error exists$/ do
47
- @last_page = Factory(:public_page)
48
- @raises_not_found = Factory(:portlet, :code => 'raise ActiveRecord::RecordNotFound', :template=>"I shouldn't be shown.'")
49
- @last_page.add_content(@raises_not_found)
50
- @raises_access_denied = Factory(:portlet, :code => 'raise Cms::Errors::AccessDenied', :template=>"I shouldn't be shown.'")
51
- @last_page.add_content(@raises_access_denied)
52
- @last_page.publish!
53
- assert @last_page.published?
54
- end
55
-
56
- When /^a page with a portlet that raises both a 403 and any other error exists$/ do
57
- @last_page = Factory(:public_page)
58
- @raises_not_found = Factory(:portlet, :code => 'raise "A Generic Error"', :template=>"I shouldn't be shown.'")
59
- @last_page.add_content(@raises_not_found)
60
- @raises_access_denied = Factory(:portlet, :code => 'raise Cms::Errors::AccessDenied', :template=>"I shouldn't be shown.'")
61
- @last_page.add_content(@raises_access_denied)
62
- @last_page.publish!
63
- assert @last_page.published?
64
- end
@@ -1,12 +0,0 @@
1
- When /^I view the Redirects page$/ do
2
- visit "/cms/administration"
3
- click_on "Redirects"
4
- end
5
-
6
- When /^create a Redirect with the following:$/ do |table|
7
- redirect = table.hashes.first
8
- fill_in "From", :with=>redirect['from']
9
- fill_in "To", :with=>redirect['to']
10
- click_on 'Save'
11
- end
12
-
@@ -1,18 +0,0 @@
1
- When /^there are some additional pages and sections$/ do
2
- @foo = Factory(:section, :name => "Foo", :parent => root_section)
3
- @bar = Factory(:section, :name => "Bar", :parent => @foo)
4
- @page = Factory(:page, :name => "Test Page", :section => @bar)
5
- end
6
- Then /^I should see the new pages and sections$/ do
7
- assert page.has_content?("Foo")
8
- assert page.has_content?("Bar")
9
- assert page.has_content?("Test Page")
10
-
11
- end
12
- When /^I should see the stock CMS pages$/ do
13
- assert page.has_content?("My Site")
14
- assert page.has_content?("system")
15
- assert page.has_content?("Page Not Found")
16
- assert page.has_content?("Access Denied")
17
- assert page.has_content?("Server Error")
18
- end
@@ -1,11 +0,0 @@
1
- When /^the a block exist that are tagged with "([^"]*)"$/ do |tag|
2
- block = Factory(:html_block)
3
- block.tags << Cms::Tag.named(tag).first
4
- block.save!
5
- end
6
-
7
- When /^the following tags exist:$/ do |table|
8
- table.hashes.each do |row|
9
- Cms::Tag.create!(row)
10
- end
11
- end
@@ -1,4 +0,0 @@
1
- When /^I assign the home page as a task$/ do
2
- home_page = Cms::Page.with_path("/").first
3
- visit "/cms/pages/#{home_page.id}/tasks/new"
4
- end
@@ -1,16 +0,0 @@
1
- Given /^the following Category Types exist:$/ do |table|
2
- table.hashes.each do |attributes|
3
- Factory.create(:category_type, attributes)
4
- end
5
- end
6
-
7
- When /^the following Categories exist for "([^"]*)":$/ do |category_type, table|
8
- type = Cms::CategoryType.named(category_type).first
9
- table.hashes.each do |attributes|
10
- attributes.merge!({:category_type_id => type.id })
11
- Factory.create(:category, attributes)
12
- end
13
- end
14
- Then /^an image with id "([^"]*)" should exist$/ do |arg|
15
- assert Cms::ImageBlock.find(arg.to_i)
16
- end