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,36 +0,0 @@
1
- require "test_helper"
2
-
3
- class BasicTemplate < Cms::DynamicView
4
-
5
- end
6
-
7
- class Cms::DynamicViewsTest < ActiveSupport::TestCase
8
-
9
- def setup
10
-
11
- end
12
-
13
- def teardown
14
-
15
- end
16
-
17
- test "version_foreign_key" do
18
- assert_equal :original_record_id, Cms::PageTemplate.version_foreign_key
19
- end
20
-
21
- test "resource_name works for non-namespaced templates" do
22
- assert_equal "basic_templates", BasicTemplate.resource_name
23
- end
24
-
25
- test "Engine" do
26
- assert_equal "cms", Cms::DynamicView.engine
27
- assert_equal "cms", Cms::PageTemplate.engine
28
- assert_equal "cms", Cms::PagePartial.engine
29
- end
30
-
31
- test "path_elements" do
32
- assert_equal [Cms::PageTemplate], Cms::PageTemplate.path_elements
33
- assert_equal [Cms::PagePartial], Cms::PagePartial.path_elements
34
-
35
- end
36
- end
@@ -1,20 +0,0 @@
1
- require 'test_helper'
2
-
3
- class EmailPagePortletTest < ActiveSupport::TestCase
4
-
5
- def test_default_template_path
6
- assert_equal "portlets/email_page/render", EmailPagePortlet.default_template_path
7
- end
8
-
9
- def test_default_template
10
- assert_equal File.read(File.expand_path(File.join(engine_root_dir, "app/views/portlets/email_page/render.html.erb"))), EmailPagePortlet.default_template
11
- end
12
-
13
- private
14
-
15
- # Rails.root won't work, since that's the dummy app. So find the root director of this project.
16
- def engine_root_dir
17
- File.join(__FILE__, "..", "..", "..", "..")
18
- end
19
- end
20
-
@@ -1,246 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Cms
4
- class FileBlockTest < ActiveSupport::TestCase
5
-
6
- def setup
7
- @root = Factory :root_section
8
- #@file is a mock of the object that Rails wraps file uploads in
9
- @uploaded_file = file_upload_object(:original_filename => "version1.txt", :content_type => "text/plain")
10
- @file_block = Factory.build(:file_block, :attachment_file => @uploaded_file, :attachment_section => @root, :attachment_file_path => "/test.jpg", :publish_on_save => true)
11
- end
12
-
13
- def test_table_name
14
- assert_equal Cms::Namespacing.prefix("file_blocks"), Cms::FileBlock.table_name
15
- end
16
-
17
- test "Saving should also save attachment." do
18
- @file_block.save!
19
- assert_not_nil @file_block.attachment
20
-
21
- found = Cms::FileBlock.find(@file_block)
22
- assert_not_nil found.attachment
23
- end
24
-
25
- test "Saving should save a version with the correct pointer to its attachment" do
26
- @file_block.save!
27
- attachment = @file_block.attachment
28
- assert_equal attachment.id, @file_block.versions[0].attachment_id
29
- assert_equal attachment.version, @file_block.versions[0].attachment_version
30
- end
31
-
32
- def test_attachment_is_required
33
- @file_block.attachment_file = nil
34
- assert !@file_block.valid?
35
- assert_equal "You must upload a file", @file_block.errors[:attachment_file].first
36
- end
37
-
38
- def test_attachment_file_path_is_required
39
- @file_block.attachment_file_path = nil
40
- assert !@file_block.valid?
41
- assert_equal "File Name is required for attachment", @file_block.errors[:attachment_file_path].first
42
- end
43
-
44
- def test_no_leading_slash_in_file_path
45
- @file_block.attachment_file_path = "test.jpg"
46
- assert @file_block.save
47
- assert_equal "/test.jpg", @file_block.path
48
- end
49
-
50
- def test_create_attachment
51
- assert @file_block.save
52
- assert !@file_block.attachment.nil?
53
- assert "image/jpeg", @file_block.attachment.file_type
54
- assert_equal "/test.jpg", @file_block.path
55
- assert_equal 1, @file_block.attachment_version
56
- assert_equal @root, @file_block.attachment.section
57
- end
58
-
59
- def test_reverting
60
- assert @file_block.save
61
- assert "/test.jpg", @file_block.attachment_file_path
62
- assert_equal "v1", File.read(@file_block.attachment.full_file_location)
63
-
64
- attachment_id = @file_block.attachment_id
65
- new_file = file_upload_object(:original_filename => "version2.txt")
66
-
67
- @file_block.update_attributes(:attachment_file => new_file, :publish_on_save => true)
68
- reset(:file_block)
69
-
70
- assert @file_block.save
71
- assert_equal 2, @file_block.version
72
- assert_equal attachment_id, @file_block.attachment_id
73
- assert_equal 2, @file_block.attachment_version
74
- assert_equal "/test.jpg", @file_block.attachment_file_path
75
- assert_equal "v2", File.read(@file_block.attachment.full_file_location)
76
-
77
- @file_block.revert_to(1)
78
- reset(:file_block)
79
-
80
- assert_equal 2, @file_block.version
81
- assert_equal 3, @file_block.draft.version
82
- assert_equal attachment_id, @file_block.attachment_id
83
- assert_equal 2, @file_block.attachment_version
84
- assert_equal 3, @file_block.draft.attachment_version
85
- assert_equal "/test.jpg", @file_block.attachment_file_path
86
- assert "v1", File.read(@file_block.attachment.full_file_location)
87
- assert "v1", File.read(@file_block.as_of_draft_version.attachment.full_file_location)
88
-
89
- end
90
-
91
- end
92
-
93
- class UpdatingFileBlockTest < ActiveSupport::TestCase
94
- def setup
95
- @file_block = Factory(:file_block,
96
- :attachment_section => root_section,
97
- :attachment_file_path => "/test.jpg",
98
- :attachment_file => mock_file(),
99
- :name => "Test",
100
- :publish_on_save => true)
101
-
102
- reset(:file_block)
103
- @attachment = @file_block.attachment
104
- end
105
-
106
- def test_change_attachment_file_name
107
- attachment_version = @attachment.version
108
- file_attachment_version = @file_block.attachment_version
109
- attachment_version_count = Cms::Attachment::Version.count
110
- assert @file_block.update_attributes(
111
- :attachment_file_path => "test_new.jpg",
112
- :attachment_file => nil,
113
- :publish_on_save => true)
114
-
115
- assert_incremented attachment_version, @attachment.reload.version
116
- assert_incremented file_attachment_version, @file_block.attachment_version
117
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
118
- end
119
-
120
- def test_change_attachment_section
121
- attachment_version_count = Cms::Attachment::Version.count
122
- file_block_version = @file_block.version
123
-
124
- @section = Factory(:section, :parent => root_section, :name => "New")
125
- @file_block.update_attributes!(:attachment_section => @section, :publish_on_save => true)
126
-
127
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
128
- assert_incremented file_block_version, @file_block.reload.version
129
- assert_incremented attachment_version_count, Attachment::Version.count
130
- assert_equal @section, @file_block.attachment_section
131
- assert_equal "/test.jpg", @file_block.attachment.file_path
132
- assert_equal "test.jpg", @file_block.attachment.file_name
133
- end
134
-
135
- def test_change_attachment_data_with_save
136
- attachment_count = Cms::Attachment.count
137
- attachment_version_count = Cms::Attachment::Version.count
138
- file_block_version = @file_block.draft.version
139
-
140
- @file_block.update_attributes!(:attachment_file => mock_file(:original_filename => "version2.txt"))
141
-
142
- assert_equal attachment_count, Cms::Attachment.count
143
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
144
- assert_incremented file_block_version, @file_block.draft.version
145
- assert_equal "v2", open(@file_block.as_of_draft_version.attachment.full_file_location) { |f| f.read }
146
- assert !@file_block.live?
147
- assert !@file_block.attachment.live?
148
- end
149
-
150
- def test_change_attachment_data_with_save_and_publish
151
- attachment_count = Cms::Attachment.count
152
- attachment_version_count = Cms::Attachment::Version.count
153
- file_block_version = @file_block.version
154
-
155
- @section = Factory(:section, :parent => root_section, :name => "New")
156
- @file_block.update_attributes!(:attachment_file => mock_file(:original_filename => "version2.txt"), :publish_on_save => true)
157
-
158
- assert_equal attachment_count, Cms::Attachment.count
159
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
160
- assert_incremented file_block_version, @file_block.reload.version
161
- assert_equal "v2", open(@file_block.attachment.full_file_location) { |f| f.read }
162
- assert @file_block.published?
163
- assert @file_block.attachment.published?
164
- end
165
-
166
- def test_no_changes_to_the_attachment
167
- attachment_count = Cms::Attachment.count
168
- attachment_version_count = Cms::Attachment::Version.count
169
- file_block_version = @file_block.version
170
-
171
- @file_block.update_attributes!(:name => "Test 2", :publish_on_save => true)
172
-
173
- assert_equal attachment_count, Cms::Attachment.count
174
- assert_equal attachment_version_count, Cms::Attachment::Version.count
175
- assert_incremented file_block_version, @file_block.reload.version
176
- assert_equal "Test 2", @file_block.name
177
- end
178
-
179
- end
180
-
181
- class ViewingOlderVersionOfFileTest < ActiveSupport::TestCase
182
-
183
- def test_that_it_shows_the_correct_content
184
- @file1 = mock_file(:original_filename => "version1.txt")
185
- @file2 = mock_file(:original_filename => "version2.txt")
186
- @file_block = Factory(:file_block, :attachment_file => @file1, :attachment_file_path => "/test.txt", :attachment_section => root_section)
187
- @file_block.update_attributes(:attachment_file => @file2)
188
- #reset(:file_block)
189
- assert_equal "v1", open(@file_block.as_of_version(1).attachment.full_file_location) { |f| f.read }
190
- end
191
-
192
- end
193
-
194
- class ExistingFileBlockTest < ActiveSupport::TestCase
195
- def setup
196
- @file_block = Factory(:file_block, :attachment_file => mock_file, :attachment_file_path => "/test.txt", :attachment_section => Factory(:root_section))
197
- end
198
-
199
- def test_archiving
200
- assert @file_block.update_attributes!(:archived => true)
201
- assert @file_block.attachment.archived?
202
- end
203
-
204
- def test_destroy
205
- @file_block.destroy
206
- assert_nil Cms::Attachment.find_live_by_file_path("/test.txt")
207
- end
208
- end
209
-
210
- class ExistingFileBlocksTest < ActiveSupport::TestCase
211
- def setup
212
- @one = Factory(:file_block, :attachment_file => mock_file, :attachment_file_path => "/one.txt", :attachment_section => root_section, :name => "One")
213
- @two = Factory(:file_block, :attachment_file => mock_file, :attachment_file_path => "/two.txt", :attachment_section => root_section)
214
- @section = Factory(:section, :name => "A")
215
- @a1 = Factory(:file_block, :attachment_file => mock_file, :attachment_file_path => "/a/1.txt", :attachment_section => @section)
216
- @a2 = Factory(:file_block, :attachment_file => mock_file, :attachment_file_path => "/2.txt", :attachment_section => @section)
217
- #reset(:one, :two, :a1, :a2)
218
- end
219
-
220
- def test_find_blocks_in_root_section
221
- assert_equal [@one, @two], Cms::FileBlock.by_section(root_section).all(:order => "#{Cms::FileBlock.table_name}.id")
222
- end
223
-
224
- def test_find_blocks_in_sub_section
225
- assert_equal [@a1, @a2], Cms::FileBlock.by_section(@section).all(:order => "#{Cms::FileBlock.table_name}.id")
226
- end
227
-
228
- test "searchable?" do
229
- assert FileBlock.searchable?
230
- end
231
-
232
- test "search by name" do
233
- assert_equal [@one], FileBlock.search("one")
234
- end
235
-
236
- test "search by section" do
237
- options = {}
238
- options[:page] = 1
239
- options[:include] = {:attachment => :section_node}
240
- options[:conditions] = ["cms_section_nodes.ancestry = ?", root_section.ancestry_path]
241
-
242
- assert_equal [@one, @two], FileBlock.search("").paginate(options)
243
- end
244
- end
245
- end
246
-
@@ -1,29 +0,0 @@
1
- require 'test_helper'
2
-
3
- class GroupTest < ActiveSupport::TestCase
4
-
5
- def setup
6
- given_there_is_a_guest_group
7
- end
8
-
9
- def test_valid
10
- assert Factory.build(:group).valid?
11
- end
12
-
13
- test "Find guest group via method" do
14
- expected = Cms::Group.find_by_code(Cms::Group::GUEST_CODE)
15
- assert_not_nil expected
16
- assert_equal expected, Cms::Group.guest
17
- end
18
-
19
- test "has_permission?" do
20
- p1 = Factory(:permission, :name=>"Edit Things")
21
- p2 = Factory(:permission, :name=>"Delete things")
22
-
23
- group = Factory.build(:group)
24
- group.permissions << p1
25
-
26
- assert group.has_permission?("Edit Things")
27
- assert !group.has_permission?("Delete things")
28
- end
29
- end
@@ -1,121 +0,0 @@
1
- require 'test_helper'
2
-
3
- class HtmlBlockTest < ActiveSupport::TestCase
4
-
5
- test "template_path" do
6
- assert_equal "cms/html_blocks/render", Cms::HtmlBlock.template_path
7
- end
8
-
9
- test "default table_name" do
10
- assert_equal Cms::Namespacing.prefix("html_blocks"), Cms::HtmlBlock.table_name
11
- end
12
-
13
- test "form" do
14
- type = Cms::ContentType.new(:name=>"Cms::HtmlBlock")
15
- assert_equal "cms/html_blocks/form", type.form
16
- end
17
-
18
- test "save" do
19
-
20
- @block = Cms::HtmlBlock.create!(:name=>"Test")
21
- end
22
-
23
- def test_create
24
- @page = Factory(:page)
25
- @html_block = Factory(:html_block, :connect_to_page_id => @page.id, :connect_to_container => "test")
26
- assert_equal 1, @page.reload.connectors.count
27
- assert_equal @page, @html_block.connected_page
28
- assert_equal @page.id, @html_block.connect_to_page_id
29
- assert_equal "test", @html_block.connect_to_container
30
- end
31
-
32
- def test_versioning
33
- assert Cms::HtmlBlock.versioned?
34
-
35
- @html_block = Factory(:html_block, :name => "Original Value")
36
- assert_equal @html_block, @html_block.versions.last.html_block
37
-
38
- # Updates should make a new version
39
- assert @html_block.update_attributes(:name => "Something Different")
40
- assert_equal @html_block, @html_block.versions.last.html_block
41
- assert_equal "Something Different", @html_block.versions.last.name
42
- assert_equal "Something Different", @html_block.name
43
- assert_equal "Original Value", @html_block.versions.first.name
44
-
45
- # Updating with no changes should not generate a new version
46
- html_block_version_count = @html_block.versions.count
47
- @html_block.update_attributes(:name => "Something Different")
48
- assert_equal html_block_version_count, @html_block.versions.count
49
-
50
- # deleting should create a new version
51
- html_block_count = Cms::HtmlBlock.count_with_deleted
52
- html_block_version_count = @html_block.versions.count
53
- assert !@html_block.deleted?
54
-
55
- @html_block.destroy
56
-
57
- assert_equal html_block_count, Cms::HtmlBlock.count_with_deleted
58
- assert_incremented html_block_version_count, @html_block.versions.count
59
- assert @html_block.deleted?
60
-
61
- end
62
-
63
- def test_reverting
64
- # We need a block with a version that was created in the past
65
- @v1_created_at = Time.zone.now - 5.days
66
- @html_block = Factory(:html_block, :name => "Version One", :created_at => @v1_created_at)
67
-
68
- # Make the version be created in the past as well
69
- v1 = @html_block.versions.last
70
- v1.created_at = @v1_created_at
71
- v1.save
72
-
73
- # Make a new version
74
- @html_block.update_attributes(:name => "Version Two")
75
- @v2_created_at = @html_block.versions.last.created_at
76
-
77
- assert_equal "Version Two", @html_block.name
78
- assert_equal @v1_created_at.to_i, @html_block.find_version(1).created_at.to_i
79
- assert_equal @v2_created_at.to_i, @html_block.find_version(2).created_at.to_i
80
-
81
- @html_block.revert_to 1
82
- @html_block.reload
83
-
84
- assert_equal 3, @html_block.draft.version
85
- assert_equal "Version One", @html_block.name
86
- assert_equal @v1_created_at.to_i, @html_block.find_version(1).created_at.to_i
87
- assert_equal @v2_created_at.to_i, @html_block.find_version(2).created_at.to_i
88
- assert @html_block.find_version(3).created_at.to_i >= @v2_created_at.to_i
89
- assert @v1_created_at.to_i, @html_block.created_at.to_i
90
-
91
- # version is required for revert_to
92
- html_block_version_count = Cms::HtmlBlock::Version.count
93
- assert_raise "Version parameter missing" do
94
- @html_block.revert_to nil
95
- end
96
- assert_equal html_block_version_count, Cms::HtmlBlock::Version.count
97
-
98
- html_block_version_count = Cms::HtmlBlock::Version.count
99
- assert_raise "Could not find version 42" do
100
- @html_block.revert_to 42
101
- end
102
- assert_equal html_block_version_count, Cms::HtmlBlock::Version.count
103
- end
104
-
105
- def test_previous_version
106
- @html_block = Factory(:html_block, :name => "V1")
107
- @html_block.update_attributes(:name => "V2")
108
- @version = @html_block.as_of_version 1
109
-
110
- assert_equal Cms::HtmlBlock, @version.class
111
- assert_equal "V1", @version.name
112
- assert_equal 1, @version.version
113
- assert_equal @html_block.id, @version.id
114
-
115
- # We can't freeze the version because we need to be able to load assocations
116
- assert !@version.frozen?
117
- assert !@version.live?
118
- assert !@html_block.live?
119
- end
120
-
121
- end