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,17 +0,0 @@
1
- require "test_helper"
2
-
3
- class DatePickerTest < ActiveSupport::TestCase
4
-
5
- test "DatePicker Formatting" do
6
- assert_equal "yy/mm/dd", Cms::DatePicker.jquery_format
7
- end
8
-
9
- test "Formats date for UI output" do
10
- date = DateTime.new(2011, 3, 14)
11
- assert_equal "2011/03/14", Cms::DatePicker.format_for_ui(date)
12
- end
13
-
14
- test "Formatting of nil dates" do
15
- assert_nil(Cms::DatePicker.format_for_ui(nil))
16
- end
17
- end
@@ -1,240 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Cms
4
- class MenuHelperTest < ActionView::TestCase
5
-
6
- def test_menu_items
7
- given_a_sitemap_of_nfl_teams_exists
8
-
9
- expected = [
10
- {:id => "cms_section_#{@afc.id}", :url => "/buf", :name => "AFC", :children => [
11
- {:id => "cms_section_#{@afc_east.id}", :url => "/buf", :name => "East"},
12
- {:id => "cms_section_#{@afc_north.id}", :url => "/bal", :name => "North", :children => [
13
- {:id => "cms_page_#{@bal.id}", :selected => true, :url => "/bal", :name => "Baltimore Ravens"},
14
- {:id => "cms_page_#{@cin.id}", :url => "/cin", :name => "Cincinnati Bengals"},
15
- {:id => "cms_page_#{@cle.id}", :url => "/cle", :name => "Cleveland Browns"},
16
- {:id => "cms_page_#{@pit.id}", :url => "/pit", :name => "Pittsburgh Steelers"}
17
- ]},
18
- {:id => "cms_section_#{@afc_south.id}", :url => "/hou", :name => "South"},
19
- {:id => "cms_section_#{@afc_west.id}", :url => "/den", :name => "West"}
20
- ]},
21
- {:id => "cms_section_#{@nfc.id}", :url => "/dal", :name => "NFC"},
22
- {:id => "cms_section_#{@int.id}", :url => "/international", :name => "International"}
23
- ]
24
-
25
- assert_equal expected, menu_items(:page => @bal)
26
-
27
- @page = @bal
28
- assert_equal expected, menu_items
29
-
30
- expected = [
31
- {:id => "cms_section_#{@afc.id}", :url => "/buf", :name => "AFC", :children => [
32
- {:id => "cms_section_#{@afc_east.id}", :url => "/buf", :name => "East"},
33
- {:id => "cms_section_#{@afc_north.id}", :url => "/bal", :name => "North"},
34
- {:id => "cms_section_#{@afc_south.id}", :url => "/hou", :name => "South"},
35
- {:id => "cms_section_#{@afc_west.id}", :url => "/den", :name => "West"}
36
- ]},
37
- {:id => "cms_section_#{@nfc.id}", :url => "/dal", :name => "NFC"},
38
- {:id => "cms_section_#{@int.id}", :url => "/international", :name => "International"}
39
- ]
40
-
41
- assert_equal expected, menu_items(:depth => 2)
42
-
43
- expected = [
44
- {:id => "cms_section_#{@afc_east.id}", :url => "/buf", :name => "East"},
45
- {:id => "cms_section_#{@afc_north.id}", :url => "/bal", :name => "North", :children => [
46
- {:id => "cms_page_#{@bal.id}", :selected => true, :url => "/bal", :name => "Baltimore Ravens"},
47
- {:id => "cms_page_#{@cin.id}", :url => "/cin", :name => "Cincinnati Bengals"},
48
- {:id => "cms_page_#{@cle.id}", :url => "/cle", :name => "Cleveland Browns"},
49
- {:id => "cms_page_#{@pit.id}", :url => "/pit", :name => "Pittsburgh Steelers"}
50
- ]},
51
- {:id => "cms_section_#{@afc_south.id}", :url => "/hou", :name => "South"},
52
- {:id => "cms_section_#{@afc_west.id}", :url => "/den", :name => "West"}
53
- ]
54
-
55
- assert_equal expected, menu_items(:from_top => 1, :depth => 2)
56
-
57
- expected = [
58
- {:id => "cms_section_#{@afc.id}", :url => "/buf", :name => "AFC", :children => [
59
- {:id => "cms_section_#{@afc_east.id}", :url => "/buf", :name => "East"},
60
- {:id => "cms_section_#{@afc_north.id}", :url => "/bal", :name => "North"},
61
- {:id => "cms_section_#{@afc_south.id}", :url => "/hou", :name => "South"},
62
- {:id => "cms_section_#{@afc_west.id}", :url => "/den", :name => "West"}
63
- ]},
64
- {:id => "cms_section_#{@nfc.id}", :url => "/dal", :name => "NFC", :children => [
65
- {:id => "cms_section_#{@nfc_east.id}", :url => "/dal", :name => "East"},
66
- {:id => "cms_section_#{@nfc_north.id}", :url => "/chi", :name => "North"},
67
- {:id => "cms_section_#{@nfc_south.id}", :url => "/atl", :name => "South"},
68
- {:id => "cms_section_#{@nfc_west.id}", :url => "/ari", :name => "West"}
69
- ]},
70
- {:id => "cms_section_#{@int.id}", :url => "/international", :name => "International"}
71
- ]
72
-
73
- assert_equal expected, menu_items(:depth => 2, :show_all_siblings => true)
74
-
75
- expected = [
76
- {:id => "cms_section_#{@afc.id}", :url => "/buf", :name => "AFC"},
77
- {:id => "cms_section_#{@nfc.id}", :url => "/dal", :name => "NFC"},
78
- {:id => "cms_section_#{@int.id}", :url => "/international", :name => "International"}
79
- ]
80
-
81
- assert_equal expected, menu_items(:depth => 1)
82
-
83
- expected = [
84
- {:id => "cms_section_#{@afc_east.id}", :url => "/buf", :name => "East"},
85
- {:id => "cms_section_#{@afc_north.id}", :url => "/bal", :name => "North"},
86
- {:id => "cms_section_#{@afc_south.id}", :url => "/hou", :name => "South"},
87
- {:id => "cms_section_#{@afc_west.id}", :url => "/den", :name => "West"}
88
- ]
89
-
90
- assert_equal expected, menu_items(:from_top => 1, :depth => 1)
91
-
92
- expected = [
93
- {:id => "cms_section_#{@afc_east.id}", :url => "/buf", :name => "East"},
94
- {:id => "cms_section_#{@afc_north.id}", :url => "/bal", :name => "North"},
95
- {:id => "cms_section_#{@afc_south.id}", :url => "/hou", :name => "South"}
96
- ]
97
-
98
- assert_equal expected, menu_items(:from_top => 1, :depth => 1, :limit => 3)
99
-
100
- expected = [
101
- {:id => "cms_section_#{@afc.id}", :url => "/buf", :name => "AFC"},
102
- {:id => "cms_section_#{@nfc.id}", :url => "/dal", :name => "NFC"},
103
- {:id => "cms_section_#{@int.id}", :selected => true, :url => "/international", :name => "International"}
104
- ]
105
-
106
- assert_equal expected, menu_items(:page => @overview)
107
-
108
- end
109
-
110
- def test_menu_with_links
111
-
112
- @news = Factory(:section, :parent => root_section, :name => "News", :path => "/whatever")
113
- @press_releases = Factory(:page, :section => @news, :name => "Press Releases", :path => "/press_releases", :publish_on_save => true)
114
- @corporate_news = Factory(:link, :section => @news, :name => "Corporate News", :url => "/news", :new_window => false, :publish_on_save => true)
115
- @cnn = Factory(:link, :section => @news, :name => "CNN", :url => "http://www.cnn.com", :new_window => true, :publish_on_save => true)
116
-
117
- expected = [
118
- {:id => "cms_section_#{@news.id}", :url => "/press_releases", :name => "News", :children => [
119
- {:id => "cms_page_#{@press_releases.id}", :selected => true, :url => "/press_releases", :name => "Press Releases"},
120
- {:id => "cms_link_#{@corporate_news.id}", :url => "/news", :name => "Corporate News"},
121
- {:id => "cms_link_#{@cnn.id}", :url => "http://www.cnn.com", :target => "_blank", :name => "CNN"}
122
- ]}
123
- ]
124
-
125
- @page = @press_releases
126
- assert_equal expected, menu_items
127
- assert_equal [], menu_items(:from_top => 42)
128
- end
129
-
130
- def test_render_menu_does_not_show_unpublished_pages
131
- @section = Factory(:section, :name => "Test", :path => "/test")
132
- @page = Factory(:page, :section => @section, :name => "Overview", :path => "/test", :publish_on_save => true)
133
-
134
- @draft_page = Factory(:page, :section => @section, :name => "Draft v1", :path => "/draft", :publish_on_save => true)
135
- @draft_page.update_attributes(:name => "Draft v2")
136
- @never_published = Factory(:page, :section => @section, :name => "Never Published", :path => "/never_published")
137
-
138
- expected = [
139
- {:id => "cms_page_#{@page.id}", :name => "Overview", :url => "/test", :selected => true},
140
- {:id => "cms_page_#{@draft_page.id}", :name => "Draft v1", :url => "/draft"}
141
- ]
142
-
143
- assert_equal expected, menu_items(:from_top => 1)
144
- end
145
-
146
- def test_render_menu_with_path
147
- @test = Factory(:page, :section => root_section, :name => "Test", :path => "/test", :publish_on_save => true)
148
- @footer = Factory(:section, :parent => root_section, :name => "Footer", :path => "/footer")
149
- @about_us = Factory(:page, :section => @footer, :name => "About Us", :path => "/about_us", :publish_on_save => true)
150
- @contact_us = Factory(:page, :section => @footer, :name => "Contact Us", :path => "/contact_us", :publish_on_save => true)
151
- @privacy_policy = Factory(:page, :section => @footer, :name => "Privacy Policy", :path => "/privacy_policy", :publish_on_save => true)
152
- assert_equal [root_section, @footer], Section.all, "Verifying there is only the expected seed data present"
153
-
154
- expected = [
155
- {:id => "cms_page_#{@about_us.id}", :url => "/about_us", :name => "About Us"},
156
- {:id => "cms_page_#{@contact_us.id}", :url => "/contact_us", :name => "Contact Us"},
157
- {:id => "cms_page_#{@privacy_policy.id}", :url => "/privacy_policy", :name => "Privacy Policy"}
158
- ]
159
-
160
- actual = menu_items(:page => @test, :path => "/footer", :from_top => 1)
161
- assert_equal expected, actual
162
-
163
- expected = [
164
- {:id => "cms_page_#{@about_us.id}", :url => "/about_us", :name => "About Us"},
165
- {:id => "cms_page_#{@contact_us.id}", :url => "/contact_us", :name => "Contact Us", :selected => true},
166
- {:id => "cms_page_#{@privacy_policy.id}", :url => "/privacy_policy", :name => "Privacy Policy"}
167
- ]
168
-
169
- actual = menu_items(:page => @contact_us, :path => "/footer", :from_top => 1)
170
- assert_equal expected, actual
171
- end
172
-
173
- test "nil current page should return empty string" do
174
- @page = nil
175
- self.expects(:render).never
176
-
177
- assert_equal "", render_menu
178
- end
179
-
180
- protected
181
- def given_a_sitemap_of_nfl_teams_exists
182
- @afc = Factory(:section, :parent => root_section, :name => "AFC")
183
-
184
- @afc_east = Factory(:section, :parent => @afc, :name => "East")
185
- @buf = Factory(:page, :section => @afc_east, :name => "Buffalo Bills", :path => "/buf", :publish_on_save => true)
186
- @mia = Factory(:page, :section => @afc_east, :name => "Miami Dolphins", :path => "/mia", :publish_on_save => true)
187
- @ne = Factory(:page, :section => @afc_east, :name => "New England Patriots", :path => "/ne", :publish_on_save => true)
188
- @nyj = Factory(:page, :section => @afc_east, :name => "New York Jets", :path => "/nyj", :publish_on_save => true)
189
-
190
- @afc_north = Factory(:section, :parent => @afc, :name => "North")
191
- @bal = Factory(:page, :section => @afc_north, :name => "Baltimore Ravens", :path => "/bal", :publish_on_save => true)
192
- @cin = Factory(:page, :section => @afc_north, :name => "Cincinnati Bengals", :path => "/cin", :publish_on_save => true)
193
- @cle = Factory(:page, :section => @afc_north, :name => "Cleveland Browns", :path => "/cle", :publish_on_save => true)
194
- @pit = Factory(:page, :section => @afc_north, :name => "Pittsburgh Steelers", :path => "/pit", :publish_on_save => true)
195
-
196
- @afc_south = Factory(:section, :parent => @afc, :name => "South")
197
- @hou = Factory(:page, :section => @afc_south, :name => "Houston Texans", :path => "/hou", :publish_on_save => true)
198
- @ind = Factory(:page, :section => @afc_south, :name => "Indianapolis Colts", :path => "/ind", :publish_on_save => true)
199
- @jac = Factory(:page, :section => @afc_south, :name => "Jacksonville Jaguars", :path => "/jac", :publish_on_save => true)
200
- @ten = Factory(:page, :section => @afc_south, :name => "Tennessee Titans", :path => "/ten", :publish_on_save => true)
201
-
202
- @afc_west = Factory(:section, :parent => @afc, :name => "West")
203
- @den = Factory(:page, :section => @afc_west, :name => "Denver Broncos", :path => "/den", :publish_on_save => true)
204
- @kc = Factory(:page, :section => @afc_west, :name => "Kansas City Chiefs", :path => "/kc", :publish_on_save => true)
205
- @oak = Factory(:page, :section => @afc_west, :name => "Oakland Raiders", :path => "/oak", :publish_on_save => true)
206
- @sd = Factory(:page, :section => @afc_west, :name => "San Diego Chargers", :path => "/sd", :publish_on_save => true)
207
-
208
- @nfc = Factory(:section, :parent => root_section, :name => "NFC")
209
-
210
- @nfc_east = Factory(:section, :parent => @nfc, :name => "East")
211
- @dal = Factory(:page, :section => @nfc_east, :name => "Dallas Cowboys", :path => "/dal", :publish_on_save => true)
212
- @nyg = Factory(:page, :section => @nfc_east, :name => "New York Giants", :path => "/nyg", :publish_on_save => true)
213
- @phi = Factory(:page, :section => @nfc_east, :name => "Philadelphia Eagles", :path => "/phi", :publish_on_save => true)
214
- @was = Factory(:page, :section => @nfc_east, :name => "Washington Redskins", :path => "/was", :publish_on_save => true)
215
-
216
- @nfc_north = Factory(:section, :parent => @nfc, :name => "North")
217
- @chi = Factory(:page, :section => @nfc_north, :name => "Chicago Bears", :path => "/chi", :publish_on_save => true)
218
- @det = Factory(:page, :section => @nfc_north, :name => "Detroit Lions", :path => "/det", :publish_on_save => true)
219
- @gb = Factory(:page, :section => @nfc_north, :name => "Green Bay Packers", :path => "/gb", :publish_on_save => true)
220
- @min = Factory(:page, :section => @nfc_north, :name => "Minnesota Vikings", :path => "/min", :publish_on_save => true)
221
-
222
- @nfc_south = Factory(:section, :parent => @nfc, :name => "South")
223
- @atl = Factory(:page, :section => @nfc_south, :name => "Atlanta Falcons", :path => "/atl", :publish_on_save => true)
224
- @car = Factory(:page, :section => @nfc_south, :name => "Carolina Pathers", :path => "/car", :publish_on_save => true)
225
- @no = Factory(:page, :section => @nfc_south, :name => "New Orleans Saints", :path => "/no", :publish_on_save => true)
226
- @tb = Factory(:page, :section => @nfc_south, :name => "Tampa Bay Buccaneers", :path => "/tb", :publish_on_save => true)
227
-
228
- @nfc_west = Factory(:section, :parent => @nfc, :name => "West")
229
- @ari = Factory(:page, :section => @nfc_west, :name => "Arizona Cardinals", :path => "/ari", :publish_on_save => true)
230
- @sf = Factory(:page, :section => @nfc_west, :name => "San Francisco 49ers", :path => "/sf", :publish_on_save => true)
231
- @sea = Factory(:page, :section => @nfc_west, :name => "Seattle Seahawks", :path => "/sea", :publish_on_save => true)
232
- @stl = Factory(:page, :section => @nfc_west, :name => "St. Louis Rams", :path => "/stl", :publish_on_save => true)
233
-
234
- @int = Factory(:section, :parent => root_section, :name => "International", :path => '/international')
235
- @overview = Factory(:page, :section => @int, :name => "Overview", :path => "/international", :publish_on_save => true, :hidden => true)
236
- end
237
-
238
-
239
- end
240
- end
@@ -1,69 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Cms::PageHelperTest < ActionView::TestCase
4
-
5
- def setup
6
- root_section.name = "My Site"
7
- root_section.save!
8
- @foo = Factory(:section, :name => "Foo", :parent => root_section, :path => "/foo")
9
- Factory(:page, :name => "Overview", :section => @foo, :path => "/foo")
10
- @bar = Factory(:section, :name => "Bar", :parent => @foo, :path => "/bar")
11
- @overview = Factory(:page, :name => "Overview", :section => @bar, :path => "/bar")
12
- @bang = Factory(:page, :name => "Bang", :section => @bar, :path => "/bar/bang")
13
-
14
- @page = @bang
15
- end
16
-
17
- def test_render_breadcrumbs
18
- expected = <<HTML
19
- <ul class="breadcrumbs">
20
- <li class="first"><a href="/">My Site</a></li>
21
- <li><a href="/foo">Foo</a></li>
22
- <li><a href="/bar">Bar</a></li>
23
- <li>Bang</li>
24
- </ul>
25
- HTML
26
-
27
- assert_equal expected.chomp, render_breadcrumbs
28
-
29
- expected = <<HTML
30
- <ul class="breadcrumbs">
31
- <li class="first"><a href="/foo">Foo</a></li>
32
- <li><a href="/bar">Bar</a></li>
33
- <li>Bang</li>
34
- </ul>
35
- HTML
36
-
37
- assert_equal expected.chomp, render_breadcrumbs(:from_top => 1)
38
-
39
- @page = @overview
40
-
41
- expected = <<HTML
42
- <ul class="breadcrumbs">
43
- <li class="first"><a href="/foo">Foo</a></li>
44
- <li>Bar</li>
45
- </ul>
46
- HTML
47
-
48
- assert_equal expected.chomp, render_breadcrumbs(:from_top => 1)
49
-
50
- expected = <<HTML
51
- <ul class="breadcrumbs">
52
- <li class="first"><a href="/foo">Foo</a></li>
53
- <li><a href="/bar">Bar</a></li>
54
- <li>Overview</li>
55
- </ul>
56
- HTML
57
-
58
- assert_equal expected.chomp, render_breadcrumbs(:from_top => 1, :show_parent => true)
59
- end
60
-
61
- test "A missing @page should cause the breadcrumbs to render nothing, which may occur in TemplateSupport or Acts::ContentPage." do
62
- @page = nil
63
-
64
- assert_equal "", render_breadcrumbs
65
- end
66
-
67
-
68
-
69
- end
@@ -1,38 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Cms::PathHelperTest < ActionController::TestCase
4
-
5
- include Cms::PathHelper
6
- include ActionDispatch::Routing::UrlFor
7
- #include Rails.application.routes.url_helpers
8
- #default_url_options[:host] = 'www.example.com'
9
-
10
- def setup
11
- end
12
-
13
- def teardown
14
- end
15
-
16
- # These tests are probably redundant now since we have Scenario coverage.
17
- # However, it will be easier to merge forward with an editted file rather than a deleted one.
18
- def test_edit_cms_connectable_path_for_portlets
19
- portlet = DynamicPortlet.create(:name => "Testing Route generation")
20
- expected_path = "/cms/portlets/#{portlet.id}/edit"
21
- self.expects(:edit_portlet_path).with(portlet, {}).returns(expected_path)
22
-
23
- path = edit_cms_connectable_path(portlet)
24
-
25
- assert_equal(expected_path, path)
26
- end
27
-
28
- def test_edit_cms_connectable_path_includes_options_for_portlets
29
- portlet = DynamicPortlet.create(:name => "Testing Route generation")
30
- expected_path = "/cms/portlets/#{portlet.id}/edit?_redirect_to=some_path"
31
- self.expects(:edit_portlet_path).with(portlet, {:_redirect_to => "/some_path"}).returns(expected_path)
32
-
33
- path = edit_cms_connectable_path(portlet, :_redirect_to => "/some_path")
34
-
35
- assert_equal(expected_path, path)
36
- end
37
-
38
- end
@@ -1,8 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Cms::RenderingHelperTest < ActionView::TestCase
4
-
5
- def test_nothing
6
- end
7
-
8
- end
@@ -1,72 +0,0 @@
1
- require "test_helper"
2
- require "mocha"
3
-
4
- class CmsActsAsContentPageTest < ActiveSupport::TestCase
5
- EXPECTED_SECTION = "/members"
6
-
7
- class MyController < ActionController::Base
8
- include Cms::Acts::ContentPage
9
- requires_permission_for_section EXPECTED_SECTION
10
- end
11
-
12
- test "Arbitrary controller should have authentication methods" do
13
- c = MyController.new
14
-
15
- assert c.respond_to? :handle_access_denied_on_page
16
- assert c.respond_to? :handle_not_found_on_page
17
- assert c.respond_to? :handle_server_error_on_page
18
- assert c.respond_to? :handle_error_with_cms_page, true
19
-
20
- assert(c.respond_to?(:logged_in?), "Should include Cms::Authentication::Controller methods")
21
- assert(c.respond_to?(:handle_server_error), "Should include Cms::ErrorHandling methods")
22
-
23
- assert(MyController.respond_to?(:requires_permission_for_section), "Should add ClassMethods to the controller.")
24
- end
25
-
26
- test "check_access_to_section_filter" do
27
- mock_user = Cms::User.new
28
- mock_user.expects(:able_to_view?).with(EXPECTED_SECTION).returns(true)
29
- mock_user.expects(:login).returns("mock_user_name")
30
- c = MyController.new
31
- c.expects(:current_user).returns(mock_user)
32
-
33
-
34
- c.check_access_to_section
35
-
36
-
37
- end
38
-
39
- test "sets section in startup" do
40
- class AController < ActionController::Base
41
- include Cms::Acts::ContentPage
42
- requires_permission_for_section EXPECTED_SECTION
43
- end
44
-
45
- assert_equal EXPECTED_SECTION, AController.in_section
46
- end
47
-
48
- class NewController < ActionController::Base
49
- include Cms::Acts::ContentPage
50
- end
51
-
52
- test "placing in a section should create a before_filter for that section for all actions" do
53
- NewController.expects(:before_filter).with(:check_access_to_section, {})
54
-
55
- NewController.send :requires_permission_for_section, EXPECTED_SECTION
56
-
57
- end
58
-
59
- test "can put only conditions on filters" do
60
- NewController.expects(:before_filter).with(:check_access_to_section, :only=>[:create])
61
-
62
- NewController.send :requires_permission_for_section, EXPECTED_SECTION, :only=>[:create]
63
- end
64
-
65
- test "can put except conditions on filters" do
66
- NewController.expects(:before_filter).with(:check_access_to_section, :except=>[:create])
67
-
68
- NewController.send :requires_permission_for_section, EXPECTED_SECTION, :except=>[:create]
69
- end
70
-
71
-
72
- end