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
@@ -3,42 +3,43 @@ require File.expand_path('../../../../../helper', __FILE__)
3
3
  describe('CustomFields::Controller::CustomFieldTypes') do
4
4
  behaves_like :capybara
5
5
 
6
+ index_url = CustomFields::Controller::CustomFieldTypes.r(:index).to_s
7
+ new_url = CustomFields::Controller::CustomFieldTypes.r(:new).to_s
8
+ edit_url = CustomFields::Controller::CustomFieldTypes.r(:edit).to_s
9
+ new_button = lang('custom_field_types.buttons.new')
10
+ save_button = lang('custom_field_types.buttons.save')
11
+ delete_button = lang('custom_field_types.buttons.delete')
12
+
6
13
  it('Submit a form without a CSRF token') do
7
14
  response = page.driver.post(
8
15
  CustomFields::Controller::CustomFieldTypes.r(:save).to_s
9
16
  )
10
17
 
11
- response.body.include?(lang('zen_general.errors.csrf')).should === true
12
- response.status.should === 403
18
+ response.body.include?(lang('zen_general.errors.csrf')).should == true
19
+ response.status.should == 403
13
20
  end
14
21
 
15
- it('A number of field types should exist') do
16
- index_url = CustomFields::Controller::CustomFieldTypes.r(:index).to_s
17
- message = lang('custom_field_types.messages.no_field_types')
18
- rows = CustomFields::Model::CustomFieldType.count
22
+ it('Find a number of field types') do
23
+ message = lang('custom_field_types.messages.no_field_types')
24
+ rows = CustomFields::Model::CustomFieldType.count
19
25
 
20
26
  visit(index_url)
21
27
 
22
- current_path.should === index_url
23
- page.has_content?(message).should === false
24
- page.has_selector?('table tbody tr').should === true
25
- page.all('table tbody tr').count.should === rows
28
+ current_path.should == index_url
29
+ page.has_content?(message).should == false
30
+ page.has_selector?('table tbody tr').should == true
31
+ page.all('table tbody tr').count.should == rows
26
32
  end
27
33
 
28
34
  it('Create a new custom field type') do
29
- index_url = CustomFields::Controller::CustomFieldTypes.r(:index).to_s
30
- new_url = CustomFields::Controller::CustomFieldTypes.r(:new).to_s
31
- edit_url = CustomFields::Controller::CustomFieldTypes.r(:edit).to_s
32
- new_button = lang('custom_field_types.buttons.new')
33
- save_button = lang('custom_field_types.buttons.save')
34
- method_id = CustomFields::Model::CustomFieldMethod[
35
+ method_id = CustomFields::Model::CustomFieldMethod[
35
36
  :name => 'input_text'
36
37
  ].id.to_s
37
38
 
38
39
  visit(index_url)
39
40
  click_link(new_button)
40
41
 
41
- current_path.should === new_url
42
+ current_path.should == new_url
42
43
 
43
44
  # Submit the form
44
45
  within('#custom_field_type_form') do
@@ -64,23 +65,43 @@ describe('CustomFields::Controller::CustomFieldTypes') do
64
65
  # Validate the results
65
66
  current_path.should =~ /#{edit_url}\/\d+/
66
67
 
67
- page.find_field('form_name').value.should === 'Spec type'
68
+ page.find_field('form_name').value.should == 'Spec type'
68
69
 
69
70
  page.find_field('form_language_string') \
70
- .value.should === 'custom_fields.special.type_hash.textbox'
71
+ .value.should == 'custom_fields.special.type_hash.textbox'
72
+
73
+ page.find_field('form_html_class').value.should == 'spec_class'
74
+ page.find_field('form_serialize_0').checked?.should == 'checked'
75
+
76
+ page.find_field('form_allow_markup_0').checked?.should == 'checked'
77
+ page.find_field('form_custom_field_method_id').value.should == method_id
78
+ end
79
+
80
+ it('Search for a custom field type') do
81
+ search_button = lang('zen_general.buttons.search')
82
+ error = lang('zen_general.errors.invalid_search')
83
+
84
+ visit(index_url)
85
+
86
+ within('#search_form') do
87
+ fill_in('query', :with => 'Spec type')
88
+ click_on(search_button)
89
+ end
90
+
91
+ page.has_content?(error).should == false
92
+ page.has_content?('Spec type').should == true
71
93
 
72
- page.find_field('form_html_class').value.should === 'spec_class'
73
- page.find_field('form_serialize_0').checked?.should === 'checked'
94
+ within('#search_form') do
95
+ fill_in('query', :with => 'does not exist')
96
+ click_on(search_button)
97
+ end
74
98
 
75
- page.find_field('form_allow_markup_0').checked?.should === 'checked'
76
- page.find_field('form_custom_field_method_id').value.should === method_id
99
+ page.has_content?(error).should == false
100
+ page.has_content?('Spec type').should == false
77
101
  end
78
102
 
79
103
  it('Edit a custom field type') do
80
- index_url = CustomFields::Controller::CustomFieldTypes.r(:index).to_s
81
- edit_url = CustomFields::Controller::CustomFieldTypes.r(:edit).to_s
82
- save_button = lang('custom_field_types.buttons.save')
83
- method_id = CustomFields::Model::CustomFieldMethod[
104
+ method_id = CustomFields::Model::CustomFieldMethod[
84
105
  :name => 'textarea'
85
106
  ].id.to_s
86
107
 
@@ -99,7 +120,7 @@ describe('CustomFields::Controller::CustomFieldTypes') do
99
120
  )
100
121
 
101
122
  fill_in('form_html_class', :with => 'spec_class_modified')
102
- select('textarea' , :from => 'custom_field_method_id')
123
+ select('textarea' , :from => 'custom_field_method_id')
103
124
 
104
125
  click_on(save_button)
105
126
  end
@@ -107,20 +128,16 @@ describe('CustomFields::Controller::CustomFieldTypes') do
107
128
  # Validate the results
108
129
  current_path.should =~ /#{edit_url}\/\d+/
109
130
 
110
- page.find_field('form_name').value.should === 'Spec type modified'
111
- page.find_field('form_html_class').value.should === 'spec_class_modified'
131
+ page.find_field('form_name').value.should == 'Spec type modified'
132
+ page.find_field('form_html_class').value.should == 'spec_class_modified'
112
133
 
113
134
  page.find_field('form_language_string') \
114
- .value.should === 'custom_fields.special.type_hash.textarea'
135
+ .value.should == 'custom_fields.special.type_hash.textarea'
115
136
 
116
- page.find_field('custom_field_method_id').value.should === method_id
137
+ page.find_field('custom_field_method_id').value.should == method_id
117
138
  end
118
139
 
119
140
  it('Edit a custom field type with invalid data') do
120
- index_url = CustomFields::Controller::CustomFieldTypes.r(:index).to_s
121
- edit_url = CustomFields::Controller::CustomFieldTypes.r(:edit).to_s
122
- save_button = lang('custom_field_types.buttons.save')
123
-
124
141
  visit(index_url)
125
142
  click_link('Spec type')
126
143
 
@@ -131,13 +148,11 @@ describe('CustomFields::Controller::CustomFieldTypes') do
131
148
  click_on(save_button)
132
149
  end
133
150
 
134
- page.has_selector?('span.error').should === true
151
+ page.has_selector?('span.error').should == true
135
152
  end
136
153
 
137
- it('Try to delete a field type without a specified ID') do
138
- index_url = CustomFields::Controller::CustomFieldTypes.r(:index).to_s
139
- delete_button = lang('custom_field_types.buttons.delete')
140
- type_id = CustomFields::Model::CustomFieldType[
154
+ it('Fail to delete a field type without an ID') do
155
+ type_id = CustomFields::Model::CustomFieldType[
141
156
  :name => 'Spec type modified'
142
157
  ].id
143
158
 
@@ -145,14 +160,12 @@ describe('CustomFields::Controller::CustomFieldTypes') do
145
160
  click_on(delete_button)
146
161
 
147
162
  page.has_selector?("input[id=\"custom_field_type_#{type_id}\"]") \
148
- .should === true
163
+ .should == true
149
164
  end
150
165
 
151
166
  it('Delete a custom field type') do
152
- index_url = CustomFields::Controller::CustomFieldTypes.r(:index).to_s
153
- delete_button = lang('custom_field_types.buttons.delete')
154
- rows = CustomFields::Model::CustomFieldType.count - 1
155
- type_id = CustomFields::Model::CustomFieldType[
167
+ rows = CustomFields::Model::CustomFieldType.count - 1
168
+ type_id = CustomFields::Model::CustomFieldType[
156
169
  :name => 'Spec type modified'
157
170
  ].id
158
171
 
@@ -163,7 +176,99 @@ describe('CustomFields::Controller::CustomFieldTypes') do
163
176
 
164
177
  click_on(delete_button)
165
178
 
166
- page.has_content?('Spec type modified').should === false
167
- page.all('table tbody tr').count.should === rows
179
+ page.has_content?('Spec type modified').should == false
180
+ page.all('table tbody tr').count.should == rows
181
+ end
182
+
183
+ it('Call the event new_custom_field_type (before and after)') do
184
+ event_name = nil
185
+
186
+ Zen::Event.listen(:before_new_custom_field_type) do |type|
187
+ type.name += ' with event'
188
+ end
189
+
190
+ Zen::Event.listen(:after_new_custom_field_type) do |type|
191
+ event_name = type.name
192
+ end
193
+
194
+ visit(index_url)
195
+ click_on(new_button)
196
+
197
+ within('#custom_field_type_form') do
198
+ fill_in('form_name', :with => 'Field type')
199
+
200
+ fill_in(
201
+ 'form_language_string',
202
+ :with => 'custom_fields.special.type_hash.textarea'
203
+ )
204
+
205
+ select('textarea', :from => 'custom_field_method_id')
206
+ click_on(save_button)
207
+ end
208
+
209
+ page.has_selector?('span.error').should == false
210
+ page.find('input[name="name"]').value.should == 'Field type with event'
211
+ event_name.should == 'Field type with event'
212
+
213
+ Zen::Event.delete(
214
+ :before_new_custom_field_type,
215
+ :after_new_custom_field_type
216
+ )
217
+ end
218
+
219
+ it('Call the event edit_custom_field_type (before and after)') do
220
+ event_name = nil
221
+
222
+ Zen::Event.listen(:before_edit_custom_field_type) do |type|
223
+ type.name = 'Field type modified'
224
+ end
225
+
226
+ Zen::Event.listen(:after_edit_custom_field_type) do |type|
227
+ event_name = type.name
228
+ end
229
+
230
+ visit(index_url)
231
+ click_on('Field type with event')
232
+
233
+ within('#custom_field_type_form') do
234
+ click_on(save_button)
235
+ end
236
+
237
+ page.find('input[name="name"]').value.should == 'Field type modified'
238
+ event_name.should == 'Field type modified'
239
+
240
+ Zen::Event.delete(
241
+ :before_edit_custom_field_type,
242
+ :after_edit_custom_field_type
243
+ )
244
+ end
245
+
246
+ it('Call the event delete_custom_field_type (before and after)') do
247
+ event_name = nil
248
+ event_name2 = nil
249
+ type_id = CustomFields::Model::CustomFieldType[
250
+ :name => 'Field type modified'
251
+ ].id
252
+
253
+ Zen::Event.listen(:before_delete_custom_field_type) do |type|
254
+ event_name = type.name
255
+ end
256
+
257
+ Zen::Event.listen(:after_delete_custom_field_type) do |type|
258
+ event_name2 = type.name
259
+ end
260
+
261
+ visit(index_url)
262
+ check("custom_field_type_#{type_id}")
263
+ click_on(delete_button)
264
+
265
+ page.has_content?('Field type modified').should == false
266
+ event_name.should == 'Field type modified'
267
+ event_name2.should == event_name
268
+
269
+ Zen::Event.delete(
270
+ :before_delete_custom_field_type,
271
+ :after_delete_custom_field_type
272
+ )
168
273
  end
169
274
  end # describe
@@ -3,37 +3,37 @@ require File.expand_path('../../../../../helper', __FILE__)
3
3
  describe('CustomFields::Controller::CustomFields') do
4
4
  behaves_like :capybara
5
5
 
6
- @group = CustomFields::Model::CustomFieldGroup.create(
6
+ group = CustomFields::Model::CustomFieldGroup.create(
7
7
  :name => 'Spec field group'
8
8
  )
9
9
 
10
+ index_url = CustomFields::Controller::CustomFields.r(:index, group.id).to_s
11
+ edit_url = CustomFields::Controller::CustomFields.r(:edit , group.id).to_s
12
+ new_button = lang('custom_fields.buttons.new')
13
+ save_button = lang('custom_fields.buttons.save')
14
+ delete_button = lang('custom_fields.buttons.delete')
15
+
10
16
  it('Submit a form without a CSRF token') do
11
17
  response = page.driver.post(
12
18
  CustomFields::Controller::CustomFields.r(:save).to_s
13
19
  )
14
20
 
15
- response.body.include?(lang('zen_general.errors.csrf')).should === true
16
- response.status.should === 403
21
+ response.body.include?(lang('zen_general.errors.csrf')).should == true
22
+ response.status.should == 403
17
23
  end
18
24
 
19
- it("No custom fields should exist") do
20
- index_url = CustomFields::Controller::CustomFields.r(:index, @group.id).to_s
21
- message = lang('custom_fields.messages.no_fields')
25
+ it('Find no existing fields') do
26
+ message = lang('custom_fields.messages.no_fields')
22
27
 
23
28
  visit(index_url)
24
29
 
25
- page.has_selector?('table tbody tr').should === false
26
- page.has_content?(message).should === true
30
+ page.has_selector?('table tbody tr').should == false
31
+ page.has_content?(message).should == true
27
32
  end
28
33
 
29
34
  it("Create a new custom field") do
30
- index_url = CustomFields::Controller::CustomFields.r(:index, @group.id).to_s
31
- edit_url = CustomFields::Controller::CustomFields.r(:edit , @group.id).to_s
32
-
33
- new_button = lang('custom_fields.buttons.new')
34
- save_button = lang('custom_fields.buttons.save')
35
35
  type_select = lang('custom_fields.special.type_hash.textbox')
36
- format_select = lang('zen_general.special.format_hash.markdown')
36
+ format_select = lang('zen_general.markup.markdown')
37
37
  textbox_field = CustomFields::Model::CustomFieldType[:name => 'textbox']
38
38
 
39
39
  visit(index_url)
@@ -60,23 +60,42 @@ describe('CustomFields::Controller::CustomFields') do
60
60
  end
61
61
 
62
62
  current_path.should =~ /#{edit_url}\/[0-9]+/
63
- page.find('input[name="name"]').value.should === 'Spec field'
63
+ page.find('input[name="name"]').value.should == 'Spec field'
64
64
 
65
65
  page.find('select[name="custom_field_type_id"]') \
66
- .value.should === textbox_field.id.to_s
66
+ .value.should == textbox_field.id.to_s
67
67
 
68
- page.find_field('form_description').value.should === 'Spec description'
69
- page.find_field('form_possible_values').value.should === 'Yorick|yorick'
70
- page.find_field('form_textarea_rows').value.should === '5'
71
- page.find_field('form_text_limit').value.should === '10'
72
- page.find_field('form_sort_order').value.should === '2'
68
+ page.find_field('form_description').value.should == 'Spec description'
69
+ page.find_field('form_possible_values').value.should == 'Yorick|yorick'
70
+ page.find_field('form_textarea_rows').value.should == '5'
71
+ page.find_field('form_text_limit').value.should == '10'
72
+ page.find_field('form_sort_order').value.should == '2'
73
73
  end
74
74
 
75
- it("Edit an existing custom field") do
76
- index_url = CustomFields::Controller::CustomFields \
77
- .r(:index, @group.id).to_s
75
+ it('Search for a custom field') do
76
+ search_button = lang('zen_general.buttons.search')
77
+ error = lang('zen_general.errors.invalid_search')
78
+
79
+ visit(index_url)
80
+
81
+ within('#search_form') do
82
+ fill_in('query', :with => 'Spec field')
83
+ click_on(search_button)
84
+ end
78
85
 
79
- save_button = lang('custom_fields.buttons.save')
86
+ page.has_content?(error).should == false
87
+ page.has_content?('Spec field').should == true
88
+
89
+ within('#search_form') do
90
+ fill_in('query', :with => 'does not exist')
91
+ click_on(search_button)
92
+ end
93
+
94
+ page.has_content?(error).should == false
95
+ page.has_content?('Spec field').should == false
96
+ end
97
+
98
+ it("Edit an existing custom field") do
80
99
  type_select = lang('custom_fields.special.type_hash.textarea')
81
100
  textarea_field = CustomFields::Model::CustomFieldType[:name => 'textarea']
82
101
 
@@ -97,22 +116,17 @@ describe('CustomFields::Controller::CustomFields') do
97
116
  click_on(save_button)
98
117
  end
99
118
 
100
- page.find('input[name="name"]').value.should === 'Spec field modified'
101
- page.find_field('form_text_limit').value.should === '15'
119
+ page.find('input[name="name"]').value.should == 'Spec field modified'
120
+ page.find_field('form_text_limit').value.should == '15'
102
121
 
103
122
  page.find_field('form_description') \
104
- .value.should === 'Spec description updated'
123
+ .value.should == 'Spec description updated'
105
124
 
106
125
  page.find_field('form_custom_field_type_id') \
107
- .value.should === textarea_field.id.to_s
126
+ .value.should == textarea_field.id.to_s
108
127
  end
109
128
 
110
129
  it("Edit an existing custom field with invalid data") do
111
- index_url = CustomFields::Controller::CustomFields \
112
- .r(:index, @group.id).to_s
113
-
114
- save_button = lang('custom_fields.buttons.save')
115
-
116
130
  visit(index_url)
117
131
  click_link('Spec field')
118
132
 
@@ -121,38 +135,103 @@ describe('CustomFields::Controller::CustomFields') do
121
135
  click_on(save_button)
122
136
  end
123
137
 
124
- page.has_selector?('span.error').should === true
138
+ page.has_selector?('span.error').should == true
125
139
  end
126
140
 
127
- it('Try to delete a field with no IDs specified') do
128
- group_id = @group.id
129
- index_url = CustomFields::Controller::CustomFields \
130
- .r(:index, group_id).to_s
131
-
132
- delete_button = lang('custom_fields.buttons.delete')
133
- message = lang('custom_fields.messages.no_fields')
141
+ it('Fail to delete a field without an ID') do
142
+ message = lang('custom_fields.messages.no_fields')
134
143
 
135
144
  visit(index_url)
136
145
  click_on(delete_button)
137
146
 
138
- page.has_selector?('input[name="custom_field_ids[]"]').should === true
147
+ page.has_selector?('input[name="custom_field_ids[]"]').should == true
139
148
  end
140
149
 
141
150
  it("Delete an existing custom field") do
142
- group_id = @group.id
143
- index_url = CustomFields::Controller::CustomFields \
144
- .r(:index, group_id).to_s
151
+ message = lang('custom_fields.messages.no_fields')
152
+
153
+ visit(index_url)
154
+ check('custom_field_ids[]')
155
+ click_on(delete_button)
156
+
157
+ page.has_selector?('table tbody tr').should == false
158
+ page.has_content?(message).should == true
159
+ end
160
+
161
+ it('Call the event new_custom_field (before and after)') do
162
+ event_name = nil
163
+ type_select = lang('custom_fields.special.type_hash.textarea')
164
+
165
+ Zen::Event.listen(:before_new_custom_field) do |field|
166
+ field.name += ' with event'
167
+ end
168
+
169
+ Zen::Event.listen(:after_new_custom_field) do |field|
170
+ event_name = field.name
171
+ end
172
+
173
+ visit(index_url)
174
+ click_on(new_button)
175
+
176
+ within('#custom_field_form') do
177
+ fill_in('form_name', :with => 'Custom field')
178
+ select(type_select, :from => 'form_custom_field_type_id')
179
+ click_on(save_button)
180
+ end
181
+
182
+ page.has_selector?('span.error').should == false
183
+ page.find('input[name="name"]').value.should == 'Custom field with event'
184
+ event_name.should == 'Custom field with event'
185
+
186
+ Zen::Event.delete(:before_new_custom_field, :after_new_custom_field)
187
+ end
188
+
189
+ it('Call the event edit_custom_field (before and after)') do
190
+ event_name = nil
191
+
192
+ Zen::Event.listen(:before_edit_custom_field) do |field|
193
+ field.name = 'Custom field modified'
194
+ end
195
+
196
+ Zen::Event.listen(:after_edit_custom_field) do |field|
197
+ event_name = field.name
198
+ end
145
199
 
146
- delete_button = lang('custom_fields.buttons.delete')
147
- message = lang('custom_fields.messages.no_fields')
200
+ visit(index_url)
201
+ click_on('Custom field with event')
202
+
203
+ within('#custom_field_form') do
204
+ click_on(save_button)
205
+ end
206
+
207
+ page.find('input[name="name"]').value.should == 'Custom field modified'
208
+ event_name.should == 'Custom field modified'
209
+
210
+ Zen::Event.delete(:before_edit_custom_field, :after_edit_custom_field)
211
+ end
212
+
213
+ it('Call the event delete_custom_field (before and after)') do
214
+ event_name = nil
215
+ event_name2 = nil
216
+
217
+ Zen::Event.listen(:before_delete_custom_field) do |field|
218
+ event_name = field.name
219
+ end
220
+
221
+ Zen::Event.listen(:after_delete_custom_field) do |field|
222
+ event_name2 = field.name
223
+ end
148
224
 
149
225
  visit(index_url)
150
226
  check('custom_field_ids[]')
151
227
  click_on(delete_button)
152
228
 
153
- page.has_selector?('table tbody tr').should === false
154
- page.has_content?(message).should === true
229
+ page.has_content?('Custom field modified').should == false
230
+ event_name.should == 'Custom field modified'
231
+ event_name2.should == event_name
232
+
233
+ Zen::Event.delete(:before_delete_custom_field, :after_delete_custom_field)
155
234
  end
156
235
 
157
- @group.destroy
236
+ group.destroy
158
237
  end # describe