yousty-activeadmin 1.0.4.pre → 1.0.5.pre

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 (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +261 -211
  3. data/CONTRIBUTING.md +73 -39
  4. data/Gemfile +38 -20
  5. data/Guardfile +1 -0
  6. data/LICENSE +1 -1
  7. data/README.md +48 -24
  8. data/Rakefile +12 -4
  9. data/activeadmin.gemspec +21 -26
  10. data/app/assets/javascripts/active_admin/application.js.coffee +34 -5
  11. data/app/assets/javascripts/active_admin/base.js.coffee +11 -2
  12. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  13. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  14. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  15. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +3 -4
  16. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +51 -55
  17. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  18. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  19. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  20. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  21. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +29 -58
  22. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +2 -3
  23. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  24. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +51 -15
  25. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  26. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  27. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  28. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  29. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -12
  32. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +3 -1
  33. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  34. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  35. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  36. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +0 -0
  37. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  38. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  39. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +1 -0
  40. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  41. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  42. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  43. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -0
  44. data/app/assets/stylesheets/active_admin/mixins/{_gradients.css.scss → _gradients.scss} +1 -1
  45. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  46. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_rounded.css.scss → _rounded.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +7 -1
  49. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  51. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  52. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +10 -7
  53. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  54. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  55. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  56. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  57. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  58. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  59. data/app/views/active_admin/devise/sessions/new.html.erb +8 -8
  60. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  61. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  62. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  63. data/config/locales/ar.yml +120 -0
  64. data/config/locales/bg.yml +26 -6
  65. data/config/locales/bs.yml +122 -0
  66. data/config/locales/ca.yml +10 -1
  67. data/config/locales/cs.yml +7 -2
  68. data/config/locales/da.yml +7 -3
  69. data/config/locales/de-CH.yml +14 -31
  70. data/config/locales/de.yml +33 -33
  71. data/config/locales/el.yml +127 -0
  72. data/config/locales/en-GB.yml +11 -4
  73. data/config/locales/en.yml +21 -4
  74. data/config/locales/{es_MX.yml → es-MX.yml} +14 -24
  75. data/config/locales/es.yml +32 -25
  76. data/config/locales/fa.yml +120 -0
  77. data/config/locales/fi.yml +9 -5
  78. data/config/locales/fr.yml +28 -12
  79. data/config/locales/he.yml +7 -3
  80. data/config/locales/hr.yml +42 -11
  81. data/config/locales/hu.yml +10 -3
  82. data/config/locales/it.yml +31 -3
  83. data/config/locales/ja.yml +17 -4
  84. data/config/locales/ko.yml +7 -1
  85. data/config/locales/lt.yml +42 -11
  86. data/config/locales/lv.yml +7 -3
  87. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  88. data/config/locales/nl.yml +36 -5
  89. data/config/locales/pl.yml +13 -8
  90. data/config/locales/pt-BR.yml +36 -5
  91. data/config/locales/pt-PT.yml +8 -4
  92. data/config/locales/ro.yml +7 -3
  93. data/config/locales/ru.yml +26 -5
  94. data/config/locales/sv-SE.yml +9 -5
  95. data/config/locales/tr.yml +10 -3
  96. data/config/locales/uk.yml +36 -12
  97. data/config/locales/vi.yml +7 -3
  98. data/config/locales/zh-CN.yml +26 -10
  99. data/config/locales/zh-TW.yml +19 -13
  100. data/docs/0-installation.md +14 -6
  101. data/docs/1-general-configuration.md +8 -5
  102. data/docs/10-custom-pages.md +68 -70
  103. data/docs/11-decorators.md +48 -59
  104. data/docs/12-arbre-components.md +79 -73
  105. data/docs/13-authorization-adapter.md +128 -107
  106. data/docs/14-gotchas.md +90 -0
  107. data/docs/2-resource-customization.md +82 -15
  108. data/docs/3-index-pages.md +71 -12
  109. data/docs/3-index-pages/custom-index.md +31 -0
  110. data/docs/3-index-pages/index-as-table.md +45 -2
  111. data/docs/4-csv-format.md +1 -1
  112. data/docs/5-forms.md +78 -29
  113. data/docs/6-show-pages.md +31 -3
  114. data/docs/7-sidebars.md +46 -25
  115. data/docs/8-custom-actions.md +98 -77
  116. data/docs/9-batch-actions.md +211 -133
  117. data/docs/README.md +24 -0
  118. data/features/action_item.feature +3 -3
  119. data/features/authorization_pundit.feature +37 -0
  120. data/features/belongs_to.feature +3 -0
  121. data/features/breadcrumb.feature +48 -0
  122. data/features/comments/commenting.feature +44 -13
  123. data/features/development_reloading.feature +3 -4
  124. data/features/edit_page.feature +9 -19
  125. data/features/favicon.feature +3 -3
  126. data/features/i18n.feature +5 -0
  127. data/features/index/batch_actions.feature +41 -0
  128. data/features/index/filters.feature +23 -0
  129. data/features/index/format_as_csv.feature +90 -4
  130. data/features/index/index_as_blog.feature +4 -4
  131. data/features/index/index_as_table.feature +102 -6
  132. data/features/index/index_blank_slate.feature +22 -0
  133. data/features/index/index_scope_to.feature +16 -16
  134. data/features/index/page_title.feature +11 -0
  135. data/features/index/pagination.feature +1 -1
  136. data/features/index/switch_index_view.feature +14 -14
  137. data/features/new_page.feature +10 -20
  138. data/features/registering_pages.feature +1 -1
  139. data/features/renamed_resource.feature +32 -0
  140. data/features/show/page_title.feature +11 -0
  141. data/features/show/tabs.feature +27 -0
  142. data/features/sidebar_sections.feature +12 -0
  143. data/features/specifying_actions.feature +3 -3
  144. data/features/step_definitions/action_item_steps.rb +2 -2
  145. data/features/step_definitions/action_link_steps.rb +14 -1
  146. data/features/step_definitions/additional_web_steps.rb +17 -18
  147. data/features/step_definitions/asset_steps.rb +3 -3
  148. data/features/step_definitions/attribute_steps.rb +8 -3
  149. data/features/step_definitions/batch_action_steps.rb +26 -9
  150. data/features/step_definitions/blog_steps.rb +3 -0
  151. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  152. data/features/step_definitions/comment_steps.rb +1 -1
  153. data/features/step_definitions/configuration_steps.rb +1 -1
  154. data/features/step_definitions/dashboard_steps.rb +2 -2
  155. data/features/step_definitions/factory_steps.rb +6 -6
  156. data/features/step_definitions/filter_steps.rb +25 -3
  157. data/features/step_definitions/flash_steps.rb +3 -3
  158. data/features/step_definitions/format_steps.rb +17 -10
  159. data/features/step_definitions/index_scope_steps.rb +5 -5
  160. data/features/step_definitions/layout_steps.rb +1 -1
  161. data/features/step_definitions/member_link_steps.rb +2 -2
  162. data/features/step_definitions/menu_steps.rb +3 -3
  163. data/features/step_definitions/pagination_steps.rb +2 -3
  164. data/features/step_definitions/sidebar_steps.rb +8 -3
  165. data/features/step_definitions/site_title_steps.rb +6 -4
  166. data/features/step_definitions/symbol_leak_steps.rb +1 -1
  167. data/features/step_definitions/tab_steps.rb +5 -0
  168. data/features/step_definitions/table_steps.rb +4 -4
  169. data/features/step_definitions/user_steps.rb +15 -9
  170. data/features/step_definitions/web_steps.rb +10 -11
  171. data/features/sti_resource.feature +2 -10
  172. data/features/strong_parameters.feature +73 -0
  173. data/features/support/env.rb +35 -2
  174. data/features/support/paths.rb +2 -2
  175. data/features/support/selectors.rb +1 -1
  176. data/features/users/resetting_password.feature +7 -7
  177. data/lib/active_admin.rb +18 -13
  178. data/lib/active_admin/abstract_view_factory.rb +7 -17
  179. data/lib/active_admin/application.rb +50 -25
  180. data/lib/active_admin/asset_registration.rb +2 -2
  181. data/lib/active_admin/authorization_adapter.rb +2 -2
  182. data/lib/active_admin/base_controller.rb +2 -3
  183. data/lib/active_admin/base_controller/authorization.rb +13 -31
  184. data/lib/active_admin/batch_actions.rb +1 -1
  185. data/lib/active_admin/batch_actions/controller.rb +13 -7
  186. data/lib/active_admin/batch_actions/resource_extension.rb +43 -17
  187. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  188. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  189. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  190. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  191. data/lib/active_admin/callbacks.rb +25 -24
  192. data/lib/active_admin/cancan_adapter.rb +7 -11
  193. data/lib/active_admin/csv_builder.rb +92 -15
  194. data/lib/active_admin/dependency.rb +93 -0
  195. data/lib/active_admin/deprecation.rb +6 -7
  196. data/lib/active_admin/devise.rb +26 -14
  197. data/lib/active_admin/dsl.rb +18 -11
  198. data/lib/active_admin/engine.rb +7 -2
  199. data/lib/active_admin/error.rb +59 -0
  200. data/lib/active_admin/filters/dsl.rb +2 -2
  201. data/lib/active_admin/filters/forms.rb +19 -30
  202. data/lib/active_admin/filters/formtastic_addons.rb +20 -11
  203. data/lib/active_admin/filters/resource_extension.rb +16 -9
  204. data/lib/active_admin/form_builder.rb +94 -105
  205. data/lib/active_admin/helpers/collection.rb +7 -13
  206. data/lib/active_admin/helpers/i18n.rb +7 -0
  207. data/lib/active_admin/helpers/optional_display.rb +5 -5
  208. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  209. data/lib/active_admin/helpers/settings.rb +16 -9
  210. data/lib/active_admin/iconic.rb +17 -15
  211. data/lib/active_admin/iconic/icons.rb +136 -136
  212. data/lib/active_admin/inputs.rb +11 -7
  213. data/lib/active_admin/inputs/datepicker_input.rb +1 -1
  214. data/lib/active_admin/inputs/filters/base.rb +42 -0
  215. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  216. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  217. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  218. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  219. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  220. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  221. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  222. data/lib/active_admin/menu.rb +3 -3
  223. data/lib/active_admin/menu_collection.rb +1 -4
  224. data/lib/active_admin/namespace.rb +52 -29
  225. data/lib/active_admin/order_clause.rb +26 -0
  226. data/lib/active_admin/orm/active_record.rb +2 -0
  227. data/lib/active_admin/orm/active_record/comments.rb +48 -51
  228. data/lib/active_admin/orm/active_record/comments/comment.rb +16 -10
  229. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -1
  230. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -1
  231. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +15 -13
  232. data/lib/active_admin/page.rb +5 -1
  233. data/lib/active_admin/page_dsl.rb +1 -1
  234. data/lib/active_admin/page_presenter.rb +2 -2
  235. data/lib/active_admin/pundit_adapter.rb +68 -0
  236. data/lib/active_admin/resource.rb +12 -3
  237. data/lib/active_admin/resource/action_items.rb +15 -8
  238. data/lib/active_admin/resource/belongs_to.rb +7 -3
  239. data/lib/active_admin/resource/controllers.rb +1 -0
  240. data/lib/active_admin/resource/includes.rb +12 -0
  241. data/lib/active_admin/resource/menu.rb +5 -5
  242. data/lib/active_admin/resource/naming.rb +25 -47
  243. data/lib/active_admin/resource/page_presenters.rb +1 -1
  244. data/lib/active_admin/resource/routes.rb +26 -10
  245. data/lib/active_admin/resource/scope_to.rb +7 -7
  246. data/lib/active_admin/resource/sidebars.rb +1 -0
  247. data/lib/active_admin/resource_collection.rb +44 -16
  248. data/lib/active_admin/resource_controller.rb +6 -5
  249. data/lib/active_admin/resource_controller/data_access.rb +87 -82
  250. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  251. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  252. data/lib/active_admin/resource_dsl.rb +54 -10
  253. data/lib/active_admin/router.rb +7 -7
  254. data/lib/active_admin/scope.rb +6 -6
  255. data/lib/active_admin/sidebar_section.rb +10 -2
  256. data/lib/active_admin/version.rb +1 -1
  257. data/lib/active_admin/view_factory.rb +17 -16
  258. data/lib/active_admin/view_helpers.rb +0 -1
  259. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  260. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +13 -6
  261. data/lib/active_admin/view_helpers/display_helper.rb +30 -17
  262. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -24
  263. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  264. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  265. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  266. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  267. data/lib/active_admin/views/action_items.rb +2 -2
  268. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  269. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  270. data/lib/active_admin/views/components/attributes_table.rb +22 -13
  271. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  272. data/lib/active_admin/views/components/columns.rb +13 -7
  273. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  274. data/lib/active_admin/views/components/index_list.rb +7 -7
  275. data/lib/active_admin/views/components/paginated_collection.rb +33 -17
  276. data/lib/active_admin/views/components/panel.rb +8 -2
  277. data/lib/active_admin/views/components/popover.rb +1 -1
  278. data/lib/active_admin/views/components/scopes.rb +1 -1
  279. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  280. data/lib/active_admin/views/components/site_title.rb +2 -2
  281. data/lib/active_admin/views/components/status_tag.rb +34 -11
  282. data/lib/active_admin/views/components/table_for.rb +67 -22
  283. data/lib/active_admin/views/components/tabs.rb +28 -0
  284. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  285. data/lib/active_admin/views/footer.rb +3 -3
  286. data/lib/active_admin/views/header.rb +3 -3
  287. data/lib/active_admin/views/index_as_blog.rb +6 -6
  288. data/lib/active_admin/views/index_as_grid.rb +2 -2
  289. data/lib/active_admin/views/index_as_table.rb +127 -40
  290. data/lib/active_admin/views/pages/base.rb +22 -18
  291. data/lib/active_admin/views/pages/form.rb +16 -6
  292. data/lib/active_admin/views/pages/index.rb +36 -20
  293. data/lib/active_admin/views/pages/layout.rb +1 -1
  294. data/lib/active_admin/views/pages/show.rb +4 -4
  295. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  296. data/lib/active_admin/views/title_bar.rb +10 -8
  297. data/lib/generators/active_admin/assets/assets_generator.rb +1 -3
  298. data/lib/generators/active_admin/devise/devise_generator.rb +20 -28
  299. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  300. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -22
  301. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -9
  302. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  303. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  304. data/lib/generators/active_admin/page/USAGE +8 -0
  305. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  306. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +2 -4
  308. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  309. data/lib/ransack_ext.rb +4 -4
  310. data/script/local +2 -2
  311. data/script/travis_cache +107 -0
  312. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  313. data/spec/javascripts/fixtures/flashes.html +2 -0
  314. data/spec/rails_helper.rb +154 -0
  315. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  316. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  317. data/spec/requests/memory_spec.rb +23 -0
  318. data/spec/requests/stylesheets_spec.rb +18 -0
  319. data/spec/spec_helper.rb +12 -170
  320. data/spec/support/detect_rails_version.rb +31 -39
  321. data/spec/support/rails_template.rb +61 -34
  322. data/spec/support/rails_template_with_data.rb +14 -14
  323. data/spec/support/templates/admin/stores.rb +3 -5
  324. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  325. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  326. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  327. data/spec/support/templates/policies/application_policy.rb +45 -0
  328. data/spec/support/templates/policies/category_policy.rb +7 -0
  329. data/spec/support/templates/policies/post_policy.rb +15 -0
  330. data/spec/support/templates/policies/store_policy.rb +11 -0
  331. data/spec/support/templates/policies/user_policy.rb +11 -0
  332. data/spec/support/templates/post_decorator.rb +4 -46
  333. data/spec/unit/abstract_view_factory_spec.rb +11 -11
  334. data/spec/unit/action_builder_spec.rb +24 -18
  335. data/spec/unit/active_admin_spec.rb +2 -2
  336. data/spec/unit/application_spec.rb +30 -31
  337. data/spec/unit/asset_registration_spec.rb +11 -11
  338. data/spec/unit/authorization/authorization_adapter_spec.rb +7 -7
  339. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  340. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  341. data/spec/unit/auto_link_spec.rb +42 -5
  342. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  343. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  344. data/spec/unit/belongs_to_spec.rb +26 -17
  345. data/spec/unit/cancan_adapter_spec.rb +4 -4
  346. data/spec/unit/comments_spec.rb +99 -39
  347. data/spec/unit/component_spec.rb +3 -3
  348. data/spec/unit/config_shared_examples.rb +8 -8
  349. data/spec/unit/controller_filters_spec.rb +26 -14
  350. data/spec/unit/csv_builder_spec.rb +152 -24
  351. data/spec/unit/dependency_spec.rb +135 -0
  352. data/spec/unit/devise_spec.rb +17 -37
  353. data/spec/unit/dsl_spec.rb +70 -9
  354. data/spec/unit/event_spec.rb +9 -9
  355. data/spec/unit/filters/filter_form_builder_spec.rb +167 -157
  356. data/spec/unit/filters/resource_spec.rb +35 -33
  357. data/spec/unit/form_builder_spec.rb +383 -145
  358. data/spec/unit/generators/install_spec.rb +5 -5
  359. data/spec/unit/helpers/collection_spec.rb +18 -18
  360. data/spec/unit/helpers/scope_chain_spec.rb +5 -5
  361. data/spec/unit/helpers/settings_spec.rb +4 -4
  362. data/spec/unit/i18n_spec.rb +12 -0
  363. data/spec/unit/menu_collection_spec.rb +14 -14
  364. data/spec/unit/menu_item_spec.rb +42 -42
  365. data/spec/unit/menu_spec.rb +20 -20
  366. data/spec/unit/namespace/authorization_spec.rb +5 -5
  367. data/spec/unit/namespace/register_page_spec.rb +9 -9
  368. data/spec/unit/namespace/register_resource_spec.rb +26 -28
  369. data/spec/unit/namespace_spec.rb +20 -20
  370. data/spec/unit/order_clause_spec.rb +81 -0
  371. data/spec/unit/page_controller_spec.rb +1 -1
  372. data/spec/unit/page_spec.rb +18 -12
  373. data/spec/unit/pretty_format_spec.rb +42 -14
  374. data/spec/unit/pundit_adapter_spec.rb +98 -0
  375. data/spec/unit/resource/action_items_spec.rb +13 -10
  376. data/spec/unit/resource/includes_spec.rb +21 -0
  377. data/spec/unit/resource/menu_spec.rb +1 -1
  378. data/spec/unit/resource/naming_spec.rb +23 -23
  379. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  380. data/spec/unit/resource/pagination_spec.rb +6 -6
  381. data/spec/unit/resource/routes_spec.rb +10 -10
  382. data/spec/unit/resource/scopes_spec.rb +14 -7
  383. data/spec/unit/resource/sidebars_spec.rb +6 -6
  384. data/spec/unit/resource_collection_spec.rb +66 -68
  385. data/spec/unit/resource_controller/data_access_spec.rb +39 -21
  386. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  387. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  388. data/spec/unit/resource_controller_spec.rb +66 -62
  389. data/spec/unit/resource_registration_spec.rb +12 -12
  390. data/spec/unit/resource_spec.rb +75 -40
  391. data/spec/unit/routing_spec.rb +39 -31
  392. data/spec/unit/scope_spec.rb +112 -30
  393. data/spec/unit/settings_spec.rb +51 -21
  394. data/spec/unit/view_factory_spec.rb +2 -2
  395. data/spec/unit/view_helpers/breadcrumbs_spec.rb +137 -69
  396. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  397. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  398. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  399. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  400. data/spec/unit/view_helpers/form_helper_spec.rb +9 -22
  401. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +59 -21
  402. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  403. data/spec/unit/views/components/attributes_table_spec.rb +94 -52
  404. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  405. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  406. data/spec/unit/views/components/columns_spec.rb +52 -22
  407. data/spec/unit/views/components/index_list_spec.rb +11 -8
  408. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  409. data/spec/unit/views/components/paginated_collection_spec.rb +68 -59
  410. data/spec/unit/views/components/panel_spec.rb +32 -21
  411. data/spec/unit/views/components/popover_spec.rb +7 -7
  412. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  413. data/spec/unit/views/components/site_title_spec.rb +8 -8
  414. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  415. data/spec/unit/views/components/table_for_spec.rb +227 -44
  416. data/spec/unit/views/components/tabs_spec.rb +39 -0
  417. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  418. data/spec/unit/views/pages/form_spec.rb +17 -10
  419. data/spec/unit/views/pages/index_spec.rb +60 -0
  420. data/spec/unit/views/pages/layout_spec.rb +17 -21
  421. data/spec/unit/views/pages/show_spec.rb +16 -3
  422. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  423. data/tasks/docs.rake +1 -1
  424. data/tasks/parallel_tests.rake +8 -2
  425. data/tasks/test.rake +8 -4
  426. data/tasks/yard.rake +7 -5
  427. metadata +180 -101
  428. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  429. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  430. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  431. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  432. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  433. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  434. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  435. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  436. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  437. data/app/assets/images/active_admin/loading.gif +0 -0
  438. data/app/assets/javascripts/active_admin/components/application.js.coffee +0 -23
  439. data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +0 -26
  440. data/app/assets/javascripts/active_admin/components/has_many.js.coffee +0 -41
  441. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  442. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -39
  443. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  444. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  445. data/app/views/active_admin/resource/index.csv.erb +0 -17
  446. data/docs/3-index-pages/create-an-index.md +0 -29
  447. data/lib/active_admin/inputs/filter_base.rb +0 -33
  448. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  449. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -32
  450. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -51
  451. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  452. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  453. data/lib/active_admin/inputs/filter_select_input.rb +0 -61
  454. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  455. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  456. data/spec/integration/memory_spec.rb +0 -29
  457. data/spec/integration/stylesheets_spec.rb +0 -41
  458. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  459. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  460. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  461. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  462. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  463. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  464. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  465. data/spec/javascripts/support/jquery.min.js +0 -4
  466. data/spec/spec_helper_without_rails.rb +0 -16
  467. data/tasks/js.rake +0 -32
@@ -0,0 +1,83 @@
1
+ require 'rails_helper'
2
+
3
+ describe ActiveAdmin::ResourceController::Decorators do
4
+ let(:controller_class) do
5
+ Class.new do
6
+ def self.name
7
+ "Test Controller using Decorators"
8
+ end
9
+
10
+ include ActiveAdmin::ResourceController::Decorators
11
+
12
+ public :apply_decorator, :apply_collection_decorator
13
+ end
14
+ end
15
+
16
+ let(:controller) { controller_class.new }
17
+ let(:active_admin_config) { double(decorator_class: decorator_class) }
18
+ before do
19
+ allow(controller).to receive(:active_admin_config).and_return(active_admin_config)
20
+ allow(controller).to receive(:action_name).and_return(action)
21
+ end
22
+
23
+ describe '#apply_decorator' do
24
+ let(:action) { 'show' }
25
+ let(:resource) { Post.new }
26
+ subject(:applied) { controller.apply_decorator(resource) }
27
+
28
+ context 'with a decorator configured' do
29
+ let(:decorator_class) { PostDecorator }
30
+ it { is_expected.to be_kind_of(PostDecorator) }
31
+ end
32
+
33
+ context 'with no decorator configured' do
34
+ let(:decorator_class) { nil }
35
+ it { is_expected.to be_kind_of(Post) }
36
+ end
37
+ end
38
+
39
+ describe '#apply_collection_decorator' do
40
+ before { Post.create! }
41
+ let(:action) { 'index' }
42
+ let(:collection) { Post.where nil }
43
+ subject(:applied) { controller.apply_collection_decorator(collection) }
44
+
45
+ context 'when a decorator is configured' do
46
+ context 'and it is using a recent version of draper' do
47
+ let(:decorator_class) { PostDecorator }
48
+
49
+ it 'calling certain scope collections work' do
50
+ # This is an example of one of the methods that was consistently
51
+ # failing before this feature existed
52
+ expect(applied.reorder('').count).to eq applied.count
53
+ end
54
+
55
+ it 'has a good description for the generated class' do
56
+ expect(applied.class.name).to eq "Draper::CollectionDecorator of PostDecorator + ActiveAdmin"
57
+ end
58
+
59
+ end
60
+ end
61
+ end
62
+
63
+ describe 'form actions' do
64
+ let(:action) { 'edit' }
65
+ let(:resource) { Post.new }
66
+ let(:form_presenter) { double options: { decorate: decorate_form } }
67
+ let(:decorator_class) { PostDecorator }
68
+ before { allow(active_admin_config).to receive(:get_page_presenter).with(:form).and_return form_presenter }
69
+
70
+ subject(:applied) { controller.apply_decorator(resource) }
71
+
72
+ context 'when the form is not configured to decorate' do
73
+ let(:decorate_form) { false }
74
+ it { is_expected.to be_kind_of(Post) }
75
+ end
76
+
77
+ context 'when the form is configured to decorate' do
78
+ let(:decorate_form) { true }
79
+ it { is_expected.to be_kind_of(PostDecorator) }
80
+ end
81
+
82
+ end
83
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::ResourceController::Sidebars do
4
4
  let(:controller){ Admin::PostsController }
@@ -10,7 +10,7 @@ describe ActiveAdmin::ResourceController::Sidebars do
10
10
 
11
11
  subject { find_before_filter controller, :skip_sidebar! }
12
12
 
13
- it { should set_skip_sidebar_to nil }
13
+ it { is_expected.to set_skip_sidebar_to nil, for: controller }
14
14
  end
15
15
 
16
16
  describe '#skip_sidebar!' do
@@ -22,7 +22,7 @@ describe ActiveAdmin::ResourceController::Sidebars do
22
22
 
23
23
  subject { find_before_filter controller, :skip_sidebar! }
24
24
 
25
- it { should set_skip_sidebar_to true }
25
+ it { is_expected.to set_skip_sidebar_to true, for: controller }
26
26
  end
27
27
 
28
28
  def find_before_filter(controller, filter)
@@ -30,16 +30,15 @@ describe ActiveAdmin::ResourceController::Sidebars do
30
30
  controller._process_action_callbacks.detect { |f| f.raw_filter == filter.to_sym }
31
31
  end
32
32
 
33
- RSpec::Matchers.define :set_skip_sidebar_to do |expected|
33
+ RSpec::Matchers.define :set_skip_sidebar_to do |expected, options|
34
34
  match do |filter|
35
- klass = filter && filter.klass || controller
36
- object = klass.new
35
+ object = options[:for].new
37
36
  object.send filter.raw_filter if filter
38
37
  @actual = object.instance_variable_get(:@skip_sidebar)
39
- @actual == expected
38
+ expect(@actual).to eq expected
40
39
  end
41
40
 
42
- failure_message_for_should do |filter|
41
+ failure_message do |filter|
43
42
  message = "expected before_filter to set @skip_sidebar to '#{expected}', but was '#{@actual}'"
44
43
  end
45
44
  end
@@ -1,9 +1,7 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::ResourceController do
4
4
 
5
- before(:all) { load_defaults! }
6
-
7
5
  let(:controller) { ActiveAdmin::ResourceController.new }
8
6
 
9
7
  describe "authenticating the user" do
@@ -11,7 +9,7 @@ describe ActiveAdmin::ResourceController do
11
9
 
12
10
  it "should do nothing when no authentication_method set" do
13
11
  namespace = controller.class.active_admin_config.namespace
14
- namespace.should_receive(:authentication_method).once.and_return(nil)
12
+ expect(namespace).to receive(:authentication_method).once.and_return(nil)
15
13
 
16
14
  controller.send(:authenticate_active_admin_user)
17
15
  end
@@ -19,10 +17,10 @@ describe ActiveAdmin::ResourceController do
19
17
  it "should call the authentication_method when set" do
20
18
  namespace = controller.class.active_admin_config.namespace
21
19
 
22
- namespace.should_receive(:authentication_method).twice.
20
+ expect(namespace).to receive(:authentication_method).twice.
23
21
  and_return(:authenticate_admin_user!)
24
22
 
25
- controller.should_receive(:authenticate_admin_user!).and_return(true)
23
+ expect(controller).to receive(:authenticate_admin_user!).and_return(true)
26
24
 
27
25
  controller.send(:authenticate_active_admin_user)
28
26
  end
@@ -34,21 +32,21 @@ describe ActiveAdmin::ResourceController do
34
32
 
35
33
  it "should return nil when no current_user_method set" do
36
34
  namespace = controller.class.active_admin_config.namespace
37
- namespace.should_receive(:current_user_method).once.and_return(nil)
35
+ expect(namespace).to receive(:current_user_method).once.and_return(nil)
38
36
 
39
- controller.send(:current_active_admin_user).should == nil
37
+ expect(controller.send(:current_active_admin_user)).to eq nil
40
38
  end
41
39
 
42
40
  it "should call the current_user_method when set" do
43
41
  user = double
44
42
  namespace = controller.class.active_admin_config.namespace
45
43
 
46
- namespace.should_receive(:current_user_method).twice.
44
+ expect(namespace).to receive(:current_user_method).twice.
47
45
  and_return(:current_admin_user)
48
46
 
49
- controller.should_receive(:current_admin_user).and_return(user)
47
+ expect(controller).to receive(:current_admin_user).and_return(user)
50
48
 
51
- controller.send(:current_active_admin_user).should == user
49
+ expect(controller.send(:current_active_admin_user)).to eq user
52
50
  end
53
51
  end
54
52
 
@@ -84,141 +82,141 @@ describe ActiveAdmin::ResourceController do
84
82
 
85
83
  describe "performing create" do
86
84
  let(:controller){ Admin::PostsController.new }
87
- let(:resource){ double("Resource", :save => true) }
85
+ let(:resource){ double("Resource", save: true) }
88
86
 
89
87
  before do
90
- resource.should_receive(:save)
88
+ expect(resource).to receive(:save)
91
89
  end
92
90
 
93
91
  it "should call the before create callback" do
94
- controller.should_receive(:call_before_create).with(resource)
92
+ expect(controller).to receive(:call_before_create).with(resource)
95
93
  controller.send :create_resource, resource
96
94
  end
97
95
  it "should call the before save callback" do
98
- controller.should_receive(:call_before_save).with(resource)
96
+ expect(controller).to receive(:call_before_save).with(resource)
99
97
  controller.send :create_resource, resource
100
98
  end
101
99
  it "should call the after save callback" do
102
- controller.should_receive(:call_after_save).with(resource)
100
+ expect(controller).to receive(:call_after_save).with(resource)
103
101
  controller.send :create_resource, resource
104
102
  end
105
103
  it "should call the after create callback" do
106
- controller.should_receive(:call_after_create).with(resource)
104
+ expect(controller).to receive(:call_after_create).with(resource)
107
105
  controller.send :create_resource, resource
108
106
  end
109
107
  end
110
108
 
111
109
  describe "performing update" do
112
110
  let(:controller){ Admin::PostsController.new }
113
- let(:resource){ double("Resource", :attributes= => true, :save => true) }
111
+ let(:resource){ double("Resource", :attributes= => true, save: true) }
114
112
  let(:attributes){ [{}] }
115
113
 
116
114
  before do
117
- resource.should_receive(:attributes=).with(attributes[0])
118
- resource.should_receive(:save)
115
+ expect(resource).to receive(:attributes=).with(attributes[0])
116
+ expect(resource).to receive(:save)
119
117
  end
120
118
 
121
119
  it "should call the before update callback" do
122
- controller.should_receive(:call_before_update).with(resource)
120
+ expect(controller).to receive(:call_before_update).with(resource)
123
121
  controller.send :update_resource, resource, attributes
124
122
  end
125
123
  it "should call the before save callback" do
126
- controller.should_receive(:call_before_save).with(resource)
124
+ expect(controller).to receive(:call_before_save).with(resource)
127
125
  controller.send :update_resource, resource, attributes
128
126
  end
129
127
  it "should call the after save callback" do
130
- controller.should_receive(:call_after_save).with(resource)
128
+ expect(controller).to receive(:call_after_save).with(resource)
131
129
  controller.send :update_resource, resource, attributes
132
130
  end
133
131
  it "should call the after create callback" do
134
- controller.should_receive(:call_after_update).with(resource)
132
+ expect(controller).to receive(:call_after_update).with(resource)
135
133
  controller.send :update_resource, resource, attributes
136
134
  end
137
135
  end
138
136
 
139
137
  describe "performing destroy" do
140
138
  let(:controller){ Admin::PostsController.new }
141
- let(:resource){ double("Resource", :destroy => true) }
139
+ let(:resource){ double("Resource", destroy: true) }
142
140
 
143
141
  before do
144
- resource.should_receive(:destroy)
142
+ expect(resource).to receive(:destroy)
145
143
  end
146
144
 
147
145
  it "should call the before destroy callback" do
148
- controller.should_receive(:call_before_destroy).with(resource)
146
+ expect(controller).to receive(:call_before_destroy).with(resource)
149
147
  controller.send :destroy_resource, resource
150
148
  end
151
149
 
152
150
  it "should call the after destroy callback" do
153
- controller.should_receive(:call_after_destroy).with(resource)
151
+ expect(controller).to receive(:call_after_destroy).with(resource)
154
152
  controller.send :destroy_resource, resource
155
153
  end
156
154
  end
157
155
  end
158
156
  end
159
157
 
160
- describe Admin::PostsController, :type => "controller" do
158
+ describe Admin::PostsController, type: "controller" do
161
159
 
162
160
  describe 'retreiving the resource' do
163
161
  let(:controller){ Admin::PostsController.new }
164
- let(:post) { Post.new :title => "An incledibly unique Post Title" }
162
+ let(:post) { Post.new title: "An incledibly unique Post Title" }
165
163
 
166
164
  before do
167
- Post.stub(:find).and_return(post)
165
+ allow(Post).to receive(:find).and_return(post)
168
166
  controller.class_eval { public :resource }
169
- controller.stub(:params).and_return({ :id => '1' })
167
+ allow(controller).to receive(:params).and_return({ id: '1' })
170
168
  end
171
169
 
172
170
  subject { controller.resource }
173
171
 
174
172
  it "returns a Post" do
175
- subject.should be_kind_of(Post)
173
+ expect(subject).to be_kind_of(Post)
176
174
  end
177
175
 
178
176
  context 'with a decorator' do
179
177
  let(:config) { controller.class.active_admin_config }
180
178
  before { config.decorator_class_name = '::PostDecorator' }
181
179
  it 'returns a PostDecorator' do
182
- subject.should be_kind_of(PostDecorator)
180
+ expect(subject).to be_kind_of(PostDecorator)
183
181
  end
184
182
 
185
183
  it 'returns a PostDecorator that wraps the post' do
186
- subject.title.should == post.title
184
+ expect(subject.title).to eq post.title
187
185
  end
188
186
  end
189
187
  end
190
188
 
191
189
  describe 'retreiving the resource collection' do
192
190
  let(:controller){ Admin::PostsController.new }
191
+ let(:config) { controller.class.active_admin_config }
193
192
  before do
194
- Post.create!(:title => "An incledibly unique Post Title") if Post.count == 0
195
- controller.class_eval { public :collection }
193
+ Post.create!(title: "An incledibly unique Post Title") if Post.count == 0
194
+ config.decorator_class_name = nil
195
+ request = double 'Request', format: 'application/json'
196
+ allow(controller).to receive(:params) { {} }
197
+ allow(controller).to receive(:request){ request }
196
198
  end
197
199
 
198
- subject { controller.collection }
200
+ subject { controller.send :collection }
199
201
 
200
202
  it {
201
- pending # doesn't pass when running whole spec suite (WTF)
202
- should be_kind_of(ActiveRecord::Relation)
203
+ is_expected.to be_a ActiveRecord::Relation
203
204
  }
204
205
 
205
206
  it "returns a collection of posts" do
206
- pending # doesn't pass when running whole spec suite (WTF)
207
- subject.first.should be_kind_of(Post)
207
+ expect(subject.first).to be_kind_of(Post)
208
208
  end
209
209
 
210
210
  context 'with a decorator' do
211
- let(:config) { controller.class.active_admin_config }
212
- before { config.decorator_class_name = '::PostDecorator' }
211
+ before { config.decorator_class_name = 'PostDecorator' }
213
212
 
214
- it 'returns a PostDecorator' do
215
- pending # doesn't pass when running whole spec suite (WTF)
216
- subject.should be_kind_of(PostDecorator::DecoratedEnumerableProxy)
213
+ it 'returns a collection decorator using PostDecorator' do
214
+ expect(subject).to be_a Draper::CollectionDecorator
215
+ expect(subject.decorator_class).to eq PostDecorator
217
216
  end
218
217
 
219
- it 'returns a PostDecorator that wraps the post' do
220
- pending # doesn't pass when running whole spec suite (WTF)
221
- subject.first.title.should == Post.first.title
218
+ it 'returns a collection decorator that wraps the post' do
219
+ expect(subject.first.title).to eq Post.first.title
222
220
  end
223
221
  end
224
222
  end
@@ -226,36 +224,42 @@ describe Admin::PostsController, :type => "controller" do
226
224
 
227
225
  describe "performing batch_action" do
228
226
  let(:controller){ Admin::PostsController.new }
227
+ let(:batch_action) { ActiveAdmin::BatchAction.new :flag, "Flag", &batch_action_block }
228
+ let(:batch_action_block) { proc { } }
229
229
  before do
230
- batch_action = ActiveAdmin::BatchAction.new :flag, "Flag" do
231
- redirect_to collection_path
232
- end
233
-
234
- controller.class.active_admin_config.stub(:batch_actions).and_return([batch_action])
230
+ allow(controller.class.active_admin_config).to receive(:batch_actions).and_return([batch_action])
235
231
  end
236
232
 
237
233
  describe "when params batch_action matches existing BatchAction" do
234
+ before do
235
+ allow(controller).to receive(:params) { { batch_action: "flag", collection_selection: ["1"] } }
236
+ end
237
+
238
238
  it "should call the block with args" do
239
- pending # dont know how to check if the block was called
239
+ expect(controller).to receive(:instance_exec).with(["1"], {})
240
+ controller.batch_action
241
+ end
242
+
243
+ it "should call the block in controller scope" do
244
+ expect(controller).to receive(:render_in_context).with(controller, nil).and_return({})
245
+ controller.batch_action
240
246
  end
241
247
  end
242
248
 
243
249
  describe "when params batch_action doesn't match a BatchAction" do
244
250
  it "should raise an error" do
245
- pending # doesn't pass when running whole spec suite (WTF)
246
-
251
+ allow(controller).to receive(:params) { { batch_action: "derp", collection_selection: ["1"] } }
247
252
  expect {
248
- post(:batch_action, :batch_action => "derp", :collection_selection => ["1"])
253
+ controller.batch_action
249
254
  }.to raise_error("Couldn't find batch action \"derp\"")
250
255
  end
251
256
  end
252
257
 
253
258
  describe "when params batch_action is blank" do
254
259
  it "should raise an error" do
255
- pending # doesn't pass when running whole spec suite (WTF)
256
-
260
+ allow(controller).to receive(:params) { { collection_selection: ["1"] } }
257
261
  expect {
258
- post(:batch_action, :collection_selection => ["1"])
262
+ controller.batch_action
259
263
  }.to raise_error("Couldn't find batch action \"\"")
260
264
  end
261
265
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe "Registering an object to administer" do
4
4
  application = ActiveAdmin::Application.new
@@ -7,13 +7,13 @@ describe "Registering an object to administer" do
7
7
  namespace = ActiveAdmin::Namespace.new(application, :admin)
8
8
  it "should call register on the namespace" do
9
9
  application.namespaces[namespace.name] = namespace
10
- namespace.should_receive(:register)
10
+ expect(namespace).to receive(:register)
11
11
 
12
12
  application.register Category
13
13
  end
14
14
 
15
15
  it "should dispatch a Resource::RegisterEvent" do
16
- ActiveAdmin::Event.should_receive(:dispatch).with(ActiveAdmin::Resource::RegisterEvent, an_instance_of(ActiveAdmin::Resource))
16
+ expect(ActiveAdmin::Event).to receive(:dispatch).with(ActiveAdmin::Resource::RegisterEvent, an_instance_of(ActiveAdmin::Resource))
17
17
  application.register Category
18
18
  end
19
19
  end
@@ -22,15 +22,15 @@ describe "Registering an object to administer" do
22
22
  it "should call register on the namespace" do
23
23
  namespace = ActiveAdmin::Namespace.new(application, :hello_world)
24
24
  application.namespaces[namespace.name] = namespace
25
- namespace.should_receive(:register)
25
+ expect(namespace).to receive(:register)
26
26
 
27
- application.register Category, :namespace => :hello_world
27
+ application.register Category, namespace: :hello_world
28
28
  end
29
29
 
30
30
  it "should generate a Namespace::RegisterEvent and a Resource::RegisterEvent" do
31
- ActiveAdmin::Event.should_receive(:dispatch).with(ActiveAdmin::Namespace::RegisterEvent, an_instance_of(ActiveAdmin::Namespace))
32
- ActiveAdmin::Event.should_receive(:dispatch).with(ActiveAdmin::Resource::RegisterEvent, an_instance_of(ActiveAdmin::Resource))
33
- application.register Category, :namespace => :not_yet_created
31
+ expect(ActiveAdmin::Event).to receive(:dispatch).with(ActiveAdmin::Namespace::RegisterEvent, an_instance_of(ActiveAdmin::Namespace))
32
+ expect(ActiveAdmin::Event).to receive(:dispatch).with(ActiveAdmin::Resource::RegisterEvent, an_instance_of(ActiveAdmin::Resource))
33
+ application.register Category, namespace: :not_yet_created
34
34
  end
35
35
  end
36
36
 
@@ -38,9 +38,9 @@ describe "Registering an object to administer" do
38
38
  it "should call register on the root namespace" do
39
39
  namespace = ActiveAdmin::Namespace.new(application, :root)
40
40
  application.namespaces[namespace.name] = namespace
41
- namespace.should_receive(:register)
41
+ expect(namespace).to receive(:register)
42
42
 
43
- application.register Category, :namespace => false
43
+ application.register Category, namespace: false
44
44
  end
45
45
  end
46
46
 
@@ -48,8 +48,8 @@ describe "Registering an object to administer" do
48
48
  it "should run the dsl in the same config object" do
49
49
  config_1 = ActiveAdmin.register(Category) { filter :name }
50
50
  config_2 = ActiveAdmin.register(Category) { filter :id }
51
- config_1.should == config_2
52
- config_1.filters.size.should == 2
51
+ expect(config_1).to eq config_2
52
+ expect(config_1.filters.size).to eq 2
53
53
  end
54
54
  end
55
55