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,50 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '/../test_helper')
2
-
3
- class ActiveRecordCallbacksTest < ActiveSupport::TestCase
4
-
5
- # test "When callbacks occur" do
6
- # b = HtmlBlock.new(:name=>"NAME")
7
- # assert b.save
8
- # end
9
-
10
- def setup
11
- @page = Factory(:page, :section => root_section)
12
- @block = Factory(:html_block, :name => "Versioned Content Block")
13
- @page.create_connector(@block, "main")
14
- reset(:page, :block)
15
- end
16
-
17
- # Copy back to content_block_test if there are any changes.
18
- # def test_editing_connected_to_an_unpublished_page
19
- # page_version_count = Page::Version.count
20
- # assert_equal 2, @page.versions.size, "Should be two versions of the page"
21
- # assert !@page.published?
22
- #
23
- # pages = Page.connected_to(:connectable => @block, :version => @block.version).all
24
- # assert_equal [@page], pages, "block should be connected to page"
25
- #
26
- #
27
- # assert @block.update_attributes(:name => "something different")
28
- # assert_equal false, @block.skip_callbacks
29
- # assert_equal 2, @block.versions.size, "should be two versions of this block"
30
- # reset(:page)
31
- #
32
- #
33
- # assert !@page.published?
34
- # assert_equal 3, @page.versions.size, "Should be three versions of the page."
35
- # assert_equal 3, @page.draft.version, "Draft version of page should be updated to v3 since its connected to the updated block."
36
- # assert_incremented page_version_count, Page::Version.count
37
- # assert_match /^HtmlBlock #\d+ was Edited/, @page.draft.version_comment
38
- #
39
- # conns = @block.connectors.all(:order => 'id')
40
- # assert_equal 2, conns.size
41
- # assert_properties conns[0], :page => @page, :page_version => 2, :connectable => @block, :connectable_version => 1, :container => "main"
42
- # assert_properties conns[1], :page => @page, :page_version => 3, :connectable => @block, :connectable_version => 2, :container => "main"
43
- # end
44
-
45
- test "Creation of connectors" do
46
- assert_equal 1, @block.connectors.all.size
47
- assert @block.update_attributes(:name => "something different")
48
- assert_equal 2, @block.connectors.all.size
49
- end
50
- end
@@ -1,370 +0,0 @@
1
- require 'test_helper'
2
-
3
-
4
- ActiveRecord::Base.connection.instance_eval do
5
- drop_table(:default_attachables) rescue nil
6
- drop_table(:default_attachable_versions) rescue nil
7
- create_content_table(:default_attachables, :prefix => false) do |t|
8
- t.string :name
9
- t.integer :attachment_id
10
- t.integer :attachment_version
11
- t.timestamps
12
- end
13
-
14
- drop_table(:versioned_attachables) rescue nil
15
- drop_table(:versioned_attachable_versions) rescue nil
16
- create_content_table(:versioned_attachables, :prefix => false) do |t|
17
- t.string :name
18
- t.integer :attachment_id
19
- t.integer :attachment_version
20
- t.timestamps
21
- end
22
- end
23
-
24
- class DefaultAttachable < ActiveRecord::Base
25
- acts_as_content_block :belongs_to_attachment => true
26
- end
27
-
28
- class VersionedAttachable < ActiveRecord::Base
29
- acts_as_content_block :belongs_to_attachment => true
30
-
31
- def use_default_attachment_path
32
- if @attachment_file_path && @attachment_file_path != attachment.file_path
33
- attachment.file_path = @attachment_file_path
34
- end
35
- end
36
-
37
- def set_attachment_section
38
- if @attachment_section_id && @attachment_section_id != attachment.section_id
39
- attachment.section_id = @attachment_section_id
40
- end
41
- end
42
- end
43
-
44
- module Cms
45
- class AttachableBehaviorTest < ActiveSupport::TestCase
46
-
47
- def setup
48
- @file = mock_file
49
- @attachable = DefaultAttachable.create!(:name => "File Name", :attachment_section_id => root_section, :attachment_file => @file, :publish_on_save => true)
50
- end
51
-
52
- test "Saving a block which an attachment should save both and associate it" do
53
- content = DefaultAttachable.find(@attachable.id)
54
- assert_not_nil content.attachment
55
- end
56
- end
57
-
58
- class DefaultAttachableTest < ActiveSupport::TestCase
59
- def setup
60
- remove_all_sitemap_fixtures_to_avoid_bugs
61
-
62
- #file is a mock of the object that Rails wraps file uploads in
63
- @file = mock_file
64
- @section = root_section
65
- end
66
-
67
- test "Create a block with an attached file" do
68
- @attachable = DefaultAttachable.create!(:name => "File Name", :attachment_file => @file, :publish_on_save => true)
69
-
70
- assert_equal @section, @attachable.attachment_section
71
-
72
- @attachable = DefaultAttachable.find(@attachable.id)
73
-
74
- assert_not_nil @attachable.attachment, "Should have an attachment"
75
- assert_equal @section, @attachable.attachment_section
76
-
77
- end
78
-
79
- def test_create_with_attachment_file
80
- @attachable = DefaultAttachable.new(:name => "File Name", :attachment_file => @file, :publish_on_save => true)
81
- attachable_count = DefaultAttachable.count
82
-
83
- @attachable.save!
84
-
85
- assert_incremented attachable_count, DefaultAttachable.count
86
- assert_equal @section, @attachable.attachment_section
87
- assert_equal @section.id, @attachable.attachment_section_id
88
- assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
89
-
90
- reset(:attachable)
91
-
92
- assert_equal @section, @attachable.attachment_section
93
- assert_equal @section.id, @attachable.attachment_section_id
94
- assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
95
- assert @attachable.attachment.published?
96
- end
97
-
98
- def test_create_without_attachment_and_then_add_attachment_on_edit
99
- @attachable = DefaultAttachable.new(:name => "File Name",
100
- :attachment_file => nil, :publish_on_save => true)
101
-
102
- assert_difference 'DefaultAttachable.count' do
103
- assert_valid @attachable
104
- @attachable.save!
105
- end
106
-
107
- assert_nil @attachable.attachment_file_path
108
- assert_nil @attachable.attachment, "There should be no attachment saved."
109
-
110
- reset(:attachable)
111
-
112
- @attachable.attachment_file = @file
113
- assert_equal true, @attachable.save!
114
- assert_equal true, @attachable.publish!
115
-
116
- assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
117
-
118
- assert_not_nil @attachable.attachment, "After attaching a file, the Attachment should exist"
119
-
120
- reset(:attachable)
121
-
122
- assert_not_nil @attachable.attachment, "The attachment should have been saved and reloaded."
123
- assert_equal @section, @attachable.attachment_section
124
- assert_equal @section.id, @attachable.attachment_section_id
125
- assert_equal "/attachments/foo.jpg", @attachable.attachment_file_path
126
- assert @attachable.attachment.published?
127
- end
128
-
129
- end
130
-
131
- class AttachingTest < ActiveSupport::TestCase
132
-
133
- def test_block_without_attaching_behavior
134
- assert !Cms::HtmlBlock.belongs_to_attachment?
135
- end
136
-
137
- def test_file_path_sanitization
138
- {
139
- "Draft #1.txt" => "Draft_1.txt",
140
- "Copy of 100% of Paul's Time(1).txt" => "Copy_of_100_of_Pauls_Time-1-.txt"
141
- }.each do |example, expected|
142
- assert_equal expected,
143
- VersionedAttachable.new.sanitize_file_path(example)
144
- end
145
- end
146
-
147
- end
148
-
149
- class AttachableTest < ActiveSupport::TestCase
150
-
151
- def setup
152
- #file is a mock of the object that Rails wraps file uploads in
153
- @file = mock_file(:original_filename => "sample_upload.txt")
154
-
155
- @section = Factory(:section, :name => "attachables", :parent => root_section)
156
- end
157
-
158
- def test_create_with_attachment_section_id_attachment_file_and_attachment_file_path
159
- @attachable = VersionedAttachable.new(:name => "Section ID, File and File Name",
160
- :attachment_section_id => @section.id,
161
- :attachment_file => @file,
162
- :attachment_file_path => "test.jpg")
163
-
164
- assert_was_saved_properly
165
- end
166
-
167
- def test_create_with_attachment_section_attachment_file_and_attachment_file_path
168
- @attachable = VersionedAttachable.new(:name => "Section, File and File Name",
169
- :attachment_section => @section,
170
- :attachment_file => @file,
171
- :attachment_file_path => "test.jpg")
172
-
173
- assert_was_saved_properly
174
- end
175
-
176
- def test_create_with_an_attachment_section_but_no_attachment_file
177
- @attachable = VersionedAttachable.new(:name => "Section, No File",
178
- :attachment_section => @section)
179
-
180
- attachable_count = VersionedAttachable.count
181
-
182
- assert !@attachable.save
183
-
184
- assert_equal attachable_count, VersionedAttachable.count
185
- assert_equal @section, @attachable.attachment_section
186
- assert_equal @section.id, @attachable.attachment_section_id
187
- assert_nil @attachable.attachment_file_path
188
- end
189
-
190
- def test_create_with_an_attachment_file_but_no_attachment_section
191
- @attachable = VersionedAttachable.new(:name => "File Name, No File",
192
- :attachment_file_path => "whatever.jpg")
193
-
194
- attachable_count = VersionedAttachable.count
195
-
196
- assert !@attachable.save
197
-
198
- assert_equal attachable_count, VersionedAttachable.count
199
- assert_nil @attachable.attachment_section
200
- assert_nil @attachable.attachment_section_id
201
- assert_equal "whatever.jpg", @attachable.attachment_file_path
202
- end
203
-
204
- def test_create_screwy_attachment_file_name
205
- @attachable = VersionedAttachable.new(:name => "Section ID, File and File Name",
206
- :attachment_section_id => @section.id,
207
- :attachment_file => @file,
208
- :attachment_file_path => "Broken? Yes & No!.txt")
209
-
210
- attachable_count = VersionedAttachable.count
211
-
212
- assert @attachable.save
213
-
214
- assert_incremented attachable_count, VersionedAttachable.count
215
- assert_equal "/Broken_Yes_-_No.txt", @attachable.attachment_file_path
216
- end
217
-
218
- def test_updating_the_attachment_file_name
219
- @attachable = VersionedAttachable.create!(:name => "Foo",
220
- :attachment_section_id => @section.id,
221
- :attachment_file => @file,
222
- :attachment_file_path => "test.jpg")
223
- reset(:attachable)
224
-
225
- attachment_count = Cms::Attachment.count
226
- attachment_version = @attachable.attachment_version
227
- attachment_version_count = Cms::Attachment::Version.count
228
-
229
- assert @attachable.update_attributes(:attachment_file_path => "test2.jpg", :publish_on_save => true)
230
-
231
- assert_equal attachment_count, Cms::Attachment.count
232
-
233
- assert_incremented attachment_version, @attachable.attachment_version
234
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
235
- assert_equal "/test2.jpg", @attachable.attachment_file_path
236
-
237
- reset(:attachable)
238
-
239
- assert_equal attachment_count, Cms::Attachment.count
240
- assert_incremented attachment_version, @attachable.attachment_version
241
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
242
- assert_equal "/test2.jpg", @attachable.attachment_file_path
243
- end
244
-
245
- def test_updating_the_attachment_file
246
- @attachable = VersionedAttachable.create!(:name => "Foo",
247
- :attachment_section_id => @section.id,
248
- :attachment_file => @file,
249
- :attachment_file_path => "test.jpg")
250
-
251
- reset(:attachable)
252
-
253
- @file2 = mock_file(:original_filename => "second_upload.txt")
254
-
255
- attachment_count = Cms::Attachment.count
256
- attachment_version = @attachable.attachment_version
257
- attachment_version_count = Cms::Attachment::Version.count
258
-
259
- assert @attachable.update_attributes(:attachment_file => @file2)
260
-
261
- assert_equal attachment_count, Cms::Attachment.count
262
- assert_equal attachment_version, @attachable.reload.attachment_version
263
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
264
- @file.rewind
265
- assert_equal @file.read, open(@attachable.attachment.full_file_location) { |f| f.read }
266
-
267
- reset(:attachable)
268
- @file.rewind
269
- @file2.rewind
270
-
271
- assert_equal @file.read, open(@attachable.attachment.as_of_version(1).full_file_location) { |f| f.read }
272
- assert_equal @file2.read, open(@attachable.attachment.as_of_version(2).full_file_location) { |f| f.read }
273
-
274
- end
275
-
276
- protected
277
- def assert_was_saved_properly
278
- attachable_count = VersionedAttachable.count
279
-
280
- assert @attachable.save
281
-
282
- assert_incremented attachable_count, VersionedAttachable.count
283
- assert_equal @section, @attachable.attachment_section
284
- assert_equal @section.id, @attachable.attachment_section_id
285
- assert_equal "/test.jpg", @attachable.attachment_file_path
286
-
287
- reset(:attachable)
288
-
289
- assert_equal @section, @attachable.attachment_section
290
- assert_equal @section.id, @attachable.attachment_section_id
291
- assert_equal "/test.jpg", @attachable.attachment_file_path
292
- end
293
-
294
- end
295
-
296
- class VersionedAttachableTest < ActiveSupport::TestCase
297
- def setup
298
- #file is a mock of the object that Rails wraps file uploads in
299
- @file = mock_file
300
-
301
- @section = Factory(:section, :name => "attachables", :parent => root_section)
302
-
303
- @attachable = VersionedAttachable.create!(:name => "Foo v1",
304
- :attachment_section_id => @section.id,
305
- :attachment_file => @file,
306
- :attachment_file_path => "test.jpg")
307
- reset(:attachable)
308
- end
309
-
310
- def test_updating_the_versioned_attachable
311
- attachment_count = Cms::Attachment.count
312
- attachment_version = @attachable.attachment_version
313
- attachment_version_count = Cms::Attachment::Version.count
314
-
315
- assert @attachable.update_attributes(:name => "Foo v2")
316
-
317
- assert_equal attachment_count, Cms::Attachment.count
318
- assert_equal attachment_version, @attachable.attachment_version
319
- assert_equal attachment_version_count, Cms::Attachment::Version.count
320
- assert_equal "Foo v2", @attachable.name
321
- assert_equal @attachable.as_of_version(1).attachment, @attachable.as_of_version(2).attachment
322
- end
323
-
324
- def test_updating_the_versioned_attachable_attachment_file_path
325
- attachable_count = VersionedAttachable.count
326
- attachment_count = Cms::Attachment.count
327
- attachment_version = @attachable.attachment_version
328
- attachment_version_count = Cms::Attachment::Version.count
329
-
330
- assert @attachable.update_attributes(:attachment_file_path => "test2.jpg")
331
-
332
- assert_equal attachable_count, VersionedAttachable.count
333
- assert_equal attachment_count, Cms::Attachment.count
334
- assert_incremented attachment_version, @attachable.attachment_version
335
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
336
- assert_equal "/test2.jpg", @attachable.attachment_file_path
337
-
338
- assert_equal @attachable.as_of_version(1).attachment, @attachable.as_of_version(2).attachment
339
- assert_not_equal @attachable.as_of_version(1).attachment_version, @attachable.as_of_version(2).attachment_version
340
- assert_equal "/test.jpg", @attachable.as_of_version(1).attachment_file_path
341
- assert_equal "/test2.jpg", @attachable.as_of_version(2).attachment_file_path
342
- end
343
-
344
- def test_updating_the_versioned_attachable_attachment_file
345
- @file2 = mock_file(:original_filename => "second_upload.txt")
346
-
347
- attachable_count = VersionedAttachable.count
348
- attachment_count = Cms::Attachment.count
349
- attachment_version = @attachable.attachment_version
350
- attachment_version_count = Cms::Attachment::Version.count
351
-
352
- assert @attachable.update_attributes(:attachment_file => @file2)
353
-
354
- assert_equal attachable_count, VersionedAttachable.count
355
- assert_equal attachment_count, Cms::Attachment.count
356
- assert_incremented attachment_version, @attachable.attachment_version
357
- assert_incremented attachment_version_count, Cms::Attachment::Version.count
358
-
359
- @file2.rewind
360
- assert_equal @file2.read, open(@attachable.attachment.full_file_location) { |f| f.read }
361
-
362
- @file.rewind
363
- assert_equal @file.read, open(@attachable.attachment.as_of_version(1).full_file_location) { |f| f.read }
364
-
365
- @file2.rewind
366
- assert_equal @file2.read, open(@attachable.attachment.as_of_version(2).full_file_location) { |f| f.read }
367
- end
368
-
369
- end
370
- end
@@ -1,67 +0,0 @@
1
- require 'test_helper'
2
-
3
- ActiveRecord::Base.connection.instance_eval do
4
- drop_table(:external_users) if table_exists?(:external_users)
5
- create_table(:external_users) do |t|
6
- t.string :name
7
- t.string :type
8
- end
9
- end
10
-
11
-
12
- EXTERNAL_USER_GROUPS = Hash.new {|hash,key| hash[key] = Factory.build(:group)}
13
-
14
- class ExternalUser < ActiveRecord::Base
15
- end
16
-
17
- class ExternalUserA < ExternalUser
18
- acts_as_cms_user
19
- end
20
-
21
- class ExternalUserB < ExternalUser
22
- acts_as_cms_user :groups => [EXTERNAL_USER_GROUPS['external-user-b']]
23
- end
24
-
25
- class ExternalUserC < ExternalUser
26
- acts_as_cms_user :groups => Proc.new{ |external_user_c| EXTERNAL_USER_GROUPS['external-user-c'] }
27
- end
28
-
29
- class ExternalUserD < ExternalUser
30
- acts_as_cms_user :groups => :get_groups
31
-
32
- def get_groups
33
- [EXTERNAL_USER_GROUPS['external-user-d1'], EXTERNAL_USER_GROUPS['external-user-d2']]
34
- end
35
- end
36
-
37
-
38
-
39
- class CmsUserTestCase < ActiveSupport::TestCase
40
- def test_responds_to
41
- @object = ExternalUserA.new(:name => "New Record")
42
- [:cms_groups, :viewable_sections, :permissions, :able_to_view?, :able_to?].each do |req_method|
43
- assert @object.respond_to?(req_method), "expected cms users to respond to #{req_method}"
44
- end
45
- end
46
-
47
- def test_default
48
- @object = ExternalUserA.new(:name => "New Record")
49
- assert_equal [Cms::Group.guest], @object.cms_groups
50
- end
51
-
52
- def test_array_option
53
- @object = ExternalUserB.new(:name => "New Record")
54
- assert_equal [EXTERNAL_USER_GROUPS['external-user-b']], @object.cms_groups
55
- end
56
-
57
- def test_proc_option
58
- @object = ExternalUserC.new(:name => "New Record")
59
- assert_equal [EXTERNAL_USER_GROUPS['external-user-c']], @object.cms_groups
60
- end
61
-
62
- def test_instance_method_option
63
- @object = ExternalUserD.new(:name => "New Record")
64
- assert_equal [EXTERNAL_USER_GROUPS['external-user-d1'], EXTERNAL_USER_GROUPS['external-user-d2']], @object.cms_groups
65
- end
66
-
67
- end