browsercms 3.1.5 → 3.3.0.beta

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 (425) hide show
  1. data/app/controllers/cms/base_controller.rb +3 -3
  2. data/app/controllers/cms/content_block_controller.rb +2 -2
  3. data/app/controllers/cms/content_controller.rb +5 -4
  4. data/app/controllers/cms/error_handling.rb +1 -1
  5. data/app/controllers/cms/routes_controller.rb +4 -5
  6. data/app/controllers/cms/section_nodes_controller.rb +1 -6
  7. data/app/controllers/cms/sections_controller.rb +2 -3
  8. data/app/controllers/cms/tasks_controller.rb +3 -0
  9. data/app/controllers/cms/users_controller.rb +1 -1
  10. data/app/helpers/cms/application_helper.rb +137 -34
  11. data/app/helpers/cms/form_builder.rb +33 -21
  12. data/app/helpers/cms/page_helper.rb +43 -10
  13. data/app/helpers/cms/path_helper.rb +1 -1
  14. data/app/helpers/cms/rendering_helper.rb +3 -4
  15. data/app/helpers/cms/section_nodes_helper.rb +5 -43
  16. data/app/models/abstract_file_block.rb +1 -16
  17. data/app/models/attachment.rb +57 -22
  18. data/app/models/category.rb +4 -4
  19. data/app/models/category_type.rb +2 -2
  20. data/app/models/cms/view_context.rb +46 -0
  21. data/app/models/connector.rb +7 -6
  22. data/app/models/content_type.rb +3 -3
  23. data/app/models/dynamic_view.rb +1 -1
  24. data/app/models/email_message.rb +2 -2
  25. data/app/models/file_block.rb +12 -0
  26. data/app/models/group.rb +4 -4
  27. data/app/models/group_type.rb +4 -4
  28. data/app/models/html_block.rb +1 -1
  29. data/app/models/image_block.rb +12 -0
  30. data/app/models/link.rb +22 -5
  31. data/app/models/page.rb +87 -46
  32. data/app/models/page_route.rb +61 -6
  33. data/app/models/permission.rb +1 -1
  34. data/app/models/portlet.rb +14 -4
  35. data/app/models/section.rb +48 -86
  36. data/app/models/section_node.rb +25 -40
  37. data/app/models/site.rb +1 -1
  38. data/app/models/tag.rb +1 -1
  39. data/app/models/task.rb +8 -7
  40. data/app/models/user.rb +2 -7
  41. data/app/portlets/forgot_password_portlet.rb +6 -2
  42. data/app/portlets/reset_password_portlet.rb +1 -1
  43. data/app/views/cms/blocks/_toolbar.html.erb +1 -1
  44. data/app/views/cms/blocks/_toolbar_for_collection.html.erb +3 -6
  45. data/app/views/cms/blocks/_toolbar_for_member.html.erb +3 -5
  46. data/app/views/cms/blocks/edit.html.erb +4 -4
  47. data/app/views/cms/blocks/index.html.erb +7 -7
  48. data/app/views/cms/blocks/new.html.erb +4 -4
  49. data/app/views/cms/blocks/show.html.erb +2 -2
  50. data/app/views/cms/blocks/usages.html.erb +2 -2
  51. data/app/views/cms/blocks/versions.html.erb +4 -4
  52. data/app/views/cms/cache/show.html.erb +2 -2
  53. data/app/views/cms/categories/_form.html.erb +2 -2
  54. data/app/views/cms/connectors/new.html.erb +6 -8
  55. data/app/views/cms/content/no_page.html.erb +1 -1
  56. data/app/views/cms/content/show.html.erb +2 -7
  57. data/app/views/cms/dashboard/_page_drafts.html.erb +1 -1
  58. data/app/views/cms/dashboard/_tasks.html.erb +1 -1
  59. data/app/views/cms/dashboard/index.html.erb +1 -1
  60. data/app/views/cms/dynamic_views/_form.html.erb +2 -2
  61. data/app/views/cms/dynamic_views/index.html.erb +7 -10
  62. data/app/views/cms/email_messages/show.html.erb +2 -2
  63. data/app/views/cms/file_blocks/_form.html.erb +4 -4
  64. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +2 -2
  65. data/app/views/cms/form_builder/_cms_file_field.html.erb +2 -2
  66. data/app/views/cms/form_builder/_cms_tag_list.html.erb +2 -2
  67. data/app/views/cms/form_builder/_cms_text_editor.html.erb +2 -2
  68. data/app/views/cms/groups/_form.html.erb +5 -5
  69. data/app/views/cms/groups/_permissions.html.erb +4 -4
  70. data/app/views/cms/groups/_sections.html.erb +1 -2
  71. data/app/views/cms/groups/index.html.erb +1 -1
  72. data/app/views/cms/html_blocks/render.html.erb +1 -1
  73. data/app/views/cms/image_blocks/_form.html.erb +4 -5
  74. data/app/views/cms/links/_form.html.erb +1 -1
  75. data/app/views/cms/links/edit.html.erb +2 -2
  76. data/app/views/cms/links/new.html.erb +2 -2
  77. data/app/views/cms/page_routes/_form.html.erb +2 -2
  78. data/app/views/cms/page_routes/index.html.erb +6 -9
  79. data/app/views/cms/page_routes/show.html.erb +5 -8
  80. data/app/views/cms/pages/_edit_connector.html.erb +1 -1
  81. data/app/views/cms/pages/_form.html.erb +3 -3
  82. data/app/views/cms/pages/edit.html.erb +2 -2
  83. data/app/views/cms/pages/new.html.erb +7 -7
  84. data/app/views/cms/pages/versions.html.erb +4 -4
  85. data/app/views/cms/redirects/_form.html.erb +2 -2
  86. data/app/views/cms/redirects/index.html.erb +8 -7
  87. data/app/views/cms/routes/index.html.erb +2 -2
  88. data/app/views/cms/section_nodes/_link.html.erb +3 -6
  89. data/app/views/cms/section_nodes/_node.html.erb +4 -13
  90. data/app/views/cms/section_nodes/_page.html.erb +7 -13
  91. data/app/views/cms/section_nodes/_section.html.erb +8 -24
  92. data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
  93. data/app/views/cms/section_nodes/index.html.erb +18 -30
  94. data/app/views/cms/sections/_form.html.erb +4 -6
  95. data/app/views/cms/sections/edit.html.erb +2 -2
  96. data/app/views/cms/sections/index.html.erb +3 -3
  97. data/app/views/cms/sections/new.html.erb +3 -3
  98. data/app/views/cms/sessions/new.html.erb +3 -3
  99. data/app/views/cms/shared/_pagination.html.erb +1 -1
  100. data/app/views/cms/shared/error.html.erb +1 -1
  101. data/app/views/cms/tags/render.html.erb +2 -2
  102. data/app/views/cms/tasks/new.html.erb +4 -4
  103. data/app/views/cms/users/_form.html.erb +3 -3
  104. data/app/views/cms/users/_toolbar.html.erb +3 -3
  105. data/app/views/cms/users/change_password.html.erb +5 -5
  106. data/app/views/cms/users/edit.html.erb +2 -2
  107. data/app/views/cms/users/index.html.erb +4 -4
  108. data/app/views/cms/users/new.html.erb +2 -2
  109. data/app/views/cms/users/show.html.erb +16 -16
  110. data/app/views/layouts/_cms_toolbar.html.erb +5 -5
  111. data/app/views/layouts/_page_toolbar.html.erb +11 -11
  112. data/app/views/layouts/cms/_footer.erb +1 -1
  113. data/app/views/layouts/cms/_head.html.erb +2 -6
  114. data/app/views/layouts/cms/administration.html.erb +32 -32
  115. data/app/views/layouts/cms/content_library.html.erb +5 -5
  116. data/app/views/layouts/cms/toolbar.html.erb +1 -1
  117. data/app/views/portlets/email_page/render.html.erb +2 -2
  118. data/app/views/portlets/forgot_password/render.html.erb +1 -1
  119. data/app/views/portlets/login/render.html.erb +4 -2
  120. data/app/views/portlets/reset_password/render.html.erb +1 -1
  121. data/app/views/tests/pretend/open_with_layout.html.erb +1 -1
  122. data/bin/bcms +0 -0
  123. data/bin/bcms-upgrade +232 -0
  124. data/bin/browsercms +2 -2
  125. data/browsercms.gemspec +16 -14
  126. data/db/migrate/20100705083859_browsercms_3_3_0.rb +56 -0
  127. data/db/seeds.rb +58 -0
  128. data/doc/guides/html/authentication.html +448 -192
  129. data/doc/guides/html/build_it_yourself.html +454 -175
  130. data/doc/guides/html/building_modules.html +451 -220
  131. data/doc/guides/html/building_templates.html +448 -498
  132. data/doc/guides/html/content_blocks.html +450 -470
  133. data/doc/guides/html/customizing_browsercms.html +453 -169
  134. data/doc/guides/html/deployment_guide.html +443 -82
  135. data/doc/guides/html/files/bcmsorg.js +28 -0
  136. data/doc/guides/html/files/clearfix.css +8 -0
  137. data/doc/guides/html/files/cufon.js +7 -0
  138. data/doc/guides/html/files/global.css +190 -0
  139. data/doc/guides/html/files/helvetica.js +91 -0
  140. data/doc/guides/html/files/jquery.js +11 -0
  141. data/doc/guides/html/getting_started.html +454 -213
  142. data/doc/guides/html/index.html +454 -174
  143. data/doc/guides/html/installing_modules.html +454 -186
  144. data/doc/guides/html/portlets.html +451 -232
  145. data/doc/guides/html/user_guide.html +452 -270
  146. data/doc/guides/html/writing_guides.html +454 -161
  147. data/lib/acts_as_list.rb +1 -1
  148. data/lib/browsercms.rb +10 -6
  149. data/lib/cms/acts.rb +7 -0
  150. data/lib/cms/authentication.rb +4 -0
  151. data/lib/cms/authentication/controller.rb +1 -1
  152. data/lib/cms/behaviors.rb +1 -1
  153. data/lib/cms/behaviors/archiving.rb +2 -2
  154. data/lib/cms/behaviors/attaching.rb +28 -43
  155. data/lib/cms/behaviors/categorizing.rb +1 -1
  156. data/lib/cms/behaviors/connecting.rb +27 -12
  157. data/lib/cms/behaviors/dynamic_attributes.rb +8 -5
  158. data/lib/cms/behaviors/hiding.rb +2 -2
  159. data/lib/cms/behaviors/publishing.rb +32 -22
  160. data/lib/cms/behaviors/rendering.rb +41 -18
  161. data/lib/cms/behaviors/searching.rb +1 -1
  162. data/lib/cms/behaviors/soft_deleting.rb +58 -29
  163. data/lib/cms/behaviors/taggable.rb +1 -1
  164. data/lib/cms/behaviors/userstamping.rb +5 -4
  165. data/lib/cms/behaviors/versioning.rb +192 -111
  166. data/lib/cms/content_rendering_support.rb +3 -3
  167. data/lib/cms/date_picker.rb +23 -0
  168. data/lib/cms/engine.rb +46 -0
  169. data/lib/cms/extensions.rb +1 -1
  170. data/lib/cms/extensions/active_record/errors.rb +2 -2
  171. data/lib/cms/extensions/hash.rb +4 -2
  172. data/lib/cms/extensions/string.rb +7 -2
  173. data/lib/cms/init.rb +32 -21
  174. data/lib/cms/module.rb +22 -0
  175. data/lib/cms/module_installation.rb +38 -0
  176. data/lib/cms/routes.rb +127 -115
  177. data/lib/cms/version.rb +2 -2
  178. data/lib/generators/browser_cms.rb +12 -0
  179. data/lib/generators/browser_cms/cms/USAGE +2 -0
  180. data/lib/generators/browser_cms/cms/cms_generator.rb +36 -0
  181. data/{rails_generators/browser_cms → lib/generators/browser_cms/cms}/templates/README +0 -0
  182. data/{rails_generators/browser_cms_demo_site → lib/generators/browser_cms/demo_site}/USAGE +0 -0
  183. data/lib/generators/browser_cms/demo_site/demo_site_generator.rb +138 -0
  184. data/lib/generators/browser_cms/demo_site/templates/demo_site.rake +11 -0
  185. data/{rails_generators/browser_cms_demo_site/templates/migration.rb → lib/generators/browser_cms/demo_site/templates/migration.erb} +2 -8
  186. data/lib/generators/cms/content_block/USAGE +22 -0
  187. data/lib/generators/cms/content_block/content_block_generator.rb +55 -0
  188. data/{rails_generators → lib/generators/cms}/content_block/templates/_form.html.erb +0 -0
  189. data/{rails_generators → lib/generators/cms}/content_block/templates/content_block.rb +0 -0
  190. data/{rails_generators → lib/generators/cms}/content_block/templates/controller.rb +0 -0
  191. data/{rails_generators → lib/generators/cms}/content_block/templates/functional_test.erb +0 -0
  192. data/{rails_generators/content_block/templates/migration.rb → lib/generators/cms/content_block/templates/migration.erb} +1 -1
  193. data/{rails_generators → lib/generators/cms}/content_block/templates/render.html.erb +0 -0
  194. data/{rails_generators → lib/generators/cms}/content_block/templates/unit_test.erb +0 -0
  195. data/lib/generators/cms/install/USAGE +8 -0
  196. data/lib/generators/cms/install/install_generator.rb +20 -0
  197. data/{rails_generators → lib/generators/cms}/portlet/USAGE +3 -16
  198. data/lib/generators/cms/portlet/portlet_generator.rb +38 -0
  199. data/{rails_generators → lib/generators/cms}/portlet/templates/_form.html.erb +0 -0
  200. data/{rails_generators → lib/generators/cms}/portlet/templates/portlet.rb +0 -0
  201. data/{rails_generators → lib/generators/cms}/portlet/templates/portlet_helper.rb +0 -0
  202. data/{rails_generators → lib/generators/cms}/portlet/templates/render.html.erb +0 -0
  203. data/{rails_generators → lib/generators/cms}/portlet/templates/unit_test.erb +0 -0
  204. data/{rails_generators → lib/generators/cms}/template/USAGE +1 -1
  205. data/lib/generators/cms/template/template_generator.rb +18 -0
  206. data/lib/generators/cms/template/templates/template.erb +2 -0
  207. data/lib/generators/cms/upgrade_module/README.txt +3 -0
  208. data/lib/generators/cms/upgrade_module/templates/20100705083859_browsercms_3_3_0.rb +56 -0
  209. data/lib/generators/cms/upgrade_module/templates/README +1 -0
  210. data/lib/generators/cms/upgrade_module/templates/USAGE.erb +10 -0
  211. data/lib/generators/cms/upgrade_module/templates/build_gem.rake +5 -0
  212. data/lib/generators/cms/upgrade_module/templates/engine.erb +7 -0
  213. data/lib/generators/cms/upgrade_module/templates/gemspec.erb +25 -0
  214. data/lib/generators/cms/upgrade_module/templates/gitignore.erb +11 -0
  215. data/lib/generators/cms/upgrade_module/templates/install.erb +9 -0
  216. data/lib/generators/cms/upgrade_module/templates/module_file.erb +3 -0
  217. data/lib/generators/cms/upgrade_module/templates/routes.erb +7 -0
  218. data/lib/generators/cms/upgrade_module/upgrade_module_generator.rb +61 -0
  219. data/lib/tasks/build_gem.rake +1 -0
  220. data/lib/tasks/cms.rake +34 -6
  221. data/lib/tasks/cucumber.rake +53 -0
  222. data/lib/tasks/db.rake +2 -2
  223. data/public/javascripts/cms/application.js +144 -135
  224. data/public/javascripts/cms/sitemap.js +383 -357
  225. data/public/javascripts/jquery-ui.js +782 -591
  226. data/public/javascripts/jquery.cookie.js +38 -43
  227. data/public/javascripts/jquery.js +13 -8
  228. data/public/javascripts/jquery.taglist.js +7 -0
  229. data/public/stylesheets/cms/date_picker.css +49 -40
  230. data/rails/init.rb +2 -3
  231. data/templates/blank.rb +13 -7
  232. data/templates/demo.rb +15 -7
  233. data/templates/module.rb +12 -75
  234. metadata +87 -407
  235. data/app/helpers/cms/content_block_helper.rb +0 -27
  236. data/app/views/layouts/cms/thickbox.html.erb +0 -24
  237. data/db/migrate/20120117144039_browsercms315.rb +0 -94
  238. data/db/migrate/20121114172307_load_seeds.rb +0 -70
  239. data/lib/cms/addressable.rb +0 -83
  240. data/lib/cms/error_pages.rb +0 -8
  241. data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
  242. data/public/images/cms/thickbox/macFFBgHack.png +0 -0
  243. data/public/javascripts/jquery.contextMenu.js +0 -211
  244. data/public/javascripts/jquery.dimensions.js +0 -119
  245. data/public/javascripts/jquery.thickbox.js +0 -10
  246. data/public/stylesheets/cms/jquery.contextMenu.css +0 -61
  247. data/public/stylesheets/cms/thickbox.css +0 -163
  248. data/rails_generators/browser_cms/USAGE +0 -2
  249. data/rails_generators/browser_cms/browser_cms_generator.rb +0 -35
  250. data/rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb +0 -63
  251. data/rails_generators/content_block/USAGE +0 -32
  252. data/rails_generators/content_block/content_block_generator.rb +0 -69
  253. data/rails_generators/portlet/portlet_generator.rb +0 -35
  254. data/rails_generators/template/template_generator.rb +0 -18
  255. data/rails_generators/template/templates/template.erb +0 -3
  256. data/test/custom_assertions.rb +0 -74
  257. data/test/factories.rb +0 -111
  258. data/test/factories/sitemap_factories.rb +0 -28
  259. data/test/fixtures/connectors.yml +0 -97
  260. data/test/fixtures/content_type_groups.yml +0 -13
  261. data/test/fixtures/content_types.yml +0 -50
  262. data/test/fixtures/dynamic_view_versions.yml +0 -26
  263. data/test/fixtures/dynamic_views.yml +0 -26
  264. data/test/fixtures/group_permissions.yml +0 -16
  265. data/test/fixtures/group_sections.yml +0 -31
  266. data/test/fixtures/group_type_permissions.yml +0 -11
  267. data/test/fixtures/group_types.yml +0 -25
  268. data/test/fixtures/groups.yml +0 -25
  269. data/test/fixtures/html_block_versions.yml +0 -67
  270. data/test/fixtures/html_blocks.yml +0 -63
  271. data/test/fixtures/page_versions.yml +0 -265
  272. data/test/fixtures/pages.yml +0 -85
  273. data/test/fixtures/permissions.yml +0 -28
  274. data/test/fixtures/section_nodes.yml +0 -46
  275. data/test/fixtures/sections.yml +0 -19
  276. data/test/fixtures/sites.yml +0 -9
  277. data/test/fixtures/user_group_memberships.yml +0 -11
  278. data/test/fixtures/users.yml +0 -15
  279. data/test/functional/cms/cache_controller_test.rb +0 -14
  280. data/test/functional/cms/categories_controller_test.rb +0 -25
  281. data/test/functional/cms/connectors_controller_test.rb +0 -60
  282. data/test/functional/cms/content_block_controller_test.rb +0 -120
  283. data/test/functional/cms/content_controller_test.rb +0 -439
  284. data/test/functional/cms/content_types_controller_test.rb +0 -18
  285. data/test/functional/cms/dashboard_controller_test.rb +0 -16
  286. data/test/functional/cms/dynamic_views_controller_test.rb +0 -52
  287. data/test/functional/cms/file_blocks_controller_test.rb +0 -52
  288. data/test/functional/cms/groups_controller_test.rb +0 -50
  289. data/test/functional/cms/home_controller_test.rb +0 -156
  290. data/test/functional/cms/html_blocks_controller_test.rb +0 -164
  291. data/test/functional/cms/image_blocks_controller_test.rb +0 -82
  292. data/test/functional/cms/links_controller_test.rb +0 -148
  293. data/test/functional/cms/pages_controller_test.rb +0 -227
  294. data/test/functional/cms/portlets_controller_test.rb +0 -67
  295. data/test/functional/cms/section_nodes_controller_test.rb +0 -112
  296. data/test/functional/cms/sections_controller_test.rb +0 -227
  297. data/test/functional/cms/sessions_controller_test.rb +0 -76
  298. data/test/functional/cms/toolbar_controller_test.rb +0 -64
  299. data/test/functional/cms/users_controller_test.rb +0 -231
  300. data/test/functional/tests/pretend_controller_test.rb +0 -57
  301. data/test/integration/cms/ckeditor_test.rb +0 -30
  302. data/test/integration/cms/password_management_test.rb +0 -56
  303. data/test/integration/login_test.rb +0 -14
  304. data/test/integration/sitemap_performance_test.rb +0 -26
  305. data/test/selenium-core/Blank.html +0 -7
  306. data/test/selenium-core/InjectedRemoteRunner.html +0 -8
  307. data/test/selenium-core/RemoteRunner.html +0 -110
  308. data/test/selenium-core/SeleniumLog.html +0 -109
  309. data/test/selenium-core/TestPrompt.html +0 -145
  310. data/test/selenium-core/TestRunner-splash.html +0 -55
  311. data/test/selenium-core/TestRunner.hta +0 -176
  312. data/test/selenium-core/TestRunner.html +0 -176
  313. data/test/selenium-core/domviewer/butmin.gif +0 -0
  314. data/test/selenium-core/domviewer/butplus.gif +0 -0
  315. data/test/selenium-core/domviewer/domviewer.css +0 -298
  316. data/test/selenium-core/domviewer/domviewer.html +0 -16
  317. data/test/selenium-core/domviewer/selenium-domviewer.js +0 -205
  318. data/test/selenium-core/icons/all.png +0 -0
  319. data/test/selenium-core/icons/continue.png +0 -0
  320. data/test/selenium-core/icons/continue_disabled.png +0 -0
  321. data/test/selenium-core/icons/pause.png +0 -0
  322. data/test/selenium-core/icons/pause_disabled.png +0 -0
  323. data/test/selenium-core/icons/selected.png +0 -0
  324. data/test/selenium-core/icons/step.png +0 -0
  325. data/test/selenium-core/icons/step_disabled.png +0 -0
  326. data/test/selenium-core/iedoc-core.xml +0 -1515
  327. data/test/selenium-core/iedoc.xml +0 -1469
  328. data/test/selenium-core/lib/cssQuery/cssQuery-p.js +0 -6
  329. data/test/selenium-core/lib/cssQuery/src/cssQuery-level2.js +0 -142
  330. data/test/selenium-core/lib/cssQuery/src/cssQuery-level3.js +0 -150
  331. data/test/selenium-core/lib/cssQuery/src/cssQuery-standard.js +0 -53
  332. data/test/selenium-core/lib/cssQuery/src/cssQuery.js +0 -356
  333. data/test/selenium-core/lib/prototype.js +0 -2006
  334. data/test/selenium-core/lib/scriptaculous/builder.js +0 -101
  335. data/test/selenium-core/lib/scriptaculous/controls.js +0 -815
  336. data/test/selenium-core/lib/scriptaculous/dragdrop.js +0 -915
  337. data/test/selenium-core/lib/scriptaculous/effects.js +0 -958
  338. data/test/selenium-core/lib/scriptaculous/scriptaculous.js +0 -47
  339. data/test/selenium-core/lib/scriptaculous/slider.js +0 -283
  340. data/test/selenium-core/lib/scriptaculous/unittest.js +0 -383
  341. data/test/selenium-core/scripts/find_matching_child.js +0 -69
  342. data/test/selenium-core/scripts/htmlutils.js +0 -894
  343. data/test/selenium-core/scripts/injection.html +0 -72
  344. data/test/selenium-core/scripts/js2html.js +0 -70
  345. data/test/selenium-core/scripts/narcissus-defs.js +0 -175
  346. data/test/selenium-core/scripts/narcissus-exec.js +0 -1054
  347. data/test/selenium-core/scripts/narcissus-parse.js +0 -1003
  348. data/test/selenium-core/scripts/se2html.js +0 -63
  349. data/test/selenium-core/scripts/selenium-api.js +0 -2409
  350. data/test/selenium-core/scripts/selenium-browserbot.js +0 -2203
  351. data/test/selenium-core/scripts/selenium-browserdetect.js +0 -150
  352. data/test/selenium-core/scripts/selenium-commandhandlers.js +0 -377
  353. data/test/selenium-core/scripts/selenium-executionloop.js +0 -175
  354. data/test/selenium-core/scripts/selenium-logging.js +0 -147
  355. data/test/selenium-core/scripts/selenium-remoterunner.js +0 -571
  356. data/test/selenium-core/scripts/selenium-testrunner.js +0 -1333
  357. data/test/selenium-core/scripts/selenium-version.js +0 -5
  358. data/test/selenium-core/scripts/user-extensions.js +0 -3
  359. data/test/selenium-core/scripts/user-extensions.js.sample +0 -75
  360. data/test/selenium-core/scripts/xmlextras.js +0 -153
  361. data/test/selenium-core/selenium-logo.png +0 -0
  362. data/test/selenium-core/selenium-test.css +0 -43
  363. data/test/selenium-core/selenium.css +0 -299
  364. data/test/selenium-core/xpath/dom.js +0 -428
  365. data/test/selenium-core/xpath/misc.js +0 -252
  366. data/test/selenium-core/xpath/xpath.js +0 -2223
  367. data/test/selenium/_login_as_cmsadmin.rsel +0 -4
  368. data/test/selenium/dashboard.rsel +0 -5
  369. data/test/selenium/html_blocks.rsel +0 -4
  370. data/test/selenium/login/failed_login.rsel +0 -8
  371. data/test/selenium/login/successful_login.rsel +0 -9
  372. data/test/selenium/page_templates.rsel +0 -12
  373. data/test/selenium/pages/edit_properties.rsel +0 -5
  374. data/test/selenium/site/view_home_page.rsel +0 -4
  375. data/test/selenium/sitemap/move_page.rsel +0 -9
  376. data/test/selenium/sitemap/open_section.rsel +0 -6
  377. data/test/selenium/sitemap/select_page.rsel +0 -12
  378. data/test/selenium/sitemap/select_section.rsel +0 -17
  379. data/test/test_helper.rb +0 -193
  380. data/test/test_logging.rb +0 -67
  381. data/test/unit/behaviors/attaching_test.rb +0 -357
  382. data/test/unit/behaviors/connectable_test.rb +0 -29
  383. data/test/unit/behaviors/dynamic_attributes_test.rb +0 -38
  384. data/test/unit/behaviors/publishable_test.rb +0 -84
  385. data/test/unit/behaviors/searching_test.rb +0 -102
  386. data/test/unit/behaviors/taggable_test.rb +0 -109
  387. data/test/unit/behaviors/versioning_test.rb +0 -36
  388. data/test/unit/extensions/active_record/base_test.rb +0 -10
  389. data/test/unit/extensions/hash_test.rb +0 -17
  390. data/test/unit/extensions/integer_test.rb +0 -10
  391. data/test/unit/helpers/application_helper_test.rb +0 -77
  392. data/test/unit/helpers/form_builder_test.rb +0 -36
  393. data/test/unit/helpers/menu_helper_test.rb +0 -242
  394. data/test/unit/helpers/page_helper_test.rb +0 -67
  395. data/test/unit/helpers/path_helper_test.rb +0 -57
  396. data/test/unit/lib/acts_as_content_page_test.rb +0 -72
  397. data/test/unit/lib/cms/authentication/controller_test.rb +0 -20
  398. data/test/unit/lib/cms/sitemap_test.rb +0 -206
  399. data/test/unit/lib/cms_domain_support_test.rb +0 -43
  400. data/test/unit/lib/command_line_test.rb +0 -70
  401. data/test/unit/lib/content_block_test.rb +0 -203
  402. data/test/unit/lib/content_rendering_support_test.rb +0 -40
  403. data/test/unit/lib/generators_test.rb +0 -40
  404. data/test/unit/lib/routes_test.rb +0 -57
  405. data/test/unit/models/attachment_test.rb +0 -116
  406. data/test/unit/models/category_test.rb +0 -40
  407. data/test/unit/models/category_type_test.rb +0 -8
  408. data/test/unit/models/connector_test.rb +0 -152
  409. data/test/unit/models/content_type_test.rb +0 -56
  410. data/test/unit/models/email_page_portlet_test.rb +0 -14
  411. data/test/unit/models/file_block_test.rb +0 -230
  412. data/test/unit/models/group_test.rb +0 -13
  413. data/test/unit/models/html_block_test.rb +0 -102
  414. data/test/unit/models/link_test.rb +0 -52
  415. data/test/unit/models/page_partial_test.rb +0 -29
  416. data/test/unit/models/page_route_test.rb +0 -29
  417. data/test/unit/models/page_template_test.rb +0 -40
  418. data/test/unit/models/page_test.rb +0 -792
  419. data/test/unit/models/permission_test.rb +0 -10
  420. data/test/unit/models/portlet_test.rb +0 -69
  421. data/test/unit/models/sections_test.rb +0 -264
  422. data/test/unit/models/site_test.rb +0 -50
  423. data/test/unit/models/task_test.rb +0 -141
  424. data/test/unit/models/user_test.rb +0 -352
  425. data/test/unit/schema_statements_test.rb +0 -41
@@ -1,72 +0,0 @@
1
- require "test_helper"
2
- require "mocha"
3
-
4
- class CmsActsAsContentPageTest < ActiveSupport::TestCase
5
- EXPECTED_SECTION = "/members"
6
-
7
- class MyController < ActionController::Base
8
- include Cms::Acts::ContentPage
9
- requires_permission_for_section EXPECTED_SECTION
10
- end
11
-
12
- test "Arbitrary controller should have authentication methods" do
13
- c = MyController.new
14
-
15
- assert c.respond_to? :handle_access_denied_on_page
16
- assert c.respond_to? :handle_not_found_on_page
17
- assert c.respond_to? :handle_server_error_on_page
18
- assert c.respond_to? :handle_error_with_cms_page, true
19
-
20
- assert(c.respond_to?(:logged_in?), "Should include Cms::Authentication::Controller methods")
21
- assert(c.respond_to?(:handle_server_error), "Should include Cms::ErrorHandling methods")
22
-
23
- assert(MyController.respond_to?(:requires_permission_for_section), "Should add ClassMethods to the controller.")
24
- end
25
-
26
- test "check_access_to_section_filter" do
27
- mock_user = mock()
28
- mock_user.expects(:able_to_view?).with(EXPECTED_SECTION).returns(true)
29
- mock_user.expects(:login).returns("mock_user_name")
30
- c = MyController.new
31
- c.expects(:current_user).returns(mock_user)
32
-
33
-
34
- c.check_access_to_section
35
-
36
-
37
- end
38
-
39
- test "sets section in startup" do
40
- class AController < ActionController::Base
41
- include Cms::Acts::ContentPage
42
- requires_permission_for_section EXPECTED_SECTION
43
- end
44
-
45
- assert_equal EXPECTED_SECTION, AController.in_section
46
- end
47
-
48
- class NewController < ActionController::Base
49
- include Cms::Acts::ContentPage
50
- end
51
-
52
- test "placing in a section should create a before_filter for that section for all actions" do
53
- NewController.expects(:before_filter).with(:check_access_to_section, {})
54
-
55
- NewController.send :requires_permission_for_section, EXPECTED_SECTION
56
-
57
- end
58
-
59
- test "can put only conditions on filters" do
60
- NewController.expects(:before_filter).with(:check_access_to_section, :only=>[:create])
61
-
62
- NewController.send :requires_permission_for_section, EXPECTED_SECTION, :only=>[:create]
63
- end
64
-
65
- test "can put except conditions on filters" do
66
- NewController.expects(:before_filter).with(:check_access_to_section, :except=>[:create])
67
-
68
- NewController.send :requires_permission_for_section, EXPECTED_SECTION, :except=>[:create]
69
- end
70
-
71
-
72
- end
@@ -1,20 +0,0 @@
1
- require "test_helper"
2
- require 'mocha'
3
-
4
- class ProtectedController < ActionController::Base
5
- include Cms::Authentication::Controller
6
- end
7
-
8
- class ControllerTest < ActiveSupport::TestCase
9
-
10
- test "Sets current user in thread local" do
11
- u = User.new()
12
-
13
- c = ProtectedController.new
14
- c.expects(:session).returns({})
15
-
16
- c.send(:current_user=, u)
17
-
18
- assert_equal u, User.current
19
- end
20
- end
@@ -1,206 +0,0 @@
1
- require "test_helper"
2
-
3
- class MoveSections < ActiveSupport::TestCase
4
-
5
- def setup
6
- @root = Factory(:root_section)
7
- @parent = Factory(:section, :parent => @root, :name => "Parent")
8
- @a = Factory(:section, :parent => @parent, :name => "A")
9
- @a1 = Factory(:page, :section => @a, :name => "A1")
10
- @a2 = Factory(:page, :section => @a, :name => "A2")
11
- @a3 = Factory(:page, :section => @a, :name => "A3")
12
- @b = Factory(:section, :parent => @parent, :name => "B")
13
- @b1 = Factory(:page, :section => @b, :name => "B1")
14
- @b2 = Factory(:page, :section => @b, :name => "B2")
15
- @b3 = Factory(:page, :section => @b, :name => "B3")
16
-
17
- @node_a = @a.node
18
- @node_b = @b.node
19
- @node_a1 = @a1.section_node
20
- @node_a2 = @a2.section_node
21
- @node_a3 = @a3.section_node
22
- @node_b1 = @b1.section_node
23
- @node_b2 = @b2.section_node
24
- @node_b3 = @b3.section_node
25
- reset(:node_a, :node_a1, :node_a2, :node_a3, :node_b, :node_b1, :node_b2, :node_b3)
26
-
27
- # Use this to print out complete table data
28
- # log_table_without_stamps(SectionNode)
29
- end
30
-
31
- def test_reorder_nodes_within_same_section
32
- @node_a2.move_to(@a, 1)
33
- reset(:node_a, :node_a1, :node_a2, :node_a3, :node_b, :node_b1, :node_b2, :node_b3)
34
- assert_properties(@node_a, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @a.id, :position => 1)
35
- assert_properties(@node_b, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @b.id, :position => 2)
36
- assert_properties(@node_a1, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a1.id, :position => 2)
37
- assert_properties(@node_a2, :ancestry=>ancestry_for(@a), :node_type => "Page", :node_id => @a2.id, :position => 1)
38
- assert_properties(@node_a3, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a3.id, :position => 3)
39
- assert_properties(@node_b1, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b1.id, :position => 1)
40
- assert_properties(@node_b2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b2.id, :position => 2)
41
- assert_properties(@node_b3, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b3.id, :position => 3)
42
- end
43
-
44
- def test_move_nodes_to_different_section
45
- @node_a2.move_to(@b, 2)
46
- reset(:node_a, :node_a1, :node_a2, :node_a3, :node_b, :node_b1, :node_b2, :node_b3)
47
- assert_properties(@node_a, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @a.id, :position => 1)
48
- assert_properties(@node_b, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @b.id, :position => 2)
49
- assert_properties(@node_a1, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a1.id, :position => 1)
50
- assert_properties(@node_a2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @a2.id, :position => 2)
51
- assert_properties(@node_a3, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a3.id, :position => 2)
52
- assert_properties(@node_b1, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b1.id, :position => 1)
53
- assert_properties(@node_b2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b2.id, :position => 3)
54
- assert_properties(@node_b3, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b3.id, :position => 4)
55
- end
56
- def test_move_nodes_to_beginning_of_different_section
57
- @node_a2.move_to(@b, 1)
58
- reset(:node_a, :node_a1, :node_a2, :node_a3, :node_b, :node_b1, :node_b2, :node_b3)
59
- assert_properties(@node_a, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @a.id, :position => 1)
60
- assert_properties(@node_b, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @b.id, :position => 2)
61
- assert_properties(@node_a1, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a1.id, :position => 1)
62
- assert_properties(@node_a2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @a2.id, :position => 1)
63
- assert_properties(@node_a3, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a3.id, :position => 2)
64
- assert_properties(@node_b1, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b1.id, :position => 2)
65
- assert_properties(@node_b2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b2.id, :position => 3)
66
- assert_properties(@node_b3, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b3.id, :position => 4)
67
- end
68
- def test_move_nodes_to_end_of_different_section
69
- @node_a2.move_to(@b, 99)
70
- reset(:node_a, :node_a1, :node_a2, :node_a3, :node_b, :node_b1, :node_b2, :node_b3)
71
- assert_properties(@node_a, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @a.id, :position => 1)
72
- assert_properties(@node_b, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @b.id, :position => 2)
73
- assert_properties(@node_a1, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a1.id, :position => 1)
74
- assert_properties(@node_a2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @a2.id, :position => 4)
75
- assert_properties(@node_a3, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a3.id, :position => 2)
76
- assert_properties(@node_b1, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b1.id, :position => 1)
77
- assert_properties(@node_b2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b2.id, :position => 2)
78
- assert_properties(@node_b3, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b3.id, :position => 3)
79
- end
80
-
81
- def test_put_page_at_the_bottom_when_section_is_changed
82
- @a2.update_attributes(:section=> @b)
83
- reset(:node_a, :node_a1, :node_a2, :node_a3, :node_b, :node_b1, :node_b2, :node_b3)
84
- assert_properties(@node_a, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @a.id, :position => 1)
85
- assert_properties(@node_b, :ancestry=> ancestry_for(@parent), :node_type => "Section", :node_id => @b.id, :position => 2)
86
- assert_properties(@node_a1, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a1.id, :position => 1)
87
- assert_properties(@node_a2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @a2.id, :position => 4)
88
- assert_properties(@node_a3, :ancestry=> ancestry_for(@a), :node_type => "Page", :node_id => @a3.id, :position => 2)
89
- assert_properties(@node_b1, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b1.id, :position => 1)
90
- assert_properties(@node_b2, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b2.id, :position => 2)
91
- assert_properties(@node_b3, :ancestry=> ancestry_for(@b), :node_type => "Page", :node_id => @b3.id, :position => 3)
92
- end
93
-
94
- def test_find_ancestors
95
- assert @root.ancestors.empty?
96
- assert_equal [@root], @parent.ancestors
97
- assert_equal [@root, @parent], @a.ancestors
98
- assert_equal [@root, @parent, @a], @a1.ancestors
99
- end
100
-
101
- def ancestry_for(section_or_page)
102
- "#{section_or_page.ancestry}/#{section_or_page.node.id}"
103
- end
104
- end
105
-
106
- class SitemapNavTest < ActiveSupport::TestCase
107
-
108
- def setup
109
- given_a_site_exists
110
- @page = Factory(:public_page, :section=>root_section)
111
- @link = Factory(:link, :section=>root_section)
112
- end
113
-
114
- test "access_status" do
115
- assert_equal @page.section.status, @page.access_status
116
- assert_equal @link.section.status, @link.access_status
117
- end
118
-
119
- end
120
- class SitemapTest < ActiveSupport::TestCase
121
-
122
- def setup
123
-
124
- end
125
-
126
- def teardown
127
- end
128
-
129
- test "ancestry_path" do
130
- section = Factory(:public_section)
131
- assert_equal "#{section.parent.node.id}/#{section.node.id}", section.node.ancestry_path
132
- end
133
- test "Build root section from factory" do
134
- root = Factory(:root_section)
135
- assert_not_nil root
136
- assert root.root?
137
- end
138
-
139
- test "Build section with parent = root_section from factory" do
140
- section = Factory(:public_section)
141
- assert_not_nil section
142
- assert_equal false, section.root?
143
- assert_equal true, section.parent.root?
144
- end
145
-
146
- test "Section has parent based on ancestry" do
147
- s = Section.create!(:name=>"A", :parent=>root, :path=>"/a")
148
- assert_equal "#{root.node.id}", s.ancestry
149
- end
150
-
151
-
152
- test "Assign Parent sections" do
153
- child_section = SectionNode.create!(:parent => root.node)
154
- assert_equal "#{root.node.id}", child_section.ancestry
155
- assert_equal root.node, child_section.parent
156
- end
157
-
158
- test "Each Section has a section node (even the root one)" do
159
- r = root
160
- assert_not_nil r.node
161
- assert_nil r.node.ancestry
162
- end
163
-
164
- test "child_nodes" do
165
- page = Factory(:page, :section=>root)
166
- section = Factory :public_section, :parent=>root
167
-
168
- assert_equal [page.section_node, section.node], root.child_nodes
169
- end
170
-
171
- test "pages" do
172
- page1 = Factory(:page, :section=>root)
173
- page2 = Factory(:page, :section=>root)
174
- section = Factory :public_section, :parent=>root
175
-
176
- assert_equal [page1, page2], root.pages
177
- end
178
-
179
- test "child_sections" do
180
- page1 = Factory(:page, :section=>root)
181
- page2 = Factory(:page, :section=>root)
182
- section = Factory :public_section, :parent=>root
183
-
184
- assert_equal [section], root.child_sections
185
- end
186
-
187
- test "Order of pages should be unique within each section" do
188
- page = Factory(:page, :section=>root)
189
- assert_equal 1, page.section_node.position
190
-
191
- subsection = Factory(:section, :parent=>root)
192
- page3 = Factory(:page, :section=>subsection)
193
- log_table_without_stamps(SectionNode)
194
- assert_equal 1, page3.section_node.position
195
- end
196
-
197
- test "The root section node has no parent section" do
198
- assert_nil SectionNode.new.parent_section
199
- end
200
-
201
- private
202
-
203
- def root
204
- @root ||= Factory(:root_section)
205
- end
206
- end
@@ -1,43 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '/../../test_helper')
2
- require 'mocha'
3
-
4
- class CmsDomainSupportTest < ActiveSupport::TestCase
5
-
6
- def setup
7
-
8
- end
9
-
10
- def teardown
11
-
12
- end
13
-
14
- test "cms_site? determines if the first subdomain is 'cms'" do
15
- c = Cms::ApplicationController.new
16
- request = mock
17
-
18
- c.expects(:request).returns(request)
19
- request.expects(:subdomains).returns(["cms"])
20
-
21
- assert c.send :cms_site?
22
- end
23
-
24
- test "A url that isn't a cms domain" do
25
- c = Cms::ApplicationController.new
26
- request = mock
27
-
28
- c.expects(:request).returns(request)
29
- request.expects(:subdomains).returns(["www"])
30
-
31
- assert_equal false, c.send(:cms_site?)
32
- end
33
-
34
- test "default cms domain" do
35
- c = Cms::ApplicationController.new
36
-
37
- assert_equal "cms", c.send(:cms_domain_prefix)
38
- end
39
-
40
- test "prepare_for_rendererable" do
41
-
42
- end
43
- end
@@ -1,70 +0,0 @@
1
- require "test_helper"
2
- require "mocha"
3
-
4
- class CommandLineTest < ActiveSupport::TestCase
5
-
6
- test "Use the correct demo template with '-m demo'" do
7
- CommandLine.expects(:template).with("demo.rb").returns("./templates/demo.rb")
8
- args = ["-m", "demo"]
9
-
10
- CommandLine.set_template(args)
11
-
12
- assert_equal ["-m", "./templates/demo.rb"], args
13
- end
14
-
15
- test "template_file looks up files based on the current directory" do
16
- CommandLine.expects(:template_dir).returns("./templates")
17
-
18
- assert_equal "./templates/bar.rb", CommandLine.template("bar.rb")
19
- end
20
-
21
- test "ARGV gets replaced" do
22
- CommandLine.expects(:template).with("demo.rb").returns("./templates/demo.rb")
23
- ARGV = ["-m", "demo"]
24
-
25
- CommandLine.set_template(ARGV)
26
-
27
- assert_equal ["-m", "./templates/demo.rb"], ARGV
28
- end
29
-
30
- test "Sets blank template if empty" do
31
- CommandLine.expects(:template).with("blank.rb").returns("./templates/blank.rb")
32
- args = []
33
-
34
- CommandLine.set_template(args)
35
-
36
- assert_equal ["-m", "./templates/blank.rb"], args
37
- end
38
-
39
- test "Sets module template with -m" do
40
- CommandLine.expects(:template).with("module.rb").returns("./templates/module.rb")
41
- args = ["-m", "module"]
42
-
43
- CommandLine.set_template(args)
44
-
45
- assert_equal ["-m", "./templates/module.rb"], args
46
- end
47
-
48
- test "Sets the module template with --template" do
49
- CommandLine.expects(:template).with("module.rb").returns("./templates/module.rb")
50
- args = ["--template", "module"]
51
-
52
- CommandLine.set_template(args)
53
-
54
- assert_equal ["--template", "./templates/module.rb"], args
55
- end
56
-
57
- test "Sets the demo template with --template" do
58
- CommandLine.expects(:template).with("demo.rb").returns("./templates/demo.rb")
59
- args = ["--template", "demo"]
60
-
61
- CommandLine.set_template(args)
62
-
63
- assert_equal ["--template", "./templates/demo.rb"], args
64
- end
65
-
66
- test "Set usage" do
67
-
68
- end
69
-
70
- end
@@ -1,203 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '/../../test_helper')
2
-
3
- class ContentBlockTest < ActiveSupport::TestCase
4
- def setup
5
- @block = Factory(:html_block, :name => "Test")
6
- end
7
-
8
- def test_publishing
9
- assert_equal "Draft", @block.status_name
10
- assert !@block.published?
11
-
12
- @block.publish
13
- assert @block.published?
14
-
15
- @block.publish_on_save = true
16
- @block.save
17
-
18
- assert @block.published?
19
-
20
- assert @block.update_attributes(:name => "Whatever")
21
-
22
- assert !@block.live?
23
-
24
- end
25
-
26
- def test_revision_comment_on_create
27
- assert_equal 'Created', @block.draft.version_comment
28
- end
29
-
30
- def test_revision_comment_on_update
31
- assert @block.update_attributes(:name => "Something Else", :content => "Whatever")
32
- assert_equal 'Changed content, name', @block.draft.version_comment
33
- end
34
-
35
- def test_revision_comment_without_changes
36
- assert @block.update_attributes(:name => @block.name)
37
- assert_equal 'Created', @block.draft.version_comment
38
- end
39
-
40
- def test_custom_revision_comment
41
- assert @block.update_attributes(:name => "Something Else", :version_comment => "Something Changed")
42
- assert_equal "Something Changed", @block.draft.version_comment
43
- end
44
-
45
- def test_destroy
46
- html_block_count = HtmlBlock.count
47
- assert_equal 1, @block.versions.size
48
- assert !@block.deleted?
49
-
50
- @block.destroy
51
-
52
- assert !HtmlBlock.exists?(@block.id)
53
- assert !HtmlBlock.exists?(["name = ?", @block.name])
54
- assert_decremented html_block_count, HtmlBlock.count
55
- assert_raise(ActiveRecord::RecordNotFound) { HtmlBlock.find(@b) }
56
- assert_nil HtmlBlock.find_by_name(@block.name)
57
-
58
- deleted_block = HtmlBlock.find_with_deleted(@block.id)
59
- assert_equal 2, deleted_block.versions.size
60
- assert_equal 2, deleted_block.version
61
- assert_equal 1, deleted_block.versions.first.version
62
- assert_equal 2, HtmlBlock::Version.count(:conditions => {:html_block_id => @block.id})
63
- end
64
-
65
- def test_delete_all
66
- HtmlBlock.delete_all(["name = ?", @block.name])
67
- assert_raise(ActiveRecord::RecordNotFound) { HtmlBlock.find(@block.id) }
68
- assert HtmlBlock.find_with_deleted(@block.id).deleted?
69
- end
70
-
71
- end
72
-
73
- class VersionedContentBlock < ActiveSupport::TestCase
74
- def setup
75
- @block = Factory(:html_block, :name => "Versioned Content Block")
76
- end
77
-
78
- def test_edit
79
- old_name = "Versioned Content Block"
80
- new_name = "New version of content block"
81
- @block.publish!
82
- @block.reload
83
- assert_equal @block.draft.name, old_name
84
- @block.name = new_name
85
- @block.save
86
- @block.reload
87
- assert_equal @block.draft.name, new_name
88
- @block.name = old_name
89
- @block.save
90
- @block.reload
91
- assert_equal @block.draft.name, old_name
92
- end
93
-
94
- def test_revert
95
- old_name = "Versioned Content Block"
96
- new_name = "New version of content block"
97
- @block.publish!
98
- @block.reload
99
- assert_equal @block.draft.name, old_name
100
- version = @block.version
101
- @block.name = new_name
102
- @block.save
103
- @block.reload
104
- assert_equal @block.draft.name, new_name
105
- @block.revert_to(version)
106
- @block.reload
107
- assert_equal @block.draft.name, old_name
108
- end
109
-
110
- end
111
-
112
- class VersionedContentBlockConnectedToAPageTest < ActiveSupport::TestCase
113
- def setup
114
- @page = Factory(:page, :section => root_section)
115
- @block = Factory(:html_block, :name => "Versioned Content Block")
116
- @page.create_connector(@block, "main")
117
- reset(:page, :block)
118
- end
119
-
120
- def test_editing_connected_to_an_unpublished_page
121
- page_version_count = Page::Version.count
122
- assert !@page.published?
123
-
124
- assert @block.update_attributes(:name => "something different")
125
- reset(:page)
126
-
127
- assert !@page.published?
128
- assert_equal 3, @page.draft.version
129
- assert_incremented page_version_count, Page::Version.count
130
- assert_match /^HtmlBlock #\d+ was Edited/, @page.draft.version_comment
131
-
132
- conns = @block.connectors.all(:order => 'id')
133
- assert_equal 2, conns.size
134
- assert_properties conns[0], :page => @page, :page_version => 2, :connectable => @block, :connectable_version => 1, :container => "main"
135
- assert_properties conns[1], :page => @page, :page_version => 3, :connectable => @block, :connectable_version => 2, :container => "main"
136
- end
137
-
138
- def test_editing_connected_to_a_published_page
139
- @page.publish!
140
- reset(:page, :block)
141
-
142
- assert @page.published?
143
- assert @block.update_attributes(:name => "something different", :publish_on_save => true)
144
- reset(:page)
145
-
146
- assert @page.published?
147
- end
148
-
149
- def test_deleting_when_connected_to_page
150
- @page.publish!
151
- reset(:page, :block)
152
-
153
- page_connector_count = @page.connectors.for_page_version(@page.draft.version).count
154
- page_version = @page.draft.version
155
-
156
- @block.destroy
157
-
158
- reset(:page)
159
-
160
- assert_decremented page_connector_count, @page.connectors.for_page_version(@page.draft.version).count
161
- assert_incremented page_version, @page.draft.version
162
- assert_match /^HtmlBlock #\d+ was Deleted/, @page.draft.version_comment
163
- end
164
-
165
- end
166
-
167
- class NonVersionedContentBlockConnectedToAPageTest < ActiveSupport::TestCase
168
- def setup
169
- @page = Factory(:page, :section => root_section)
170
- @block = DynamicPortlet.create!(:name => "Non-Versioned Content Block")
171
- @page.create_connector(@block, "main")
172
- reset(:page, :block)
173
- end
174
-
175
- def test_editing_connected_to_an_unpublished_page
176
- page_version_count = Page::Version.count
177
-
178
- assert_equal "Dynamic Portlet 'Non-Versioned Content Block' was added to the 'main' container", @page.draft.version_comment
179
- assert !@page.published?
180
-
181
- assert @block.update_attributes(:name => "something different", :publish_on_save => true)
182
- reset(:page)
183
-
184
- assert 2, @page.version
185
- assert_equal page_version_count, Page::Version.count
186
- assert !@page.published?
187
-
188
- conns = Connector.for_connectable(@block).all(:order => 'id')
189
- assert_equal 1, conns.size
190
- assert_properties conns[0], :page => @page, :page_version => 2, :connectable => @block, :connectable_version => nil, :container => "main"
191
- end
192
-
193
- def test_editing_connected_to_a_published_page
194
- @page.publish!
195
- reset(:page)
196
-
197
- assert @page.published?
198
- assert @block.update_attributes(:name => "something different", :publish_on_save => true)
199
- reset(:page)
200
-
201
- assert @page.published?
202
- end
203
- end