activeadmin 1.0.0.pre4 → 2.4.0

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

Potentially problematic release.


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

Files changed (542) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +529 -52
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +129 -58
  5. data/README.md +80 -79
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_base.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
  22. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  24. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  25. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  26. data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
  27. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
  29. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/print.scss +2 -3
  31. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  32. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  33. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  34. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  35. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  36. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  37. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  38. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  39. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  40. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  41. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  42. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  43. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  44. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  45. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  46. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  47. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  48. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  49. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  50. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  51. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  52. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  53. data/config/locales/ar.yml +4 -5
  54. data/config/locales/bg.yml +1 -3
  55. data/config/locales/bs.yml +1 -2
  56. data/config/locales/ca.yml +2 -4
  57. data/config/locales/cs.yml +1 -2
  58. data/config/locales/da.yml +45 -14
  59. data/config/locales/de-CH.yml +2 -3
  60. data/config/locales/de.yml +30 -3
  61. data/config/locales/el.yml +3 -4
  62. data/config/locales/en-CA.yml +139 -0
  63. data/config/locales/en-GB.yml +44 -3
  64. data/config/locales/en.yml +31 -5
  65. data/config/locales/eo.yml +145 -0
  66. data/config/locales/es-MX.yml +5 -3
  67. data/config/locales/es.yml +32 -6
  68. data/config/locales/fa.yml +1 -2
  69. data/config/locales/fi.yml +2 -3
  70. data/config/locales/fr.yml +27 -5
  71. data/config/locales/he.yml +53 -7
  72. data/config/locales/hr.yml +1 -2
  73. data/config/locales/hu.yml +5 -2
  74. data/config/locales/id.yml +2 -3
  75. data/config/locales/it.yml +15 -7
  76. data/config/locales/ja.yml +8 -3
  77. data/config/locales/ko.yml +1 -2
  78. data/config/locales/lt.yml +27 -6
  79. data/config/locales/lv.yml +1 -2
  80. data/config/locales/mk.yml +134 -0
  81. data/config/locales/nb.yml +16 -7
  82. data/config/locales/nl.yml +13 -3
  83. data/config/locales/pl.yml +75 -5
  84. data/config/locales/pt-BR.yml +10 -3
  85. data/config/locales/pt-PT.yml +1 -2
  86. data/config/locales/ro.yml +1 -2
  87. data/config/locales/ru.yml +5 -3
  88. data/config/locales/sk.yml +168 -0
  89. data/config/locales/sv-SE.yml +4 -3
  90. data/config/locales/tr.yml +10 -2
  91. data/config/locales/uk.yml +4 -3
  92. data/config/locales/vi.yml +48 -8
  93. data/config/locales/zh-CN.yml +38 -7
  94. data/config/locales/zh-TW.yml +2 -3
  95. data/docs/.gitignore +1 -0
  96. data/docs/0-installation.md +19 -13
  97. data/docs/1-general-configuration.md +37 -4
  98. data/docs/10-custom-pages.md +47 -3
  99. data/docs/11-decorators.md +4 -0
  100. data/docs/12-arbre-components.md +73 -9
  101. data/docs/13-authorization-adapter.md +72 -35
  102. data/docs/14-gotchas.md +57 -19
  103. data/docs/2-resource-customization.md +64 -20
  104. data/docs/3-index-pages/custom-index.md +5 -1
  105. data/docs/3-index-pages/index-as-block.md +3 -5
  106. data/docs/3-index-pages/index-as-blog.md +4 -6
  107. data/docs/3-index-pages/index-as-grid.md +3 -5
  108. data/docs/3-index-pages/index-as-table.md +33 -12
  109. data/docs/3-index-pages.md +65 -9
  110. data/docs/4-csv-format.md +16 -0
  111. data/docs/5-forms.md +78 -17
  112. data/docs/6-show-pages.md +5 -29
  113. data/docs/7-sidebars.md +5 -1
  114. data/docs/8-custom-actions.md +18 -1
  115. data/docs/9-batch-actions.md +8 -4
  116. data/docs/CNAME +1 -0
  117. data/docs/Gemfile +3 -0
  118. data/docs/Gemfile.lock +248 -0
  119. data/docs/_config.yml +4 -0
  120. data/docs/_includes/footer.html +8 -0
  121. data/docs/_includes/google-analytics.html +16 -0
  122. data/docs/_includes/head.html +7 -0
  123. data/docs/_includes/toc.html +98 -0
  124. data/docs/_includes/top-menu.html +17 -0
  125. data/docs/_layouts/default.html +21 -0
  126. data/docs/documentation.md +60 -0
  127. data/docs/images/activeadmin.png +0 -0
  128. data/docs/images/code-header.png +0 -0
  129. data/docs/images/divider.png +0 -0
  130. data/docs/images/features.png +0 -0
  131. data/docs/images/tidelift.svg +14 -0
  132. data/docs/index.html +226 -0
  133. data/docs/stylesheets/main.css +1205 -0
  134. data/lib/active_admin/abstract_view_factory.rb +13 -51
  135. data/lib/active_admin/application.rb +50 -140
  136. data/lib/active_admin/application_settings.rb +42 -0
  137. data/lib/active_admin/authorization_adapter.rb +0 -3
  138. data/lib/active_admin/base_controller/authorization.rb +4 -7
  139. data/lib/active_admin/base_controller/menu.rb +10 -14
  140. data/lib/active_admin/base_controller.rb +8 -14
  141. data/lib/active_admin/batch_actions/controller.rb +3 -3
  142. data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
  143. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
  144. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
  145. data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
  146. data/lib/active_admin/callbacks.rb +1 -1
  147. data/lib/active_admin/controller_action.rb +2 -1
  148. data/lib/active_admin/csv_builder.rb +15 -12
  149. data/lib/active_admin/dependency.rb +8 -76
  150. data/lib/active_admin/deprecation.rb +0 -25
  151. data/lib/active_admin/devise.rb +3 -3
  152. data/lib/active_admin/dsl.rb +3 -16
  153. data/lib/active_admin/dynamic_setting.rb +38 -0
  154. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  155. data/lib/active_admin/engine.rb +5 -0
  156. data/lib/active_admin/error.rb +5 -3
  157. data/lib/active_admin/filters/active.rb +13 -14
  158. data/lib/active_admin/filters/active_filter.rb +124 -0
  159. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  160. data/lib/active_admin/filters/forms.rb +6 -4
  161. data/lib/active_admin/filters/formtastic_addons.rb +2 -2
  162. data/lib/active_admin/filters/resource_extension.rb +28 -43
  163. data/lib/active_admin/filters.rb +2 -0
  164. data/lib/active_admin/form_builder.rb +100 -59
  165. data/lib/active_admin/generators/boilerplate.rb +12 -4
  166. data/lib/active_admin/helpers/collection.rb +2 -0
  167. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  168. data/lib/active_admin/inputs/datepicker_input.rb +12 -5
  169. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  170. data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
  171. data/lib/active_admin/inputs/filters/select_input.rb +6 -3
  172. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  173. data/lib/active_admin/inputs.rb +1 -0
  174. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  175. data/lib/active_admin/localizers.rb +11 -0
  176. data/lib/active_admin/menu.rb +6 -12
  177. data/lib/active_admin/menu_collection.rb +0 -2
  178. data/lib/active_admin/menu_item.rb +4 -32
  179. data/lib/active_admin/namespace.rb +36 -17
  180. data/lib/active_admin/namespace_settings.rb +123 -0
  181. data/lib/active_admin/order_clause.rb +30 -8
  182. data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
  183. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
  184. data/lib/active_admin/orm/active_record/comments.rb +17 -11
  185. data/lib/active_admin/page.rb +23 -4
  186. data/lib/active_admin/page_controller.rb +2 -6
  187. data/lib/active_admin/page_dsl.rb +5 -1
  188. data/lib/active_admin/page_presenter.rb +2 -1
  189. data/lib/active_admin/pundit_adapter.rb +18 -5
  190. data/lib/active_admin/resource/action_items.rb +17 -5
  191. data/lib/active_admin/resource/attributes.rb +47 -0
  192. data/lib/active_admin/resource/belongs_to.rb +10 -1
  193. data/lib/active_admin/resource/menu.rb +7 -4
  194. data/lib/active_admin/resource/model.rb +15 -0
  195. data/lib/active_admin/resource/naming.rb +3 -3
  196. data/lib/active_admin/resource/ordering.rb +11 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -1
  198. data/lib/active_admin/resource/routes.rb +52 -20
  199. data/lib/active_admin/resource/scopes.rb +5 -3
  200. data/lib/active_admin/resource/sidebars.rb +1 -1
  201. data/lib/active_admin/resource.rb +59 -7
  202. data/lib/active_admin/resource_collection.rb +2 -2
  203. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  204. data/lib/active_admin/resource_controller/data_access.rb +32 -27
  205. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  206. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  207. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  208. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  209. data/lib/active_admin/resource_controller.rb +15 -0
  210. data/lib/active_admin/resource_dsl.rb +58 -24
  211. data/lib/active_admin/router.rb +90 -82
  212. data/lib/active_admin/scope.rb +20 -12
  213. data/lib/active_admin/settings_node.rb +19 -0
  214. data/lib/active_admin/sidebar_section.rb +3 -1
  215. data/lib/active_admin/version.rb +1 -1
  216. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  217. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  218. data/lib/active_admin/view_helpers/display_helper.rb +28 -16
  219. data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
  220. data/lib/active_admin/view_helpers/fields_for.rb +1 -2
  221. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  222. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
  223. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  224. data/lib/active_admin/view_helpers.rb +2 -1
  225. data/lib/active_admin/views/action_items.rb +1 -1
  226. data/lib/active_admin/views/components/active_admin_form.rb +43 -11
  227. data/lib/active_admin/views/components/attributes_table.rb +4 -4
  228. data/lib/active_admin/views/components/columns.rb +3 -3
  229. data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
  230. data/lib/active_admin/views/components/index_list.rb +4 -3
  231. data/lib/active_admin/views/components/menu.rb +32 -0
  232. data/lib/active_admin/views/components/menu_item.rb +58 -0
  233. data/lib/active_admin/views/components/paginated_collection.rb +7 -11
  234. data/lib/active_admin/views/components/scopes.rb +14 -8
  235. data/lib/active_admin/views/components/sidebar.rb +13 -0
  236. data/lib/active_admin/views/components/site_title.rb +5 -6
  237. data/lib/active_admin/views/components/status_tag.rb +11 -16
  238. data/lib/active_admin/views/components/table_for.rb +7 -16
  239. data/lib/active_admin/views/components/tabs.rb +15 -3
  240. data/lib/active_admin/views/footer.rb +14 -4
  241. data/lib/active_admin/views/header.rb +3 -16
  242. data/lib/active_admin/views/index_as_blog.rb +2 -3
  243. data/lib/active_admin/views/index_as_grid.rb +25 -25
  244. data/lib/active_admin/views/index_as_table.rb +39 -13
  245. data/lib/active_admin/views/pages/base.rb +36 -57
  246. data/lib/active_admin/views/pages/form.rb +2 -3
  247. data/lib/active_admin/views/pages/layout.rb +1 -1
  248. data/lib/active_admin/views/pages/show.rb +8 -2
  249. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  250. data/lib/active_admin/views/title_bar.rb +4 -4
  251. data/lib/active_admin/views.rb +1 -1
  252. data/lib/active_admin.rb +11 -7
  253. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  254. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  255. data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
  256. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  257. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
  258. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  259. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  260. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  261. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  262. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  263. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  264. data/lib/ransack_ext.rb +5 -5
  265. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  266. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  267. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  268. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  269. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  270. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  271. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  272. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  273. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  274. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  275. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  276. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  277. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  278. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  279. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  280. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  281. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  282. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  283. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  284. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  285. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  286. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  287. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  288. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  289. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  290. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  291. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  292. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  293. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  294. metadata +190 -539
  295. data/.gitignore +0 -49
  296. data/.hound.yml +0 -14
  297. data/.travis.yml +0 -46
  298. data/.yardopts +0 -8
  299. data/Gemfile +0 -75
  300. data/Guardfile +0 -8
  301. data/Rakefile +0 -33
  302. data/activeadmin.gemspec +0 -31
  303. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  304. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  305. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  306. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  307. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  308. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  309. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
  310. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  311. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
  312. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  313. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  314. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  315. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  316. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  317. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  318. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
  319. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  320. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  321. data/cucumber.yml +0 -3
  322. data/features/action_item.feature +0 -73
  323. data/features/authorization.feature +0 -64
  324. data/features/authorization_cancan.feature +0 -52
  325. data/features/authorization_pundit.feature +0 -37
  326. data/features/belongs_to.feature +0 -66
  327. data/features/breadcrumb.feature +0 -75
  328. data/features/comments/commenting.feature +0 -171
  329. data/features/comments/viewing_index.feature +0 -19
  330. data/features/dashboard.feature +0 -16
  331. data/features/decorators.feature +0 -43
  332. data/features/development_reloading.feature +0 -30
  333. data/features/edit_page.feature +0 -117
  334. data/features/favicon.feature +0 -20
  335. data/features/first_boot.feature +0 -16
  336. data/features/global_navigation.feature +0 -29
  337. data/features/i18n.feature +0 -43
  338. data/features/index/batch_actions.feature +0 -196
  339. data/features/index/filters.feature +0 -161
  340. data/features/index/format_as_csv.feature +0 -203
  341. data/features/index/formats.feature +0 -66
  342. data/features/index/index_as_block.feature +0 -15
  343. data/features/index/index_as_blog.feature +0 -69
  344. data/features/index/index_as_grid.feature +0 -45
  345. data/features/index/index_as_table.feature +0 -291
  346. data/features/index/index_blank_slate.feature +0 -83
  347. data/features/index/index_parameters.feature +0 -75
  348. data/features/index/index_scope_to.feature +0 -56
  349. data/features/index/index_scopes.feature +0 -251
  350. data/features/index/page_title.feature +0 -42
  351. data/features/index/pagination.feature +0 -63
  352. data/features/index/switch_index_view.feature +0 -73
  353. data/features/menu.feature +0 -53
  354. data/features/meta_tags.feature +0 -21
  355. data/features/new_page.feature +0 -109
  356. data/features/registering_assets.feature +0 -34
  357. data/features/registering_pages.feature +0 -148
  358. data/features/registering_resources.feature +0 -33
  359. data/features/renamed_resource.feature +0 -32
  360. data/features/root_to.feature +0 -17
  361. data/features/show/columns.feature +0 -40
  362. data/features/show/default_content.feature +0 -44
  363. data/features/show/page_title.feature +0 -59
  364. data/features/show/tabs.feature +0 -27
  365. data/features/sidebar_sections.feature +0 -210
  366. data/features/site_title.feature +0 -47
  367. data/features/specifying_actions.feature +0 -93
  368. data/features/step_definitions/action_item_steps.rb +0 -7
  369. data/features/step_definitions/action_link_steps.rb +0 -20
  370. data/features/step_definitions/additional_web_steps.rb +0 -81
  371. data/features/step_definitions/asset_steps.rb +0 -15
  372. data/features/step_definitions/attribute_steps.rb +0 -18
  373. data/features/step_definitions/batch_action_steps.rb +0 -81
  374. data/features/step_definitions/blog_steps.rb +0 -3
  375. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  376. data/features/step_definitions/column_steps.rb +0 -8
  377. data/features/step_definitions/comment_steps.rb +0 -12
  378. data/features/step_definitions/configuration_steps.rb +0 -100
  379. data/features/step_definitions/dashboard_steps.rb +0 -15
  380. data/features/step_definitions/factory_steps.rb +0 -35
  381. data/features/step_definitions/filter_steps.rb +0 -39
  382. data/features/step_definitions/flash_steps.rb +0 -11
  383. data/features/step_definitions/format_steps.rb +0 -52
  384. data/features/step_definitions/i18n_steps.rb +0 -3
  385. data/features/step_definitions/index_scope_steps.rb +0 -21
  386. data/features/step_definitions/index_views_steps.rb +0 -3
  387. data/features/step_definitions/layout_steps.rb +0 -3
  388. data/features/step_definitions/member_link_steps.rb +0 -7
  389. data/features/step_definitions/menu_steps.rb +0 -11
  390. data/features/step_definitions/meta_tag_steps.rb +0 -3
  391. data/features/step_definitions/pagination_steps.rb +0 -15
  392. data/features/step_definitions/sidebar_steps.rb +0 -13
  393. data/features/step_definitions/site_title_steps.rb +0 -17
  394. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  395. data/features/step_definitions/tab_steps.rb +0 -8
  396. data/features/step_definitions/table_steps.rb +0 -120
  397. data/features/step_definitions/user_steps.rb +0 -45
  398. data/features/step_definitions/web_steps.rb +0 -85
  399. data/features/sti_resource.feature +0 -65
  400. data/features/strong_parameters.feature +0 -73
  401. data/features/support/env.rb +0 -162
  402. data/features/support/paths.rb +0 -71
  403. data/features/support/selectors.rb +0 -45
  404. data/features/symbol_leak.feature +0 -35
  405. data/features/users/logging_in.feature +0 -34
  406. data/features/users/logging_out.feature +0 -13
  407. data/features/users/resetting_password.feature +0 -34
  408. data/lib/active_admin/event.rb +0 -24
  409. data/lib/active_admin/filters/humanized.rb +0 -68
  410. data/lib/active_admin/helpers/settings.rb +0 -115
  411. data/lib/active_admin/reloader.rb +0 -25
  412. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  413. data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
  414. data/script/local +0 -53
  415. data/script/travis_cache +0 -107
  416. data/script/use_rails +0 -53
  417. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  418. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  419. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  420. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  421. data/spec/javascripts/fixtures/flashes.html +0 -2
  422. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  423. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  424. data/spec/javascripts/support/jasmine.yml +0 -74
  425. data/spec/javascripts/support/jasmine_config.rb +0 -23
  426. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  427. data/spec/rails_helper.rb +0 -169
  428. data/spec/requests/default_namespace_spec.rb +0 -61
  429. data/spec/requests/javascript_spec.rb +0 -22
  430. data/spec/requests/memory_spec.rb +0 -21
  431. data/spec/requests/stylesheets_spec.rb +0 -18
  432. data/spec/spec_helper.rb +0 -17
  433. data/spec/support/active_admin_request_helpers.rb +0 -27
  434. data/spec/support/deferred_garbage_collection.rb +0 -19
  435. data/spec/support/detect_rails_version.rb +0 -34
  436. data/spec/support/jslint.yml +0 -80
  437. data/spec/support/rails_template.rb +0 -158
  438. data/spec/support/rails_template_with_data.rb +0 -55
  439. data/spec/support/templates/admin/stores.rb +0 -9
  440. data/spec/support/templates/en.yml +0 -8
  441. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  442. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  443. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  444. data/spec/support/templates/policies/application_policy.rb +0 -45
  445. data/spec/support/templates/policies/category_policy.rb +0 -7
  446. data/spec/support/templates/policies/post_policy.rb +0 -15
  447. data/spec/support/templates/policies/store_policy.rb +0 -11
  448. data/spec/support/templates/policies/user_policy.rb +0 -11
  449. data/spec/support/templates/post_decorator.rb +0 -11
  450. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  451. data/spec/unit/action_builder_spec.rb +0 -134
  452. data/spec/unit/active_admin_spec.rb +0 -11
  453. data/spec/unit/application_spec.rb +0 -165
  454. data/spec/unit/asset_registration_spec.rb +0 -52
  455. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  456. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  457. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  458. data/spec/unit/auto_link_spec.rb +0 -69
  459. data/spec/unit/batch_actions/resource_spec.rb +0 -97
  460. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  461. data/spec/unit/belongs_to_spec.rb +0 -65
  462. data/spec/unit/cancan_adapter_spec.rb +0 -43
  463. data/spec/unit/comments_spec.rb +0 -188
  464. data/spec/unit/component_spec.rb +0 -18
  465. data/spec/unit/config_shared_examples.rb +0 -59
  466. data/spec/unit/controller_filters_spec.rb +0 -41
  467. data/spec/unit/csv_builder_spec.rb +0 -303
  468. data/spec/unit/dependency_spec.rb +0 -135
  469. data/spec/unit/devise_spec.rb +0 -96
  470. data/spec/unit/dsl_spec.rb +0 -122
  471. data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
  472. data/spec/unit/filters/humanized_spec.rb +0 -56
  473. data/spec/unit/filters/resource_spec.rb +0 -128
  474. data/spec/unit/form_builder_spec.rb +0 -815
  475. data/spec/unit/generators/install_spec.rb +0 -24
  476. data/spec/unit/helpers/collection_spec.rb +0 -65
  477. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  478. data/spec/unit/helpers/settings_spec.rb +0 -30
  479. data/spec/unit/i18n_spec.rb +0 -12
  480. data/spec/unit/menu_collection_spec.rb +0 -62
  481. data/spec/unit/menu_item_spec.rb +0 -143
  482. data/spec/unit/menu_spec.rb +0 -71
  483. data/spec/unit/namespace/authorization_spec.rb +0 -27
  484. data/spec/unit/namespace/register_page_spec.rb +0 -73
  485. data/spec/unit/namespace/register_resource_spec.rb +0 -160
  486. data/spec/unit/namespace_spec.rb +0 -103
  487. data/spec/unit/order_clause_spec.rb +0 -81
  488. data/spec/unit/page_controller_spec.rb +0 -5
  489. data/spec/unit/page_spec.rb +0 -78
  490. data/spec/unit/pretty_format_spec.rb +0 -77
  491. data/spec/unit/pundit_adapter_spec.rb +0 -98
  492. data/spec/unit/resource/action_items_spec.rb +0 -65
  493. data/spec/unit/resource/includes_spec.rb +0 -21
  494. data/spec/unit/resource/menu_spec.rb +0 -18
  495. data/spec/unit/resource/naming_spec.rb +0 -122
  496. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  497. data/spec/unit/resource/pagination_spec.rb +0 -38
  498. data/spec/unit/resource/routes_spec.rb +0 -77
  499. data/spec/unit/resource/scopes_spec.rb +0 -50
  500. data/spec/unit/resource/sidebars_spec.rb +0 -43
  501. data/spec/unit/resource_collection_spec.rb +0 -175
  502. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  503. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  504. data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
  505. data/spec/unit/resource_controller_spec.rb +0 -269
  506. data/spec/unit/resource_registration_spec.rb +0 -56
  507. data/spec/unit/resource_spec.rb +0 -331
  508. data/spec/unit/routing_spec.rb +0 -185
  509. data/spec/unit/scope_spec.rb +0 -185
  510. data/spec/unit/settings_spec.rb +0 -118
  511. data/spec/unit/view_factory_spec.rb +0 -19
  512. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  513. data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
  514. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  515. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  516. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  517. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  518. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  519. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  520. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  521. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  522. data/spec/unit/views/components/columns_spec.rb +0 -189
  523. data/spec/unit/views/components/index_list_spec.rb +0 -35
  524. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  525. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  526. data/spec/unit/views/components/panel_spec.rb +0 -58
  527. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  528. data/spec/unit/views/components/site_title_spec.rb +0 -78
  529. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  530. data/spec/unit/views/components/table_for_spec.rb +0 -434
  531. data/spec/unit/views/components/tabs_spec.rb +0 -39
  532. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  533. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  534. data/spec/unit/views/pages/form_spec.rb +0 -51
  535. data/spec/unit/views/pages/index_spec.rb +0 -60
  536. data/spec/unit/views/pages/layout_spec.rb +0 -59
  537. data/spec/unit/views/pages/show_spec.rb +0 -33
  538. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  539. data/tasks/docs.rake +0 -37
  540. data/tasks/parallel_tests.rake +0 -66
  541. data/tasks/test.rake +0 -91
  542. data/tasks/yard.rake +0 -9
@@ -1,11 +0,0 @@
1
- Then /^I should see a menu item for "([^"]*)"$/ do |name|
2
- expect(page).to have_css '#tabs li a', text: name
3
- end
4
-
5
- Then /^I should not see a menu item for "([^"]*)"$/ do |name|
6
- expect(page).to_not have_css '#tabs li a', text: name
7
- end
8
-
9
- Then /^I should see a nested menu item for "([^"]*)"$/ do |name|
10
- expect(page).to have_css '#tabs > li > ul > li > a', text: name
11
- end
@@ -1,3 +0,0 @@
1
- Then /^the site should contain a meta tag with name "([^"]*)" and content "([^"]*)"$/ do |name, content|
2
- expect(page).to have_xpath("//meta[@name='#{name}' and @content='#{content}']", visible: false)
3
- end
@@ -1,15 +0,0 @@
1
- Then /^I should not see pagination$/ do
2
- expect(page).to_not have_css '.pagination'
3
- end
4
-
5
- Then /^I should see pagination with (\d+) pages$/ do |count|
6
- expect(page).to have_css '.pagination span.page', count: count
7
- end
8
-
9
- Then /^I should see the pagination "Next" link/ do
10
- expect(page).to have_css "a", text: "Next"
11
- end
12
-
13
- Then /^I should not see the pagination "Next" link/ do
14
- expect(page).to_not have_css "a", text: "Next"
15
- end
@@ -1,13 +0,0 @@
1
- Then /^I should see a sidebar titled "([^"]*)"$/ do |title|
2
- expect(page).to have_css '.sidebar_section h3', text: title
3
- end
4
-
5
- Then /^I should not see a sidebar titled "([^"]*)"$/ do |title|
6
- title = title.tr(' ', '').underscore
7
- sidebars = page.all :css, "##{title}_sidebar_section"
8
- expect(sidebars.count).to eq 0
9
- end
10
-
11
- Then(/^I should see a sidebar titled "(.*?)" above sidebar titled "(.*?)"$/) do |top_title, bottom_title|
12
- expect(page).to have_css %Q(.sidebar_section:contains('#{top_title}') + .sidebar_section:contains('#{bottom_title}'))
13
- end
@@ -1,17 +0,0 @@
1
- Then /^I should see the site title "([^"]*)"$/ do |title|
2
- expect(page).to have_css 'h1#site_title', text: title
3
- end
4
-
5
- Then /^I should not see the site title "([^"]*)"$/ do |title|
6
- expect(page).to_not have_css 'h1#site_title', text: title
7
- end
8
-
9
- Then /^I should see the site title image "([^"]*)"$/ do |image|
10
- img = page.find('h1#site_title img')
11
- expect(img[:src]).to eq(image)
12
- end
13
-
14
- Then /^I should see the site title image linked to "([^"]*)"$/ do |url|
15
- link = page.find('h1#site_title a')
16
- expect(link[:href]).to eq(url)
17
- end
@@ -1,3 +0,0 @@
1
- Then /^"(.*?)" shouldn't be a symbol$/ do |sym|
2
- expect(Symbol.all_symbols.map &:to_s).to_not include(sym), 'symbol detected!'
3
- end
@@ -1,8 +0,0 @@
1
- Then /^the "([^"]*)" tab should be selected$/ do |name|
2
- step %{I should see "#{name}" within "ul#tabs li.current"}
3
- end
4
-
5
- Then(/^I should see two tabs "(.*?)" and "(.*?)"$/) do |tab_1, tab_2|
6
- expect(page).to have_link(tab_1)
7
- expect(page).to have_link(tab_2)
8
- end
@@ -1,120 +0,0 @@
1
- Then /^I should see (\d+) ([\w]*) in the table$/ do |count, resource_type|
2
- expect(page).to \
3
- have_css("table.index_table tr > td:first-child", count: count.to_i)
4
- end
5
-
6
- # TODO: simplify this, if possible?
7
- class HtmlTableToTextHelper
8
- def initialize(html, table_css_selector = "table")
9
- @html = html
10
- @selector = table_css_selector
11
- end
12
-
13
- def to_array
14
- rows = Nokogiri::HTML(@html).css("#{@selector} tr")
15
- rows.map do |row|
16
- row.css('th, td').map do |td|
17
- cell_to_string(td)
18
- end
19
- end
20
- end
21
-
22
- private
23
-
24
- def cell_to_string(td)
25
- str = ""
26
- input = td.css('input').last
27
-
28
- if input
29
- str << input_to_string(input)
30
- end
31
-
32
- str << td.content.strip.gsub("\n", ' ')
33
- end
34
-
35
- def input_to_string(input)
36
- case input.attribute("type").value
37
- when "checkbox"
38
- if input.attribute("disabled")
39
- "_"
40
- else
41
- if input.attribute("checked")
42
- "[X]"
43
- else
44
- "[ ]"
45
- end
46
- end
47
- when "text"
48
- if input.attribute("value").present?
49
- "[#{input.attribute("value")}]"
50
- else
51
- "[ ]"
52
- end
53
- when "submit"
54
- input.attribute("value")
55
- else
56
- raise "I don't know what to do with #{input}"
57
- end
58
- end
59
- end
60
-
61
- module TableMatchHelper
62
-
63
-
64
- # @param table [Array[Array]]
65
- # @param expected_table [Array[Array[String]]]
66
- # The expected_table values are String. They are converted to
67
- # Regexp when they start and end with a '/'
68
- # Example:
69
- #
70
- # assert_table_match(
71
- # [["Name", "Date"], ["Philippe", "Feb 08"]],
72
- # [["Name", "Date"], ["Philippe", "/\w{3} \d{2}/"]]
73
- # )
74
- def assert_tables_match(table, expected_table)
75
- expected_table.each_index do |row_index|
76
- expected_table[row_index].each_index do |column_index|
77
- expected_cell = expected_table[row_index][column_index]
78
- cell = table.try(:[], row_index).try(:[], column_index)
79
- begin
80
- assert_cells_match(cell, expected_cell)
81
- rescue
82
- puts "Cell at line #{row_index} and column #{column_index}: #{cell.inspect} does not match #{expected_cell.inspect}"
83
- puts "Expecting:"
84
- table.each { |row| puts row.inspect }
85
- puts "to match:"
86
- expected_table.each { |row| puts row.inspect }
87
- raise $!
88
- end
89
- end
90
- end
91
- end
92
-
93
- def assert_cells_match(cell, expected_cell)
94
- if expected_cell =~ /^\/.*\/$/
95
- expect(cell).to match /#{expected_cell[1..-2]}/
96
- else
97
- expect((cell || "").strip).to eq expected_cell
98
- end
99
- end
100
-
101
- end # module TableMatchHelper
102
-
103
- World(TableMatchHelper)
104
-
105
-
106
- # Usage:
107
- #
108
- # I should see the "invoices" table:
109
- # | Invoice # | Date | Total Amount |
110
- # | /\d+/ | 27/01/12 | $30.00 |
111
- # | /\d+/ | 12/02/12 | $25.00 |
112
- #
113
- Then /^I should see the "([^"]*)" table:$/ do |table_id, expected_table|
114
- expect(page).to have_css "table##{table_id}"
115
-
116
- assert_tables_match(
117
- HtmlTableToTextHelper.new(page.body, "table##{table_id}").to_array,
118
- expected_table.raw
119
- )
120
- end
@@ -1,45 +0,0 @@
1
- def ensure_user_created(email)
2
- user = AdminUser.where(email: email).first_or_create(password: 'password', password_confirmation: 'password')
3
-
4
- unless user.persisted?
5
- raise "Could not create user #{email}: #{user.errors.full_messages}"
6
- end
7
- user
8
- end
9
-
10
- Given /^(?:I am logged|log) out$/ do
11
- click_link 'Logout' if page.all(:css, "a", text: 'Logout').any?
12
- end
13
-
14
- Given /^I am logged in$/ do
15
- step 'log out'
16
- login_as ensure_user_created 'admin@example.com'
17
- end
18
-
19
- # only for @requires-reloading scenario
20
- Given /^I am logged in with capybara$/ do
21
- ensure_user_created 'admin@example.com'
22
- step 'log out'
23
-
24
- visit new_admin_user_session_path
25
- fill_in 'Email', with: 'admin@example.com'
26
- fill_in 'Password', with: 'password'
27
- click_button 'Login'
28
- end
29
-
30
- Given /^an admin user "([^"]*)" exists$/ do |email|
31
- ensure_user_created(email)
32
- end
33
-
34
- Given /^"([^"]*)" requests a password reset with token "([^"]*)"( but it expires)?$/ do |email, token, expired|
35
- visit new_admin_user_password_path
36
- fill_in 'Email', with: email
37
- allow(Devise).to receive(:friendly_token).and_return(token)
38
- click_button "Reset My Password"
39
-
40
- AdminUser.where(email: email).first.update_attribute :reset_password_sent_at, 1.month.ago if expired
41
- end
42
-
43
- When /^I fill in the password field with "([^"]*)"$/ do |password|
44
- fill_in 'admin_user_password', with: password
45
- end
@@ -1,85 +0,0 @@
1
- require 'uri'
2
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
3
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
4
-
5
- module WithinHelpers
6
- def with_scope(locator)
7
- locator ? within(*selector_for(locator)) { yield } : yield
8
- end
9
- end
10
- World(WithinHelpers)
11
-
12
- # Single-line step scoper
13
- When /^(.*) within (.*[^:])$/ do |step_name, parent|
14
- with_scope(parent) { step step_name }
15
- end
16
-
17
- # Multi-line step scoper
18
- When /^(.*) within (.*[^:]):$/ do |step_name, parent, table_or_string|
19
- with_scope(parent) { step "#{step_name}:", table_or_string }
20
- end
21
-
22
- Given /^(?:I )am on (.+)$/ do |page_name|
23
- visit path_to(page_name)
24
- end
25
-
26
- When /^(?:I )go to (.+)$/ do |page_name|
27
- visit path_to(page_name)
28
- end
29
-
30
- When /^(?:I )POST to "(.*?)" with params "(.*?)"$/ do |url, params|
31
- post "#{url}#{params}"
32
- end
33
-
34
- When /^(?:I )press "([^"]*)"$/ do |button|
35
- click_button(button)
36
- end
37
-
38
- When /^(?:I )follow "([^"]*)"$/ do |link|
39
- first(:link, link).click
40
- end
41
-
42
- When /^(?:I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
43
- fill_in(field, with: value)
44
- end
45
-
46
- When /^(?:I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
47
- select(value, from: field)
48
- end
49
-
50
- When /^(?:I )(check|uncheck|choose) "([^"]*)"$/ do |action, field|
51
- send action, field
52
- end
53
-
54
- When /^(?:I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
55
- attach_file(field, File.expand_path(path))
56
- end
57
-
58
- Then /^(?:I )should( not)? see( the element)? "([^"]*)"$/ do |negate, is_css, text|
59
- should = negate ? :not_to : :to
60
- have = is_css ? have_css(text) : have_content(text)
61
- expect(page).send should, have
62
- end
63
-
64
- Then /^the "([^"]*)" field(?: within (.*))? should( not)? contain "([^"]*)"$/ do |field, parent, negate, value|
65
- with_scope(parent) do
66
- field = find_field(field)
67
- value = field.tag_name == 'textarea' ? field.text : field.value
68
-
69
- expect(value).send negate ? :not_to : :to, match(/#{value}/)
70
- end
71
- end
72
-
73
- Then /^the "([^"]*)" checkbox(?: within (.*))? should( not)? be checked$/ do |label, parent, negate|
74
- with_scope(parent) do
75
- expect(find_field(label)['checked']).to negate ? eq(false) : eq(true)
76
- end
77
- end
78
-
79
- Then /^(?:|I )should be on (.+)$/ do |page_name|
80
- expect(URI.parse(current_url).path).to eq path_to page_name
81
- end
82
-
83
- Then /^show me the page$/ do
84
- save_and_open_page
85
- end
@@ -1,65 +0,0 @@
1
- Feature: STI Resource
2
-
3
- Ensure that standard CRUD works with STI models
4
-
5
- Background:
6
- Given I am logged in
7
- And a configuration of:
8
- """
9
- ActiveAdmin.register Publisher do
10
- permit_params :first_name, :last_name, :username, :age if Rails::VERSION::MAJOR >= 4
11
- end
12
- ActiveAdmin.register User do
13
- permit_params :first_name, :last_name, :username, :age if Rails::VERSION::MAJOR >= 4
14
- end
15
- """
16
-
17
- Scenario: Create, update and delete a child STI resource
18
- Given I am on the index page for publishers
19
- When I follow "New Publisher"
20
- And I fill in "First name" with "Terry"
21
- And I fill in "Last name" with "Fox"
22
- And I fill in "Username" with "terry_fox"
23
- And I press "Create Publisher"
24
- Then I should see "Publisher was successfully created"
25
- And I should see "Terry"
26
-
27
- When I follow "Edit Publisher"
28
- And I fill in "First name" with "Joe"
29
- And I press "Update Publisher"
30
- Then I should see "Publisher was successfully updated"
31
- And I should see "Joe"
32
-
33
- When I follow "Delete Publisher"
34
- Then I should see "Publisher was successfully destroyed"
35
-
36
- Scenario: Create, update and delete a parent STI resource
37
- Given I am on the index page for users
38
- When I follow "New User"
39
- And I fill in "First name" with "Terry"
40
- And I fill in "Last name" with "Fox"
41
- And I fill in "Username" with "terry_fox"
42
- And I press "Create User"
43
- Then I should see "User was successfully created"
44
- And I should see "Terry"
45
-
46
- When I follow "Edit User"
47
- And I fill in "First name" with "Joe"
48
- And I press "Update User"
49
- Then I should see "User was successfully updated"
50
- And I should see "Joe"
51
-
52
- When I follow "Delete User"
53
- Then I should see "User was successfully destroyed"
54
-
55
- Scenario: Update and delete a child STI when the parent is registered
56
- Given a publisher named "Terry Fox" exists
57
- And I am on the index page for users
58
- When I follow "Edit"
59
- And I fill in "First name" with "Joe"
60
- And I press "Update Publisher"
61
- Then I should see "Publisher was successfully updated"
62
- And I should see "Joe"
63
-
64
- When I follow "Delete User"
65
- Then I should see "Publisher was successfully destroyed"
@@ -1,73 +0,0 @@
1
- @rails4
2
- @silent_unpermitted_params_failure
3
- Feature: Strong Params
4
-
5
- When I am using Rails 4
6
- I want to use Strong Parameters
7
-
8
- Background:
9
- Given a category named "Music" exists
10
- And a user named "John Doe" exists
11
- And a post with the title "Hello World" written by "John Doe" exists
12
- And I am logged in
13
- Given a configuration of:
14
- """
15
- ActiveAdmin.register Post do
16
- end
17
- """
18
- When I am on the index page for posts
19
-
20
- Scenario: Static permitted parameters
21
- Given a configuration of:
22
- """
23
- ActiveAdmin.register Post do
24
- permit_params :author, :title, :starred
25
- end
26
- """
27
- Given I follow "Edit"
28
-
29
- When I fill in "Title" with "Hello World from update"
30
- And I check "Starred"
31
- When I press "Update Post"
32
- Then I should see "Post was successfully updated."
33
- And I should see the attribute "Title" with "Hello World from update"
34
- And I should see the attribute "Author" with "John Doe"
35
- And I should see the attribute "Starred" with "Yes"
36
-
37
- Scenario: Dynamic permitted parameters
38
- Given a configuration of:
39
- """
40
- ActiveAdmin.register Post do
41
- permit_params do
42
- allow = [:author, :title]
43
- allow << :starred
44
- allow
45
- end
46
- end
47
- """
48
- Given I follow "Edit"
49
-
50
- When I fill in "Title" with "Hello World from update"
51
- And I check "Starred"
52
- When I press "Update Post"
53
- Then I should see "Post was successfully updated."
54
- And I should see the attribute "Title" with "Hello World from update"
55
- And I should see the attribute "Author" with "John Doe"
56
- And I should see the attribute "Starred" with "Yes"
57
-
58
- Scenario: Should not update parameters that are not declared as permitted
59
- Given a configuration of:
60
- """
61
- ActiveAdmin.register Post do
62
- permit_params :author, :title
63
- end
64
- """
65
- Given I follow "Edit"
66
-
67
- When I fill in "Title" with "Hello World from update"
68
- And I check "Starred"
69
- When I press "Update Post"
70
- Then I should see "Post was successfully updated."
71
- And I should see the attribute "Title" with "Hello World from update"
72
- And I should see the attribute "Author" with "John Doe"
73
- And I should see the attribute "Starred" with "No"
@@ -1,162 +0,0 @@
1
- # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
- # It is recommended to regenerate this file in the future when you upgrade to a
3
- # newer version of cucumber-rails. Consider adding your own code to a new file
4
- # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
- # files.
6
-
7
- ENV['RAILS_ENV'] = 'test'
8
-
9
- require File.expand_path('../../../spec/spec_helper', __FILE__)
10
-
11
- ENV['RAILS_ROOT'] = File.expand_path("../../../spec/rails/rails-#{ENV["RAILS"]}", __FILE__)
12
-
13
- # Create the test app if it doesn't exists
14
- unless File.exists?(ENV['RAILS_ROOT'])
15
- system 'rake setup'
16
- end
17
-
18
- require 'rails'
19
- require 'active_record'
20
- require 'active_admin'
21
- require 'devise'
22
- ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"]
23
-
24
- require ENV['RAILS_ROOT'] + '/config/environment'
25
-
26
- # Setup autoloading of ActiveAdmin and the load path
27
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
28
- autoload :ActiveAdmin, 'active_admin'
29
-
30
- require 'cucumber/rails'
31
-
32
- require 'rspec/mocks'
33
- World(RSpec::Mocks::ExampleMethods)
34
-
35
- Before do
36
- RSpec::Mocks.setup
37
- end
38
-
39
- After do
40
- begin
41
- RSpec::Mocks.verify
42
- ensure
43
- RSpec::Mocks.teardown
44
- end
45
- end
46
-
47
- require 'capybara/rails'
48
- require 'capybara/cucumber'
49
- require 'capybara/session'
50
- require 'capybara/poltergeist'
51
- require 'phantomjs/poltergeist'
52
-
53
- Capybara.javascript_driver = :poltergeist
54
-
55
- # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
56
- # order to ease the transition to Capybara we set the default here. If you'd
57
- # prefer to use XPath just remove this line and adjust any selectors in your
58
- # steps to use the XPath syntax.
59
- Capybara.default_selector = :css
60
-
61
- # Make input type=hidden visible
62
- Capybara.ignore_hidden_elements = false
63
-
64
- # If you set this to false, any error raised from within your app will bubble
65
- # up to your step definition and out to cucumber unless you catch it somewhere
66
- # on the way. You can make Rails rescue errors and render error pages on a
67
- # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
68
- #
69
- # If you set this to true, Rails will rescue all errors and render error
70
- # pages, more or less in the same way your application would behave in the
71
- # default production environment. It's not recommended to do this for all
72
- # of your scenarios, as this makes it hard to discover errors in your application.
73
- ActionController::Base.allow_rescue = false
74
-
75
- # If you set this to true, each scenario will run in a database transaction.
76
- # You can still turn off transactions on a per-scenario basis, simply tagging
77
- # a feature or scenario with the @no-txn tag. If you are using Capybara,
78
- # tagging with @culerity or @javascript will also turn transactions off.
79
- #
80
- # If you set this to false, transactions will be off for all scenarios,
81
- # regardless of whether you use @no-txn or not.
82
- #
83
- # Beware that turning transactions off will leave data in your database
84
- # after each scenario, which can lead to hard-to-debug failures in
85
- # subsequent scenarios. If you do this, we recommend you create a Before
86
- # block that will explicitly put your database in a known state.
87
- if ActiveAdmin::Dependency.rails5?
88
- Cucumber::Rails::World.use_transactional_tests = true
89
- else
90
- Cucumber::Rails::World.use_transactional_fixtures = true
91
- end
92
-
93
- # How to clean your database when transactions are turned off. See
94
- # http://github.com/bmabey/database_cleaner for more info.
95
- if defined?(ActiveRecord::Base)
96
- begin
97
- require 'database_cleaner'
98
- require 'database_cleaner/cucumber'
99
- DatabaseCleaner.strategy = :truncation
100
- rescue LoadError
101
- # ignore if database_cleaner isn't present
102
- end
103
- end
104
-
105
- # Warden helpers to speed up login
106
- # See https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara
107
- include Warden::Test::Helpers
108
-
109
- After do
110
- Warden.test_reset!
111
-
112
- # Reset back to the default auth adapter
113
- ActiveAdmin.application.namespace(:admin).
114
- authorization_adapter = ActiveAdmin::AuthorizationAdapter
115
- end
116
-
117
- Before do
118
- begin
119
- # We are caching classes, but need to manually clear references to
120
- # the controllers. If they aren't clear, the router stores references
121
- ActiveSupport::Dependencies.clear
122
-
123
- # Reload Active Admin
124
- ActiveAdmin.unload!
125
- ActiveAdmin.load!
126
- rescue
127
- p $!
128
- raise $!
129
- end
130
- end
131
-
132
- # Force deprecations to raise an exception.
133
- # This would set `behavior = :raise`, but that wasn't added until Rails 4.
134
- ActiveSupport::Deprecation.behavior = -> message, callstack do
135
- e = StandardError.new message
136
- e.set_backtrace callstack.map(&:to_s)
137
- puts e # sometimes Cucumber otherwise won't show the error message
138
- raise e
139
- end
140
-
141
- # improve the performance of the specs suite by not logging anything
142
- # see http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/
143
- Rails.logger.level = 4
144
-
145
- # Improves performance by forcing the garbage collector to run less often.
146
- unless ENV['DEFER_GC'] == '0' || ENV['DEFER_GC'] == 'false'
147
- require File.expand_path('../../../spec/support/deferred_garbage_collection', __FILE__)
148
- Before { DeferredGarbageCollection.start }
149
- After { DeferredGarbageCollection.reconsider }
150
- end
151
-
152
- # Don't run @rails4 tagged features for versions before Rails 4.
153
- Before('@rails4') do |scenario|
154
- scenario.skip_invoke! if Rails::VERSION::MAJOR < 4
155
- end
156
-
157
- Around '@silent_unpermitted_params_failure' do |scenario, block|
158
- original = ActionController::Parameters.action_on_unpermitted_parameters
159
- ActionController::Parameters.action_on_unpermitted_parameters = false
160
- block.call
161
- ActionController::Parameters.action_on_unpermitted_parameters = original
162
- end