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
@@ -5,7 +5,7 @@ describe('Ramaze::Helper::Comment') do
5
5
 
6
6
  user_id = Users::Model::User[:email => 'spec@domain.tld'].id
7
7
  status_id = Sections::Model::SectionEntryStatus[:name => 'published'].id
8
- @section = Sections::Model::Section.create(
8
+ section = Sections::Model::Section.create(
9
9
  :name => 'Comment spec section',
10
10
  :comment_allow => false,
11
11
  :comment_require_account => false,
@@ -13,35 +13,35 @@ describe('Ramaze::Helper::Comment') do
13
13
  :comment_format => 'markdown'
14
14
  )
15
15
 
16
- @entry = Sections::Model::SectionEntry.create(
16
+ entry = Sections::Model::SectionEntry.create(
17
17
  :title => 'Spec entry',
18
18
  :user_id => user_id,
19
19
  :section_entry_status_id => status_id,
20
- :section_id => @section.id
20
+ :section_id => section.id
21
21
  )
22
22
 
23
- @comment = Comments::Model::Comment.create(
23
+ comment = Comments::Model::Comment.create(
24
24
  :comment => 'Spec comment',
25
25
  :name => 'spec',
26
26
  :email => 'spec@domain.tld',
27
- :section_entry_id => @entry.id
27
+ :section_entry_id => entry.id
28
28
  )
29
29
 
30
30
  it('Validate a valid comment') do
31
- url = Comments::Controller::Comments.r(:edit, @comment.id).to_s
31
+ url = Comments::Controller::Comments.r(:edit, comment.id).to_s
32
32
 
33
33
  visit(url)
34
34
 
35
- current_path.should === url
35
+ current_path.should == url
36
36
  end
37
37
 
38
38
  it('Validate an invalid comment') do
39
- visit(Comments::Controller::Comments.r(:edit, @comment.id + 100).to_s)
39
+ visit(Comments::Controller::Comments.r(:edit, comment.id + 100).to_s)
40
40
 
41
- current_path.should === Comments::Controller::Comments.r(:index).to_s
41
+ current_path.should == Comments::Controller::Comments.r(:index).to_s
42
42
  end
43
43
 
44
- @comment.destroy
45
- @entry.destroy
46
- @section.destroy
47
- end # describe
44
+ comment.destroy
45
+ entry.destroy
46
+ section.destroy
47
+ end
@@ -0,0 +1,92 @@
1
+ require File.expand_path('../../../../../helper', __FILE__)
2
+ require File.join(Zen::FIXTURES, 'package/comments/helper/comment_frontend')
3
+
4
+ describe('Ramaze::Helper::CommentFrontend') do
5
+ behaves_like :capybara
6
+
7
+ extend Ramaze::Helper::CommentFrontend
8
+
9
+ user = Users::Model::User[:email => 'spec@domain.tld']
10
+ status_id = Comments::Model::CommentStatus[:name => 'open'].id
11
+ section = Sections::Model::Section.create(
12
+ :name => 'Spec',
13
+ :comment_allow => true,
14
+ :comment_require_account => false,
15
+ :comment_moderate => false,
16
+ :comment_format => 'markdown'
17
+ )
18
+
19
+ entry = Sections::Model::SectionEntry.create(
20
+ :title => 'Spec',
21
+ :section_id => section.id,
22
+ :user_id => user.id
23
+ )
24
+
25
+ comment_1 = Comments::Model::Comment.create(
26
+ :user_id => user.id,
27
+ :comment => 'Spec comment',
28
+ :comment_status_id => status_id,
29
+ :section_entry_id => entry.id,
30
+ :email => user.email
31
+ )
32
+
33
+ comment_2 = Comments::Model::Comment.create(
34
+ :user_id => user.id,
35
+ :comment => 'Spec comment 1',
36
+ :comment_status_id => status_id,
37
+ :section_entry_id => entry.id,
38
+ :email => user.email
39
+ )
40
+
41
+ it('Retrieve all comments for an ID') do
42
+ comments = get_comments(entry.slug).all
43
+
44
+ comments.count.should == 2
45
+ comments[0].comment.include?('Spec comment').should == true
46
+ comments[1].comment.include?('Spec comment 1').should == true
47
+ comments[1].user.email.should == 'spec@domain.tld'
48
+ comments[1].user.name.should == 'Spec'
49
+ end
50
+
51
+ it('Retrieve all comments for a slug') do
52
+ comments = get_comments(entry.id).all
53
+
54
+ comments.count.should == 2
55
+ comments[0].comment.include?('Spec comment').should == true
56
+ comments[1].comment.include?('Spec comment 1').should == true
57
+ end
58
+
59
+ it('Retrieve all comments and check the markup') do
60
+ comments = get_comments(entry.id).all
61
+
62
+ comments.count.should == 2
63
+ comments[0].html.strip.should == '<p>Spec comment</p>'
64
+ comments[1].html.strip.should == '<p>Spec comment 1</p>'
65
+ end
66
+
67
+ it('Retrieve a single comment') do
68
+ comments = get_comments(entry.id, :limit => 1).all
69
+
70
+ comments.count.should == 1
71
+ comments[0].comment.include?('Spec comment').should == true
72
+ end
73
+
74
+ it('Paginate a set of comments') do
75
+ visit('/spec-comment-frontend')
76
+
77
+ page.has_selector?('p').should == true
78
+ page.find('p:first-child').text.should == comment_1.comment
79
+ page.has_selector?('.pager').should == true
80
+
81
+ visit('/spec-comment-frontend?page=2')
82
+
83
+ page.has_selector?('p').should == true
84
+ page.find('p:first-child').text.should == comment_2.comment
85
+ page.has_selector?('.pager').should == true
86
+ end
87
+
88
+ comment_2.destroy
89
+ comment_1.destroy
90
+ entry.destroy
91
+ section.destroy
92
+ end
@@ -10,15 +10,15 @@ describe('CustomFields::BlueFormParameters') do
10
10
  stubbed[:custom_field_value]
11
11
  )
12
12
 
13
- params[0].should === :input_text
14
- params[1].should === stubbed[:custom_field].name
15
- params[2].should === "custom_field_value_#{stubbed[:custom_field].id}"
16
-
17
- params[3][:value].should === stubbed[:custom_field_value].value
18
- params[3][:maxlength].should === stubbed[:custom_field].text_limit
19
- params[3][:'data-format'].should === nil
20
- params[3][:placeholder].should === stubbed[:custom_field].description
21
- params[3].key?(:class).should === false
13
+ params[0].should == :input_text
14
+ params[1].should == stubbed[:custom_field].name
15
+ params[2].should == "custom_field_value_#{stubbed[:custom_field].id}"
16
+
17
+ params[3][:value].should == stubbed[:custom_field_value].value
18
+ params[3][:maxlength].should == stubbed[:custom_field].text_limit
19
+ params[3][:'data-format'].should == nil
20
+ params[3][:title].should == stubbed[:custom_field].description
21
+ params[3].key?(:class).should == false
22
22
  end
23
23
 
24
24
  it('Generate the parameters for input_password()') do
@@ -28,12 +28,12 @@ describe('CustomFields::BlueFormParameters') do
28
28
  stubbed[:custom_field_value]
29
29
  )
30
30
 
31
- params[0].should === :input_password
32
- params[1].should === stubbed[:custom_field].name
33
- params[2].should === "custom_field_value_#{stubbed[:custom_field].id}"
31
+ params[0].should == :input_password
32
+ params[1].should == stubbed[:custom_field].name
33
+ params[2].should == "custom_field_value_#{stubbed[:custom_field].id}"
34
34
 
35
- params[3][:value].should === stubbed[:custom_field_value].value
36
- params[3].key?(:'data-format').should === false
35
+ params[3][:value].should == stubbed[:custom_field_value].value
36
+ params[3].key?(:'data-format').should == false
37
37
  end
38
38
 
39
39
  it('Generate the parameters for textarea()') do
@@ -48,13 +48,13 @@ describe('CustomFields::BlueFormParameters') do
48
48
  stubbed[:custom_field_value]
49
49
  )
50
50
 
51
- params[0].should === :textarea
52
- params[1].should === stubbed[:custom_field].name
53
- params[2].should === "custom_field_value_#{stubbed[:custom_field].id}"
51
+ params[0].should == :textarea
52
+ params[1].should == stubbed[:custom_field].name
53
+ params[2].should == "custom_field_value_#{stubbed[:custom_field].id}"
54
54
 
55
- params[3][:class].should === 'text_editor'
56
- params[3][:'data-format'].should === stubbed[:custom_field].format
57
- params[3][:rows].should === stubbed[:custom_field].textarea_rows
55
+ params[3][:class].should == 'text_editor'
56
+ params[3][:'data-format'].should == stubbed[:custom_field].format
57
+ params[3][:rows].should == stubbed[:custom_field].textarea_rows
58
58
 
59
59
  # Try again but with the text editor disabled.
60
60
  stubbed = stub_custom_field('textarea',)
@@ -63,7 +63,7 @@ describe('CustomFields::BlueFormParameters') do
63
63
  stubbed[:custom_field_value]
64
64
  )
65
65
 
66
- params[3][:class].empty?.should === true
66
+ params[3][:class].empty?.should == true
67
67
  end
68
68
 
69
69
  it('Generate the parameters for input_radio()') do
@@ -77,13 +77,13 @@ describe('CustomFields::BlueFormParameters') do
77
77
  stubbed[:custom_field_value]
78
78
  )
79
79
 
80
- params[0].should === :input_radio
81
- params[1].should === stubbed[:custom_field].name
82
- params[2].should === "custom_field_value_#{stubbed[:custom_field].id}"
83
- params[3].should === stubbed[:custom_field_value].value
80
+ params[0].should == :input_radio
81
+ params[1].should == stubbed[:custom_field].name
82
+ params[2].should == "custom_field_value_#{stubbed[:custom_field].id}"
83
+ params[3].should == stubbed[:custom_field_value].value
84
84
 
85
- params[4][:values]['ruby'].should === 'Ruby'
86
- params[4][:values]['python'].should === 'Python'
85
+ params[4][:values]['ruby'].should == 'Ruby'
86
+ params[4][:values]['python'].should == 'Python'
87
87
 
88
88
  # Check if the correct parameters are generated with a different set of
89
89
  # possible values.
@@ -97,8 +97,8 @@ describe('CustomFields::BlueFormParameters') do
97
97
  stubbed[:custom_field_value]
98
98
  )
99
99
 
100
- params[4][:values]['ruby'].should === 'ruby'
101
- params[4][:values]['python'].should === 'python'
100
+ params[4][:values]['ruby'].should == 'ruby'
101
+ params[4][:values]['python'].should == 'python'
102
102
  end
103
103
 
104
104
  it('Generate the parameters for input_checkbox()') do
@@ -114,13 +114,13 @@ describe('CustomFields::BlueFormParameters') do
114
114
  stubbed[:custom_field_value]
115
115
  )
116
116
 
117
- params[0].should === :input_radio
118
- params[1].should === stubbed[:custom_field].name
119
- params[2].should === "custom_field_value_#{stubbed[:custom_field].id}"
117
+ params[0].should == :input_radio
118
+ params[1].should == stubbed[:custom_field].name
119
+ params[2].should == "custom_field_value_#{stubbed[:custom_field].id}"
120
120
 
121
121
  params[3].class.should == Array
122
- params[3].include?('Ruby').should === true
123
- params[3].include?('Python').should === true
122
+ params[3].include?('Ruby').should == true
123
+ params[3].include?('Python').should == true
124
124
  end
125
125
 
126
126
  it('Generate the parameters for select()') do
@@ -134,14 +134,14 @@ describe('CustomFields::BlueFormParameters') do
134
134
  stubbed[:custom_field_value]
135
135
  )
136
136
 
137
- params[0].should === :select
138
- params[1].should === stubbed[:custom_field].name
139
- params[2].should === "custom_field_value_#{stubbed[:custom_field].id}"
137
+ params[0].should == :select
138
+ params[1].should == stubbed[:custom_field].name
139
+ params[2].should == "custom_field_value_#{stubbed[:custom_field].id}"
140
140
 
141
- params[3][:selected].should === stubbed[:custom_field_value].value
142
- params[3][:size].should === 1
143
- params[3][:values]['ruby'].should === 'Ruby'
144
- params[3][:values]['python'].should === 'Python'
141
+ params[3][:selected].should == stubbed[:custom_field_value].value
142
+ params[3][:size].should == 1
143
+ params[3][:values]['ruby'].should == 'Ruby'
144
+ params[3][:values]['python'].should == 'Python'
145
145
 
146
146
  # Create the parameters using the same string as the keys and values.
147
147
  stubbed = stub_custom_field(
@@ -154,8 +154,8 @@ describe('CustomFields::BlueFormParameters') do
154
154
  stubbed[:custom_field_value]
155
155
  )
156
156
 
157
- params[3][:values]['ruby'].should === 'ruby'
158
- params[3][:values]['python'].should === 'python'
157
+ params[3][:values]['ruby'].should == 'ruby'
158
+ params[3][:values]['python'].should == 'python'
159
159
  end
160
160
 
161
161
  it('Generate the parameters for select_multiple()') do
@@ -171,13 +171,13 @@ describe('CustomFields::BlueFormParameters') do
171
171
  stubbed[:custom_field_value]
172
172
  )
173
173
 
174
- params[0].should === :select
175
- params[1].should === stubbed[:custom_field].name
176
- params[2].should === "custom_field_value_#{stubbed[:custom_field].id}"
174
+ params[0].should == :select
175
+ params[1].should == stubbed[:custom_field].name
176
+ params[2].should == "custom_field_value_#{stubbed[:custom_field].id}"
177
177
 
178
- params[3][:selected].should === ['Ruby', 'Python']
179
- params[3][:values]['Ruby'].should === 'ruby'
180
- params[3][:values]['Python'].should === 'python'
181
- params[3][:multiple].should === :multiple
178
+ params[3][:selected].should == ['Ruby', 'Python']
179
+ params[3][:values]['Ruby'].should == 'ruby'
180
+ params[3][:values]['Python'].should == 'python'
181
+ params[3][:multiple].should == :multiple
182
182
  end
183
183
  end # describe
@@ -3,37 +3,37 @@ require File.expand_path('../../../../../helper', __FILE__)
3
3
  describe('CustomFields::Controller::CustomFieldGroups') do
4
4
  behaves_like :capybara
5
5
 
6
+ index_url = CustomFields::Controller::CustomFieldGroups.r(:index).to_s
7
+ new_url = CustomFields::Controller::CustomFieldGroups.r(:new).to_s
8
+ edit_url = CustomFields::Controller::CustomFieldGroups.r(:edit).to_s
9
+ save_button = lang('custom_field_groups.buttons.save')
10
+ delete_button = lang('custom_field_groups.buttons.delete')
11
+ new_button = lang('custom_field_groups.buttons.new')
12
+
6
13
  it('Submit a form without a CSRF token') do
7
14
  response = page.driver.post(
8
15
  CustomFields::Controller::CustomFieldGroups.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("No custom field groups should exist") do
16
- index_url = CustomFields::Controller::CustomFieldGroups.r(:index).to_s
17
- message = lang('custom_field_groups.messages.no_groups')
22
+ it('Find no existing field groups') do
23
+ message = lang('custom_field_groups.messages.no_groups')
18
24
 
19
25
  visit(index_url)
20
26
 
21
- current_path.should === index_url
27
+ current_path.should == index_url
22
28
 
23
29
  # If the page shows the message telling the user that there are no groups.
24
- page.has_selector?('table tbody tr').should === false
25
- page.has_content?(message).should === true
30
+ page.has_selector?('table tbody tr').should == false
31
+ page.has_content?(message).should == true
26
32
  end
27
33
 
28
- it("Create a new group") do
29
- index_url = CustomFields::Controller::CustomFieldGroups.r(:index).to_s
30
- new_url = CustomFields::Controller::CustomFieldGroups.r(:new).to_s
31
- edit_url = CustomFields::Controller::CustomFieldGroups.r(:edit).to_s
32
- add_button = lang('custom_field_groups.buttons.new')
33
- save_button = lang('custom_field_groups.buttons.save')
34
-
34
+ it('Create a new group') do
35
35
  visit(index_url)
36
- click_link(add_button)
36
+ click_link(new_button)
37
37
 
38
38
  current_path.should == new_url
39
39
 
@@ -45,18 +45,36 @@ describe('CustomFields::Controller::CustomFieldGroups') do
45
45
 
46
46
  current_path.should =~ /#{edit_url}\/[0-9]+/
47
47
 
48
- page.find('input[name="name"]') \
49
- .value.should === 'Spec field group'
48
+ page.find('input[name="name"]').value.should == 'Spec field group'
50
49
 
51
50
  page.find('textarea[name="description"]') \
52
- .value.should === 'Spec field group desc'
51
+ .value.should == 'Spec field group desc'
53
52
  end
54
53
 
55
- it("Edit an existing group") do
56
- index_url = CustomFields::Controller::CustomFieldGroups.r(:index).to_s
57
- edit_url = CustomFields::Controller::CustomFieldGroups.r(:edit).to_s
58
- save_button = lang('custom_field_groups.buttons.save')
54
+ it('Search for a custom field group') do
55
+ search_button = lang('zen_general.buttons.search')
56
+ error = lang('zen_general.errors.invalid_search')
59
57
 
58
+ visit(index_url)
59
+
60
+ within('#search_form') do
61
+ fill_in('query', :with => 'Spec field group')
62
+ click_on(search_button)
63
+ end
64
+
65
+ page.has_content?(error).should == false
66
+ page.has_content?('Spec field group').should == true
67
+
68
+ within('#search_form') do
69
+ fill_in('query', :with => 'does not exist')
70
+ click_on(search_button)
71
+ end
72
+
73
+ page.has_content?(error).should == false
74
+ page.has_content?('Spec field group').should == false
75
+ end
76
+
77
+ it("Edit an existing group") do
60
78
  visit(index_url)
61
79
  click_link('Spec field group')
62
80
 
@@ -68,15 +86,10 @@ describe('CustomFields::Controller::CustomFieldGroups') do
68
86
  click_on(save_button)
69
87
  end
70
88
 
71
- page.find('input[name="name"]') \
72
- .value.should === 'Spec field group modified'
89
+ page.find('input[name="name"]').value.should == 'Spec field group modified'
73
90
  end
74
91
 
75
- it("Edit an existing group with invalid data") do
76
- index_url = CustomFields::Controller::CustomFieldGroups.r(:index).to_s
77
- edit_url = CustomFields::Controller::CustomFieldGroups.r(:edit).to_s
78
- save_button = lang('custom_field_groups.buttons.save')
79
-
92
+ it("Fail to edit an existing group with invalid data") do
80
93
  visit(index_url)
81
94
  click_link('Spec field group')
82
95
 
@@ -88,33 +101,112 @@ describe('CustomFields::Controller::CustomFieldGroups') do
88
101
  click_on(save_button)
89
102
  end
90
103
 
91
- page.has_selector?('span.error').should === true
104
+ page.has_selector?('span.error').should == true
92
105
  end
93
106
 
94
- it("Try to delete a group without an ID specified") do
95
- index_url = CustomFields::Controller::CustomFieldGroups.r(:index).to_s
96
- delete_button = lang('custom_field_groups.buttons.delete')
97
- message = lang('custom_field_groups.messages.no_groups')
107
+ it("Fail to delete a group without an ID") do
108
+ message = lang('custom_field_groups.messages.no_groups')
98
109
 
99
110
  visit(index_url)
100
-
101
111
  click_on(delete_button)
102
112
 
103
- page.has_selector?('input[name="custom_field_group_ids[]"]') \
104
- .should === true
113
+ page.has_selector?('input[name="custom_field_group_ids[]"]') .should == true
105
114
  end
106
115
 
107
116
  it("Delete an existing group") do
108
- index_url = CustomFields::Controller::CustomFieldGroups.r(:index).to_s
109
- delete_button = lang('custom_field_groups.buttons.delete')
110
- message = lang('custom_field_groups.messages.no_groups')
117
+ message = lang('custom_field_groups.messages.no_groups')
118
+
119
+ visit(index_url)
120
+
121
+ check('custom_field_group_ids[]')
122
+ click_on(delete_button)
123
+
124
+ page.has_selector?('table tbody tr').should == false
125
+ page.has_content?(message).should == true
126
+ end
127
+
128
+ it('Call the event new_custom_field_group (before and after)') do
129
+ event_name = nil
130
+
131
+ Zen::Event.listen(:before_new_custom_field_group) do |group|
132
+ group.name += ' with event'
133
+ end
134
+
135
+ Zen::Event.listen(:after_new_custom_field_group) do |group|
136
+ event_name = group.name
137
+ end
138
+
139
+ visit(index_url)
140
+ click_on(new_button)
141
+
142
+ within('#custom_field_group_form') do
143
+ fill_in('name', :with => 'Field group')
144
+ click_on(save_button)
145
+ end
146
+
147
+ page.has_selector?('span.error').should == false
148
+ page.find('input[name="name"]').value.should == 'Field group with event'
149
+ event_name.should == 'Field group with event'
150
+
151
+ Zen::Event.delete(
152
+ :before_new_custom_field_group,
153
+ :after_new_custom_field_group
154
+ )
155
+ end
156
+
157
+ it('Call the event edit_custom_field_group (before and after)') do
158
+ event_name = nil
159
+
160
+ Zen::Event.listen(:before_edit_custom_field_group) do |group|
161
+ group.name = 'Field group modified'
162
+ end
163
+
164
+ Zen::Event.listen(:after_edit_custom_field_group) do |group|
165
+ event_name = group.name
166
+ end
111
167
 
112
168
  visit(index_url)
169
+ click_on('Field group with event')
113
170
 
171
+ within('#custom_field_group_form') do
172
+ click_on(save_button)
173
+ end
174
+
175
+ page.has_selector?('span.error').should == false
176
+ page.find('input[name="name"]').value.should == 'Field group modified'
177
+ event_name.should == 'Field group modified'
178
+
179
+ Zen::Event.delete(
180
+ :before_edit_custom_field_group,
181
+ :after_edit_custom_field_group
182
+ )
183
+ end
184
+
185
+ it('Call the event delete_custom_field_group (before and after)') do
186
+ event_name = nil
187
+ event_name2 = nil
188
+ message = lang('custom_field_groups.messages.no_groups')
189
+
190
+ Zen::Event.listen(:before_delete_custom_field_group) do |group|
191
+ event_name = group.name
192
+ end
193
+
194
+ Zen::Event.listen(:after_delete_custom_field_group) do |group|
195
+ event_name2 = group.name
196
+ end
197
+
198
+ visit(index_url)
114
199
  check('custom_field_group_ids[]')
115
200
  click_on(delete_button)
116
201
 
117
- page.has_selector?('table tbody tr').should === false
118
- page.has_content?(message).should === true
202
+ page.has_selector?('table tbody tr').should == false
203
+ page.has_content?(message).should == true
204
+ event_name.should == 'Field group modified'
205
+ event_name2.should == event_name
206
+
207
+ Zen::Event.delete(
208
+ :before_delete_custom_field_group,
209
+ :after_delete_custom_field_group
210
+ )
119
211
  end
120
212
  end # describe