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,110 +0,0 @@
1
- require 'test_helper'
2
-
3
- ActiveRecord::Base.connection.instance_eval do
4
- drop_table(:taggable_articles) if table_exists?(:taggable_articles)
5
- create_table(:taggable_articles) {|t| t.string :name }
6
-
7
- drop_table(:versioned_taggable_articles) if table_exists?(:versioned_taggable_articles)
8
- drop_table(:versioned_taggable_article_versions) if table_exists?(:versioned_taggable_article_versions)
9
- create_versioned_table(:versioned_taggable_articles, :prefix=>false) do |t|
10
- t.string :name
11
- end
12
- end
13
-
14
- class TaggableArticle < ActiveRecord::Base
15
- is_taggable
16
- end
17
-
18
- class VersionedTaggableArticle < ActiveRecord::Base
19
- acts_as_content_block :taggable => true
20
- end
21
-
22
- class TaggableBlockTest < ActiveSupport::TestCase
23
- def test_tagging
24
- article = TaggableArticle.create!(:name => "foo")
25
- assert_equal 0, article.taggings.count
26
- assert_equal 0, article.tags.count
27
- assert_equal 0, Cms::Tag.count
28
- assert_equal 0, Cms::Tagging.count
29
-
30
- article.tag_list = "foo bar"
31
- assert article.save
32
- assert_equal 2, article.taggings.count
33
- assert_equal 2, article.tags.count
34
- assert_equal 2, Cms::Tag.count
35
- assert_equal 2, Cms::Tagging.count
36
-
37
- assert_equal [article], TaggableArticle.tagged_with("foo").all
38
- assert_equal [article], TaggableArticle.tagged_with("bar").all
39
- assert TaggableArticle.tagged_with("bang").all.empty?
40
-
41
- article.tag_list = "foo bang"
42
- assert article.save
43
- assert_equal 2, article.taggings.count
44
- assert_equal 2, article.tags.count
45
- assert_equal 3, Cms::Tag.count
46
- assert_equal 2, Cms::Tagging.count
47
-
48
- assert_equal [article], TaggableArticle.tagged_with("foo").all
49
- assert_equal [article], TaggableArticle.tagged_with("bang").all
50
- assert TaggableArticle.tagged_with("bar").all.empty?
51
-
52
- assert_equal "bang foo", article.tag_list
53
- end
54
-
55
- def test_tag_cloud
56
- 25.times do |n|
57
- tag_list = ["article"]
58
- tag_list << "first" if n == 0
59
- tag_list << "even" if n.even?
60
- tag_list << "five" if n % 5 == 0
61
- tag_list << "last" if n == 24
62
- TaggableArticle.create!(:name => "Article ##{n}", :tag_list => tag_list.join(" ") )
63
- end
64
-
65
- tag_counts = Cms::Tag.counts(:limit => 4)
66
- assert_equal 4, tag_counts.size
67
- assert_equal Cms::Tag.find_by_name("article"), tag_counts[0]
68
- assert_equal 25, tag_counts[0].count.to_i
69
- assert_equal Cms::Tag.find_by_name("even"), tag_counts[1]
70
- assert_equal 13, tag_counts[1].count.to_i
71
- assert_equal Cms::Tag.find_by_name("five"), tag_counts[2]
72
- assert_equal 5, tag_counts[2].count.to_i
73
- assert_equal Cms::Tag.find_by_name("first"), tag_counts[3]
74
- assert_equal 1, tag_counts[3].count.to_i
75
-
76
-
77
- tag_cloud = Cms::Tag.cloud(:sizes => 9)
78
- assert_equal 5, tag_cloud.size
79
- assert_equal Cms::Tag.find_by_name("article"), tag_cloud[0]
80
- assert_equal 6, tag_cloud[0].size
81
- assert_equal Cms::Tag.find_by_name("even"), tag_cloud[1]
82
- assert_equal 3, tag_cloud[1].size
83
- assert_equal Cms::Tag.find_by_name("five"), tag_cloud[2]
84
- assert_equal 1, tag_cloud[2].size
85
- assert_equal Cms::Tag.find_by_name("first"), tag_cloud[3]
86
- assert_equal 0, tag_cloud[3].size
87
- assert_equal Cms::Tag.find_by_name("last"), tag_cloud[4]
88
- assert_equal 0, tag_cloud[4].size
89
- end
90
-
91
- end
92
-
93
- class VersionedTaggableBlockTest < ActiveSupport::TestCase
94
- def test_tagging
95
- article = VersionedTaggableArticle.create!(:name => "foo")
96
- assert_equal 0, article.taggings.count
97
- assert_equal 0, article.tags.count
98
- assert_equal 0, Cms::Tag.count
99
- assert_equal 0, Cms::Tagging.count
100
-
101
- article.tag_list = "foo bar"
102
- assert article.save
103
- assert_equal 2, article.taggings.count
104
- assert_equal 2, article.tags.count
105
- assert_equal 2, Cms::Tag.count
106
- assert_equal 2, Cms::Tagging.count
107
- end
108
-
109
-
110
- end
@@ -1,27 +0,0 @@
1
- require "test_helper"
2
-
3
- class UserStampingTest < ActiveSupport::TestCase
4
-
5
- def setup
6
-
7
- end
8
-
9
- def teardown
10
-
11
- end
12
-
13
- test "if no current user, then timestamp should be nil" do
14
- Cms::User.expects(:current).returns(nil).at_least_once
15
- block = Cms::HtmlBlock.create!(:name=>"A")
16
-
17
- assert_nil block.created_by
18
- assert_nil block.updated_by
19
- end
20
-
21
- test "if no current user is false, then timestamp should be nil" do
22
- Cms::User.expects(:current).returns(false).twice
23
- block = Cms::HtmlBlock.create!(:name=>"A")
24
- assert_nil block.created_by
25
- assert_nil block.updated_by
26
- end
27
- end
@@ -1,102 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Cms
4
- class VersioningTest < ActiveSupport::TestCase
5
-
6
- test "version_foriegn_key is always the same" do
7
- assert_equal :original_record_id, Cms::HtmlBlock.version_foreign_key
8
- end
9
-
10
- test "Non-versioned columns include 'original_record_id'" do
11
- assert_equal true, Cms::HtmlBlock.non_versioned_columns.include?("original_record_id")
12
- end
13
-
14
- test "non_versioned_columns should be made into string" do
15
- class ::Cms::SpecialBlock < ActiveRecord::Base
16
- is_versioned
17
- end
18
-
19
- Cms::SpecialBlock.non_versioned_columns.each do |c|
20
- assert_equal String, c.class, "Expected #{c} to be a String, but wasn't."
21
- end
22
-
23
- end
24
- test "Saving a new record should create two rows, one in html_blocks, one in html_block_versions" do
25
- block = Cms::HtmlBlock.new(:name => "Name is required.")
26
- assert_equal true, block.save!
27
- assert_equal 1, block.versions.size
28
- end
29
-
30
- test "Saving a new Versioned block should allow after_save callbacks to work" do
31
- block = Cms::HtmlBlock.new(:name => "Testing")
32
- assert block.save
33
- assert_equal false, block.skip_callbacks
34
- end
35
-
36
- test "Saving a block without changing any attributes should skip after_save callbacks" do
37
- block = Cms::HtmlBlock.new(:name => "Testing")
38
- block.save
39
-
40
- block.name = "Testing"
41
- assert block.save
42
-
43
- assert_equal true, block.skip_callbacks
44
- end
45
-
46
- test "Updating a block should increment the version on the new draft" do
47
- block = Factory(:html_block)
48
- assert_equal 1, block.version
49
- block.name = "New Name"
50
- assert block.save
51
-
52
- assert_equal 2, block.versions.size
53
- assert_equal 1, block.versions[0].version
54
- assert_equal 2, block.versions[1].version
55
- end
56
-
57
- test "Build new version should create a new version with an incremented version from the primary object" do
58
- block = Cms::HtmlBlock.new(:name => "ABC")
59
- assert block.save
60
- assert_equal 2, block.build_new_version_and_add_to_versions_list_for_saving.version
61
- end
62
-
63
- test "Updating an object should perform after_save callbacks" do
64
- block = Factory(:html_block)
65
- block.name = "New THing"
66
- block.expects(:update_connected_pages).returns(true)
67
-
68
- block.save
69
- end
70
- end
71
-
72
- class VersionsTest < ActiveSupport::TestCase
73
-
74
- def setup
75
- @published_block = Factory(:html_block, :name => "Version 1", :publish_on_save => true)
76
- @published_block.update_attributes(:name => "Version 2")
77
- @published_block.reload
78
- end
79
-
80
- test "#name matches original version's attributes'" do
81
- assert_equal "Version 1", @published_block.name
82
- end
83
-
84
- test "#as_of_draft_version" do
85
- v2 = @published_block.as_of_draft_version
86
- assert_equal "Version 2", v2.name
87
- assert_equal HtmlBlock, v2.class
88
- end
89
-
90
- test "#draft returns the latest Version Object for a block" do
91
- v2 = @published_block.draft
92
- assert_equal "Version 2", v2.name
93
- assert_equal HtmlBlock::Version, v2.class
94
- end
95
-
96
- test "#as_of_version" do
97
- v1 = @published_block.as_of_version(1)
98
- assert_equal "Version 1", v1.name
99
- assert_equal @published_block.id, v1.id
100
- end
101
- end
102
- end
@@ -1,25 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ActiveRecord::BaseTest < ActiveSupport::TestCase
4
- def test_updated_on_string
5
- base = Cms::HtmlBlock.new
6
- assert_nil base.updated_on_string
7
- base.updated_at = Time.zone.parse("1978-07-06")
8
- assert_equal "Jul 6, 1978", base.updated_on_string
9
- end
10
- end
11
-
12
- # Must use vanilla TestCase to avoid ActiveRecord setup conflicts
13
- class TestExtensions < Test::Unit::TestCase
14
-
15
- #"If a connection throws an error when established, then we consider the database to not exist."
16
- def test_throws_error
17
- ActiveRecord::Base.expects(:connection).raises(StandardError)
18
- assert_equal false, ActiveRecord::Base.database_exists?
19
- end
20
-
21
- # "If we can establish a connection, the database exists"
22
- def test_exists
23
- assert_equal true, ActiveRecord::Base.database_exists?
24
- end
25
- end
@@ -1,26 +0,0 @@
1
- require 'test_helper'
2
-
3
- class HashTest < ActiveSupport::TestCase
4
- def test_except
5
- x = {:a => 1, :b => 2}
6
- assert_equal({:b => 2}, x.except(:a))
7
- assert_equal({:a => 1, :b => 2}, x)
8
- end
9
-
10
- # Test the behavior of out extract_only! method
11
- def test_extract_only!
12
- x = {:a => 1, :b => 2}
13
- y = x.extract_only!(:b, :c)
14
- assert_equal({:a => 1}, x)
15
- assert_equal({:b => 2}, y)
16
- end
17
-
18
- # This exists only to confirm the behavior of extract! (from ActiveSupport) is different then our extract_only!.
19
- # If this ever changes, we can remove extract_only!
20
- test "ActiveSupport Hash#extract! will add nil keys if they don't exist" do
21
- x = {:a => 1, :b => 2}
22
- y = x.extract!(:b, :c)
23
- assert_equal({:b => 2, :c=>nil}, y, "Even though :c didn't exist in the original hash, ActiveSupport 3.0.0 adds it as a side effect.")
24
- end
25
-
26
- end
@@ -1,10 +0,0 @@
1
- require 'test_helper'
2
-
3
- class IntegerTest < ActiveSupport::TestCase
4
- def test_round_bytes
5
- assert_equal "99.44 MB", (99.megabytes + 450.kilobytes).round_bytes
6
- assert_equal "12.04 KB", (12.kilobytes + 45).round_bytes
7
- assert_equal "999 bytes", 999.round_bytes
8
- assert_equal "0 bytes", nil.round_bytes
9
- end
10
- end
@@ -1,14 +0,0 @@
1
- require 'test_helper'
2
-
3
- # Tests the BrowserCMS extentions to the String class
4
- class StringTest < ActiveSupport::TestCase
5
-
6
- test "string should be pluralizes unless there is one" do
7
- assert_equal "posts", "post".pluralize_unless_one(0)
8
- assert_equal "posts", "post".pluralize_unless_one(2)
9
- end
10
-
11
- test "string shouldn't be pluralized if there is one" do
12
- assert_equal "post", "post".pluralize_unless_one(1)
13
- end
14
- end
@@ -1,50 +0,0 @@
1
- require "test_helper"
2
-
3
- class FactoriesTest < ActiveSupport::TestCase
4
-
5
- def setup
6
-
7
- end
8
-
9
- def teardown
10
-
11
- end
12
-
13
- # Write tests to verify the basic Factories are being used correctly.
14
- # Make :task work, such that a valid task is created with assignee/assigner that can edit.
15
- # Use in tasks_controller rather than massive setup code.
16
- #
17
- # Bonus points...
18
- # Refactor test_helper to get rid of adhoc setup code.
19
- # Split factories into 'sharable' cms factories (that can be used in testing BrowserCMS projects).
20
- # as well as 'core' CMS factories (needed only for core)
21
- test "content_editor_group" do
22
- group = Factory(:content_editor_group)
23
- assert_equal Cms::Group, group.class
24
- end
25
-
26
- test ":content_editor factory has edit_permission" do
27
- editor = Factory(:content_editor)
28
- assert editor.able_to?(:edit_content)
29
- assert editor.able_to?(:publish_content)
30
- end
31
-
32
- test "section" do
33
- section = Factory(:section)
34
- assert_equal "Test", section.name
35
- assert_equal "/test", section.path
36
- assert_not_nil section.parent
37
- end
38
-
39
- test "cms_admin_user" do
40
- user = Factory(:cms_admin)
41
- assert_equal 1, user.groups.size
42
- assert_equal true, user.able_to?(:edit_content)
43
- assert_equal true, user.able_to?(:administrate)
44
- assert_equal true, user.able_to?(:publish_content)
45
- end
46
-
47
- test ":public_page is also published" do
48
- assert_equal true, Factory(:public_page).published?
49
- end
50
- end
@@ -1,15 +0,0 @@
1
- require "test_helper"
2
- require 'cms/installation_actions'
3
-
4
- module BcmsWidget
5
- end
6
-
7
- class InstallGeneratorTest < ActiveSupport::TestCase
8
-
9
- include Cms::InstallationActions
10
-
11
- test "generate default name" do
12
- assert_equal "/bcms_widget", default_engine_path(BcmsWidget)
13
- end
14
-
15
- end
@@ -1,104 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Cms::ApplicationHelperTest < ActionView::TestCase
4
-
5
- def test_url_with_mode
6
- [
7
- [["http://localhost:3000", "edit"], "?mode=edit"],
8
- [["http://localhost:3000/", "edit"], "/?mode=edit"],
9
- [["http://localhost:3000/foo", "edit"], "/foo?mode=edit"],
10
- [["http://localhost:3000/foo?bar=1", "edit"], "/foo?bar=1&mode=edit"],
11
- [["http://localhost:3000/foo?mode=view", "edit"], "/foo?mode=edit"],
12
- [["http://localhost:3000/foo?bar=1&mode=view", "edit"], "/foo?bar=1&mode=edit"],
13
- [["http://localhost:3000/foo?other_mode=1&mode=view", "edit"], "/foo?other_mode=1&mode=edit"],
14
- [["/foo?other_mode=1&mode=view", "edit"], "/foo?other_mode=1&mode=edit"]
15
- ].each do |args, expected|
16
- assert_equal expected, url_with_mode(*args)
17
- end
18
- end
19
-
20
- test "url_with_mode should handle 'blank' referers as empty" do
21
- assert_equal("?mode=edit", url_with_mode("", "edit"))
22
- assert_equal("?mode=edit", url_with_mode(nil, "edit"))
23
- end
24
-
25
- def test_determine_order
26
- assert_equal "foo", determine_order("foo desc", "foo desc")
27
- assert_equal "foo", determine_order("foo desc", "foo")
28
- assert_equal "foo desc", determine_order("foo", "foo desc")
29
- assert_equal "foo desc", determine_order("foo", "foo")
30
- assert_equal "bar desc", determine_order("foo", "bar desc")
31
- assert_equal "bar", determine_order("foo", "bar")
32
- end
33
-
34
- test "Convert jquery selector to dashs" do
35
- s = "input.something"
36
- assert_equal "input_something", s.gsub(".", "_")
37
-
38
- assert_equal "input_something", send(:to_id, s)
39
- assert_equal "input_something_uncheck", send(:to_id, s, "uncheck")
40
- end
41
- end
42
-
43
- class Cms::ApplicationHelper::DeleteButtonTest < ActionView::TestCase
44
- include Cms::ApplicationHelper
45
-
46
- # Scenario: Delete Buttons should:
47
-
48
- test "generate a button without an explicit title by default" do
49
- expected_html = '<a href="#" class="button disabled delete_button" id="delete_button"><span><span class="delete_img">&nbsp;</span>Delete</span></a>'
50
- assert_equal expected_html, delete_button
51
- end
52
-
53
- test "use a standard Confirm link if :title option is specified" do
54
- expected_html = '<a href="#" class="button disabled delete_button http_delete confirm_with_title" id="delete_button"><span><span class="delete_img">&nbsp;</span>Delete</span></a>'
55
- assert_equal expected_html, delete_button(:title=>true)
56
- end
57
-
58
- test "take :path attribute if specified" do
59
- expected_html = '<a href="/cms/html_blocks/3" class="button disabled delete_button" id="delete_button"><span><span class="delete_img">&nbsp;</span>Delete</span></a>'
60
- assert_equal expected_html, delete_button(:path=>"/cms/html_blocks/3")
61
- end
62
-
63
- test "Writes out title if specified as a string" do
64
- expected_html = '<a href="#" class="button disabled delete_button http_delete confirm_with_title" id="delete_button" title="Really delete \'Server Error\'?"><span><span class="delete_img">&nbsp;</span>Delete</span></a>'
65
- assert_equal expected_html, delete_button(:title=>"Really delete \'Server Error\'?")
66
- end
67
-
68
- test "default to disabled, but have an :enabled option" do
69
- expected_html = '<a href="#" class="button disabled delete_button" id="delete_button"><span><span class="delete_img">&nbsp;</span>Delete</span></a>'
70
- assert_equal expected_html, delete_button
71
-
72
- expected_html = '<a href="#" class="button disabled delete_button" id="delete_button"><span><span class="delete_img">&nbsp;</span>Delete</span></a>'
73
- assert_equal expected_html, delete_button(:enabled=>false)
74
-
75
- expected_html = '<a href="#" class="button delete_button" id="delete_button"><span><span class="delete_img">&nbsp;</span>Delete</span></a>'
76
- assert_equal expected_html, delete_button(:enabled=>true)
77
- end
78
- end
79
-
80
- class Cms::ApplicationHelper::EditButtonTest < ActionView::TestCase
81
- include Cms::ApplicationHelper
82
-
83
- # Scenario: Edit Buttons should:
84
-
85
- test "generate a button without an explicit title by default" do
86
- expected_html = '<a href="#" class="button disabled" id="edit_button"><span>&nbsp;Edit&nbsp;</span></a>'
87
- assert_equal expected_html, edit_button
88
- end
89
-
90
-
91
- end
92
-
93
- class Cms::ApplicationHelper::AddButtonTest < ActionView::TestCase
94
- include Cms::ApplicationHelper
95
-
96
- # Scenario: Add Buttons should:
97
-
98
- test "generate a button without an explicit title by default" do
99
- expected_html = '<a href="/cms/page_routes/new" class="button"><span>&nbsp;Add&nbsp;</span></a>'
100
- assert_equal expected_html, add_button("/cms/page_routes/new")
101
- end
102
-
103
-
104
- end