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
@@ -1,9 +1,9 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin do
4
4
  %w(register register_page unload! load! routes).each do |method|
5
5
  it "delegates ##{method} to application" do
6
- ActiveAdmin.application.should_receive(method)
6
+ expect(ActiveAdmin.application).to receive(method)
7
7
 
8
8
  ActiveAdmin.send(method)
9
9
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  require 'fileutils'
3
3
 
4
4
  describe ActiveAdmin::Application do
@@ -11,90 +11,90 @@ describe ActiveAdmin::Application do
11
11
  end
12
12
 
13
13
  it "should have a default load path of ['app/admin']" do
14
- application.load_paths.should == [File.expand_path('app/admin', Rails.root)]
14
+ expect(application.load_paths).to eq [File.expand_path('app/admin', Rails.root)]
15
15
  end
16
16
 
17
17
  it "should remove app/admin from the autoload paths (Active Admin deals with loading)" do
18
- ActiveSupport::Dependencies.autoload_paths.should_not include(File.join(Rails.root, "app/admin"))
18
+ expect(ActiveSupport::Dependencies.autoload_paths).to_not include(File.join(Rails.root, "app/admin"))
19
19
  end
20
20
 
21
21
  it "should add app/admin to the Engine's watchable directories (loaded after the app itself)" do
22
- ActiveAdmin::Engine.config.watchable_dirs.should have_key File.join(Rails.root, "app/admin")
22
+ expect(ActiveAdmin::Engine.config.watchable_dirs).to have_key File.join(Rails.root, "app/admin")
23
23
  end
24
24
 
25
25
  it "should store the site's title" do
26
- application.site_title.should == ""
26
+ expect(application.site_title).to eq ""
27
27
  end
28
28
 
29
29
  it "should set the site title" do
30
30
  application.site_title = "New Title"
31
- application.site_title.should == "New Title"
31
+ expect(application.site_title).to eq "New Title"
32
32
  end
33
33
 
34
34
  it "should store the site's title link" do
35
- application.site_title_link.should == ""
35
+ expect(application.site_title_link).to eq ""
36
36
  end
37
37
 
38
38
  it "should set the site's title link" do
39
39
  application.site_title_link = "http://www.mygreatsite.com"
40
- application.site_title_link.should == "http://www.mygreatsite.com"
40
+ expect(application.site_title_link).to eq "http://www.mygreatsite.com"
41
41
  end
42
42
 
43
43
  it "should store the site's title image" do
44
- application.site_title_image.should == ""
44
+ expect(application.site_title_image).to eq ""
45
45
  end
46
46
 
47
47
  it "should set the site's title image" do
48
48
  application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
49
- application.site_title_image.should == "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
49
+ expect(application.site_title_image).to eq "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
50
50
  end
51
-
51
+
52
52
  it "should store the site's favicon" do
53
- application.favicon.should == false
53
+ expect(application.favicon).to eq false
54
54
  end
55
55
 
56
56
  it "should set the site's favicon" do
57
57
  application.favicon = "/a/favicon.ico"
58
- application.favicon.should == "/a/favicon.ico"
58
+ expect(application.favicon).to eq "/a/favicon.ico"
59
59
  end
60
60
 
61
61
  it "should have a view factory" do
62
- application.view_factory.should be_an_instance_of(ActiveAdmin::ViewFactory)
62
+ expect(application.view_factory).to be_an_instance_of(ActiveAdmin::ViewFactory)
63
63
  end
64
64
 
65
65
  it "should allow comments by default" do
66
- application.allow_comments.should == true
66
+ expect(application.comments).to eq true
67
67
  end
68
68
 
69
69
  describe "authentication settings" do
70
70
 
71
71
  it "should have no default current_user_method" do
72
- application.current_user_method.should == false
72
+ expect(application.current_user_method).to eq false
73
73
  end
74
74
 
75
75
  it "should have no default authentication method" do
76
- application.authentication_method.should == false
76
+ expect(application.authentication_method).to eq false
77
77
  end
78
78
 
79
79
  it "should have a logout link path (Devise's default)" do
80
- application.logout_link_path.should == :destroy_admin_user_session_path
80
+ expect(application.logout_link_path).to eq :destroy_admin_user_session_path
81
81
  end
82
82
 
83
83
  it "should have a logout link method (Devise's default)" do
84
- application.logout_link_method.should == :get
84
+ expect(application.logout_link_method).to eq :get
85
85
  end
86
86
  end
87
87
 
88
88
  describe "files in load path" do
89
89
  it "should load files in the first level directory" do
90
- application.files.should include(File.expand_path("app/admin/dashboard.rb", Rails.root))
90
+ expect(application.files).to include(File.expand_path("app/admin/dashboard.rb", Rails.root))
91
91
  end
92
92
 
93
93
  it "should load files from subdirectories" do
94
94
  FileUtils.mkdir_p(File.expand_path("app/admin/public", Rails.root))
95
95
  test_file = File.expand_path("app/admin/public/posts.rb", Rails.root)
96
96
  FileUtils.touch(test_file)
97
- application.files.should include(test_file)
97
+ expect(application.files).to include(test_file)
98
98
  end
99
99
  end
100
100
 
@@ -102,39 +102,38 @@ describe ActiveAdmin::Application do
102
102
 
103
103
  it "should yield a new namespace" do
104
104
  application.namespace :new_namespace do |ns|
105
- ns.name.should == :new_namespace
105
+ expect(ns.name).to eq :new_namespace
106
106
  end
107
107
  end
108
108
 
109
109
  it "should return an instantiated namespace" do
110
110
  admin = application.namespace :admin
111
- admin.should == application.namespaces[:admin]
111
+ expect(admin).to eq application.namespaces[:admin]
112
112
  end
113
113
 
114
114
  it "should yield an existing namespace" do
115
115
  expect {
116
116
  application.namespace :admin do |ns|
117
- ns.should == application.namespaces[:admin]
117
+ expect(ns).to eq application.namespaces[:admin]
118
118
  raise "found"
119
119
  end
120
120
  }.to raise_error("found")
121
121
  end
122
122
 
123
123
  it "should not pollute the global app" do
124
- application.namespaces.keys.should be_empty
124
+ expect(application.namespaces).to be_empty
125
125
  application.namespace(:brand_new_ns)
126
- application.namespaces.keys.should eq [:brand_new_ns]
127
- ActiveAdmin.application.namespaces.keys.should eq [:admin]
126
+ expect(application.namespaces.names).to eq [:brand_new_ns]
127
+ expect(ActiveAdmin.application.namespaces.names).to eq [:admin]
128
128
  end
129
129
  end
130
130
 
131
131
  describe "#register_page" do
132
132
  it "finds or create the namespace and register the page to it" do
133
133
  namespace = double
134
- application.should_receive(:namespace).with("public").and_return namespace
135
- namespace.should_receive(:register_page).with("My Page", {:namespace => "public"})
136
-
137
- application.register_page("My Page", :namespace => "public")
134
+ expect(application).to receive(:namespace).with("public").and_return namespace
135
+ expect(namespace).to receive(:register_page).with("My Page", {namespace: "public"})
136
+ application.register_page("My Page", namespace: "public")
138
137
  end
139
138
  end
140
139
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::AssetRegistration do
4
4
  include ActiveAdmin::AssetRegistration
@@ -10,43 +10,43 @@ describe ActiveAdmin::AssetRegistration do
10
10
 
11
11
  it "should register a stylesheet file" do
12
12
  register_stylesheet "active_admin.css"
13
- stylesheets.length.should == 1
14
- stylesheets.keys.first.should == "active_admin.css"
13
+ expect(stylesheets.length).to eq 1
14
+ expect(stylesheets.keys.first).to eq "active_admin.css"
15
15
  end
16
16
 
17
17
  it "should clear all existing stylesheets" do
18
18
  register_stylesheet "active_admin.css"
19
- stylesheets.length.should == 1
19
+ expect(stylesheets.length).to eq 1
20
20
  clear_stylesheets!
21
- stylesheets.should be_empty
21
+ expect(stylesheets).to be_empty
22
22
  end
23
23
 
24
24
  it "should allow media option when registering stylesheet" do
25
25
  register_stylesheet "active_admin.css", media: :print
26
- stylesheets.values.first[:media].should == :print
26
+ expect(stylesheets.values.first[:media]).to eq :print
27
27
  end
28
28
 
29
29
  it "shouldn't register a stylesheet twice" do
30
30
  register_stylesheet "active_admin.css"
31
31
  register_stylesheet "active_admin.css"
32
- stylesheets.length.should == 1
32
+ expect(stylesheets.length).to eq 1
33
33
  end
34
34
 
35
35
  it "should register a javascript file" do
36
36
  register_javascript "active_admin.js"
37
- javascripts.should == ["active_admin.js"].to_set
37
+ expect(javascripts).to eq ["active_admin.js"].to_set
38
38
  end
39
39
 
40
40
  it "should clear all existing javascripts" do
41
41
  register_javascript "active_admin.js"
42
- javascripts.should == ["active_admin.js"].to_set
42
+ expect(javascripts).to eq ["active_admin.js"].to_set
43
43
  clear_javascripts!
44
- javascripts.should be_empty
44
+ expect(javascripts).to be_empty
45
45
  end
46
46
 
47
47
  it "shouldn't register a javascript twice" do
48
48
  register_javascript "active_admin.js"
49
49
  register_javascript "active_admin.js"
50
- javascripts.length.should == 1
50
+ expect(javascripts.length).to eq 1
51
51
  end
52
52
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::AuthorizationAdapter do
4
4
 
@@ -7,7 +7,7 @@ describe ActiveAdmin::AuthorizationAdapter do
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
@@ -16,7 +16,7 @@ describe ActiveAdmin::AuthorizationAdapter do
16
16
 
17
17
  it "should return the collection unscoped" do
18
18
  collection = double
19
- adapter.scope_collection(collection, ActiveAdmin::Auth::READ).should == collection
19
+ expect(adapter.scope_collection(collection, ActiveAdmin::Auth::READ)).to eq collection
20
20
  end
21
21
 
22
22
  end
@@ -41,19 +41,19 @@ describe ActiveAdmin::AuthorizationAdapter do
41
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,21 +1,26 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe "auto linking resources" do
4
4
  include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
5
5
  include ActiveAdmin::ViewHelpers::AutoLinkHelper
6
6
  include ActiveAdmin::ViewHelpers::DisplayHelper
7
+ include MethodOrProcHelper
7
8
 
8
9
  let(:active_admin_config) { double namespace: namespace }
9
10
  let(:active_admin_namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin) }
10
- let(:post){ Post.create! :title => "Hello World" }
11
+ let(:post){ Post.create! title: "Hello World" }
11
12
 
12
13
  def admin_post_path(post)
13
14
  "/admin/posts/#{post.id}"
14
15
  end
15
16
 
17
+ def authorized?(_action, _subject)
18
+ true
19
+ end
20
+
16
21
  context "when the resource is not registered" do
17
22
  it "should return the display name of the object" do
18
- auto_link(post).should == "Hello World"
23
+ expect(auto_link(post)).to eq "Hello World"
19
24
  end
20
25
  end
21
26
 
@@ -24,9 +29,41 @@ describe "auto linking resources" do
24
29
  active_admin_namespace.register Post
25
30
  end
26
31
  it "should return a link with the display name of the object" do
27
- 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)
28
34
  auto_link(post)
29
35
  end
30
- end
31
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
32
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