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,80 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Cms
4
- class SessionsControllerTest < ActionController::TestCase
5
- include Cms::ControllerTestHelper
6
-
7
- def teardown
8
- User.current = nil
9
- end
10
-
11
- def test_not_redirected_to_cms_site_if_public_site
12
- @request.host = "foo.com"
13
- @request.request_uri = "/cms/login"
14
- get :new
15
- assert_response :success
16
- end
17
-
18
- def test_not_redirected_if_cms_site
19
- @request.host = "cms.foo.com"
20
- @request.request_uri = "/cms/login"
21
- get :new
22
- assert_response :success
23
- log @response.body
24
- assert_select "title", "CMS Login"
25
- end
26
-
27
- def test_return_to
28
- user = Factory(:user)
29
- expected_url = "/expected_url"
30
-
31
- post :create, {:success_url => "", :login => user.login, :password => "password"}, {:return_to => expected_url}
32
- assert_redirected_to(expected_url)
33
- end
34
-
35
- def test_success_url_overrides_return_to
36
- user = Factory(:user)
37
- expected_url = "/expected_url"
38
-
39
- post :create, {:success_url => expected_url, :login => user.login, :password => "password"}, {:return_to => "/somewhere_else"}
40
-
41
- assert_redirected_to(expected_url)
42
- end
43
-
44
- end
45
-
46
- class SessionsControllerCacheEnabledTest < ActionController::TestCase
47
- include Cms::ControllerTestHelper
48
- tests Cms::SessionsController
49
-
50
- def setup
51
- @controller.perform_caching = true
52
- end
53
-
54
- def teardown
55
- @controller.perform_caching = false
56
- end
57
-
58
- def test_redirected_to_cms_site_if_public_site
59
- @request.host = "foo.com"
60
- @request.path = "/cms/login"
61
- get :new
62
- assert_redirected_to "http://cms.foo.com/cms/login"
63
- end
64
-
65
- def test_not_redirected_if_cms_site
66
- @request.host = "cms.foo.com"
67
- @request.path = "/cms/login"
68
- get :new
69
- assert_response :success
70
- log @response.body
71
- assert_select "title", "CMS Login"
72
- end
73
-
74
- test "destroy" do
75
- Cms::SessionsController.any_instance.expects(:logout_user)
76
- delete :destroy
77
- assert_redirected_to "/"
78
- end
79
- end
80
- end
@@ -1,64 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Cms::TasksControllerTest < ActionController::TestCase
4
- include Cms::ControllerTestHelper
5
-
6
- def setup
7
- @admin = login_as_cms_admin
8
-
9
- @task = Factory(:task, :assigned_to=>@admin)
10
- end
11
-
12
- def test_complete_task
13
- task = Cms::Task.find_by_id_and_assigned_to_id(@task.id, @admin.id)
14
- assert_instance_of Cms::Task, task, "This test depends on there being a task to complete"
15
- assert !task.completed?
16
-
17
- put :complete, :id => @task.id
18
- assert_response :redirect
19
- assert_redirected_to task.page.path
20
- assert_equal "Task was marked as complete", flash[:notice]
21
-
22
- task.reload
23
- assert task.completed?
24
- end
25
-
26
-
27
- def test_complete_multiple_tasks
28
- @task2 = Factory(:task, :assigned_to=>@admin)
29
- ids = [@task.id, @task2.id]
30
- tasks = Cms::Task.find(:all, :conditions => ["assigned_to_id = ?", @admin.id])
31
- assert_equal 2, tasks.length, "This test depends on there being 2 tasks to complete"
32
- assert !tasks.detect {|t| t.completed?}
33
-
34
- # should update all tasks in the ids list
35
- put :complete, :task_ids => ids
36
- assert_response :redirect
37
- assert_redirected_to dashboard_path
38
- assert_equal "Tasks marked as complete", flash[:notice]
39
-
40
- tasks.each do |t|
41
- t.reload
42
- assert t.completed?
43
- end
44
-
45
- # if empty list is passed, should gracefully claim to have completed them all
46
- put :complete, :task_ids => []
47
- assert_response :redirect
48
- assert_redirected_to dashboard_path
49
- assert_equal "Tasks marked as complete", flash[:notice]
50
- end
51
-
52
- def test_complete_no_tasks
53
- put :complete, :task_ids => nil
54
- assert_response :redirect
55
- assert_redirected_to dashboard_path
56
- assert_equal "No tasks were marked for completion", flash[:error]
57
- end
58
-
59
- private
60
- # Rails engine paths still don't seem to want to load.
61
- def dashboard_path
62
- "/cms/dashboard"
63
- end
64
- end
@@ -1,76 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Cms
4
- class ToolbarControllerTest < ActionController::TestCase
5
- include Cms::ControllerTestHelper
6
-
7
- def setup
8
- login_as_cms_admin
9
- given_there_is_a_sitemap
10
- end
11
-
12
- def test_index_for_published_page
13
- create_page
14
- @page.publish!
15
- reset(:page)
16
-
17
- get :index, :page_id => @page.id, :page_version => @page.version, :mode => "edit"
18
-
19
- assert_response :success
20
- #log @response.body
21
- assert_select "#page_status", "published"
22
- assert_select "#section_link" do
23
- assert_select "a[href=?]", "/cms/sections?page_id=#{@page.id}"
24
- assert_select "a", @page.section.name
25
- end
26
- assert_select ".buttons .disabled span", "Publish"
27
-
28
- assert_select ".buttons .disabled span", :text => "Edit Properties", :count => 0
29
- assert_select "#edit_properties_button[href=?]", edit_page_path(@page)
30
-
31
- assert_select "#visual_editor_state", "ON"
32
- assert_select "#visual_editor_action", "TURN OFF"
33
- end
34
-
35
- def test_index_for_draft_page
36
- create_page
37
-
38
- get :index, :page_id => @page.id, :page_version => @page.version, :mode => "edit"
39
-
40
- assert_response :success
41
- #log @response.body
42
- assert_select "#page_status", "draft"
43
- assert_select "#section_link" do
44
- assert_select "a[href=?]", "/cms/sections?page_id=#{@page.id}"
45
- assert_select "a", @page.section.name
46
- end
47
-
48
- assert_select ".buttons .disabled span", :text => "Publish", :count => 0
49
- assert_select "#publish_button[href=?]", publish_page_path(@page)
50
-
51
- assert_select ".buttons .disabled span", :text => "Edit Properties", :count => 0
52
- assert_select "#edit_properties_button[href=?]", edit_page_path(@page)
53
-
54
- assert_select ".buttons span", :text => "Revert to this Version", :count => 0
55
- assert_select "#delete_button", 1
56
-
57
- assert_select "#visual_editor_state", "ON"
58
- assert_select "#visual_editor_action", "TURN OFF"
59
- end
60
-
61
- protected
62
- def create_page
63
- @page = Factory(:page, :section => root_section, :name => "Test", :path => "test")
64
- end
65
-
66
- # More hacky overriding path for Rail 3.1/Engines problems.
67
- private
68
- def publish_page_path(page)
69
- "/cms/pages/#{page.id}/publish"
70
- end
71
-
72
- def edit_page_path(page)
73
- "/cms/pages/#{page.id}/edit"
74
- end
75
- end
76
- end
@@ -1,218 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Cms
4
- class UsersControllerTest < ActionController::TestCase
5
- include Cms::ControllerTestHelper
6
-
7
- def setup
8
- login_as_cms_admin
9
- @user = User.first
10
- end
11
-
12
- def test_index
13
- get :index
14
- assert_response :success
15
- assert_select "a", "#{@user.email}"
16
- end
17
-
18
- def test_index_by_email_key_word
19
- create_key_word_test_users
20
- get :index, :key_word => "somekid"
21
-
22
- assert_response :success
23
- assert_select "a", {:count => 1, :text => @user_with_email.email}
24
- assert_select "a", {:count => 0, :text => @user_with_name.email}
25
- assert_select "a", {:count => 0, :text => @user_with_login.email}
26
- assert_select "a", {:count => 0, :text => @user.email}
27
- end
28
-
29
- def test_index_by_login_key_word
30
- create_key_word_test_users
31
- get :index, :key_word => "mylogin"
32
-
33
- assert_response :success
34
- assert_select "a", {:count => 0, :text => @user_with_email.email}
35
- assert_select "a", {:count => 0, :text => @user_with_name.email}
36
- assert_select "a", {:count => 1, :text => @user_with_login.email}
37
- assert_select "a", {:count => 0, :text => @user.email}
38
- end
39
-
40
- def test_index_by_first_name_key_word
41
- create_key_word_test_users
42
- get :index, :key_word => "stan"
43
-
44
- assert_response :success
45
- assert_select "a", {:count => 0, :text => @user_with_email.email}
46
- assert_select "a", {:count => 1, :text => @user_with_name.email}
47
- assert_select "a", {:count => 0, :text => @user_with_login.email}
48
- assert_select "a", {:count => 0, :text => @user.email}
49
- end
50
-
51
- def test_index_by_last_name_key_word
52
- create_key_word_test_users
53
- get :index, :key_word => "marsh"
54
-
55
- assert_response :success
56
- assert_select "a", {:count => 0, :text => @user_with_email.email}
57
- assert_select "a", {:count => 1, :text => @user_with_name.email}
58
- assert_select "a", {:count => 0, :text => @user_with_login.email}
59
- assert_select "a", {:count => 0, :text => @user.email}
60
- end
61
-
62
- def test_index_with_disabled_users
63
- @disabled_user = Factory(:user)
64
- @disabled_user.disable!
65
-
66
- get :index
67
- assert_response :success
68
- assert_select "a", {:count => 0, :text => @disabled_user.email}
69
- end
70
-
71
- def test_index_with_show_expired
72
- @disabled_user = Factory(:user)
73
- @disabled_user.disable!
74
-
75
- get :index, :show_expired => "true"
76
- assert_response :success
77
- assert_select "a", {:count => 1, :text => @disabled_user.email}
78
- end
79
-
80
- def test_index_with_groups
81
- @not_found = Factory(:user)
82
- @in_group = Factory(:group)
83
- @not_in_group = Factory(:group)
84
- @user.groups << @in_group
85
-
86
- get :index, :group_id => @in_group.id
87
-
88
- assert_response :success
89
- assert_select "a", {:count => 1, :text => @user.email}
90
- assert_select "a", {:count => 0, :text => @not_found.email}
91
- end
92
-
93
- def test_new
94
- @group = Factory(:group)
95
-
96
- get :new
97
-
98
- assert_response :success
99
-
100
- assert_select "input#user_login"
101
- assert_select "input#user_first_name"
102
- assert_select "input#user_last_name"
103
- assert_select "input#user_email"
104
- assert_select "input#user_password"
105
- assert_select "input#user_expires_at"
106
- assert_select "input#user_password_confirmation"
107
- assert_select "input[type=?][value=?]", "checkbox", @group.id
108
- end
109
-
110
- def test_create
111
- user_count = User.count
112
- @group = Factory(:group)
113
- user_params = Factory.attributes_for(:user, :password=>"123456", :password_confirmation=>"123456")
114
-
115
- post :create, :user => user_params, :group_ids => [@group.id]
116
- user = User.find_by_login(user_params[:login])
117
-
118
- assert_redirected_to users_path
119
- assert_incremented user_count, User.count
120
- assert_equal "User '#{user.login}' was created", flash[:notice]
121
- assert_equal [@group], user.groups
122
- end
123
-
124
- def test_edit
125
- get :edit, :id => @user.id
126
- assert_response :success
127
-
128
- assert_select "input#user_login[value=?]", @user.login
129
- assert_select "input#user_first_name[value=?]", @user.first_name
130
- assert_select "input#user_last_name[value=?]", @user.last_name
131
- assert_select "input#user_email[value=?]", @user.email
132
- assert_select "input#user_expires_at"
133
- end
134
-
135
- def test_show
136
- get :show, :id => @user.id
137
- assert_response :success
138
- end
139
-
140
- def test_update
141
- put :update, :id => @user.id, :cms_user => {:first_name => "First"}
142
- reset(:user)
143
-
144
- assert_redirected_to users_path
145
- assert_equal "First", @user.first_name
146
- assert_equal "User '#{@user.login}' was updated", flash[:notice]
147
- end
148
-
149
- def test_add_to_groups
150
- @group_ids = [Factory(:group).id, Factory(:group).id]
151
- put :update, :id => @user.id, :group_ids => @group_ids
152
- reset(:user)
153
-
154
- assert_redirected_to users_path
155
- assert_equal 2, @user.groups.count
156
- end
157
-
158
- protected
159
- def create_key_word_test_users
160
- @user_with_email = Factory(:user, :email => "somekid@southpark.com")
161
- @user_with_name = Factory(:user, :first_name => "Stan", :last_name => "Marsh")
162
- @user_with_login = Factory(:user, :login => "mylogin")
163
- end
164
-
165
- private
166
-
167
- # More Rails 3.1 Engine/Routing problems.
168
- def users_path
169
- "/cms/users"
170
- end
171
-
172
- end
173
-
174
- class UsersControllerNonAdminTest < ActionController::TestCase
175
- tests Cms::UsersController
176
- include Cms::ControllerTestHelper
177
-
178
- def setup
179
- @content_editor = Factory(:content_editor)
180
- login_as(@content_editor)
181
- #@user = Factory.build(:user)
182
- #@user.groups = [cms_groups(:group_3)]
183
- #@user.save!
184
- #login_as(@user)
185
- end
186
-
187
- def test_show_self
188
- get :show, :id => @content_editor.id
189
- assert_response :success
190
- end
191
-
192
- def test_show_other
193
- get :show, :id => Factory(:user).id
194
- assert @response.body.include?("Access Denied")
195
- end
196
-
197
- def test_change_password_self
198
- get :change_password, :id => @content_editor.id
199
- assert_response :success
200
- end
201
-
202
- def test_change_password_other
203
- get :change_password, :id => Factory(:user).id
204
- assert @response.body.include?("Access Denied")
205
- end
206
-
207
- def test_update_password_self
208
- put :update_password, :id => @content_editor.id,
209
- :cms_user => {:password => "something_else", :password_confirmation => "something_else"}
210
- assert_redirected_to "/cms/users/#{@content_editor.id}"
211
- end
212
-
213
- def test_update_password_other
214
- put :update_password, :id => Factory(:user).id
215
- assert @response.body.include?("Access Denied")
216
- end
217
- end
218
- end
@@ -1,66 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PasswordManagementTest < ActionController::IntegrationTest
4
-
5
- def setup
6
- given_there_is_a_cmsadmin
7
- given_there_is_a_guest_group
8
- given_there_is_a_sitemap
9
- @group = Factory(:group, :name => "Member")
10
-
11
- @section = Factory(:public_section, :parent => root_section, :name => "Passwords", :path => "/passwords")
12
- @section.save
13
-
14
- @user = Factory(:user, :email => "dexter@miamidade.gov")
15
- @user.groups << @group
16
- @user.save!
17
-
18
- @forgot_password_page = Factory(:page, :section => @section, :name => "Forgot password", :path => "/passwords")
19
- @reset_password_page = Factory(:page, :section => @section, :name => "Reset password", :path => "/passwords/reset")
20
-
21
- @forgot_password_portlet = ForgotPasswordPortlet.create!(:name => "Forgot Password",
22
- :template => ForgotPasswordPortlet.default_template,
23
- :connect_to_page_id => @forgot_password_page.id,
24
- :connect_to_container => "main",
25
- :publish_on_save => true)
26
-
27
- @reset_password_portlet = ResetPasswordPortlet.create!(:name => "Reset Password",
28
- :template => ResetPasswordPortlet.default_template,
29
- :connect_to_page_id => @reset_password_page.id,
30
- :connect_to_container => "main",
31
- :publish_on_save => true)
32
-
33
- @forgot_password_page.publish!
34
- @reset_password_page.publish!
35
- ActionMailer::Base.deliveries = []
36
- end
37
-
38
- def test_forgot_password_will_send_email
39
- get "/passwords"
40
- assert_response :success
41
-
42
- post "/passwords", :email => Cms::User.last.email
43
- assert_response :success
44
- assert flash[:forgot_password][:notice]
45
- assert ActionMailer::Base.deliveries.empty?
46
- end
47
-
48
- def forgot_password_should_render_a_form_with_an_email_address_to_enter
49
- get "/passwords"
50
- puts @response.body
51
- assert_select 'input#email'
52
- assert_response :success
53
- end
54
-
55
- def test_reset_password
56
- test_forgot_password_will_send_email
57
- token = Cms::User.last.reset_token
58
- get "/passwords/reset?token=#{token}"
59
- assert_response :success
60
-
61
- post "/passwords/reset", :token => token
62
- assert_response :success
63
- assert flash[:reset_password][:notice]
64
- end
65
-
66
- end