zen 0.2.8 → 0.3b

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 (422) hide show
  1. data/.gems +20 -0
  2. data/.mailmap +3 -2
  3. data/.rvmrc +1 -1
  4. data/.travis.yml +13 -2
  5. data/.yardopts +13 -0
  6. data/AUTHORS +1 -1
  7. data/README.md +115 -77
  8. data/Rakefile +6 -7
  9. data/bin/zen +12 -5
  10. data/guide/_static/categories/categories.png +0 -0
  11. data/guide/_static/categories/category_groups.png +0 -0
  12. data/guide/_static/categories/new_category.png +0 -0
  13. data/guide/_static/categories/new_category_group.png +0 -0
  14. data/guide/_static/comments/comments.png +0 -0
  15. data/guide/_static/comments/edit_comment.png +0 -0
  16. data/guide/_static/custom_fields/custom_field_groups.png +0 -0
  17. data/guide/_static/custom_fields/custom_field_types.png +0 -0
  18. data/guide/_static/custom_fields/custom_fields.png +0 -0
  19. data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
  20. data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
  21. data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
  22. data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
  23. data/guide/_static/menus/edit_menu.png +0 -0
  24. data/guide/_static/menus/edit_menu_item.png +0 -0
  25. data/guide/_static/menus/menu_items.png +0 -0
  26. data/guide/_static/menus/menus.png +0 -0
  27. data/guide/_static/sections/edit_entry.png +0 -0
  28. data/guide/_static/sections/edit_entry_categories.png +0 -0
  29. data/guide/_static/sections/edit_entry_general.png +0 -0
  30. data/guide/_static/sections/edit_entry_meta.png +0 -0
  31. data/guide/_static/sections/edit_section_comments.png +0 -0
  32. data/guide/_static/sections/edit_section_general.png +0 -0
  33. data/guide/_static/sections/edit_section_groups.png +0 -0
  34. data/guide/_static/sections/entries.png +0 -0
  35. data/guide/_static/sections/sections.png +0 -0
  36. data/guide/_static/settings/overview_general.png +0 -0
  37. data/guide/_static/settings/overview_security.png +0 -0
  38. data/guide/_static/settings/overview_user.png +0 -0
  39. data/guide/_static/users/edit_user.png +0 -0
  40. data/guide/_static/users/edit_user_group.png +0 -0
  41. data/guide/_static/users/edit_user_group_permissions.png +0 -0
  42. data/guide/_static/users/edit_user_permissions.png +0 -0
  43. data/guide/_static/users/overview.png +0 -0
  44. data/guide/_static/users/user_groups_overview.png +0 -0
  45. data/guide/asset_management.md +117 -0
  46. data/{CHANGELOG.md → guide/changelog.md} +42 -0
  47. data/guide/css/common.css +20 -0
  48. data/guide/getting_started.md +61 -0
  49. data/guide/hacking.md +52 -0
  50. data/guide/installation.md +44 -0
  51. data/guide/javascript.md +352 -0
  52. data/lib/vendor/sequel_sluggable.rb +137 -0
  53. data/lib/yard/tags.rb +13 -0
  54. data/lib/zen.rb +148 -78
  55. data/lib/zen/asset_groups.rb +85 -0
  56. data/lib/zen/bin/create.rb +267 -56
  57. data/lib/zen/bin/default.rb +84 -0
  58. data/lib/zen/controller/admin_controller.rb +1 -82
  59. data/lib/zen/controller/base_controller.rb +9 -5
  60. data/lib/zen/controller/frontend_controller.rb +0 -1
  61. data/lib/zen/controller/main_controller.rb +30 -42
  62. data/lib/zen/controller/preview.rb +9 -8
  63. data/lib/zen/controller/translations.rb +49 -0
  64. data/lib/zen/error.rb +17 -0
  65. data/lib/zen/event.rb +118 -0
  66. data/lib/zen/helper/asset.rb +63 -0
  67. data/lib/zen/helper/breadcrumb.rb +1 -4
  68. data/lib/zen/helper/controller.rb +73 -0
  69. data/lib/zen/helper/locale.rb +42 -0
  70. data/lib/zen/helper/message.rb +0 -3
  71. data/lib/zen/helper/search.rb +54 -0
  72. data/lib/zen/helper/stacked_aspect.rb +249 -0
  73. data/lib/zen/helper/theme.rb +3 -10
  74. data/lib/zen/language.rb +356 -181
  75. data/lib/zen/language/en/zen_general.rb +52 -0
  76. data/lib/zen/language/en/zen_models.rb +19 -0
  77. data/lib/zen/language/nl/zen_general.rb +57 -0
  78. data/lib/zen/language/nl/zen_models.rb +22 -0
  79. data/lib/zen/language/translation.rb +132 -0
  80. data/lib/zen/languages.rb +9 -0
  81. data/lib/zen/layout/admin.xhtml +3 -3
  82. data/lib/zen/layout/login.xhtml +1 -1
  83. data/lib/zen/markup.rb +189 -0
  84. data/lib/zen/model/helper.rb +65 -0
  85. data/lib/zen/model/init.rb +62 -0
  86. data/lib/zen/model/methods.rb +6 -7
  87. data/lib/zen/package.rb +312 -201
  88. data/lib/zen/package/all.rb +4 -3
  89. data/lib/zen/package/categories/lib/categories.rb +29 -41
  90. data/lib/zen/package/categories/lib/categories/controller/categories.rb +185 -130
  91. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +172 -102
  92. data/lib/zen/package/categories/lib/categories/helper/category.rb +4 -9
  93. data/lib/zen/package/categories/lib/categories/helper/category_frontend.rb +86 -0
  94. data/lib/zen/package/categories/lib/categories/language/en/categories.rb +40 -0
  95. data/lib/zen/package/categories/lib/categories/language/en/category_groups.rb +39 -0
  96. data/lib/zen/package/categories/lib/categories/language/nl/categories.rb +42 -0
  97. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.rb +42 -0
  98. data/lib/zen/package/categories/lib/categories/model/category.rb +21 -25
  99. data/lib/zen/package/categories/lib/categories/model/category_group.rb +21 -15
  100. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +25 -26
  101. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +24 -24
  102. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +18 -20
  103. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +21 -18
  104. data/lib/zen/package/comments/lib/comments.rb +30 -50
  105. data/lib/zen/package/comments/lib/comments/anti_spam.rb +138 -0
  106. data/lib/zen/package/comments/lib/comments/controller/comments.rb +159 -92
  107. data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +122 -34
  108. data/lib/zen/package/comments/lib/comments/helper/comment.rb +0 -3
  109. data/lib/zen/package/comments/lib/comments/helper/comment_frontend.rb +90 -0
  110. data/lib/zen/package/comments/lib/comments/language/en/comments.rb +57 -0
  111. data/lib/zen/package/comments/lib/comments/language/nl/comments.rb +61 -0
  112. data/lib/zen/package/comments/lib/comments/model/comment.rb +147 -49
  113. data/lib/zen/package/comments/lib/comments/model/comment_status.rb +0 -2
  114. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +37 -40
  115. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +23 -42
  116. data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +12 -4
  117. data/lib/zen/package/comments/migrations/1313851786_remove_defensio_signature.rb +11 -0
  118. data/lib/zen/package/custom_fields/lib/custom_fields.rb +40 -43
  119. data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +72 -17
  120. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +154 -118
  121. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +147 -90
  122. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +161 -131
  123. data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +4 -9
  124. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +42 -0
  125. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.rb +51 -0
  126. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.rb +60 -0
  127. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.rb +41 -0
  128. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.rb +49 -0
  129. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.rb +61 -0
  130. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +18 -23
  131. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +20 -19
  132. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +1 -3
  133. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +19 -9
  134. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +18 -15
  135. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +18 -18
  136. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +30 -24
  137. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +15 -10
  138. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +24 -19
  139. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +18 -13
  140. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +30 -20
  141. data/lib/zen/package/extensions/lib/extensions.rb +20 -0
  142. data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +41 -0
  143. data/lib/zen/package/extensions/lib/extensions/language/en/extensions.rb +23 -0
  144. data/lib/zen/package/extensions/lib/extensions/language/nl/extensions.rb +25 -0
  145. data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +86 -0
  146. data/lib/zen/package/menu.rb +109 -0
  147. data/lib/zen/package/menus/lib/menus.rb +25 -34
  148. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +143 -107
  149. data/lib/zen/package/menus/lib/menus/controller/menus.rb +166 -115
  150. data/lib/zen/package/menus/lib/menus/helper/menu.rb +2 -8
  151. data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +114 -0
  152. data/lib/zen/package/menus/lib/menus/language/en/menu_items.rb +48 -0
  153. data/lib/zen/package/menus/lib/menus/language/en/menus.rb +48 -0
  154. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.rb +48 -0
  155. data/lib/zen/package/menus/lib/menus/language/nl/menus.rb +50 -0
  156. data/lib/zen/package/menus/lib/menus/model/menu.rb +24 -17
  157. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +37 -13
  158. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +32 -25
  159. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +23 -17
  160. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +31 -26
  161. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +20 -22
  162. data/lib/zen/package/sections/lib/sections.rb +25 -68
  163. data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +178 -138
  164. data/lib/zen/package/sections/lib/sections/controller/sections.rb +173 -140
  165. data/lib/zen/package/sections/lib/sections/helper/section.rb +3 -6
  166. data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +146 -0
  167. data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +50 -0
  168. data/lib/zen/package/sections/lib/sections/language/en/sections.rb +55 -0
  169. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +50 -0
  170. data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +55 -0
  171. data/lib/zen/package/sections/lib/sections/model/section.rb +36 -36
  172. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +52 -59
  173. data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -2
  174. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +24 -21
  175. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +24 -26
  176. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +33 -31
  177. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +24 -25
  178. data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +14 -10
  179. data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +12 -6
  180. data/lib/zen/package/settings/lib/settings.rb +25 -120
  181. data/lib/zen/package/settings/lib/settings/blue_form_parameters.rb +157 -0
  182. data/lib/zen/package/settings/lib/settings/controller/settings.rb +94 -69
  183. data/lib/zen/package/settings/lib/settings/language/en/settings.rb +41 -0
  184. data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +41 -0
  185. data/lib/zen/package/settings/lib/settings/model/setting.rb +0 -2
  186. data/lib/zen/package/settings/lib/settings/setting.rb +379 -0
  187. data/lib/zen/package/settings/lib/settings/setting_groups.rb +11 -0
  188. data/lib/zen/package/settings/lib/settings/settings.rb +83 -0
  189. data/lib/zen/package/settings/lib/settings/settings_group.rb +84 -0
  190. data/lib/zen/package/settings/lib/settings/singleton_methods.rb +35 -0
  191. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +15 -57
  192. data/lib/zen/package/settings/migrations/1321197919_remove_unused_columns.rb +17 -0
  193. data/lib/zen/package/users/lib/users.rb +51 -36
  194. data/lib/zen/package/users/lib/users/controller/user_groups.rb +133 -98
  195. data/lib/zen/package/users/lib/users/controller/users.rb +253 -136
  196. data/lib/zen/package/users/lib/users/helper/access.rb +102 -0
  197. data/lib/zen/package/users/lib/users/helper/acl.rb +113 -0
  198. data/lib/zen/package/users/lib/users/helper/users.rb +41 -24
  199. data/lib/zen/package/users/lib/users/language/en/permissions.rb +16 -0
  200. data/lib/zen/package/users/lib/users/language/en/user_groups.rb +39 -0
  201. data/lib/zen/package/users/lib/users/language/en/users.rb +73 -0
  202. data/lib/zen/package/users/lib/users/language/nl/permissions.rb +16 -0
  203. data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +41 -0
  204. data/lib/zen/package/users/lib/users/language/nl/users.rb +74 -0
  205. data/lib/zen/package/users/lib/users/model/permission.rb +28 -0
  206. data/lib/zen/package/users/lib/users/model/user.rb +104 -65
  207. data/lib/zen/package/users/lib/users/model/user_group.rb +28 -24
  208. data/lib/zen/package/users/lib/users/model/user_status.rb +27 -0
  209. data/lib/zen/package/users/lib/users/public/admin/css/users/permissions.css +22 -0
  210. data/lib/zen/package/users/lib/users/public/admin/js/users/permissions.js +33 -0
  211. data/lib/zen/package/users/lib/users/settings.rb +19 -0
  212. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +58 -28
  213. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +19 -15
  214. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +93 -62
  215. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +23 -36
  216. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +13 -6
  217. data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +33 -0
  218. data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +52 -0
  219. data/lib/zen/package/users/migrations/1313786058_update_default_date.rb +41 -0
  220. data/lib/zen/package/users/migrations/1316432327_permissions.rb +36 -0
  221. data/lib/zen/package/users/migrations/1320272365_status_ids.rb +67 -0
  222. data/lib/zen/public/admin/css/zen/buttons.css +3 -11
  223. data/lib/zen/public/admin/css/zen/datepicker.css +23 -13
  224. data/lib/zen/public/admin/css/zen/editor.css +6 -14
  225. data/lib/zen/public/admin/css/zen/forms.css +19 -12
  226. data/lib/zen/public/admin/css/zen/general.css +22 -18
  227. data/lib/zen/public/admin/css/zen/grid.css +1 -20
  228. data/lib/zen/public/admin/css/zen/layout.css +26 -11
  229. data/lib/zen/public/admin/css/zen/messages.css +3 -10
  230. data/lib/zen/public/admin/css/zen/reset.css +13 -15
  231. data/lib/zen/public/admin/css/zen/tables.css +8 -10
  232. data/lib/zen/public/admin/css/zen/tabs.css +2 -10
  233. data/lib/zen/public/admin/css/zen/window.css +2 -8
  234. data/lib/zen/public/admin/js/vendor/datepicker.js +540 -240
  235. data/lib/zen/public/admin/js/vendor/mootools/core.js +273 -283
  236. data/lib/zen/public/admin/js/vendor/mootools/more.js +131 -136
  237. data/lib/zen/public/admin/js/zen/index.js +8 -14
  238. data/lib/zen/public/admin/js/zen/lib/editor.js +36 -33
  239. data/lib/zen/public/admin/js/zen/lib/editor/markdown.js +0 -6
  240. data/lib/zen/public/admin/js/zen/lib/editor/textile.js +0 -6
  241. data/lib/zen/public/admin/js/zen/lib/html_table.js +0 -5
  242. data/lib/zen/public/admin/js/zen/lib/tabs.js +22 -79
  243. data/lib/zen/public/admin/js/zen/lib/window.js +12 -22
  244. data/lib/zen/spec/bacon/color_output.rb +1 -1
  245. data/lib/zen/spec/helper.rb +6 -11
  246. data/lib/zen/spec/simplecov.rb +3 -3
  247. data/lib/zen/task.rb +0 -1
  248. data/lib/zen/task/build.rake +46 -26
  249. data/lib/zen/task/clean.rake +14 -7
  250. data/lib/zen/task/db.rake +31 -29
  251. data/lib/zen/task/package.rake +19 -23
  252. data/lib/zen/task/proto.rake +3 -5
  253. data/lib/zen/task/setup.rake +4 -0
  254. data/lib/zen/task/test.rake +31 -6
  255. data/lib/zen/task/theme.rake +13 -19
  256. data/lib/zen/theme.rb +377 -52
  257. data/lib/zen/validation.rb +22 -30
  258. data/lib/zen/version.rb +1 -2
  259. data/lib/zen/view/bottom.xhtml +9 -1
  260. data/lib/zen/view/head.xhtml +1 -1
  261. data/lib/zen/view/main.xhtml +1 -1
  262. data/lib/zen/view/search.xhtml +9 -0
  263. data/proto/app/Rakefile +0 -1
  264. data/proto/app/app.rb +21 -16
  265. data/proto/app/config/config.rb.erb +41 -0
  266. data/proto/app/config/{database.rb → database.rb.erb} +17 -14
  267. data/proto/app/config/middlewares.rb +1 -1
  268. data/proto/app/theme/default/index.xhtml +25 -0
  269. data/proto/app/theme/theme.rb +19 -0
  270. data/proto/app/{log/database/dev → tmp}/.gitkeep +0 -0
  271. data/proto/migration.rb +3 -5
  272. data/proto/rack/thin.yml +41 -0
  273. data/proto/rack/unicorn.rb +38 -0
  274. data/spec/Rakefile +15 -11
  275. data/spec/fixtures/zen/helper/controller.rb +13 -0
  276. data/spec/fixtures/zen/helper/locale.rb +7 -0
  277. data/spec/fixtures/zen/helper/message.rb +0 -4
  278. data/spec/fixtures/zen/language.rb +31 -0
  279. data/spec/fixtures/zen/language/en/spec.rb +11 -0
  280. data/spec/fixtures/zen/language/nl/spec.rb +11 -0
  281. data/spec/fixtures/zen/package.rb +0 -10
  282. data/spec/fixtures/zen/package/categories/helper/category_frontend.rb +16 -0
  283. data/spec/fixtures/zen/package/comments/helper/comment_frontend.rb +16 -0
  284. data/spec/fixtures/zen/package/sections/helper/section_frontend.rb +16 -0
  285. data/spec/fixtures/zen/package/settings/controller/settings.rb +17 -0
  286. data/spec/fixtures/zen/package/users/helper/access.rb +18 -0
  287. data/spec/fixtures/zen/package/users/helper/acl.rb +23 -0
  288. data/spec/fixtures/zen/theme/{default-section → default}/index.xhtml +0 -0
  289. data/spec/helper.rb +12 -27
  290. data/{proto/app/log/database/live → spec/public}/.gitkeep +0 -0
  291. data/spec/zen/controller/admin_controller.rb +5 -6
  292. data/spec/zen/controller/main_controller.rb +29 -35
  293. data/spec/zen/controller/preview.rb +9 -10
  294. data/spec/zen/event.rb +44 -0
  295. data/spec/zen/helper/breadcrumb.rb +4 -5
  296. data/spec/zen/helper/controller.rb +21 -0
  297. data/spec/zen/helper/locale.rb +25 -0
  298. data/spec/zen/helper/message.rb +4 -11
  299. data/spec/zen/helper/theme.rb +11 -14
  300. data/spec/zen/language.rb +48 -22
  301. data/spec/zen/markup.rb +39 -0
  302. data/spec/zen/package.rb +48 -11
  303. data/spec/zen/package/categories/controller/categories.rb +99 -45
  304. data/spec/zen/package/categories/controller/category_groups.rb +109 -33
  305. data/spec/zen/package/categories/helper/category.rb +19 -32
  306. data/spec/zen/package/categories/helper/category_frontend.rb +61 -0
  307. data/spec/zen/package/comments/anti_spam.rb +50 -0
  308. data/spec/zen/package/comments/controller/comments.rb +121 -61
  309. data/spec/zen/package/comments/controller/comments_form.rb +120 -94
  310. data/spec/zen/package/comments/helper/comment.rb +13 -13
  311. data/spec/zen/package/comments/helper/comment_frontend.rb +92 -0
  312. data/spec/zen/package/custom_fields/blue_form_parameters.rb +50 -50
  313. data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +135 -43
  314. data/spec/zen/package/custom_fields/controller/custom_field_types.rb +153 -48
  315. data/spec/zen/package/custom_fields/controller/custom_fields.rb +130 -51
  316. data/spec/zen/package/custom_fields/helper/custom_field.rb +8 -8
  317. data/spec/zen/package/extensions/controller/extensions.rb +38 -0
  318. data/spec/zen/package/menus/controller/menu_items.rb +121 -42
  319. data/spec/zen/package/menus/controller/menus.rb +125 -38
  320. data/spec/zen/package/menus/helper/menu.rb +26 -26
  321. data/spec/zen/package/menus/helper/menu_frontend.rb +104 -0
  322. data/spec/zen/package/sections/controller/section_entries.rb +145 -89
  323. data/spec/zen/package/sections/controller/sections.rb +130 -35
  324. data/spec/zen/package/sections/helper/section.rb +27 -38
  325. data/spec/zen/package/sections/helper/section_frontend.rb +160 -0
  326. data/spec/zen/package/settings/controller/settings.rb +73 -8
  327. data/spec/zen/package/settings/settings.rb +119 -0
  328. data/spec/zen/package/users/controller/user_groups.rb +134 -34
  329. data/spec/zen/package/users/controller/users.rb +189 -44
  330. data/spec/zen/package/users/helper/access.rb +29 -0
  331. data/spec/zen/package/users/helper/acl.rb +46 -0
  332. data/spec/zen/package/users/helper/users.rb +20 -64
  333. data/spec/zen/theme.rb +7 -9
  334. data/spec/zen/validation.rb +1 -2
  335. data/zen.gemspec +25 -22
  336. metadata +303 -222
  337. data/lib/zen/asset.rb +0 -292
  338. data/lib/zen/bin/runner.rb +0 -118
  339. data/lib/zen/error/language_error.rb +0 -10
  340. data/lib/zen/error/package_error.rb +0 -10
  341. data/lib/zen/error/plugin_error.rb +0 -10
  342. data/lib/zen/error/theme_error.rb +0 -10
  343. data/lib/zen/error/validation_error.rb +0 -10
  344. data/lib/zen/helper/acl.rb +0 -182
  345. data/lib/zen/helper/blue_form_vendor.rb +0 -689
  346. data/lib/zen/language/en/zen_general.yml +0 -25
  347. data/lib/zen/language/en/zen_models.yml +0 -13
  348. data/lib/zen/language/nl/zen_general.yml +0 -25
  349. data/lib/zen/language/nl/zen_models.yml +0 -13
  350. data/lib/zen/model/settings.rb +0 -78
  351. data/lib/zen/package/base.rb +0 -62
  352. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +0 -36
  353. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +0 -34
  354. data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +0 -40
  355. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +0 -34
  356. data/lib/zen/package/categories/lib/categories/plugin/categories.rb +0 -141
  357. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +0 -48
  358. data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +0 -50
  359. data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +0 -156
  360. data/lib/zen/package/comments/lib/comments/plugin/comments.rb +0 -115
  361. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +0 -33
  362. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +0 -40
  363. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +0 -54
  364. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +0 -33
  365. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +0 -40
  366. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +0 -54
  367. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +0 -41
  368. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +0 -40
  369. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +0 -41
  370. data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +0 -40
  371. data/lib/zen/package/menus/lib/menus/plugin/menus.rb +0 -152
  372. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +0 -44
  373. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -48
  374. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +0 -44
  375. data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +0 -48
  376. data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +0 -244
  377. data/lib/zen/package/sections/lib/sections/plugin/sections.rb +0 -87
  378. data/lib/zen/package/settings/lib/settings/language/en/settings.yml +0 -36
  379. data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +0 -37
  380. data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +0 -39
  381. data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +0 -133
  382. data/lib/zen/package/settings/lib/settings/plugin/settings.rb +0 -251
  383. data/lib/zen/package/users/lib/users/controller/access_rules.rb +0 -284
  384. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +0 -38
  385. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +0 -32
  386. data/lib/zen/package/users/lib/users/language/en/users.yml +0 -57
  387. data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +0 -38
  388. data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +0 -32
  389. data/lib/zen/package/users/lib/users/language/nl/users.yml +0 -57
  390. data/lib/zen/package/users/lib/users/model/access_rule.rb +0 -42
  391. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +0 -65
  392. data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +0 -49
  393. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +0 -120
  394. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +0 -102
  395. data/lib/zen/plugin.rb +0 -182
  396. data/lib/zen/plugin/base.rb +0 -46
  397. data/lib/zen/plugin/helper.rb +0 -47
  398. data/lib/zen/plugin/markup/lib/markup.rb +0 -14
  399. data/lib/zen/plugin/markup/lib/markup/language/en/markup.yml +0 -6
  400. data/lib/zen/plugin/markup/lib/markup/markup.rb +0 -165
  401. data/lib/zen/public/admin/js/zen/lib/asset.js +0 -111
  402. data/lib/zen/task/plugin.rake +0 -18
  403. data/lib/zen/theme/base.rb +0 -65
  404. data/proto/app/config/config.rb +0 -18
  405. data/spec/fixtures/zen/language/en/spec.yml +0 -10
  406. data/spec/fixtures/zen/language/nl/spec.yml +0 -7
  407. data/spec/fixtures/zen/package/settings/plugin/settings.rb +0 -20
  408. data/spec/zen/asset.rb +0 -97
  409. data/spec/zen/bin/create.rb +0 -89
  410. data/spec/zen/bin/runner.rb +0 -47
  411. data/spec/zen/helper/acl.rb +0 -149
  412. data/spec/zen/package/categories/plugin/categories.rb +0 -92
  413. data/spec/zen/package/comments/plugin/anti_spam.rb +0 -59
  414. data/spec/zen/package/comments/plugin/comments.rb +0 -107
  415. data/spec/zen/package/menus/plugin/menus.rb +0 -120
  416. data/spec/zen/package/sections/plugin/section_entries.rb +0 -161
  417. data/spec/zen/package/sections/plugin/sections.rb +0 -75
  418. data/spec/zen/package/settings/plugin/settings.rb +0 -33
  419. data/spec/zen/package/users/controller/access_rules.rb +0 -90
  420. data/spec/zen/plugin.rb +0 -64
  421. data/spec/zen/plugin/helper.rb +0 -11
  422. data/spec/zen/plugin/markup.rb +0 -44
@@ -17,15 +17,15 @@ describe('Ramaze::Helper::CustomField') do
17
17
  :custom_field_type_id => type.id
18
18
  )
19
19
 
20
- @group.name.should === 'Spec group'
21
- @field.name.should === 'Spec field'
20
+ @group.name.should == 'Spec group'
21
+ @field.name.should == 'Spec field'
22
22
 
23
23
  it('Validate a valid custom field group') do
24
24
  url = CustomFields::Controller::CustomFieldGroups.r(:edit, @group.id).to_s
25
25
 
26
26
  visit(url)
27
27
 
28
- current_path.should === url
28
+ current_path.should == url
29
29
  end
30
30
 
31
31
  it('Validate an invalid custom field group') do
@@ -37,7 +37,7 @@ describe('Ramaze::Helper::CustomField') do
37
37
 
38
38
  visit(url)
39
39
 
40
- current_path.should === index
40
+ current_path.should == index
41
41
  end
42
42
 
43
43
  it('Validate a valid custom field') do
@@ -46,7 +46,7 @@ describe('Ramaze::Helper::CustomField') do
46
46
 
47
47
  visit(url)
48
48
 
49
- current_path.should === url
49
+ current_path.should == url
50
50
  end
51
51
 
52
52
  it('Validate an invalid custom field') do
@@ -57,7 +57,7 @@ describe('Ramaze::Helper::CustomField') do
57
57
 
58
58
  visit(url)
59
59
 
60
- current_path.should === index
60
+ current_path.should == index
61
61
  end
62
62
 
63
63
  it('Validate a valid custom field type') do
@@ -66,7 +66,7 @@ describe('Ramaze::Helper::CustomField') do
66
66
 
67
67
  visit(url)
68
68
 
69
- current_path.should === url
69
+ current_path.should == url
70
70
  end
71
71
 
72
72
  it('Validate an invalid custom field type') do
@@ -76,7 +76,7 @@ describe('Ramaze::Helper::CustomField') do
76
76
  CustomFields::Controller::CustomFieldTypes.r(:edit, type.id + 100).to_s
77
77
  )
78
78
 
79
- current_path.should === CustomFields::Controller::CustomFieldTypes.r(
79
+ current_path.should == CustomFields::Controller::CustomFieldTypes.r(
80
80
  :index
81
81
  ).to_s
82
82
  end
@@ -0,0 +1,38 @@
1
+ require File.expand_path('../../../../../helper', __FILE__)
2
+ require File.join(Zen::FIXTURES, 'theme', 'theme')
3
+
4
+ describe('Extensions::Controller::Extensions') do
5
+ behaves_like :capybara
6
+
7
+ index_url = Extensions::Controller::Extensions.r(:index).to_s
8
+
9
+ it('Show a list of all the installed packages') do
10
+ visit(index_url)
11
+
12
+ Zen::Package::REGISTERED.each do |name, package|
13
+ page.has_content?(package.title).should == true
14
+ page.has_content?(package.about).should == true
15
+ end
16
+ end
17
+
18
+ it('Show a list of all the installed themes') do
19
+ visit(index_url)
20
+
21
+ get_setting(:theme).value = 'spec_theme'
22
+
23
+ Zen::Theme::REGISTERED.each do |name, theme|
24
+ page.has_content?(theme.name).should == true
25
+ page.has_content?(theme.about).should == true
26
+ end
27
+
28
+ get_setting(:theme).value = ''
29
+ end
30
+
31
+ it('Show a list of all the installed languages') do
32
+ visit(index_url)
33
+
34
+ Zen::Language::REGISTERED.each do |name, lang|
35
+ page.has_content?(lang.title).should == true
36
+ end
37
+ end
38
+ end
@@ -1,21 +1,22 @@
1
1
  require File.expand_path('../../../../../helper', __FILE__)
2
2
 
3
- Zen::Language.load('menu_items')
4
-
5
3
  describe("Menus::Controller::MenuItems") do
6
4
  behaves_like :capybara
7
5
 
8
- @menu = Menus::Model::Menu.create(:name => 'Spec menu')
6
+ menu = Menus::Model::Menu.create(:name => 'Spec menu')
7
+ index_url = Menus::Controller::MenuItems.r(:index, menu.id).to_s
8
+ edit_url = Menus::Controller::MenuItems.r(:edit, menu.id).to_s
9
+ new_button = lang('menu_items.buttons.new')
10
+ save_button = lang('menu_items.buttons.save')
11
+ delete_button = lang('menu_items.buttons.delete')
9
12
 
10
- it("No menu items should exist") do
11
- menu_id = @menu.id
12
- index_url = Menus::Controller::MenuItems.r(:index, menu_id).to_s
13
- message = lang('menu_items.messages.no_items')
13
+ it('Find no existing menu items') do
14
+ message = lang('menu_items.messages.no_items')
14
15
 
15
16
  visit(index_url)
16
17
 
17
- page.has_content?(message).should === true
18
- page.has_selector?('table tbody tr').should === false
18
+ page.has_content?(message).should == true
19
+ page.has_selector?('table tbody tr').should == false
19
20
  end
20
21
 
21
22
  it('Submit a form without a CSRF token') do
@@ -23,17 +24,11 @@ describe("Menus::Controller::MenuItems") do
23
24
  Menus::Controller::MenuItems.r(:save).to_s
24
25
  )
25
26
 
26
- response.body.include?(lang('zen_general.errors.csrf')).should === true
27
- response.status.should === 403
27
+ response.body.include?(lang('zen_general.errors.csrf')).should == true
28
+ response.status.should == 403
28
29
  end
29
30
 
30
31
  it("Create a new menu item") do
31
- menu_id = @menu.id
32
- index_url = Menus::Controller::MenuItems.r(:index, menu_id).to_s
33
- edit_url = Menus::Controller::MenuItems.r(:edit, menu_id).to_s
34
- new_button = lang('menu_items.buttons.new')
35
- save_button = lang('menu_items.buttons.save')
36
-
37
32
  visit(index_url)
38
33
  click_link(new_button)
39
34
 
@@ -47,11 +42,30 @@ describe("Menus::Controller::MenuItems") do
47
42
  current_path.should =~ /#{edit_url}\/[0-9]+/
48
43
  end
49
44
 
50
- it("Edit an existing menu item") do
51
- menu_id = @menu.id
52
- index_url = Menus::Controller::MenuItems.r(:index, menu_id).to_s
53
- save_button = lang('menu_items.buttons.save')
45
+ it('Search for a menu item') do
46
+ search_button = lang('zen_general.buttons.search')
47
+ error = lang('zen_general.errors.invalid_search')
48
+
49
+ visit(index_url)
50
+
51
+ within('#search_form') do
52
+ fill_in('query', :with => 'Spec menu item')
53
+ click_on(search_button)
54
+ end
54
55
 
56
+ page.has_content?(error).should == false
57
+ page.has_content?('Spec menu item').should == true
58
+
59
+ within('#search_form') do
60
+ fill_in('query', :with => 'does not exist')
61
+ click_on(search_button)
62
+ end
63
+
64
+ page.has_content?(error).should == false
65
+ page.has_content?('Spec menu item').should == false
66
+ end
67
+
68
+ it("Edit an existing menu item") do
55
69
  visit(index_url)
56
70
  click_link('Spec menu item')
57
71
 
@@ -60,14 +74,10 @@ describe("Menus::Controller::MenuItems") do
60
74
  click_on(save_button)
61
75
  end
62
76
 
63
- page.find('input[name="name"]').value.should === 'Spec menu item modified'
77
+ page.find('input[name="name"]').value.should == 'Spec menu item modified'
64
78
  end
65
79
 
66
80
  it('Edit an existing menu item with invalid data') do
67
- menu_id = @menu.id
68
- index_url = Menus::Controller::MenuItems.r(:index, menu_id).to_s
69
- save_button = lang('menu_items.buttons.save')
70
-
71
81
  visit(index_url)
72
82
  click_link('Spec menu item')
73
83
 
@@ -77,34 +87,103 @@ describe("Menus::Controller::MenuItems") do
77
87
  click_on(save_button)
78
88
  end
79
89
 
80
- page.find('input[name="name"]').value.should === 'xxx'
81
- page.has_selector?('span.error').should === true
90
+ page.find('input[name="name"]').value.should == 'xxx'
91
+ page.has_selector?('span.error').should == true
82
92
  end
83
93
 
84
- it('Try to delete a set of items without IDs') do
85
- menu_id = @menu.id
86
- index_url = Menus::Controller::MenuItems.r(:index, menu_id).to_s
87
- delete_button = lang('menu_items.buttons.delete')
88
-
94
+ it('Fail to delete a set of items without an ID') do
89
95
  visit(index_url)
90
96
  click_on(delete_button)
91
97
 
92
- page.has_selector?('input[name="menu_item_ids[]"]').should === true
98
+ page.has_selector?('input[name="menu_item_ids[]"]').should == true
93
99
  end
94
100
 
95
101
  it("Delete an existing menu item") do
96
- menu_id = @menu.id
97
- index_url = Menus::Controller::MenuItems.r(:index, menu_id).to_s
98
- message = lang('menu_items.messages.no_items')
99
- delete_button = lang('menu_items.buttons.delete')
102
+ message = lang('menu_items.messages.no_items')
100
103
 
101
104
  visit(index_url)
102
105
  check('menu_item_ids[]')
103
106
  click_on(delete_button)
104
107
 
105
- page.has_selector?('table tbody tr').should === false
106
- page.has_content?(message).should === true
108
+ page.has_selector?('table tbody tr').should == false
109
+ page.has_content?(message).should == true
110
+ end
111
+
112
+ it('Call the event new_menu_item (before and after)') do
113
+ event_name = nil
114
+
115
+ Zen::Event.listen(:before_new_menu_item) do |menu|
116
+ menu.name += ' with event'
117
+ end
118
+
119
+ Zen::Event.listen(:after_new_menu_item) do |menu|
120
+ event_name = menu.name
121
+ end
122
+
123
+ visit(index_url)
124
+ click_on(new_button)
125
+
126
+ within('#menu_item_form') do
127
+ fill_in('name', :with => 'Menu item')
128
+ fill_in('url' , :with => '/')
129
+ click_on(save_button)
130
+ end
131
+
132
+ page.has_selector?('span.error').should == false
133
+ page.find('input[name="name"]').value.should == 'Menu item with event'
134
+
135
+ Zen::Event.delete(:before_new_menu_item, :after_new_menu_item)
136
+ end
137
+
138
+ it('Call the event edit_menu_item (before and after)') do
139
+ event_name = nil
140
+
141
+ Zen::Event.listen(:before_edit_menu_item) do |menu|
142
+ menu.name = 'Menu item modified'
143
+ end
144
+
145
+ Zen::Event.listen(:after_edit_menu_item) do |menu|
146
+ event_name = menu.name
147
+ end
148
+
149
+ visit(index_url)
150
+ click_on('Menu item with event')
151
+
152
+ within('#menu_item_form') do
153
+ click_on(save_button)
154
+ end
155
+
156
+ page.has_selector?('span.error').should == false
157
+ page.find('input[name="name"]').value.should == 'Menu item modified'
158
+ event_name.should == 'Menu item modified'
159
+
160
+ Zen::Event.delete(:before_edit_menu_item, :after_edit_menu_item)
161
+ end
162
+
163
+ it('Call the event delete_menu_item (before and after)') do
164
+ event_name = nil
165
+ event_name2 = nil
166
+ message = lang('menu_items.messages.no_items')
167
+
168
+ Zen::Event.listen(:before_delete_menu_item) do |menu|
169
+ event_name = menu.name
170
+ end
171
+
172
+ Zen::Event.listen(:after_delete_menu_item) do |menu|
173
+ event_name2 = menu.name
174
+ end
175
+
176
+ visit(index_url)
177
+ check('menu_item_ids[]')
178
+ click_on(delete_button)
179
+
180
+ page.has_selector?('table tbody tr').should == false
181
+ page.has_content?(message).should == true
182
+ event_name.should == 'Menu item modified'
183
+ event_name2.should == event_name
184
+
185
+ Zen::Event.delete(:before_delete_menu_item, :after_edit_menu_item)
107
186
  end
108
187
 
109
- @menu.destroy
110
- end # describe
188
+ menu.destroy
189
+ end
@@ -5,14 +5,20 @@ Zen::Language.load('menus')
5
5
  describe("Menus::Controller::Menus") do
6
6
  behaves_like :capybara
7
7
 
8
- it("No menus should exist") do
9
- index_url = Menus::Controller::Menus.r(:index).to_s
10
- message = lang('menus.messages.no_menus')
8
+ index_url = Menus::Controller::Menus.r(:index).to_s
9
+ edit_url = Menus::Controller::Menus.r(:edit).to_s
10
+ new_url = Menus::Controller::Menus.r(:new).to_s
11
+ new_button = lang('menus.buttons.new')
12
+ save_button = lang('menus.buttons.save')
13
+ delete_button = lang('menus.buttons.delete')
14
+
15
+ it('Find no existing menus') do
16
+ message = lang('menus.messages.no_menus')
11
17
 
12
18
  visit(index_url)
13
19
 
14
- page.has_content?(message).should === true
15
- page.has_selector?('table tbody tr').should === false
20
+ page.has_content?(message).should == true
21
+ page.has_selector?('table tbody tr').should == false
16
22
  end
17
23
 
18
24
  it('Submit a form without a CSRF token') do
@@ -20,20 +26,15 @@ describe("Menus::Controller::Menus") do
20
26
  Menus::Controller::Menus.r(:save).to_s
21
27
  )
22
28
 
23
- response.body.include?(lang('zen_general.errors.csrf')).should === true
24
- response.status.should === 403
29
+ response.body.include?(lang('zen_general.errors.csrf')).should == true
30
+ response.status.should == 403
25
31
  end
26
32
 
27
33
  it("Create a new menu") do
28
- index_url = Menus::Controller::Menus.r(:index).to_s
29
- new_url = Menus::Controller::Menus.r(:new).to_s
30
- new_button = lang('menus.buttons.new')
31
- save_button = lang('menus.buttons.save')
32
-
33
34
  visit(index_url)
34
35
  click_link(new_button)
35
36
 
36
- current_path.should === new_url
37
+ current_path.should == new_url
37
38
 
38
39
  within('#menu_form') do
39
40
  fill_in('name' , :with => 'Spec menu')
@@ -43,16 +44,35 @@ describe("Menus::Controller::Menus") do
43
44
  click_on(save_button)
44
45
  end
45
46
 
46
- page.find('input[name="name"]').value.should === 'Spec menu'
47
- page.find('input[name="html_class"]').value.should === 'spec_class'
48
- page.find('input[name="html_id"]').value.should === 'spec_id'
47
+ page.find('input[name="name"]').value.should == 'Spec menu'
48
+ page.find('input[name="html_class"]').value.should == 'spec_class'
49
+ page.find('input[name="html_id"]').value.should == 'spec_id'
49
50
  end
50
51
 
51
- it("Edit an existing menu") do
52
- index_url = Menus::Controller::Menus.r(:index).to_s
53
- save_button = lang('menus.buttons.save')
54
- edit_url = Menus::Controller::Menus.r(:edit).to_s
52
+ it('Search for a menu') do
53
+ search_button = lang('zen_general.buttons.search')
54
+ error = lang('zen_general.errors.invalid_search')
55
+
56
+ visit(index_url)
57
+
58
+ within('#search_form') do
59
+ fill_in('query', :with => 'Spec menu')
60
+ click_on(search_button)
61
+ end
55
62
 
63
+ page.has_content?(error).should == false
64
+ page.has_content?('Spec menu').should == true
65
+
66
+ within('#search_form') do
67
+ fill_in('query', :with => 'does not exist')
68
+ click_on(search_button)
69
+ end
70
+
71
+ page.has_content?(error).should == false
72
+ page.has_content?('Spec menu').should == false
73
+ end
74
+
75
+ it("Edit an existing menu") do
56
76
  visit(index_url)
57
77
  click_link('Spec menu')
58
78
 
@@ -63,14 +83,10 @@ describe("Menus::Controller::Menus") do
63
83
  click_on(save_button)
64
84
  end
65
85
 
66
- page.find('input[name="name"]').value.should === 'Spec menu modified'
86
+ page.find('input[name="name"]').value.should == 'Spec menu modified'
67
87
  end
68
88
 
69
89
  it("Edit an existing menu with invalid data") do
70
- index_url = Menus::Controller::Menus.r(:index).to_s
71
- save_button = lang('menus.buttons.save')
72
- edit_url = Menus::Controller::Menus.r(:edit).to_s
73
-
74
90
  visit(index_url)
75
91
  click_link('Spec menu')
76
92
 
@@ -81,30 +97,101 @@ describe("Menus::Controller::Menus") do
81
97
  click_on(save_button)
82
98
  end
83
99
 
84
- page.find('input[name="name"]').value.should === ''
85
- page.has_selector?('span.error').should === true
100
+ page.find('input[name="name"]').value.should == ''
101
+ page.has_selector?('span.error').should == true
86
102
  end
87
103
 
88
- it('Try to delete a set of menus without IDs') do
89
- index_url = Menus::Controller::Menus.r(:index).to_s
90
- delete_button = lang('menus.buttons.delete')
91
-
104
+ it('Fail to delete a set of menus without IDs') do
92
105
  visit(index_url)
93
106
  click_on(delete_button)
94
107
 
95
- page.has_selector?('input[name="menu_ids[]"]').should === true
108
+ page.has_selector?('input[name="menu_ids[]"]').should == true
96
109
  end
97
110
 
98
111
  it("Delete an existing menu") do
99
- index_url = Menus::Controller::Menus.r(:index).to_s
100
- delete_button = lang('menus.buttons.delete')
101
- message = lang('menus.messages.no_menus')
112
+ message = lang('menus.messages.no_menus')
102
113
 
103
114
  visit(index_url)
104
115
  check('menu_ids[]')
105
116
  click_on(delete_button)
106
117
 
107
- page.has_content?(message).should === true
108
- page.has_selector?('table tbody tr').should === false
118
+ page.has_content?(message).should == true
119
+ page.has_selector?('table tbody tr').should == false
120
+ end
121
+
122
+ it('Call the event new_menu (before and after)') do
123
+ event_name = nil
124
+
125
+ Zen::Event.listen(:before_new_menu) do |menu|
126
+ menu.name += ' with event'
127
+ end
128
+
129
+ Zen::Event.listen(:after_new_menu) do |menu|
130
+ event_name = menu.name
131
+ end
132
+
133
+ visit(index_url)
134
+ click_on(new_button)
135
+
136
+ within('#menu_form') do
137
+ fill_in('name', :with => 'Menu')
138
+ click_on(save_button)
139
+ end
140
+
141
+ page.has_selector?('span.error').should == false
142
+ page.find('input[name="name"]').value.should == 'Menu with event'
143
+ event_name.should == 'Menu with event'
144
+
145
+ Zen::Event.delete(:before_new_menu, :after_new_menu)
146
+ end
147
+
148
+ it('Call the event edit_menu (before and after)') do
149
+ event_name = nil
150
+
151
+ Zen::Event.listen(:before_edit_menu) do |menu|
152
+ menu.name = 'Menu modified'
153
+ end
154
+
155
+ Zen::Event.listen(:after_edit_menu) do |menu|
156
+ event_name = menu.name
157
+ end
158
+
159
+ visit(index_url)
160
+ click_on('Menu with event')
161
+
162
+ within('#menu_form') do
163
+ click_on(save_button)
164
+ end
165
+
166
+ page.has_selector?('span.error').should == false
167
+ page.find('input[name="name"]').value.should == 'Menu modified'
168
+ event_name.should == 'Menu modified'
169
+
170
+ Zen::Event.delete(:before_edit_menu, :after_edit_menu)
171
+ end
172
+
173
+ it('Call the event delete_menu (before and after)') do
174
+ event_name = nil
175
+ event_name2 = nil
176
+ message = lang('menus.messages.no_menus')
177
+
178
+ Zen::Event.listen(:before_delete_menu) do |menu|
179
+ event_name = menu.name
180
+ end
181
+
182
+ Zen::Event.listen(:after_delete_menu) do |menu|
183
+ event_name2 = menu.name
184
+ end
185
+
186
+ visit(index_url)
187
+ check('menu_ids[]')
188
+ click_on(delete_button)
189
+
190
+ page.has_selector?('table tbody tr').should == false
191
+ page.has_content?(message).should == true
192
+ event_name.should == 'Menu modified'
193
+ event_name2.should == event_name
194
+
195
+ Zen::Event.delete(:before_delete_menu, :after_delete_menu)
109
196
  end
110
- end # describe
197
+ end