activeadmin 1.3.1 → 1.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 (333) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +467 -0
  3. data/.gitignore +2 -5
  4. data/.rspec +1 -0
  5. data/.rspec_parallel +2 -0
  6. data/.rubocop.yml +25 -7
  7. data/.simplecov +4 -6
  8. data/CHANGELOG.md +175 -83
  9. data/CODE_OF_CONDUCT.md +64 -12
  10. data/CONTRIBUTING.md +77 -40
  11. data/Gemfile +7 -55
  12. data/Gemfile.common +53 -0
  13. data/Gemfile.lock +431 -0
  14. data/README.md +39 -18
  15. data/Rakefile +1 -32
  16. data/app/assets/stylesheets/active_admin/_forms.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  18. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  19. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  20. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  21. data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
  22. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  23. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  24. data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
  25. data/bin/install_chromedriver.sh +17 -0
  26. data/config/locales/de.yml +10 -0
  27. data/config/locales/en.yml +19 -1
  28. data/config/locales/es.yml +20 -1
  29. data/config/locales/fi.yml +1 -1
  30. data/config/locales/it.yml +4 -0
  31. data/config/locales/nb.yml +15 -5
  32. data/config/locales/nl.yml +11 -0
  33. data/config/locales/pl.yml +71 -3
  34. data/config/locales/ru.yml +2 -0
  35. data/config/locales/tr.yml +9 -0
  36. data/config/locales/zh-CN.yml +33 -5
  37. data/config/mdl_style.rb +2 -0
  38. data/cucumber.yml +7 -3
  39. data/docs/.gitignore +1 -0
  40. data/docs/1-general-configuration.md +16 -1
  41. data/docs/10-custom-pages.md +14 -0
  42. data/docs/12-arbre-components.md +28 -1
  43. data/docs/13-authorization-adapter.md +36 -17
  44. data/docs/2-resource-customization.md +8 -3
  45. data/docs/3-index-pages.md +17 -0
  46. data/docs/3-index-pages/custom-index.md +1 -1
  47. data/docs/3-index-pages/index-as-blog.md +1 -1
  48. data/docs/3-index-pages/index-as-table.md +5 -5
  49. data/docs/5-forms.md +16 -2
  50. data/docs/8-custom-actions.md +11 -0
  51. data/docs/Gemfile +2 -0
  52. data/docs/Gemfile.lock +249 -0
  53. data/docs/_config.yml +1 -1
  54. data/docs/_includes/toc.html +1 -1
  55. data/docs/_includes/top-menu.html +9 -1
  56. data/docs/documentation.md +1 -1
  57. data/docs/images/tidelift.svg +14 -0
  58. data/docs/stylesheets/main.css +26 -2
  59. data/gemfiles/rails_42.gemfile +2 -2
  60. data/gemfiles/rails_42.gemfile.lock +410 -0
  61. data/gemfiles/rails_50.gemfile +2 -2
  62. data/gemfiles/rails_50.gemfile.lock +424 -0
  63. data/gemfiles/rails_51.gemfile +2 -2
  64. data/gemfiles/rails_51.gemfile.lock +423 -0
  65. data/lib/active_admin/abstract_view_factory.rb +13 -51
  66. data/lib/active_admin/application.rb +42 -142
  67. data/lib/active_admin/application_settings.rb +39 -0
  68. data/lib/active_admin/base_controller/authorization.rb +1 -2
  69. data/lib/active_admin/batch_actions/controller.rb +1 -1
  70. data/lib/active_admin/dependency.rb +8 -0
  71. data/lib/active_admin/deprecation.rb +0 -25
  72. data/lib/active_admin/dynamic_setting.rb +38 -0
  73. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  74. data/lib/active_admin/engine.rb +5 -0
  75. data/lib/active_admin/filters/active_filter.rb +1 -1
  76. data/lib/active_admin/filters/resource_extension.rb +1 -1
  77. data/lib/active_admin/form_builder.rb +95 -60
  78. data/lib/active_admin/inputs/datepicker_input.rb +7 -0
  79. data/lib/active_admin/menu.rb +2 -8
  80. data/lib/active_admin/menu_item.rb +3 -31
  81. data/lib/active_admin/namespace.rb +18 -6
  82. data/lib/active_admin/namespace_settings.rb +107 -0
  83. data/lib/active_admin/orm/active_record/comments.rb +11 -0
  84. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -1
  85. data/lib/active_admin/resource/action_items.rb +6 -1
  86. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  87. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  88. data/lib/active_admin/router.rb +89 -84
  89. data/lib/active_admin/scope.rb +5 -1
  90. data/lib/active_admin/settings_node.rb +19 -0
  91. data/lib/active_admin/version.rb +1 -1
  92. data/lib/active_admin/views/components/active_admin_form.rb +2 -3
  93. data/lib/active_admin/views/components/menu.rb +32 -0
  94. data/lib/active_admin/views/components/menu_item.rb +58 -0
  95. data/lib/active_admin/views/components/scopes.rb +11 -4
  96. data/lib/active_admin/views/components/sidebar.rb +13 -0
  97. data/lib/active_admin/views/components/site_title.rb +5 -6
  98. data/lib/active_admin/views/components/table_for.rb +1 -10
  99. data/lib/active_admin/views/components/tabs.rb +4 -1
  100. data/lib/active_admin/views/footer.rb +2 -6
  101. data/lib/active_admin/views/header.rb +3 -15
  102. data/lib/active_admin/views/index_as_blog.rb +1 -1
  103. data/lib/active_admin/views/index_as_grid.rb +25 -25
  104. data/lib/active_admin/views/index_as_table.rb +6 -6
  105. data/lib/active_admin/views/pages/base.rb +27 -53
  106. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  107. data/lib/bug_report_templates/active_admin_master.rb +2 -3
  108. data/tasks/application_generator.rb +48 -0
  109. data/tasks/gemfiles.rake +8 -0
  110. data/tasks/lint.rake +96 -7
  111. data/tasks/local.rake +10 -8
  112. data/tasks/test.rake +30 -16
  113. metadata +26 -440
  114. data/.travis.yml +0 -51
  115. data/features/action_item.feature +0 -73
  116. data/features/authorization.feature +0 -64
  117. data/features/authorization_cancan.feature +0 -52
  118. data/features/authorization_pundit.feature +0 -37
  119. data/features/belongs_to.feature +0 -124
  120. data/features/breadcrumb.feature +0 -75
  121. data/features/comments/commenting.feature +0 -178
  122. data/features/comments/viewing_index.feature +0 -19
  123. data/features/create_another.feature +0 -55
  124. data/features/dashboard.feature +0 -16
  125. data/features/decorators.feature +0 -43
  126. data/features/development_reloading.feature +0 -28
  127. data/features/edit_page.feature +0 -116
  128. data/features/favicon.feature +0 -20
  129. data/features/first_boot.feature +0 -16
  130. data/features/footer.feature +0 -28
  131. data/features/global_navigation.feature +0 -29
  132. data/features/i18n.feature +0 -55
  133. data/features/index/batch_actions.feature +0 -218
  134. data/features/index/filters.feature +0 -250
  135. data/features/index/format_as_csv.feature +0 -220
  136. data/features/index/formats.feature +0 -88
  137. data/features/index/index_as_block.feature +0 -15
  138. data/features/index/index_as_blog.feature +0 -69
  139. data/features/index/index_as_grid.feature +0 -45
  140. data/features/index/index_as_table.feature +0 -291
  141. data/features/index/index_blank_slate.feature +0 -83
  142. data/features/index/index_parameters.feature +0 -75
  143. data/features/index/index_scope_to.feature +0 -56
  144. data/features/index/index_scopes.feature +0 -285
  145. data/features/index/page_title.feature +0 -41
  146. data/features/index/pagination.feature +0 -63
  147. data/features/index/switch_index_view.feature +0 -73
  148. data/features/menu.feature +0 -72
  149. data/features/meta_tags.feature +0 -21
  150. data/features/new_page.feature +0 -136
  151. data/features/registering_assets.feature +0 -38
  152. data/features/registering_pages.feature +0 -237
  153. data/features/registering_resources.feature +0 -33
  154. data/features/renamed_resource.feature +0 -30
  155. data/features/root_to.feature +0 -17
  156. data/features/show/attributes_table_title.feature +0 -54
  157. data/features/show/columns.feature +0 -40
  158. data/features/show/default_content.feature +0 -44
  159. data/features/show/page_title.feature +0 -58
  160. data/features/show/tabs.feature +0 -33
  161. data/features/sidebar_sections.feature +0 -210
  162. data/features/site_title.feature +0 -47
  163. data/features/specifying_actions.feature +0 -118
  164. data/features/step_definitions/action_item_steps.rb +0 -7
  165. data/features/step_definitions/action_link_steps.rb +0 -19
  166. data/features/step_definitions/additional_web_steps.rb +0 -81
  167. data/features/step_definitions/asset_steps.rb +0 -15
  168. data/features/step_definitions/attribute_steps.rb +0 -18
  169. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  170. data/features/step_definitions/batch_action_steps.rb +0 -81
  171. data/features/step_definitions/blog_steps.rb +0 -3
  172. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  173. data/features/step_definitions/column_steps.rb +0 -8
  174. data/features/step_definitions/comment_steps.rb +0 -32
  175. data/features/step_definitions/configuration_steps.rb +0 -100
  176. data/features/step_definitions/dashboard_steps.rb +0 -15
  177. data/features/step_definitions/factory_steps.rb +0 -35
  178. data/features/step_definitions/filter_steps.rb +0 -47
  179. data/features/step_definitions/flash_steps.rb +0 -11
  180. data/features/step_definitions/footer_steps.rb +0 -11
  181. data/features/step_definitions/format_steps.rb +0 -56
  182. data/features/step_definitions/i18n_steps.rb +0 -11
  183. data/features/step_definitions/index_scope_steps.rb +0 -29
  184. data/features/step_definitions/index_views_steps.rb +0 -3
  185. data/features/step_definitions/layout_steps.rb +0 -3
  186. data/features/step_definitions/member_link_steps.rb +0 -7
  187. data/features/step_definitions/menu_steps.rb +0 -11
  188. data/features/step_definitions/meta_tag_steps.rb +0 -3
  189. data/features/step_definitions/pagination_steps.rb +0 -15
  190. data/features/step_definitions/sidebar_steps.rb +0 -11
  191. data/features/step_definitions/site_title_steps.rb +0 -17
  192. data/features/step_definitions/tab_steps.rb +0 -8
  193. data/features/step_definitions/table_steps.rb +0 -116
  194. data/features/step_definitions/user_steps.rb +0 -52
  195. data/features/step_definitions/web_steps.rb +0 -86
  196. data/features/sti_resource.feature +0 -65
  197. data/features/strong_parameters.feature +0 -69
  198. data/features/support/env.rb +0 -122
  199. data/features/support/paths.rb +0 -73
  200. data/features/support/regular_env.rb +0 -7
  201. data/features/support/reload_env.rb +0 -7
  202. data/features/support/selectors.rb +0 -45
  203. data/features/users/logging_in.feature +0 -36
  204. data/features/users/logging_out.feature +0 -13
  205. data/features/users/resetting_password.feature +0 -34
  206. data/gemfiles/rails_52.gemfile +0 -11
  207. data/lib/active_admin/helpers/settings.rb +0 -114
  208. data/spec/bug_report_templates_spec.rb +0 -26
  209. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  210. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  211. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  212. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  213. data/spec/javascripts/fixtures/flashes.html +0 -2
  214. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  215. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  216. data/spec/javascripts/support/jasmine.yml +0 -74
  217. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  218. data/spec/rails_helper.rb +0 -59
  219. data/spec/requests/default_namespace_spec.rb +0 -81
  220. data/spec/requests/memory_spec.rb +0 -25
  221. data/spec/requests/stylesheets_spec.rb +0 -18
  222. data/spec/spec_helper.rb +0 -1
  223. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  224. data/spec/support/active_admin_request_helpers.rb +0 -39
  225. data/spec/support/rails_template.rb +0 -153
  226. data/spec/support/rails_template_with_data.rb +0 -327
  227. data/spec/support/templates/admin/stores.rb +0 -7
  228. data/spec/support/templates/en.yml +0 -8
  229. data/spec/support/templates/manifest.js +0 -3
  230. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  231. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  232. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  233. data/spec/support/templates/policies/application_policy.rb +0 -44
  234. data/spec/support/templates/policies/category_policy.rb +0 -7
  235. data/spec/support/templates/policies/post_policy.rb +0 -15
  236. data/spec/support/templates/policies/store_policy.rb +0 -11
  237. data/spec/support/templates/policies/user_policy.rb +0 -11
  238. data/spec/support/templates/post_decorator.rb +0 -24
  239. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  240. data/spec/unit/action_builder_spec.rb +0 -158
  241. data/spec/unit/active_admin_spec.rb +0 -11
  242. data/spec/unit/application_spec.rb +0 -184
  243. data/spec/unit/asset_registration_spec.rb +0 -81
  244. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  245. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  246. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  247. data/spec/unit/auto_link_spec.rb +0 -93
  248. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  249. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  250. data/spec/unit/belongs_to_spec.rb +0 -76
  251. data/spec/unit/cancan_adapter_spec.rb +0 -43
  252. data/spec/unit/comments_spec.rb +0 -176
  253. data/spec/unit/component_spec.rb +0 -18
  254. data/spec/unit/config_shared_examples.rb +0 -59
  255. data/spec/unit/controller_filters_spec.rb +0 -41
  256. data/spec/unit/csv_builder_spec.rb +0 -313
  257. data/spec/unit/dependency_spec.rb +0 -135
  258. data/spec/unit/devise_spec.rb +0 -110
  259. data/spec/unit/dsl_spec.rb +0 -120
  260. data/spec/unit/filters/active_filter_spec.rb +0 -189
  261. data/spec/unit/filters/active_spec.rb +0 -24
  262. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  263. data/spec/unit/filters/resource_spec.rb +0 -128
  264. data/spec/unit/form_builder_spec.rb +0 -990
  265. data/spec/unit/generators/install_spec.rb +0 -31
  266. data/spec/unit/helpers/collection_spec.rb +0 -68
  267. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  268. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  269. data/spec/unit/helpers/settings_spec.rb +0 -30
  270. data/spec/unit/i18n_spec.rb +0 -29
  271. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  272. data/spec/unit/menu_collection_spec.rb +0 -62
  273. data/spec/unit/menu_item_spec.rb +0 -141
  274. data/spec/unit/menu_spec.rb +0 -71
  275. data/spec/unit/namespace/authorization_spec.rb +0 -27
  276. data/spec/unit/namespace/register_page_spec.rb +0 -99
  277. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  278. data/spec/unit/namespace_spec.rb +0 -124
  279. data/spec/unit/order_clause_spec.rb +0 -81
  280. data/spec/unit/page_controller_spec.rb +0 -5
  281. data/spec/unit/page_spec.rb +0 -128
  282. data/spec/unit/pretty_format_spec.rb +0 -82
  283. data/spec/unit/pundit_adapter_spec.rb +0 -98
  284. data/spec/unit/resource/action_items_spec.rb +0 -69
  285. data/spec/unit/resource/attributes_spec.rb +0 -49
  286. data/spec/unit/resource/includes_spec.rb +0 -21
  287. data/spec/unit/resource/menu_spec.rb +0 -18
  288. data/spec/unit/resource/naming_spec.rb +0 -122
  289. data/spec/unit/resource/ordering_spec.rb +0 -35
  290. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  291. data/spec/unit/resource/pagination_spec.rb +0 -38
  292. data/spec/unit/resource/routes_spec.rb +0 -125
  293. data/spec/unit/resource/scopes_spec.rb +0 -50
  294. data/spec/unit/resource/sidebars_spec.rb +0 -43
  295. data/spec/unit/resource_collection_spec.rb +0 -175
  296. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  297. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  298. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  299. data/spec/unit/resource_controller_spec.rb +0 -273
  300. data/spec/unit/resource_registration_spec.rb +0 -61
  301. data/spec/unit/resource_spec.rb +0 -320
  302. data/spec/unit/routing_spec.rb +0 -211
  303. data/spec/unit/scope_spec.rb +0 -209
  304. data/spec/unit/settings_spec.rb +0 -117
  305. data/spec/unit/view_factory_spec.rb +0 -19
  306. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  307. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  308. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  309. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  310. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  311. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  312. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  313. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  314. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  315. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  316. data/spec/unit/views/components/columns_spec.rb +0 -187
  317. data/spec/unit/views/components/index_list_spec.rb +0 -49
  318. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  319. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  320. data/spec/unit/views/components/panel_spec.rb +0 -58
  321. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  322. data/spec/unit/views/components/site_title_spec.rb +0 -76
  323. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  324. data/spec/unit/views/components/table_for_spec.rb +0 -436
  325. data/spec/unit/views/components/tabs_spec.rb +0 -67
  326. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  327. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  328. data/spec/unit/views/pages/form_spec.rb +0 -54
  329. data/spec/unit/views/pages/index_spec.rb +0 -60
  330. data/spec/unit/views/pages/layout_spec.rb +0 -59
  331. data/spec/unit/views/pages/show_spec.rb +0 -32
  332. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  333. data/tasks/parallel_tests.rake +0 -66
@@ -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
11
- end
12
- ActiveAdmin.register User do
13
- permit_params :first_name, :last_name, :username, :age
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,69 +0,0 @@
1
- @silent_unpermitted_params_failure
2
- Feature: Strong Params
3
-
4
- Background:
5
- Given a category named "Music" exists
6
- And a user named "John Doe" exists
7
- And a post with the title "Hello World" written by "John Doe" exists
8
- And I am logged in
9
- Given a configuration of:
10
- """
11
- ActiveAdmin.register Post do
12
- end
13
- """
14
- When I am on the index page for posts
15
-
16
- Scenario: Static permitted parameters
17
- Given a configuration of:
18
- """
19
- ActiveAdmin.register Post do
20
- permit_params :author, :title, :starred
21
- end
22
- """
23
- Given I follow "Edit"
24
-
25
- When I fill in "Title" with "Hello World from update"
26
- And I check "Starred"
27
- When I press "Update Post"
28
- Then I should see "Post was successfully updated."
29
- And I should see the attribute "Title" with "Hello World from update"
30
- And I should see the attribute "Author" with "John Doe"
31
- And I should see the attribute "Starred" with "Yes"
32
-
33
- Scenario: Dynamic permitted parameters
34
- Given a configuration of:
35
- """
36
- ActiveAdmin.register Post do
37
- permit_params do
38
- allow = [:author, :title]
39
- allow << :starred
40
- allow
41
- end
42
- end
43
- """
44
- Given I follow "Edit"
45
-
46
- When I fill in "Title" with "Hello World from update"
47
- And I check "Starred"
48
- When I press "Update Post"
49
- Then I should see "Post was successfully updated."
50
- And I should see the attribute "Title" with "Hello World from update"
51
- And I should see the attribute "Author" with "John Doe"
52
- And I should see the attribute "Starred" with "Yes"
53
-
54
- Scenario: Should not update parameters that are not declared as permitted
55
- Given a configuration of:
56
- """
57
- ActiveAdmin.register Post do
58
- permit_params :author, :title
59
- end
60
- """
61
- Given I follow "Edit"
62
-
63
- When I fill in "Title" with "Hello World from update"
64
- And I check "Starred"
65
- When I press "Update Post"
66
- Then I should see "Post was successfully updated."
67
- And I should see the attribute "Title" with "Hello World from update"
68
- And I should see the attribute "Author" with "John Doe"
69
- And I should see the attribute "Starred" with "No"
@@ -1,122 +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 'simplecov' if ENV["COVERAGE"] == "true"
10
-
11
- Dir["#{File.expand_path('../../step_definitions', __FILE__)}/*.rb"].each do |f|
12
- require f
13
- end
14
-
15
- require 'rails'
16
- ENV['RAILS_ROOT'] = File.expand_path("../../../spec/rails/rails-#{Rails.version}", __FILE__)
17
-
18
- # Create the test app if it doesn't exists
19
- unless File.exists?(ENV['RAILS_ROOT'])
20
- system 'rake setup'
21
- end
22
-
23
- require 'active_record'
24
- require 'active_admin'
25
- require 'devise'
26
- ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"]
27
-
28
- require ENV['RAILS_ROOT'] + '/config/environment'
29
-
30
- # Setup autoloading of ActiveAdmin
31
- autoload :ActiveAdmin, 'active_admin'
32
-
33
- require 'cucumber/rails'
34
-
35
- require 'rspec/mocks'
36
- World(RSpec::Mocks::ExampleMethods)
37
-
38
- Before do
39
- RSpec::Mocks.setup
40
- end
41
-
42
- After do
43
- begin
44
- RSpec::Mocks.verify
45
- ensure
46
- RSpec::Mocks.teardown
47
- end
48
- end
49
-
50
- require 'capybara/rails'
51
- require 'capybara/cucumber'
52
- require 'capybara/session'
53
- require 'capybara/poltergeist'
54
- require 'phantomjs/poltergeist'
55
-
56
- Capybara.javascript_driver = :poltergeist
57
-
58
- # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
59
- # order to ease the transition to Capybara we set the default here. If you'd
60
- # prefer to use XPath just remove this line and adjust any selectors in your
61
- # steps to use the XPath syntax.
62
- Capybara.default_selector = :css
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
- # Database resetting strategy
76
- DatabaseCleaner.strategy = :truncation
77
- Cucumber::Rails::Database.javascript_strategy = :truncation
78
-
79
- # Warden helpers to speed up login
80
- # See https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara
81
- include Warden::Test::Helpers
82
-
83
- After do
84
- Warden.test_reset!
85
-
86
- # Reset back to the default auth adapter
87
- ActiveAdmin.application.namespace(:admin).
88
- authorization_adapter = ActiveAdmin::AuthorizationAdapter
89
- end
90
-
91
- Before do
92
- begin
93
- # We are caching classes, but need to manually clear references to
94
- # the controllers. If they aren't clear, the router stores references
95
- ActiveSupport::Dependencies.clear
96
-
97
- # Reload Active Admin
98
- ActiveAdmin.unload!
99
- ActiveAdmin.load!
100
- rescue
101
- p $!
102
- raise $!
103
- end
104
- end
105
-
106
- # Force deprecations to raise an exception.
107
- ActiveSupport::Deprecation.behavior = :raise
108
-
109
- # improve the performance of the specs suite by not logging anything
110
- # see http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/
111
- Rails.logger.level = 4
112
-
113
- Around '@silent_unpermitted_params_failure' do |scenario, block|
114
- original = ActionController::Parameters.action_on_unpermitted_parameters
115
- ActionController::Parameters.action_on_unpermitted_parameters = false
116
- block.call
117
- ActionController::Parameters.action_on_unpermitted_parameters = original
118
- end
119
-
120
- Around '@locale_manipulation' do |scenario, block|
121
- I18n.with_locale(:en) { block.call }
122
- end
@@ -1,73 +0,0 @@
1
- module NavigationHelpers
2
- # Maps a name to a path. Used by the
3
- #
4
- # When /^I go to (.+)$/ do |page_name|
5
- #
6
- # step definition in web_steps.rb
7
- #
8
- def path_to(page_name)
9
- case page_name
10
-
11
- when /the home\s?page/
12
- '/'
13
- when /the dashboard/
14
- "/admin"
15
- when /the new post page/
16
- "/admin/posts/new"
17
- when /the login page/
18
- "/admin/login"
19
- when /the first post custom status page/
20
- "/admin/posts/1/status"
21
- when /the last posts page/
22
- "/admin/last_posts"
23
- when /the admin password reset form with token "([^"]*)"/
24
- "/admin/password/edit?reset_password_token=#{$1}"
25
-
26
- # the index page for posts in the root namespace
27
- # the index page for posts in the user_admin namespace
28
- when /^the index page for (.*) in the (.*) namespace$/
29
- if $2 != 'root'
30
- send "#{$2}_#{$1}_path"
31
- else
32
- send "#{$1}_path"
33
- end
34
-
35
- # same as above, except defaults to admin namespace
36
- when /^the index page for (.*)$/
37
- send "admin_#{$1}_path"
38
-
39
- when /^the (.*) index page for (.*)$/
40
- send "admin_#{$2}_path", format: $1
41
-
42
- when /^the last author's posts$/
43
- admin_user_posts_path(User.last)
44
-
45
- when /^the last author's last post page$/
46
- admin_user_post_path(User.last, Post.where(author_id: User.last.id).last)
47
-
48
- when /^the last post's show page$/
49
- admin_post_path(Post.last)
50
-
51
- when /^the last post's edit page$/
52
- edit_admin_post_path(Post.last)
53
-
54
- # Add more mappings here.
55
- # Here is an example that pulls values out of the Regexp:
56
- #
57
- # when /^(.*)'s profile page$/i
58
- # user_profile_path(User.find_by_login($1))
59
-
60
- else
61
- begin
62
- page_name =~ /the (.*) page/
63
- path_components = $1.split(/\s+/)
64
- self.send path_components.push('path').join('_')
65
- rescue Object => e
66
- raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
67
- "Now, go and add a mapping in #{__FILE__}"
68
- end
69
- end
70
- end
71
- end
72
-
73
- World(NavigationHelpers)
@@ -1,7 +0,0 @@
1
- if ENV["COVERAGE"] == "true"
2
- require 'simplecov'
3
-
4
- SimpleCov.command_name "regular features"
5
- end
6
-
7
- require_relative 'env'
@@ -1,7 +0,0 @@
1
- if ENV["COVERAGE"] == "true"
2
- require 'simplecov'
3
-
4
- SimpleCov.command_name "reload features"
5
- end
6
-
7
- require_relative 'env'
@@ -1,45 +0,0 @@
1
- module HtmlSelectorsHelpers
2
- # Maps a name to a selector. Used primarily by the
3
- #
4
- # When /^(.+) within (.+)$/ do |step, scope|
5
- #
6
- # step definitions in web_steps.rb
7
- #
8
- def selector_for(locator)
9
- case locator
10
-
11
- when "the page"
12
- "html > body"
13
-
14
- # Add more mappings here.
15
- # Here is an example that pulls values out of the Regexp:
16
- #
17
- # when /^the (notice|error|info) flash$/
18
- # ".flash.#{$1}"
19
-
20
- # You can also return an array to use a different selector
21
- # type, like:
22
- #
23
- # when /the header/
24
- # [:xpath, "//header"]
25
-
26
- when "index grid"
27
- [:css, "table.index_grid"]
28
-
29
- when /^the "([^"]*)" sidebar$/
30
- [:css, "##{$1.tr(" ", '').underscore}_sidebar_section"]
31
-
32
- # This allows you to provide a quoted selector as the scope
33
- # for "within" steps as was previously the default for the
34
- # web steps:
35
- when /^"(.+)"$/
36
- $1
37
-
38
- else
39
- raise "Can't find mapping from \"#{locator}\" to a selector.\n" +
40
- "Now, go and add a mapping in #{__FILE__}"
41
- end
42
- end
43
- end
44
-
45
- World(HtmlSelectorsHelpers)
@@ -1,36 +0,0 @@
1
- Feature: User Logging In
2
-
3
- Logging in to the system as an admin user
4
-
5
- Background:
6
- Given a configuration of:
7
- """
8
- ActiveAdmin.register Post
9
- """
10
- And I am logged out
11
- And an admin user "admin@example.com" exists
12
- When I go to the dashboard
13
-
14
- Scenario: Logging in Successfully
15
- When I fill in "Email" with "admin@example.com"
16
- And I fill in "Password" with "password"
17
- And I press "Login"
18
- Then I should be on the the dashboard
19
- And I should see the element "a[href='/admin/logout' ]:contains('Logout')"
20
- And I should see the element "a[href='/admin/admin_users/1']:contains('admin@example.com')"
21
-
22
- Scenario: Attempting to log in with an incorrect email address
23
- Given override locale "devise.failure.not_found_in_database" with "Invalid email or password."
24
- When I fill in "Email" with "not-an-admin@example.com"
25
- And I fill in "Password" with "not-my-password"
26
- And I press "Login"
27
- Then I should see "Login"
28
- And I should see "Invalid email or password."
29
-
30
- Scenario: Attempting to log in with an incorrect password
31
- Given override locale "devise.failure.invalid" with "Invalid email or password."
32
- When I fill in "Email" with "admin@example.com"
33
- And I fill in "Password" with "not-my-password"
34
- And I press "Login"
35
- Then I should see "Login"
36
- And I should see "Invalid email or password."
@@ -1,13 +0,0 @@
1
- Feature: User Logging out
2
-
3
- Logging out of the system as an admin user
4
-
5
- Scenario: Logging out successfully
6
- Given a configuration of:
7
- """
8
- ActiveAdmin.register Post
9
- """
10
- And I am logged in
11
- When I go to the dashboard
12
- And I follow "Logout"
13
- Then I should see "Login"