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,32 +0,0 @@
1
- require "test_helper"
2
-
3
- module Cms
4
-
5
- class ConnectableTest < ActiveSupport::TestCase
6
-
7
- def setup
8
- given_a_site_exists
9
- @block = Factory(:html_block)
10
- @connected_page = Factory(:public_page, :parent => root_section)
11
- @connected_page_2 = Factory(:public_page, :parent => root_section)
12
- @unconnected_page = Factory(:public_page, :parent => root_section)
13
-
14
- @connected_page.create_connector(@block, "main")
15
- @connected_page_2.create_connector(@block, "main")
16
- end
17
-
18
- def teardown
19
- end
20
-
21
- test "#connected_pages" do
22
- assert_equal [@connected_page, @connected_page_2], @block.connected_pages
23
- end
24
-
25
- test "#connected_pages should return same list when called twice" do
26
- expected = @block.connected_pages
27
- assert_equal expected.object_id, @block.connected_pages.object_id
28
- end
29
-
30
-
31
- end
32
- end
@@ -1,56 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Cms
4
- class Thing < ActiveRecord::Base
5
- is_connectable
6
- end
7
- end
8
- class ConnectingTest < ActiveSupport::TestCase
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
- test "Class have display_names" do
18
- assert_equal "Thing", Cms::Thing.display_name
19
- end
20
-
21
- test "Default Naming Strategy" do
22
- assert_equal "String", Cms::Behaviors::Connecting.default_naming_for(String)
23
-
24
- module Cms::SomeModule
25
- class Thing ; end
26
- end
27
- assert_equal "Thing", Cms::Behaviors::Connecting.default_naming_for(Cms::SomeModule::Thing)
28
- end
29
- test "Update connected pages should return true if there is a valid version." do
30
- block = Cms::HtmlBlock.new
31
- mock_draft = mock()
32
- mock_draft.expects(:version).returns(1)
33
- block.expects(:draft).returns(mock_draft)
34
-
35
- assert_equal true, block.update_connected_pages
36
- end
37
-
38
- test "Connected_to" do
39
- assert_equal 1, @block.version
40
- pages = Cms::Page.connected_to(:connectable => @block, :version => @block.version).all
41
- assert_equal @page, pages.first
42
- end
43
-
44
- test "connected_pages should return all pages connected to a versioned block " do
45
- @page.publish!
46
- assert_equal [@page], @block.connected_pages
47
- end
48
-
49
-
50
- test "connected_pages should return all pages connected to a nonversioned block " do
51
- @portlet = Factory(:portlet)
52
- @page.create_connector(@portlet, "main")
53
- @page.publish!
54
- assert_equal [@page], @portlet.connected_pages
55
- end
56
- end
@@ -1,74 +0,0 @@
1
- require 'test_helper'
2
-
3
- ActiveRecord::Base.connection.instance_eval do
4
- drop_table(:things) if table_exists?(:things)
5
- drop_table(:thing_attributes) if table_exists?(:thing_attributes)
6
- create_table(:things) do |t|
7
- t.string :name
8
- t.timestamps
9
- end
10
- create_table(:thing_attributes) do |t|
11
- t.integer :thing_id
12
- t.string :name
13
- t.text :value
14
- end
15
- end
16
-
17
- class Thing < ActiveRecord::Base
18
- has_dynamic_attributes
19
- end
20
-
21
- class DynamicAttributesTest < ActiveSupport::TestCase
22
-
23
- def setup
24
- @thing = Thing.new
25
- end
26
-
27
- test "blocks should not have dynamic_attributes" do
28
- assert !Cms::User.has_dynamic_attributes?
29
-
30
- end
31
-
32
- test "models should have dynamic_attributes if specified" do
33
- assert Thing.has_dynamic_attributes?
34
- end
35
-
36
- test "can just call properties into existance" do
37
- @thing.price = 1
38
-
39
- assert_equal(1, @thing.price)
40
- end
41
-
42
- test "Can persist String properties" do
43
- @thing.description = "A thing"
44
- @thing.save!
45
-
46
- reloaded_thing = Thing.find(@thing.id)
47
- assert_equal("A thing", reloaded_thing.description)
48
- end
49
-
50
- test "non-string (like Integers) properties are persisted as Strings" do
51
- @thing.price = 1
52
- @thing.save!
53
-
54
- reloaded_thing = Thing.find(@thing.id)
55
- assert_equal("1", reloaded_thing.price)
56
- end
57
-
58
- test "undefined properties should be nil" do
59
- assert_nil @thing.non_yet_set_property
60
- end
61
-
62
- test "can bulk set attributes=" do
63
- @thing.attributes=({:price=>1, :description=>"Paper"})
64
- assert_equal(1, @thing.price)
65
- assert_equal("Paper", @thing.description)
66
- end
67
-
68
- test "can bulk set persistent properties during construction" do
69
- mineral = Thing.new(:description=>"Rock")
70
- mineral.save!
71
-
72
- assert_equal("Rock", mineral.description)
73
- end
74
- end
@@ -1,76 +0,0 @@
1
- require "test_helper"
2
-
3
-
4
- create_testing_table :cms_namespaced_blocks
5
- class Cms::NamespacedBlock < ActiveRecord::Base
6
- acts_as_content_block
7
- end
8
-
9
-
10
- class Cms::NonNamespacedBlock < ActiveRecord::Base
11
-
12
- # Avoids need to create another table
13
- set_table_name "cms_namespaced_blocks"
14
-
15
- acts_as_content_block namespace_table: false
16
- end
17
-
18
-
19
- class Cms::NamespacingCoreRailsTest < ActiveSupport::TestCase
20
-
21
- module ::Foo
22
- def self.table_name_prefix
23
- "foobar_"
24
- end
25
- end
26
-
27
- class ::Foo::TestBlock < ActiveRecord::Base;
28
- end
29
-
30
- test "table_name should be automatically prefixed" do
31
- assert_equal "foobar_test_blocks", Foo::TestBlock.table_name
32
- end
33
-
34
-
35
- test "model tables are not automatically prefixed" do
36
- create_testing_table :test_blocks
37
- assert_equal false, ActiveRecord::Base.connection.table_exists?("foobar_test_blocks")
38
- end
39
- end
40
-
41
- class Cms::Behaviors::NamespacingTest < ActiveSupport::TestCase
42
- create_testing_table :cms_my_blocks
43
- class ::Cms::MyBlock < ActiveRecord::Base
44
- end
45
-
46
- def setup
47
-
48
- end
49
-
50
- test "Default for new projects is blank." do
51
- Cms.expects("table_prefix").returns(nil)
52
- assert_equal "", Cms.table_name_prefix
53
- end
54
-
55
- test "All blocks automatically get namespacing" do
56
- Cms::MyBlock.respond_to?(:namespaced_table?)
57
- end
58
-
59
- test "default table namespace " do
60
- assert_equal Cms::Namespacing.prefix("my_blocks"), Cms::MyBlock.table_name
61
- end
62
-
63
- test "set a table namespace" do
64
- Cms.expects(:table_prefix).returns('abc_').at_least_once
65
- class ::Cms::CustomBlock < ActiveRecord::Base
66
- end
67
- create_testing_table :abc_custom_blocks
68
- assert_equal "abc_custom_blocks", ::Cms::CustomBlock.table_name
69
- end
70
-
71
- test "Get prefixed name" do
72
- Cms.expects(:table_prefix).returns('abc_')
73
- assert_equal "abc_name", Cms::Namespacing.prefixed_table_name("name")
74
- end
75
-
76
- end
@@ -1,83 +0,0 @@
1
- require 'test_helper'
2
-
3
- ActiveRecord::Base.connection.instance_eval do
4
- drop_table(:publishables) if table_exists?(:publishables)
5
- create_table(:publishables) do |t|
6
- t.string :name
7
- t.boolean :published, :default => false
8
- end
9
- drop_table(:unpublishables) if table_exists?(:unpublishables)
10
- create_table(:unpublishables) do |t|
11
- t.string :name
12
- end
13
-
14
- drop_table(:publishable_blocks) if table_exists?(:publishable_blocks)
15
- drop_table(:publishable_block_versions) if table_exists?(:publishable_block_versions)
16
- create_content_table(:publishable_blocks, :prefix=>false) do |t|
17
- t.string :name
18
- end
19
- end
20
-
21
- class Publishable < ActiveRecord::Base
22
- is_publishable
23
- end
24
-
25
- class Unpublishable < ActiveRecord::Base
26
- end
27
-
28
- class PublishableBlock < ActiveRecord::Base
29
- acts_as_content_block
30
- end
31
-
32
- class PublishableBlockTestCase < ActiveSupport::TestCase
33
-
34
- def setup
35
- @object = PublishableBlock.create!(:name=>"v1", :publish_on_save=>true)
36
- end
37
-
38
- test "#live?" do
39
- assert @object.live?
40
- end
41
-
42
- test "#live? if there are draft versions" do
43
- @object.name = "New Name"
44
- @object.save!
45
-
46
- assert_equal false, @object.live?
47
- assert_equal :draft, @object.status
48
- end
49
- end
50
-
51
- class PublishableTestCase < ActiveSupport::TestCase
52
-
53
- def setup
54
- @object = Publishable.new(:name => "New Record")
55
- end
56
-
57
- def test_publishable
58
- assert @object.publishable?
59
- end
60
-
61
- def test_save
62
- assert @object.save
63
- assert !@object.published?
64
- end
65
-
66
- def test_publish_on_save
67
- @object.publish_on_save = true
68
- assert @object.save
69
- assert @object.reload.published?
70
- end
71
-
72
- def test_unpublishable
73
- @object = Unpublishable.new(:name => "New Record")
74
- assert !@object.publishable?
75
- assert @object.save
76
- assert !@object.publishable?
77
- end
78
-
79
- def test_not_publishable_if_connect_to_page_id_is_blank
80
- assert Cms::HtmlBlock.new(:connect_to_page_id => "").publishable?
81
- end
82
-
83
- end
@@ -1,68 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Parent
4
- def render
5
- "I'm the 'wrong' render method to call."
6
- end
7
- end
8
-
9
- class SelfRenderingBlock < Parent
10
- include Cms::Behaviors::Rendering
11
- is_renderable
12
-
13
- def render
14
- "I can do it myself"
15
- end
16
- end
17
-
18
- class NonSelfRenderingBlock < Parent
19
- include Cms::Behaviors::Rendering
20
- is_renderable
21
- end
22
-
23
- class RenderingTest < ActiveSupport::TestCase
24
-
25
- test "an object should not self render if it doesn't define a 'render' method on the class itself." do
26
- obj = NonSelfRenderingBlock.new
27
- assert_equal false, obj.should_render_self?
28
- end
29
-
30
- test "an object should self render if it defines a 'render' method." do
31
- obj = SelfRenderingBlock.new
32
- assert_equal true, obj.should_render_self?
33
- end
34
-
35
- test "The proper render method should be called" do
36
- assert_equal false, Cms::HtmlBlock.new.should_render_self?, "HtmlBlocks should not be considered 'self renderable'"
37
- end
38
-
39
- test "Blocks which define their own render method should have that one called" do
40
- assert_equal "I can do it myself", SelfRenderingBlock.new.render
41
- end
42
-
43
- test "prepare_to_render should not call 'render' when blocks are non-self rendering" do
44
- non_rendering = NonSelfRenderingBlock.new
45
- non_rendering.expects(:should_render_self?).returns(false)
46
- non_rendering.expects(:render).never
47
- non_rendering.prepare_to_render(stub())
48
-
49
- end
50
-
51
- test "prepare to render" do
52
- self_rendering = SelfRenderingBlock.new
53
- self_rendering.expects(:render)
54
- self_rendering.prepare_to_render(stub())
55
- end
56
-
57
- test "perform render doesn't throw missing methods errors" do
58
- controller = ActionController::Base.new
59
- controller.expects(:view_paths).returns([])
60
-
61
- block = Cms::HtmlBlock.new
62
-
63
- # This isn't really what should happen, but its at least testing that render isn't using missing methods
64
- assert_raise ActionView::MissingTemplate do
65
- block.perform_render(controller)
66
- end
67
- end
68
- end
@@ -1,102 +0,0 @@
1
- require 'test_helper'
2
-
3
- ActiveRecord::Base.connection.instance_eval do
4
- drop_table(:searchable_content_block_parents) if table_exists?(:searchable_content_block_parents)
5
- create_table(:searchable_content_block_parents) {|t| t.string :name }
6
- drop_table(:searchable_content_blocks) if table_exists?(:searchable_content_blocks)
7
- drop_table(:searchable_content_block_versions) if table_exists?(:searchable_content_block_versions)
8
- create_versioned_table(:searchable_content_blocks, :prefix=>false) do |t|
9
- t.integer :parent_id
10
- t.string :name
11
- t.boolean :deleted, :default => 0
12
- t.integer :created_by
13
- t.integer :updated_by
14
- t.timestamps
15
- end
16
-
17
- # Verifies that blocks are created with a :name column if one is not specified.
18
- drop_table(:searchable_block_without_names) if table_exists?(:searchable_block_without_names)
19
- drop_table(:searchable_block_without_name_versions) if table_exists?(:searchable_block_without_name_versions)
20
- create_versioned_table(:searchable_block_without_names, :prefix=>false) do |t|
21
- t.string :title
22
- end
23
- end
24
-
25
- class SearchableContentBlockParent < ActiveRecord::Base
26
- has_many :children, :class_name => "SearchableContentBlock", :foreign_key => "parent_id"
27
- end
28
-
29
- class SearchableContentBlock < ActiveRecord::Base
30
- acts_as_content_block
31
- belongs_to :parent, :class_name => "SearchableContentBlockParent"
32
- scope :created_after, lambda{|time| {:conditions => ["created_at > ?", time]}}
33
- end
34
-
35
- class SearchableContentBlockTest < ActiveSupport::TestCase
36
- def test_searchable
37
- @parent = SearchableContentBlockParent.create!(:name => "Papa")
38
- @a1 = @parent.children.create!(:name => "a1")
39
- @a2 = @parent.children.create!(:name => "a2")
40
- @b1 = @parent.children.create!(:name => "b1")
41
- @b2 = @parent.children.create!(:name => "b2")
42
-
43
- assert SearchableContentBlock.searchable?
44
- assert_equal [@a1, @a2], SearchableContentBlock.search("a").all
45
- assert_equal [@a2, @a1], SearchableContentBlock.search(:term => "a", :order => "id desc").all
46
- assert_equal [@a2, @a1], SearchableContentBlock.created_after(1.hour.ago).search(:term => "a", :order => "id desc").all
47
- assert_equal [@a2, @a1], @parent.children.created_after(1.hour.ago).search(:term => "a", :order => "id desc").all
48
- end
49
- end
50
-
51
- class SearchableHtmlBlockTest < ActiveSupport::TestCase
52
- def test_searchable
53
- @a1 = Factory(:html_block, :name => "a1", :content => "a one")
54
- @a2 = Factory(:html_block, :name => "a2", :content => "a two")
55
- @b1 = Factory(:html_block, :name => "b1", :content => "b one")
56
- @b2 = Factory(:html_block, :name => "b2", :content => "b two")
57
-
58
- assert Cms::HtmlBlock.searchable?
59
- assert_equal [@a2, @b2], Cms::HtmlBlock.search("2").all
60
- assert Cms::HtmlBlock.search(:term => "one").all.empty?
61
- assert_equal [@a1, @b1], Cms::HtmlBlock.search(:term => "one", :include_body => true).all
62
- assert Cms::HtmlBlock.search(nil).include?(@b2)
63
- end
64
- end
65
-
66
-
67
- class SearchableBlockWithoutName < ActiveRecord::Base
68
- acts_as_content_block
69
- end
70
-
71
- class SearchableBlockWithoutNameTest < ActiveSupport::TestCase
72
-
73
- test "Creating a test only ActiveRecord should work" do
74
- block = SearchableBlockWithoutName.create!(:title => "TITLE")
75
-
76
- assert_not_nil block
77
- assert_equal block, SearchableBlockWithoutName.find(block.id)
78
- end
79
-
80
- test "Blocks should have a :name column by default" do
81
- block = SearchableBlockWithoutName.create!(:name => "NAME")
82
-
83
- assert_equal block, SearchableBlockWithoutName.find_by_name("NAME")
84
- assert_equal "NAME", block.name
85
- end
86
-
87
- test "Search method should not fail if block has no :name field" do
88
- block = SearchableBlockWithoutName.create!(:name => ":implicitly specfied")
89
-
90
- assert_equal SearchableBlockWithoutName.all.size, SearchableBlockWithoutName.search({}).size, "Should list all rows when no param is passed in."
91
- end
92
-
93
- test "Versions table for block should have 'name' attribute as well" do
94
- name = ":implicitly specfied"
95
- block = SearchableBlockWithoutName.create!(:name => name)
96
- block.title = "Something New"
97
- block.save!
98
-
99
- v1 = block.find_version(1)
100
- assert_equal name, v1.name
101
- end
102
- end