activeadmin 0.6.6 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (512) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -8
  3. data/.hound.yml +11 -0
  4. data/.travis.yml +36 -10
  5. data/.yardopts +2 -1
  6. data/CHANGELOG.md +118 -67
  7. data/CONTRIBUTING.md +96 -73
  8. data/Gemfile +35 -35
  9. data/Guardfile +1 -0
  10. data/LICENSE +1 -1
  11. data/README.md +98 -0
  12. data/Rakefile +12 -4
  13. data/activeadmin.gemspec +21 -24
  14. data/app/assets/javascripts/active_admin/application.js.coffee +32 -0
  15. data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
  16. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  17. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  19. data/app/assets/javascripts/active_admin/{components/jquery.aa.checkbox-toggler.js.coffee → lib/checkbox-toggler.js.coffee} +3 -4
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
  21. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  22. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  23. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  24. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  25. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
  26. data/app/assets/javascripts/active_admin/{components/jquery.aa.table-checkbox-toggler.js.coffee → lib/table-checkbox-toggler.js.coffee} +2 -3
  27. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  28. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +61 -17
  29. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  30. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  32. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  33. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -1
  34. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  35. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  36. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -14
  37. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +5 -4
  38. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  39. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  40. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  41. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +2 -3
  42. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  43. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  44. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +4 -2
  45. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  46. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -1
  49. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  51. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  53. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +8 -2
  54. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -7
  55. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -9
  56. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  57. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  58. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +5 -2
  59. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +11 -9
  60. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  61. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  62. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  63. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  64. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  65. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  66. data/app/views/active_admin/devise/sessions/new.html.erb +9 -7
  67. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  68. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  69. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  70. data/config/locales/ar.yml +120 -0
  71. data/config/locales/bg.yml +26 -6
  72. data/config/locales/bs.yml +122 -0
  73. data/config/locales/ca.yml +10 -1
  74. data/config/locales/cs.yml +7 -2
  75. data/config/locales/da.yml +7 -3
  76. data/config/locales/de-CH.yml +14 -31
  77. data/config/locales/de.yml +33 -33
  78. data/config/locales/el.yml +28 -2
  79. data/config/locales/en-GB.yml +12 -4
  80. data/config/locales/en.yml +29 -3
  81. data/config/locales/{es_MX.yml → es-MX.yml} +9 -24
  82. data/config/locales/es.yml +32 -25
  83. data/config/locales/fa.yml +120 -0
  84. data/config/locales/fi.yml +113 -0
  85. data/config/locales/fr.yml +21 -11
  86. data/config/locales/he.yml +7 -3
  87. data/config/locales/hr.yml +42 -11
  88. data/config/locales/hu.yml +10 -3
  89. data/config/locales/it.yml +31 -3
  90. data/config/locales/ja.yml +8 -3
  91. data/config/locales/ko.yml +7 -1
  92. data/config/locales/lt.yml +42 -11
  93. data/config/locales/lv.yml +7 -3
  94. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  95. data/config/locales/nl.yml +36 -5
  96. data/config/locales/pl.yml +13 -8
  97. data/config/locales/pt-BR.yml +37 -5
  98. data/config/locales/pt-PT.yml +8 -4
  99. data/config/locales/ro.yml +7 -3
  100. data/config/locales/ru.yml +26 -5
  101. data/config/locales/sv-SE.yml +9 -5
  102. data/config/locales/tr.yml +10 -3
  103. data/config/locales/uk.yml +36 -12
  104. data/config/locales/vi.yml +7 -3
  105. data/config/locales/zh-CN.yml +26 -10
  106. data/config/locales/zh-TW.yml +19 -13
  107. data/docs/0-installation.md +65 -29
  108. data/docs/1-general-configuration.md +92 -81
  109. data/docs/10-custom-pages.md +68 -68
  110. data/docs/11-decorators.md +48 -59
  111. data/docs/12-arbre-components.md +80 -74
  112. data/docs/13-authorization-adapter.md +128 -107
  113. data/docs/14-gotchas.md +92 -0
  114. data/docs/2-resource-customization.md +293 -178
  115. data/docs/3-index-pages.md +160 -86
  116. data/docs/3-index-pages/custom-index.md +31 -0
  117. data/docs/3-index-pages/index-as-block.md +14 -9
  118. data/docs/3-index-pages/index-as-blog.md +41 -31
  119. data/docs/3-index-pages/index-as-grid.md +16 -8
  120. data/docs/3-index-pages/index-as-table.md +129 -52
  121. data/docs/4-csv-format.md +31 -24
  122. data/docs/5-forms.md +133 -56
  123. data/docs/6-show-pages.md +89 -27
  124. data/docs/7-sidebars.md +48 -27
  125. data/docs/8-custom-actions.md +98 -77
  126. data/docs/9-batch-actions.md +210 -146
  127. data/docs/README.md +24 -0
  128. data/features/action_item.feature +3 -3
  129. data/features/authorization_pundit.feature +37 -0
  130. data/features/breadcrumb.feature +48 -0
  131. data/features/comments/commenting.feature +56 -13
  132. data/features/development_reloading.feature +17 -30
  133. data/features/edit_page.feature +12 -1
  134. data/features/favicon.feature +3 -3
  135. data/features/i18n.feature +5 -4
  136. data/features/index/batch_actions.feature +41 -0
  137. data/features/index/filters.feature +67 -0
  138. data/features/index/format_as_csv.feature +90 -4
  139. data/features/index/formats.feature +27 -0
  140. data/features/index/index_as_blog.feature +4 -4
  141. data/features/index/index_as_table.feature +102 -6
  142. data/features/index/index_blank_slate.feature +22 -0
  143. data/features/index/index_scope_to.feature +16 -16
  144. data/features/index/page_title.feature +11 -0
  145. data/features/index/pagination.feature +1 -1
  146. data/features/index/switch_index_view.feature +14 -14
  147. data/features/new_page.feature +13 -2
  148. data/features/registering_pages.feature +1 -1
  149. data/features/renamed_resource.feature +32 -0
  150. data/features/show/page_title.feature +11 -0
  151. data/features/show/tabs.feature +27 -0
  152. data/features/sidebar_sections.feature +12 -0
  153. data/features/site_title.feature +2 -2
  154. data/features/specifying_actions.feature +3 -3
  155. data/features/step_definitions/action_item_steps.rb +2 -2
  156. data/features/step_definitions/action_link_steps.rb +14 -1
  157. data/features/step_definitions/additional_web_steps.rb +19 -20
  158. data/features/step_definitions/asset_steps.rb +3 -3
  159. data/features/step_definitions/attribute_steps.rb +8 -3
  160. data/features/step_definitions/batch_action_steps.rb +26 -9
  161. data/features/step_definitions/blog_steps.rb +3 -0
  162. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  163. data/features/step_definitions/comment_steps.rb +1 -1
  164. data/features/step_definitions/configuration_steps.rb +9 -2
  165. data/features/step_definitions/dashboard_steps.rb +2 -2
  166. data/features/step_definitions/factory_steps.rb +9 -8
  167. data/features/step_definitions/filter_steps.rb +25 -3
  168. data/features/step_definitions/flash_steps.rb +3 -3
  169. data/features/step_definitions/format_steps.rb +18 -18
  170. data/features/step_definitions/index_scope_steps.rb +5 -5
  171. data/features/step_definitions/layout_steps.rb +1 -1
  172. data/features/step_definitions/member_link_steps.rb +2 -2
  173. data/features/step_definitions/menu_steps.rb +3 -3
  174. data/features/step_definitions/pagination_steps.rb +2 -3
  175. data/features/step_definitions/sidebar_steps.rb +8 -3
  176. data/features/step_definitions/site_title_steps.rb +6 -4
  177. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  178. data/features/step_definitions/tab_steps.rb +5 -0
  179. data/features/step_definitions/table_steps.rb +4 -4
  180. data/features/step_definitions/user_steps.rb +10 -7
  181. data/features/step_definitions/web_steps.rb +14 -11
  182. data/features/sti_resource.feature +6 -2
  183. data/features/strong_parameters.feature +73 -0
  184. data/features/support/env.rb +34 -9
  185. data/features/support/paths.rb +14 -6
  186. data/features/support/selectors.rb +1 -1
  187. data/features/symbol_leak.feature +35 -0
  188. data/features/users/resetting_password.feature +5 -6
  189. data/lib/active_admin.rb +26 -25
  190. data/lib/active_admin/abstract_view_factory.rb +7 -17
  191. data/lib/active_admin/application.rb +72 -59
  192. data/lib/active_admin/asset_registration.rb +2 -2
  193. data/lib/active_admin/authorization_adapter.rb +2 -2
  194. data/lib/active_admin/base_controller.rb +2 -3
  195. data/lib/active_admin/base_controller/authorization.rb +13 -31
  196. data/lib/active_admin/batch_actions.rb +1 -1
  197. data/lib/active_admin/batch_actions/controller.rb +24 -8
  198. data/lib/active_admin/batch_actions/resource_extension.rb +47 -18
  199. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  200. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  201. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  202. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  203. data/lib/active_admin/callbacks.rb +25 -24
  204. data/lib/active_admin/cancan_adapter.rb +7 -11
  205. data/lib/active_admin/csv_builder.rb +92 -15
  206. data/lib/active_admin/dependency.rb +93 -0
  207. data/lib/active_admin/deprecation.rb +6 -7
  208. data/lib/active_admin/devise.rb +28 -18
  209. data/lib/active_admin/dsl.rb +18 -11
  210. data/lib/active_admin/engine.rb +10 -8
  211. data/lib/active_admin/error.rb +62 -0
  212. data/lib/active_admin/filters/dsl.rb +2 -2
  213. data/lib/active_admin/filters/forms.rb +17 -27
  214. data/lib/active_admin/filters/formtastic_addons.rb +49 -15
  215. data/lib/active_admin/filters/resource_extension.rb +43 -34
  216. data/lib/active_admin/form_builder.rb +93 -154
  217. data/lib/active_admin/helpers/collection.rb +7 -13
  218. data/lib/active_admin/helpers/i18n.rb +7 -0
  219. data/lib/active_admin/helpers/optional_display.rb +5 -5
  220. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  221. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  222. data/lib/active_admin/helpers/settings.rb +16 -9
  223. data/lib/active_admin/iconic.rb +17 -15
  224. data/lib/active_admin/iconic/icons.rb +136 -136
  225. data/lib/active_admin/inputs.rb +11 -7
  226. data/lib/active_admin/inputs/datepicker_input.rb +12 -3
  227. data/lib/active_admin/inputs/filters/base.rb +42 -0
  228. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  229. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  230. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  231. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  232. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  233. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  234. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  235. data/lib/active_admin/menu.rb +6 -4
  236. data/lib/active_admin/menu_collection.rb +1 -4
  237. data/lib/active_admin/namespace.rb +55 -29
  238. data/lib/active_admin/order_clause.rb +26 -0
  239. data/lib/active_admin/orm/active_record.rb +5 -0
  240. data/lib/active_admin/orm/active_record/comments.rb +81 -0
  241. data/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
  242. data/lib/active_admin/{comments → orm/active_record/comments}/namespace_helper.rb +2 -2
  243. data/lib/active_admin/{comments → orm/active_record/comments}/resource_helper.rb +1 -1
  244. data/lib/active_admin/{comments → orm/active_record/comments}/show_page_helper.rb +0 -0
  245. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  246. data/lib/active_admin/{comments → orm/active_record/comments}/views/active_admin_comments.rb +16 -14
  247. data/lib/active_admin/orm/mongoid.rb +1 -0
  248. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  249. data/lib/active_admin/page.rb +7 -3
  250. data/lib/active_admin/page_dsl.rb +1 -1
  251. data/lib/active_admin/page_presenter.rb +2 -2
  252. data/lib/active_admin/pundit_adapter.rb +68 -0
  253. data/lib/active_admin/resource.rb +16 -17
  254. data/lib/active_admin/resource/action_items.rb +23 -18
  255. data/lib/active_admin/resource/belongs_to.rb +7 -3
  256. data/lib/active_admin/resource/controllers.rb +1 -0
  257. data/lib/active_admin/resource/includes.rb +12 -0
  258. data/lib/active_admin/resource/menu.rb +5 -5
  259. data/lib/active_admin/resource/naming.rb +27 -43
  260. data/lib/active_admin/resource/page_presenters.rb +1 -1
  261. data/lib/active_admin/resource/routes.rb +27 -11
  262. data/lib/active_admin/resource/scope_to.rb +7 -7
  263. data/lib/active_admin/resource/sidebars.rb +1 -0
  264. data/lib/active_admin/resource_controller.rb +6 -7
  265. data/lib/active_admin/resource_controller/data_access.rb +101 -93
  266. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  267. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  268. data/lib/active_admin/resource_dsl.rb +53 -10
  269. data/lib/active_admin/router.rb +7 -7
  270. data/lib/active_admin/scope.rb +6 -6
  271. data/lib/active_admin/sidebar_section.rb +10 -2
  272. data/lib/active_admin/version.rb +1 -1
  273. data/lib/active_admin/view_factory.rb +17 -17
  274. data/lib/active_admin/view_helpers.rb +0 -1
  275. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  276. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  277. data/lib/active_admin/view_helpers/display_helper.rb +30 -15
  278. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -25
  279. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  280. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  281. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  282. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  283. data/lib/active_admin/views/action_items.rb +2 -2
  284. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  285. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  286. data/lib/active_admin/views/components/attributes_table.rb +63 -21
  287. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  288. data/lib/active_admin/views/components/columns.rb +13 -7
  289. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  290. data/lib/active_admin/views/components/index_list.rb +7 -7
  291. data/lib/active_admin/views/components/paginated_collection.rb +38 -20
  292. data/lib/active_admin/views/components/panel.rb +8 -2
  293. data/lib/active_admin/views/components/popover.rb +1 -1
  294. data/lib/active_admin/views/components/scopes.rb +5 -4
  295. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  296. data/lib/active_admin/views/components/site_title.rb +2 -2
  297. data/lib/active_admin/views/components/status_tag.rb +34 -11
  298. data/lib/active_admin/views/components/table_for.rb +90 -45
  299. data/lib/active_admin/views/components/tabs.rb +28 -0
  300. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  301. data/lib/active_admin/views/footer.rb +3 -3
  302. data/lib/active_admin/views/header.rb +3 -3
  303. data/lib/active_admin/views/index_as_block.rb +10 -10
  304. data/lib/active_admin/views/index_as_blog.rb +45 -39
  305. data/lib/active_admin/views/index_as_grid.rb +14 -10
  306. data/lib/active_admin/views/index_as_table.rb +242 -129
  307. data/lib/active_admin/views/pages/base.rb +22 -18
  308. data/lib/active_admin/views/pages/form.rb +21 -11
  309. data/lib/active_admin/views/pages/index.rb +40 -35
  310. data/lib/active_admin/views/pages/layout.rb +1 -1
  311. data/lib/active_admin/views/pages/show.rb +4 -4
  312. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  313. data/lib/active_admin/views/title_bar.rb +10 -8
  314. data/lib/generators/active_admin/assets/assets_generator.rb +3 -28
  315. data/lib/generators/active_admin/assets/templates/{3.1/active_admin.css.scss → active_admin.css.scss} +0 -0
  316. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  317. data/lib/generators/active_admin/devise/devise_generator.rb +24 -26
  318. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  319. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +28 -26
  320. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -2
  321. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  322. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  323. data/lib/generators/active_admin/page/USAGE +8 -0
  324. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  325. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  326. data/lib/generators/active_admin/resource/resource_generator.rb +3 -5
  327. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  328. data/lib/ransack_ext.rb +12 -0
  329. data/script/local +2 -2
  330. data/script/travis_cache +107 -0
  331. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  332. data/spec/javascripts/fixtures/flashes.html +2 -0
  333. data/spec/rails_helper.rb +154 -0
  334. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  335. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  336. data/spec/requests/memory_spec.rb +23 -0
  337. data/spec/requests/stylesheets_spec.rb +18 -0
  338. data/spec/spec_helper.rb +12 -173
  339. data/spec/support/detect_rails_version.rb +9 -17
  340. data/spec/support/rails_template.rb +64 -35
  341. data/spec/support/rails_template_with_data.rb +14 -14
  342. data/spec/support/templates/admin/stores.rb +5 -1
  343. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  344. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  345. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  346. data/spec/support/templates/policies/application_policy.rb +45 -0
  347. data/spec/support/templates/policies/category_policy.rb +7 -0
  348. data/spec/support/templates/policies/post_policy.rb +15 -0
  349. data/spec/support/templates/policies/store_policy.rb +11 -0
  350. data/spec/support/templates/policies/user_policy.rb +11 -0
  351. data/spec/support/templates/post_decorator.rb +4 -46
  352. data/spec/unit/abstract_view_factory_spec.rb +16 -16
  353. data/spec/unit/action_builder_spec.rb +24 -18
  354. data/spec/unit/active_admin_spec.rb +2 -2
  355. data/spec/unit/application_spec.rb +33 -34
  356. data/spec/unit/asset_registration_spec.rb +25 -29
  357. data/spec/unit/authorization/authorization_adapter_spec.rb +10 -10
  358. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  359. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  360. data/spec/unit/auto_link_spec.rb +43 -13
  361. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  362. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  363. data/spec/unit/belongs_to_spec.rb +28 -19
  364. data/spec/unit/cancan_adapter_spec.rb +8 -8
  365. data/spec/unit/comments_spec.rb +99 -39
  366. data/spec/unit/component_spec.rb +3 -3
  367. data/spec/unit/config_shared_examples.rb +10 -10
  368. data/spec/unit/controller_filters_spec.rb +23 -16
  369. data/spec/unit/csv_builder_spec.rb +165 -24
  370. data/spec/unit/dependency_spec.rb +135 -0
  371. data/spec/unit/devise_spec.rb +17 -37
  372. data/spec/unit/dsl_spec.rb +70 -9
  373. data/spec/unit/event_spec.rb +11 -11
  374. data/spec/unit/filters/filter_form_builder_spec.rb +207 -148
  375. data/spec/unit/filters/resource_spec.rb +60 -26
  376. data/spec/unit/form_builder_spec.rb +419 -145
  377. data/spec/unit/generators/install_spec.rb +23 -0
  378. data/spec/unit/helpers/collection_spec.rb +18 -18
  379. data/spec/unit/helpers/scope_chain_spec.rb +6 -6
  380. data/spec/unit/helpers/settings_spec.rb +4 -4
  381. data/spec/unit/i18n_spec.rb +12 -0
  382. data/spec/unit/menu_collection_spec.rb +14 -14
  383. data/spec/unit/menu_item_spec.rb +42 -42
  384. data/spec/unit/menu_spec.rb +20 -20
  385. data/spec/unit/namespace/authorization_spec.rb +8 -8
  386. data/spec/unit/namespace/register_page_spec.rb +11 -11
  387. data/spec/unit/namespace/register_resource_spec.rb +28 -30
  388. data/spec/unit/namespace_spec.rb +20 -20
  389. data/spec/unit/order_clause_spec.rb +81 -0
  390. data/spec/unit/page_controller_spec.rb +1 -1
  391. data/spec/unit/page_spec.rb +18 -12
  392. data/spec/unit/pretty_format_spec.rb +42 -14
  393. data/spec/unit/pundit_adapter_spec.rb +98 -0
  394. data/spec/unit/resource/action_items_spec.rb +15 -12
  395. data/spec/unit/resource/includes_spec.rb +21 -0
  396. data/spec/unit/resource/menu_spec.rb +1 -1
  397. data/spec/unit/resource/naming_spec.rb +35 -21
  398. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  399. data/spec/unit/resource/pagination_spec.rb +6 -6
  400. data/spec/unit/resource/routes_spec.rb +10 -10
  401. data/spec/unit/resource/scopes_spec.rb +14 -7
  402. data/spec/unit/resource/sidebars_spec.rb +6 -6
  403. data/spec/unit/resource_collection_spec.rb +31 -38
  404. data/spec/unit/resource_controller/data_access_spec.rb +96 -30
  405. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  406. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  407. data/spec/unit/resource_controller_spec.rb +73 -70
  408. data/spec/unit/resource_registration_spec.rb +12 -12
  409. data/spec/unit/resource_spec.rb +77 -42
  410. data/spec/unit/routing_spec.rb +39 -31
  411. data/spec/unit/scope_spec.rb +112 -30
  412. data/spec/unit/settings_spec.rb +51 -21
  413. data/spec/unit/view_factory_spec.rb +2 -3
  414. data/spec/unit/view_helpers/breadcrumbs_spec.rb +71 -60
  415. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  416. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  417. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  418. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  419. data/spec/unit/view_helpers/form_helper_spec.rb +10 -23
  420. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +64 -22
  421. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  422. data/spec/unit/views/components/attributes_table_spec.rb +171 -30
  423. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  424. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  425. data/spec/unit/views/components/columns_spec.rb +52 -22
  426. data/spec/unit/views/components/index_list_spec.rb +11 -8
  427. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  428. data/spec/unit/views/components/paginated_collection_spec.rb +79 -90
  429. data/spec/unit/views/components/panel_spec.rb +32 -21
  430. data/spec/unit/views/components/popover_spec.rb +7 -7
  431. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  432. data/spec/unit/views/components/site_title_spec.rb +26 -26
  433. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  434. data/spec/unit/views/components/table_for_spec.rb +237 -35
  435. data/spec/unit/views/components/tabs_spec.rb +39 -0
  436. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  437. data/spec/unit/views/pages/form_spec.rb +17 -10
  438. data/spec/unit/views/pages/index_spec.rb +60 -0
  439. data/spec/unit/views/pages/layout_spec.rb +17 -21
  440. data/spec/unit/views/pages/show_spec.rb +18 -6
  441. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  442. data/tasks/docs.rake +9 -11
  443. data/tasks/parallel_tests.rake +8 -2
  444. data/tasks/test.rake +13 -9
  445. data/tasks/yard.rake +7 -4
  446. metadata +219 -163
  447. data/.document +0 -5
  448. data/README.rdoc +0 -88
  449. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  450. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  451. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  452. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  453. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  454. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  455. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  456. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  457. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  458. data/app/assets/images/active_admin/loading.gif +0 -0
  459. data/app/assets/javascripts/active_admin/application.js +0 -3
  460. data/app/assets/javascripts/active_admin/base.js +0 -5
  461. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +0 -105
  462. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -97
  463. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +0 -4
  464. data/app/assets/javascripts/active_admin/pages/application.js.coffee +0 -21
  465. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +0 -26
  466. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  467. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -41
  468. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  469. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +0 -38
  470. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +0 -43
  471. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  472. data/app/views/active_admin/resource/index.csv.erb +0 -23
  473. data/docs/3-index-pages/create-an-index.md +0 -29
  474. data/lib/active_admin/comments.rb +0 -83
  475. data/lib/active_admin/comments/comment.rb +0 -42
  476. data/lib/active_admin/comments/views.rb +0 -2
  477. data/lib/active_admin/dependency_checker.rb +0 -46
  478. data/lib/active_admin/inputs/filter_base.rb +0 -33
  479. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  480. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -36
  481. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -40
  482. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  483. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  484. data/lib/active_admin/inputs/filter_select_input.rb +0 -49
  485. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  486. data/lib/active_admin/reloader.rb +0 -130
  487. data/lib/active_admin/resource_controller/actions.rb +0 -81
  488. data/lib/active_admin/sass/active_admin.scss +0 -3
  489. data/lib/active_admin/sass/css_loader.rb +0 -16
  490. data/lib/active_admin/sass/helpers.rb +0 -45
  491. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  492. data/lib/active_admin/views/dashboard_section_renderer.rb +0 -19
  493. data/lib/active_admin/views/pages/dashboard.rb +0 -62
  494. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -1
  495. data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +0 -1
  496. data/lib/meta_search_ext.rb +0 -10
  497. data/spec/integration/memory_spec.rb +0 -29
  498. data/spec/integration/stylesheets_spec.rb +0 -41
  499. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  500. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  501. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  502. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  503. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  504. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  505. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  506. data/spec/javascripts/support/jquery.min.js +0 -4
  507. data/spec/spec_helper_without_rails.rb +0 -11
  508. data/spec/unit/generators/install_rails_3_1_spec.rb +0 -16
  509. data/spec/unit/rails_spec.rb +0 -43
  510. data/spec/unit/reloader_spec.rb +0 -124
  511. data/spec/unit/sass/helpers_spec.rb +0 -47
  512. data/tasks/js.rake +0 -32
@@ -1,13 +1,13 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::AuthorizationAdapter do
4
4
 
5
- let(:adapter) { ActiveAdmin::AuthorizationAdapter.new(stub, stub) }
5
+ let(:adapter) { ActiveAdmin::AuthorizationAdapter.new(double, double) }
6
6
 
7
7
  describe "#authorized?" do
8
8
 
9
9
  it "should always return true" do
10
- adapter.authorized?(:read, "Resource").should == true
10
+ expect(adapter.authorized?(:read, "Resource")).to be_truthy
11
11
  end
12
12
 
13
13
  end
@@ -15,8 +15,8 @@ describe ActiveAdmin::AuthorizationAdapter do
15
15
  describe "#scope_collection" do
16
16
 
17
17
  it "should return the collection unscoped" do
18
- collection = stub
19
- adapter.scope_collection(collection, ActiveAdmin::Auth::READ).should == collection
18
+ collection = double
19
+ expect(adapter.scope_collection(collection, ActiveAdmin::Auth::READ)).to eq collection
20
20
  end
21
21
 
22
22
  end
@@ -38,22 +38,22 @@ describe ActiveAdmin::AuthorizationAdapter do
38
38
  end
39
39
  end
40
40
 
41
- let(:adapter) { auth_class.new(stub, stub) }
41
+ let(:adapter) { auth_class.new(double, double) }
42
42
 
43
43
  it "should match against a class" do
44
- adapter.authorized?(:read, String).should == true
44
+ expect(adapter.authorized?(:read, String)).to be_truthy
45
45
  end
46
46
 
47
47
  it 'should match against an instance' do
48
- adapter.authorized?(:read, "String").should == true
48
+ expect(adapter.authorized?(:read, "String")).to be_truthy
49
49
  end
50
50
 
51
51
  it 'should not match a different class' do
52
- adapter.authorized?(:read, Hash).should == false
52
+ expect(adapter.authorized?(:read, Hash)).to be_falsey
53
53
  end
54
54
 
55
55
  it 'should not match a different instance' do
56
- adapter.authorized?(:read, {}).should == false
56
+ expect(adapter.authorized?(:read, {})).to be_falsey
57
57
  end
58
58
 
59
59
  end
@@ -1,7 +1,7 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  Auth = ActiveAdmin::Authorization
3
3
 
4
- describe Admin::PostsController, "Controller Authorization", :type => :controller do
4
+ describe Admin::PostsController, "Controller Authorization", type: :controller do
5
5
 
6
6
  let(:authorization){ controller.send(:active_admin_authorization) }
7
7
 
@@ -12,28 +12,28 @@ describe Admin::PostsController, "Controller Authorization", :type => :controlle
12
12
  end
13
13
 
14
14
  it "should authorize the index action" do
15
- authorization.should_receive(:authorized?).with(Auth::READ, Post).and_return true
15
+ expect(authorization).to receive(:authorized?).with(Auth::READ, Post).and_return true
16
16
  get :index
17
- response.should be_success
17
+ expect(response).to be_success
18
18
  end
19
19
 
20
20
  it "should authorize the new action" do
21
- authorization.should_receive(:authorized?).with(Auth::CREATE, an_instance_of(Post)).and_return true
21
+ expect(authorization).to receive(:authorized?).with(Auth::CREATE, an_instance_of(Post)).and_return true
22
22
  get :new
23
- response.should be_success
23
+ expect(response).to be_success
24
24
  end
25
25
 
26
26
  it "should authorize the create action with the new resource" do
27
- authorization.should_receive(:authorized?).with(Auth::CREATE, an_instance_of(Post)).and_return true
27
+ expect(authorization).to receive(:authorized?).with(Auth::CREATE, an_instance_of(Post)).and_return true
28
28
  post :create
29
- response.should redirect_to action: 'show', id: Post.last.id
29
+ expect(response).to redirect_to action: 'show', id: Post.last.id
30
30
  end
31
31
 
32
32
  it "should redirect when the user isn't authorized" do
33
- authorization.should_receive(:authorized?).with(Auth::READ, Post).and_return false
33
+ expect(authorization).to receive(:authorized?).with(Auth::READ, Post).and_return false
34
34
  get :index
35
- response.body.should eq '<html><body>You are being <a href="http://test.host/admin">redirected</a>.</body></html>'
36
- response.should redirect_to '/admin'
35
+ expect(response.body).to eq '<html><body>You are being <a href="http://test.host/admin">redirected</a>.</body></html>'
36
+ expect(response).to redirect_to '/admin'
37
37
  end
38
38
 
39
39
  end
@@ -0,0 +1,22 @@
1
+ require 'rails_helper'
2
+
3
+ describe Admin::PostsController, 'Index overriding', type: :controller do
4
+ before do
5
+ controller.instance_eval do
6
+ def index
7
+ super do
8
+ render text: 'Rendered from passed block' and return
9
+ end
10
+ end
11
+ end
12
+ load_defaults!
13
+ # HACK: the AA config is missing, so we throw it in here
14
+ controller.class.active_admin_config = ActiveAdmin.application.namespace(:admin).resources['Post'].controller.active_admin_config
15
+ end
16
+
17
+ it 'should call block passed to overridden index' do
18
+ get :index
19
+ expect(response.body).to eq 'Rendered from passed block'
20
+ end
21
+
22
+ end
@@ -1,28 +1,26 @@
1
- require 'spec_helper'
2
-
3
- class AutoLinkMockResource
4
- attr_accessor :namespace
5
- def initialize(namespace)
6
- @namespace = namespace
7
- end
8
- end
1
+ require 'rails_helper'
9
2
 
10
3
  describe "auto linking resources" do
11
4
  include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
12
5
  include ActiveAdmin::ViewHelpers::AutoLinkHelper
13
6
  include ActiveAdmin::ViewHelpers::DisplayHelper
7
+ include MethodOrProcHelper
14
8
 
15
- let(:active_admin_config) { AutoLinkMockResource.new(namespace) }
9
+ let(:active_admin_config) { double namespace: namespace }
16
10
  let(:active_admin_namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin) }
17
- let(:post){ Post.create! :title => "Hello World" }
11
+ let(:post){ Post.create! title: "Hello World" }
18
12
 
19
13
  def admin_post_path(post)
20
14
  "/admin/posts/#{post.id}"
21
15
  end
22
16
 
17
+ def authorized?(_action, _subject)
18
+ true
19
+ end
20
+
23
21
  context "when the resource is not registered" do
24
22
  it "should return the display name of the object" do
25
- auto_link(post).should == "Hello World"
23
+ expect(auto_link(post)).to eq "Hello World"
26
24
  end
27
25
  end
28
26
 
@@ -31,9 +29,41 @@ describe "auto linking resources" do
31
29
  active_admin_namespace.register Post
32
30
  end
33
31
  it "should return a link with the display name of the object" do
34
- self.should_receive(:link_to).with("Hello World", admin_post_path(post))
32
+ expect(self).to receive(:url_for) { |url| url }
33
+ expect(self).to receive(:link_to).with "Hello World", admin_post_path(post)
35
34
  auto_link(post)
36
35
  end
37
- end
38
36
 
37
+ context "but the user doesn't have access" do
38
+ it "should return the display name of the object" do
39
+ expect(self).to receive(:authorized?).twice.and_return(false)
40
+ expect(auto_link(post)).to eq "Hello World"
41
+ end
42
+ end
43
+
44
+ context "but the show action is disabled" do
45
+ before do
46
+ active_admin_namespace.register(Post) { actions :all, except: :show }
47
+ end
48
+
49
+ it "should fallback to edit" do
50
+ url_path = "/admin/posts/#{post.id}/edit"
51
+ expect(self).to receive(:url_for) { |url| url }
52
+ expect(self).to receive(:link_to).with "Hello World", url_path
53
+ auto_link(post)
54
+ end
55
+ end
56
+
57
+ context "but the show and edit actions are disabled" do
58
+ before do
59
+ active_admin_namespace.register(Post) do
60
+ actions :all, except: [:show, :edit]
61
+ end
62
+ end
63
+
64
+ it "should return the display name of the object" do
65
+ expect(auto_link(post)).to eq "Hello World"
66
+ end
67
+ end
68
+ end
39
69
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::BatchActions::ResourceExtension do
4
4
 
@@ -11,7 +11,8 @@ describe ActiveAdmin::BatchActions::ResourceExtension do
11
11
  describe "default action" do
12
12
 
13
13
  it "should have the default action by default" do
14
- resource.batch_actions.size.should == 1 and resource.batch_actions.first.sym == :destroy
14
+ expect(resource.batch_actions.size).to eq 1
15
+ expect(resource.batch_actions.first.sym == :destroy).to be_truthy
15
16
  end
16
17
 
17
18
  end
@@ -26,15 +27,15 @@ describe ActiveAdmin::BatchActions::ResourceExtension do
26
27
  end
27
28
 
28
29
  it "should add an batch action" do
29
- resource.batch_actions.size.should == 1
30
+ expect(resource.batch_actions.size).to eq 1
30
31
  end
31
32
 
32
33
  it "should store an instance of BatchAction" do
33
- resource.batch_actions.first.should be_an_instance_of(ActiveAdmin::BatchAction)
34
+ expect(resource.batch_actions.first).to be_an_instance_of(ActiveAdmin::BatchAction)
34
35
  end
35
36
 
36
37
  it "should store the block in the batch action" do
37
- resource.batch_actions.first.block.should_not be_nil
38
+ expect(resource.batch_actions.first.block).to_not be_nil
38
39
  end
39
40
 
40
41
  end
@@ -46,7 +47,7 @@ describe ActiveAdmin::BatchActions::ResourceExtension do
46
47
  end
47
48
 
48
49
  it "should allow for batch action removal" do
49
- resource.batch_actions.size.should == 0
50
+ expect(resource.batch_actions.size).to eq 0
50
51
  end
51
52
 
52
53
  end
@@ -54,7 +55,7 @@ describe ActiveAdmin::BatchActions::ResourceExtension do
54
55
  describe "#batch_action_path" do
55
56
 
56
57
  it "returns the path as a symbol" do
57
- resource.batch_action_path.should == "/admin/posts/batch_action"
58
+ expect(resource.batch_action_path).to eq "/admin/posts/batch_action"
58
59
  end
59
60
 
60
61
  end
@@ -63,12 +64,12 @@ describe ActiveAdmin::BatchActions::ResourceExtension do
63
64
 
64
65
  it "should return true by default" do
65
66
  action = ActiveAdmin::BatchAction.new :default, "Default"
66
- action.display_if_block.call.should == true
67
+ expect(action.display_if_block.call).to eq true
67
68
  end
68
69
 
69
70
  it "should return the :if block if set" do
70
- action = ActiveAdmin::BatchAction.new :with_block, "With Block", :if => proc { false }
71
- action.display_if_block.call.should == false
71
+ action = ActiveAdmin::BatchAction.new :with_block, "With Block", if: proc { false }
72
+ expect(action.display_if_block.call).to eq false
72
73
  end
73
74
 
74
75
  end
@@ -77,13 +78,13 @@ describe ActiveAdmin::BatchActions::ResourceExtension do
77
78
 
78
79
  it "should have a default priority" do
79
80
  action = ActiveAdmin::BatchAction.new :default, "Default"
80
- action.priority.should == 10
81
+ expect(action.priority).to eq 10
81
82
  end
82
83
 
83
84
  it "should correctly order two actions" do
84
- priority_one = ActiveAdmin::BatchAction.new :one, "One", :priority => 1
85
- priority_ten = ActiveAdmin::BatchAction.new :ten, "Ten", :priority => 10
86
- priority_one.should be < priority_ten
85
+ priority_one = ActiveAdmin::BatchAction.new :one, "One", priority: 1
86
+ priority_ten = ActiveAdmin::BatchAction.new :ten, "Ten", priority: 10
87
+ expect(priority_one).to be < priority_ten
87
88
  end
88
89
 
89
90
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe "Batch Actions Settings" do
4
4
  let(:app) { ActiveAdmin::Application.new }
@@ -8,54 +8,54 @@ describe "Batch Actions Settings" do
8
8
  it "should be disabled globally by default" do
9
9
  # Note: the default initializer would set it to true
10
10
 
11
- app.batch_actions.should be_false
12
- ns.batch_actions.should be_false
13
- post_resource.batch_actions_enabled?.should be_false
11
+ expect(app.batch_actions).to be_falsey
12
+ expect(ns.batch_actions).to be_falsey
13
+ expect(post_resource.batch_actions_enabled?).to be_falsey
14
14
  end
15
15
 
16
16
  it "should be settable to true" do
17
17
  app.batch_actions = true
18
- app.batch_actions.should == true
18
+ expect(app.batch_actions).to be_truthy
19
19
  end
20
20
 
21
21
  it "should be an inheritable_setting" do
22
22
  app.batch_actions = true
23
- ns.batch_actions.should == true
23
+ expect(ns.batch_actions).to be_truthy
24
24
  end
25
25
 
26
26
  it "should be settable at the namespace level" do
27
27
  app.batch_actions = true
28
28
  ns.batch_actions = false
29
29
 
30
- app.batch_actions.should == true
31
- ns.batch_actions.should == false
30
+ expect(app.batch_actions).to be_truthy
31
+ expect(ns.batch_actions).to be_falsey
32
32
  end
33
33
 
34
34
  it "should be settable at the resource level" do
35
- post_resource.batch_actions_enabled?.should == false
35
+ expect(post_resource.batch_actions_enabled?).to be_falsey
36
36
  post_resource.batch_actions = true
37
- post_resource.batch_actions_enabled?.should == true
37
+ expect(post_resource.batch_actions_enabled?).to be_truthy
38
38
  end
39
39
 
40
40
  it "should inherit the setting on the resource from the namespace" do
41
41
  ns.batch_actions = false
42
- post_resource.batch_actions_enabled?.should == false
43
- post_resource.batch_actions.should be_empty
42
+ expect(post_resource.batch_actions_enabled?).to be_falsey
43
+ expect(post_resource.batch_actions).to be_empty
44
44
 
45
45
  post_resource.batch_actions = true
46
- post_resource.batch_actions_enabled?.should == true
47
- post_resource.batch_actions.should_not be_empty
46
+ expect(post_resource.batch_actions_enabled?).to be_truthy
47
+ expect(post_resource.batch_actions).to_not be_empty
48
48
  end
49
49
 
50
50
  it "should inherit the setting from the namespace when set to nil" do
51
51
  ns.batch_actions = true
52
52
 
53
53
  post_resource.batch_actions = true
54
- post_resource.batch_actions_enabled?.should == true
55
- post_resource.batch_actions.should_not be_empty
54
+ expect(post_resource.batch_actions_enabled?).to be_truthy
55
+ expect(post_resource.batch_actions).to_not be_empty
56
56
 
57
57
  post_resource.batch_actions = nil
58
- post_resource.batch_actions_enabled?.should == true # inherited from namespace
59
- post_resource.batch_actions.should_not be_empty
58
+ expect(post_resource.batch_actions_enabled?).to be_truthy # inherited from namespace
59
+ expect(post_resource.batch_actions).to_not be_empty
60
60
  end
61
61
  end
@@ -1,42 +1,51 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Resource::BelongsTo do
4
4
 
5
-
6
- let(:application){ ActiveAdmin::Application.new }
7
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
8
- let(:post){ namespace.register(Post) }
9
- let(:belongs_to){ ActiveAdmin::Resource::BelongsTo.new(post, :user) }
5
+ let(:user_config){ ActiveAdmin.register User }
6
+ let(:post_config){ ActiveAdmin.register Post do belongs_to :user end }
7
+ let(:belongs_to){ post_config.belongs_to_config }
10
8
 
11
9
  it "should have an owner" do
12
- belongs_to.owner.should == post
13
- end
14
-
15
- it "should have a namespace" do
16
- belongs_to.namespace.should == namespace
10
+ expect(belongs_to.owner).to eq post_config
17
11
  end
18
12
 
19
13
  describe "finding the target" do
20
14
  context "when the resource has been registered" do
21
- let(:user){ namespace.register(User) }
22
- before { user } # Ensure user is registered
23
-
24
15
  it "should return the target resource" do
25
- belongs_to.target.should == user
16
+ expect(belongs_to.target).to eq user_config
26
17
  end
27
18
  end
28
19
 
29
20
  context "when the resource has not been registered" do
21
+ let(:belongs_to){ ActiveAdmin::Resource::BelongsTo.new post_config, :missing }
22
+
30
23
  it "should raise a ActiveAdmin::BelongsTo::TargetNotFound" do
31
- lambda {
24
+ expect {
32
25
  belongs_to.target
33
- }.should raise_error(ActiveAdmin::Resource::BelongsTo::TargetNotFound)
26
+ }.to raise_error(ActiveAdmin::Resource::BelongsTo::TargetNotFound)
34
27
  end
35
28
  end
36
29
  end
37
30
 
38
31
  it "should be optional" do
39
- belongs_to = ActiveAdmin::Resource::BelongsTo.new post, :user, :optional => true
40
- belongs_to.should be_optional
32
+ belongs_to = ActiveAdmin::Resource::BelongsTo.new post_config, :user, optional: true
33
+ expect(belongs_to).to be_optional
34
+ end
35
+
36
+ describe "controller" do
37
+ let(:controller) { post_config.controller.new }
38
+ before do
39
+ user = User.create!
40
+ request = double 'Request', format: 'application/json'
41
+ allow(controller).to receive(:params) { {user_id: user.id} }
42
+ allow(controller).to receive(:request){ request }
43
+ end
44
+ it 'should be able to access the collection' do
45
+ expect(controller.send :collection).to be_a ActiveRecord::Relation
46
+ end
47
+ it 'should be able to build a new resource' do
48
+ expect(controller.send :build_resource).to be_a Post
49
+ end
41
50
  end
42
51
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::CanCanAdapter do
4
4
 
@@ -8,7 +8,7 @@ describe ActiveAdmin::CanCanAdapter do
8
8
  let(:namespace){ ActiveAdmin::Namespace.new(application, "Admin") }
9
9
  let(:resource){ namespace.register(Post) }
10
10
 
11
- let :mock_ability_class do
11
+ let :ability_class do
12
12
  Class.new do
13
13
  include CanCan::Ability
14
14
 
@@ -20,21 +20,21 @@ describe ActiveAdmin::CanCanAdapter do
20
20
  end
21
21
  end
22
22
 
23
- let(:auth) { namespace.authorization_adapter.new(resource, mock) }
23
+ let(:auth) { namespace.authorization_adapter.new(resource, double) }
24
24
 
25
25
  before do
26
26
  namespace.authorization_adapter = ActiveAdmin::CanCanAdapter
27
- namespace.cancan_ability_class = mock_ability_class
27
+ namespace.cancan_ability_class = ability_class
28
28
  end
29
29
 
30
30
  it "should initialize the ability stored in the namespace configuration" do
31
- auth.authorized?(:read, Post).should == true
32
- auth.authorized?(:update, Post).should == false
31
+ expect(auth.authorized?(:read, Post)).to eq true
32
+ expect(auth.authorized?(:update, Post)).to eq false
33
33
  end
34
34
 
35
35
  it "should scope the collection with accessible_by" do
36
- collection = mock
37
- collection.should_receive(:accessible_by).with(auth.cancan_ability, :edit)
36
+ collection = double
37
+ expect(collection).to receive(:accessible_by).with(auth.cancan_ability, :edit)
38
38
  auth.scope_collection(collection, :edit)
39
39
  end
40
40