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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +467 -0
- data/.gitignore +2 -5
- data/.rspec +1 -0
- data/.rspec_parallel +2 -0
- data/.rubocop.yml +25 -7
- data/.simplecov +4 -6
- data/CHANGELOG.md +175 -83
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +77 -40
- data/Gemfile +7 -55
- data/Gemfile.common +53 -0
- data/Gemfile.lock +431 -0
- data/README.md +39 -18
- data/Rakefile +1 -32
- data/app/assets/stylesheets/active_admin/_forms.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
- data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
- data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
- data/bin/install_chromedriver.sh +17 -0
- data/config/locales/de.yml +10 -0
- data/config/locales/en.yml +19 -1
- data/config/locales/es.yml +20 -1
- data/config/locales/fi.yml +1 -1
- data/config/locales/it.yml +4 -0
- data/config/locales/nb.yml +15 -5
- data/config/locales/nl.yml +11 -0
- data/config/locales/pl.yml +71 -3
- data/config/locales/ru.yml +2 -0
- data/config/locales/tr.yml +9 -0
- data/config/locales/zh-CN.yml +33 -5
- data/config/mdl_style.rb +2 -0
- data/cucumber.yml +7 -3
- data/docs/.gitignore +1 -0
- data/docs/1-general-configuration.md +16 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/12-arbre-components.md +28 -1
- data/docs/13-authorization-adapter.md +36 -17
- data/docs/2-resource-customization.md +8 -3
- data/docs/3-index-pages.md +17 -0
- data/docs/3-index-pages/custom-index.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-table.md +5 -5
- data/docs/5-forms.md +16 -2
- data/docs/8-custom-actions.md +11 -0
- data/docs/Gemfile +2 -0
- data/docs/Gemfile.lock +249 -0
- data/docs/_config.yml +1 -1
- data/docs/_includes/toc.html +1 -1
- data/docs/_includes/top-menu.html +9 -1
- data/docs/documentation.md +1 -1
- data/docs/images/tidelift.svg +14 -0
- data/docs/stylesheets/main.css +26 -2
- data/gemfiles/rails_42.gemfile +2 -2
- data/gemfiles/rails_42.gemfile.lock +410 -0
- data/gemfiles/rails_50.gemfile +2 -2
- data/gemfiles/rails_50.gemfile.lock +424 -0
- data/gemfiles/rails_51.gemfile +2 -2
- data/gemfiles/rails_51.gemfile.lock +423 -0
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +42 -142
- data/lib/active_admin/application_settings.rb +39 -0
- data/lib/active_admin/base_controller/authorization.rb +1 -2
- data/lib/active_admin/batch_actions/controller.rb +1 -1
- data/lib/active_admin/dependency.rb +8 -0
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/filters/active_filter.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +1 -1
- data/lib/active_admin/form_builder.rb +95 -60
- data/lib/active_admin/inputs/datepicker_input.rb +7 -0
- data/lib/active_admin/menu.rb +2 -8
- data/lib/active_admin/menu_item.rb +3 -31
- data/lib/active_admin/namespace.rb +18 -6
- data/lib/active_admin/namespace_settings.rb +107 -0
- data/lib/active_admin/orm/active_record/comments.rb +11 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +1 -1
- data/lib/active_admin/resource/action_items.rb +6 -1
- data/lib/active_admin/resource_controller/decorators.rb +3 -3
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/router.rb +89 -84
- data/lib/active_admin/scope.rb +5 -1
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +2 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/scopes.rb +11 -4
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/table_for.rb +1 -10
- data/lib/active_admin/views/components/tabs.rb +4 -1
- data/lib/active_admin/views/footer.rb +2 -6
- data/lib/active_admin/views/header.rb +3 -15
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +6 -6
- data/lib/active_admin/views/pages/base.rb +27 -53
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/bug_report_templates/active_admin_master.rb +2 -3
- data/tasks/application_generator.rb +48 -0
- data/tasks/gemfiles.rake +8 -0
- data/tasks/lint.rake +96 -7
- data/tasks/local.rake +10 -8
- data/tasks/test.rake +30 -16
- metadata +26 -440
- data/.travis.yml +0 -51
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -124
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -178
- data/features/comments/viewing_index.feature +0 -19
- data/features/create_another.feature +0 -55
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -28
- data/features/edit_page.feature +0 -116
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/footer.feature +0 -28
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -55
- data/features/index/batch_actions.feature +0 -218
- data/features/index/filters.feature +0 -250
- data/features/index/format_as_csv.feature +0 -220
- data/features/index/formats.feature +0 -88
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -285
- data/features/index/page_title.feature +0 -41
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -72
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -136
- data/features/registering_assets.feature +0 -38
- data/features/registering_pages.feature +0 -237
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -30
- data/features/root_to.feature +0 -17
- data/features/show/attributes_table_title.feature +0 -54
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -58
- data/features/show/tabs.feature +0 -33
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -118
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -19
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/attributes_table_title_steps.rb +0 -11
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -32
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -47
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/footer_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -56
- data/features/step_definitions/i18n_steps.rb +0 -11
- data/features/step_definitions/index_scope_steps.rb +0 -29
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -11
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -116
- data/features/step_definitions/user_steps.rb +0 -52
- data/features/step_definitions/web_steps.rb +0 -86
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -69
- data/features/support/env.rb +0 -122
- data/features/support/paths.rb +0 -73
- data/features/support/regular_env.rb +0 -7
- data/features/support/reload_env.rb +0 -7
- data/features/support/selectors.rb +0 -45
- data/features/users/logging_in.feature +0 -36
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/gemfiles/rails_52.gemfile +0 -11
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/spec/bug_report_templates_spec.rb +0 -26
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_runner.rb +0 -19
- data/spec/rails_helper.rb +0 -59
- data/spec/requests/default_namespace_spec.rb +0 -81
- data/spec/requests/memory_spec.rb +0 -25
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_admin_integration_spec_helper.rb +0 -73
- data/spec/support/active_admin_request_helpers.rb +0 -39
- data/spec/support/rails_template.rb +0 -153
- data/spec/support/rails_template_with_data.rb +0 -327
- data/spec/support/templates/admin/stores.rb +0 -7
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/manifest.js +0 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -44
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -24
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -158
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -184
- data/spec/unit/asset_registration_spec.rb +0 -81
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -93
- data/spec/unit/batch_actions/resource_spec.rb +0 -84
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -76
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -176
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -313
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -110
- data/spec/unit/dsl_spec.rb +0 -120
- data/spec/unit/filters/active_filter_spec.rb +0 -189
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -990
- data/spec/unit/generators/install_spec.rb +0 -31
- data/spec/unit/helpers/collection_spec.rb +0 -68
- data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
- data/spec/unit/helpers/scope_chain_spec.rb +0 -35
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -29
- data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -141
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -99
- data/spec/unit/namespace/register_resource_spec.rb +0 -162
- data/spec/unit/namespace_spec.rb +0 -124
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -128
- data/spec/unit/pretty_format_spec.rb +0 -82
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -69
- data/spec/unit/resource/attributes_spec.rb +0 -49
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/ordering_spec.rb +0 -35
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -125
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -234
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
- data/spec/unit/resource_controller_spec.rb +0 -273
- data/spec/unit/resource_registration_spec.rb +0 -61
- data/spec/unit/resource_spec.rb +0 -320
- data/spec/unit/routing_spec.rb +0 -211
- data/spec/unit/scope_spec.rb +0 -209
- data/spec/unit/settings_spec.rb +0 -117
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
- data/spec/unit/views/components/attributes_table_spec.rb +0 -271
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -187
- data/spec/unit/views/components/index_list_spec.rb +0 -49
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -76
- data/spec/unit/views/components/status_tag_spec.rb +0 -265
- data/spec/unit/views/components/table_for_spec.rb +0 -436
- data/spec/unit/views/components/tabs_spec.rb +0 -67
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -54
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -32
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/parallel_tests.rake +0 -66
@@ -1,81 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::AssetRegistration do
|
4
|
-
include ActiveAdmin::AssetRegistration
|
5
|
-
|
6
|
-
before do
|
7
|
-
clear_stylesheets!
|
8
|
-
clear_javascripts!
|
9
|
-
end
|
10
|
-
|
11
|
-
it "is deprecated" do
|
12
|
-
expect(ActiveAdmin::Deprecation)
|
13
|
-
.to receive(:warn)
|
14
|
-
.with(<<-MSG.strip_heredoc
|
15
|
-
The `register_stylesheet` config is deprecated and will be removed
|
16
|
-
in v2. Import your "sample_styles.css" stylesheet in the active_admin.scss.
|
17
|
-
MSG
|
18
|
-
)
|
19
|
-
|
20
|
-
register_stylesheet "sample_styles.css"
|
21
|
-
|
22
|
-
expect(ActiveAdmin::Deprecation)
|
23
|
-
.to receive(:warn)
|
24
|
-
.with(<<-MSG.strip_heredoc
|
25
|
-
The `register_javascript` config is deprecated and will be removed
|
26
|
-
in v2. Import your "sample_scripts.js" javascript in the active_admin.js.
|
27
|
-
MSG
|
28
|
-
)
|
29
|
-
|
30
|
-
register_javascript "sample_scripts.js"
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should register a stylesheet file" do
|
34
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
35
|
-
register_stylesheet "active_admin.css"
|
36
|
-
expect(stylesheets.length).to eq 1
|
37
|
-
expect(stylesheets.keys.first).to eq "active_admin.css"
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should clear all existing stylesheets" do
|
41
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
42
|
-
register_stylesheet "active_admin.css"
|
43
|
-
expect(stylesheets.length).to eq 1
|
44
|
-
clear_stylesheets!
|
45
|
-
expect(stylesheets).to be_empty
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should allow media option when registering stylesheet" do
|
49
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
50
|
-
register_stylesheet "active_admin.css", media: :print
|
51
|
-
expect(stylesheets.values.first[:media]).to eq :print
|
52
|
-
end
|
53
|
-
|
54
|
-
it "shouldn't register a stylesheet twice" do
|
55
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).twice
|
56
|
-
register_stylesheet "active_admin.css"
|
57
|
-
register_stylesheet "active_admin.css"
|
58
|
-
expect(stylesheets.length).to eq 1
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should register a javascript file" do
|
62
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
63
|
-
register_javascript "active_admin.js"
|
64
|
-
expect(javascripts).to eq ["active_admin.js"].to_set
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should clear all existing javascripts" do
|
68
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
69
|
-
register_javascript "active_admin.js"
|
70
|
-
expect(javascripts).to eq ["active_admin.js"].to_set
|
71
|
-
clear_javascripts!
|
72
|
-
expect(javascripts).to be_empty
|
73
|
-
end
|
74
|
-
|
75
|
-
it "shouldn't register a javascript twice" do
|
76
|
-
expect(ActiveAdmin::Deprecation).to receive(:warn).twice
|
77
|
-
register_javascript "active_admin.js"
|
78
|
-
register_javascript "active_admin.js"
|
79
|
-
expect(javascripts.length).to eq 1
|
80
|
-
end
|
81
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::AuthorizationAdapter do
|
4
|
-
|
5
|
-
let(:adapter) { ActiveAdmin::AuthorizationAdapter.new(double, double) }
|
6
|
-
|
7
|
-
describe "#authorized?" do
|
8
|
-
|
9
|
-
it "should always return true" do
|
10
|
-
expect(adapter.authorized?(:read, "Resource")).to eq true
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "#scope_collection" do
|
16
|
-
|
17
|
-
it "should return the collection unscoped" do
|
18
|
-
collection = double
|
19
|
-
expect(adapter.scope_collection(collection, ActiveAdmin::Auth::READ)).to eq collection
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "using #normalized in a subclass" do
|
25
|
-
|
26
|
-
let(:auth_class) do
|
27
|
-
Class.new(ActiveAdmin::AuthorizationAdapter) do
|
28
|
-
|
29
|
-
def authorized?(action, subject = nil)
|
30
|
-
case subject
|
31
|
-
when normalized(String)
|
32
|
-
true
|
33
|
-
else
|
34
|
-
false
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
let(:adapter) { auth_class.new(double, double) }
|
42
|
-
|
43
|
-
it "should match against a class" do
|
44
|
-
expect(adapter.authorized?(:read, String)).to eq true
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'should match against an instance' do
|
48
|
-
expect(adapter.authorized?(:read, "String")).to eq true
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'should not match a different class' do
|
52
|
-
expect(adapter.authorized?(:read, Hash)).to eq false
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should not match a different instance' do
|
56
|
-
expect(adapter.authorized?(:read, {})).to eq false
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe "Controller Authorization", type: :controller do
|
4
|
-
|
5
|
-
let(:authorization){ controller.send(:active_admin_authorization) }
|
6
|
-
|
7
|
-
before do
|
8
|
-
load_resources { ActiveAdmin.register Post }
|
9
|
-
@controller = Admin::PostsController.new
|
10
|
-
allow(authorization).to receive(:authorized?)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should authorize the index action" do
|
14
|
-
expect(authorization).to receive(:authorized?).with(auth::READ, Post).and_return true
|
15
|
-
get :index
|
16
|
-
expect(response).to be_successful
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should authorize the new action" do
|
20
|
-
expect(authorization).to receive(:authorized?).with(auth::CREATE, an_instance_of(Post)).and_return true
|
21
|
-
get :new
|
22
|
-
expect(response).to be_successful
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should authorize the create action with the new resource" do
|
26
|
-
expect(authorization).to receive(:authorized?).with(auth::CREATE, an_instance_of(Post)).and_return true
|
27
|
-
post :create
|
28
|
-
expect(response).to redirect_to action: 'show', id: Post.last.id
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should redirect when the user isn't authorized" do
|
32
|
-
expect(authorization).to receive(:authorized?).with(auth::READ, Post).and_return false
|
33
|
-
get :index
|
34
|
-
expect(response.body).to eq '<html><body>You are being <a href="http://test.host/admin">redirected</a>.</body></html>'
|
35
|
-
expect(response).to redirect_to '/admin'
|
36
|
-
end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def auth
|
41
|
-
ActiveAdmin::Authorization
|
42
|
-
end
|
43
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe 'Index overriding', type: :controller do
|
4
|
-
before do
|
5
|
-
load_resources { ActiveAdmin.register Post }
|
6
|
-
@controller = Admin::PostsController.new
|
7
|
-
|
8
|
-
@controller.instance_eval do
|
9
|
-
def index
|
10
|
-
super do
|
11
|
-
render ActiveAdmin::Dependency.rails.render_key => 'Rendered from passed block'
|
12
|
-
return
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'should call block passed to overridden index' do
|
19
|
-
get :index
|
20
|
-
expect(response.body).to eq 'Rendered from passed block'
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
data/spec/unit/auto_link_spec.rb
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
require 'active_admin/view_helpers/active_admin_application_helper'
|
3
|
-
require 'active_admin/view_helpers/auto_link_helper'
|
4
|
-
require 'active_admin/view_helpers/display_helper'
|
5
|
-
require 'active_admin/view_helpers/method_or_proc_helper'
|
6
|
-
|
7
|
-
RSpec.describe "auto linking resources", type: :view do
|
8
|
-
include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
|
9
|
-
include ActiveAdmin::ViewHelpers::AutoLinkHelper
|
10
|
-
include ActiveAdmin::ViewHelpers::DisplayHelper
|
11
|
-
include MethodOrProcHelper
|
12
|
-
|
13
|
-
let(:active_admin_namespace){ ActiveAdmin.application.namespace(:admin) }
|
14
|
-
let(:post){ Post.create! title: "Hello World" }
|
15
|
-
|
16
|
-
before do
|
17
|
-
allow(self).to receive(:authorized?).and_return(true)
|
18
|
-
end
|
19
|
-
|
20
|
-
context "when the resource is not registered" do
|
21
|
-
before do
|
22
|
-
load_resources {}
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should return the display name of the object" do
|
26
|
-
expect(auto_link(post)).to eq "Hello World"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context "when the resource is registered" do
|
31
|
-
before do
|
32
|
-
load_resources do
|
33
|
-
active_admin_namespace.register Post
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should return a link with the display name of the object" do
|
38
|
-
expect(auto_link(post)).to \
|
39
|
-
match(%r{<a href="/admin/posts/\d+">Hello World</a>})
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should keep locale in the url if present" do
|
43
|
-
expect(self).to receive(:url_options).and_return(locale: 'en')
|
44
|
-
|
45
|
-
expect(auto_link(post)).to \
|
46
|
-
match(%r{<a href="/admin/posts/\d+\?locale=en">Hello World</a>})
|
47
|
-
end
|
48
|
-
|
49
|
-
context "but the user doesn't have access" do
|
50
|
-
before do
|
51
|
-
allow(self).to receive(:authorized?).and_return(false)
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should return the display name of the object" do
|
55
|
-
expect(auto_link(post)).to eq "Hello World"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context "when the resource is registered with the show action disabled" do
|
61
|
-
before do
|
62
|
-
load_resources do
|
63
|
-
active_admin_namespace.register(Post) { actions :all, except: :show }
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should fallback to edit" do
|
68
|
-
expect(auto_link(post)).to \
|
69
|
-
match(%r{<a href="/admin/posts/\d+/edit">Hello World</a>})
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should keep locale in the url if present" do
|
73
|
-
expect(self).to receive(:url_options).and_return(locale: 'en')
|
74
|
-
|
75
|
-
expect(auto_link(post)).to \
|
76
|
-
match(%r{<a href="/admin/posts/\d+/edit\?locale=en">Hello World</a>})
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
context "when the resource is registered with the show & edit actions disabled" do
|
81
|
-
before do
|
82
|
-
load_resources do
|
83
|
-
active_admin_namespace.register(Post) do
|
84
|
-
actions :all, except: [:show, :edit]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
it "should return the display name of the object" do
|
89
|
-
expect(auto_link(post)).to eq "Hello World"
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe ActiveAdmin::BatchActions::ResourceExtension do
|
4
|
-
|
5
|
-
let(:resource) do
|
6
|
-
namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
|
7
|
-
namespace.batch_actions = true
|
8
|
-
namespace.register(Post)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "default action" do
|
12
|
-
|
13
|
-
it "should have the default action by default" do
|
14
|
-
expect(resource.batch_actions.size).to eq 1
|
15
|
-
expect(resource.batch_actions.first.sym == :destroy).to eq true
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "adding a new batch action" do
|
21
|
-
|
22
|
-
before do
|
23
|
-
resource.clear_batch_actions!
|
24
|
-
resource.add_batch_action :flag, "Flag" do
|
25
|
-
# Empty
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should add an batch action" do
|
30
|
-
expect(resource.batch_actions.size).to eq 1
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should store an instance of BatchAction" do
|
34
|
-
expect(resource.batch_actions.first).to be_an_instance_of(ActiveAdmin::BatchAction)
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should store the block in the batch action" do
|
38
|
-
expect(resource.batch_actions.first.block).to_not eq nil
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "removing batch action" do
|
44
|
-
|
45
|
-
before do
|
46
|
-
resource.remove_batch_action :destroy
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should allow for batch action removal" do
|
50
|
-
expect(resource.batch_actions.size).to eq 0
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
|
55
|
-
describe "#display_if_block" do
|
56
|
-
|
57
|
-
it "should return true by default" do
|
58
|
-
action = ActiveAdmin::BatchAction.new :default, "Default"
|
59
|
-
expect(action.display_if_block.call).to eq true
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should return the :if block if set" do
|
63
|
-
action = ActiveAdmin::BatchAction.new :with_block, "With Block", if: proc { false }
|
64
|
-
expect(action.display_if_block.call).to eq false
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
describe "batch action priority" do
|
70
|
-
|
71
|
-
it "should have a default priority" do
|
72
|
-
action = ActiveAdmin::BatchAction.new :default, "Default"
|
73
|
-
expect(action.priority).to eq 10
|
74
|
-
end
|
75
|
-
|
76
|
-
it "should correctly order two actions" do
|
77
|
-
priority_one = ActiveAdmin::BatchAction.new :one, "One", priority: 1
|
78
|
-
priority_ten = ActiveAdmin::BatchAction.new :ten, "Ten", priority: 10
|
79
|
-
expect(priority_one).to be < priority_ten
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'rails_helper'
|
2
|
-
|
3
|
-
RSpec.describe "Batch Actions Settings" do
|
4
|
-
let(:app) { ActiveAdmin::Application.new }
|
5
|
-
let(:ns) { ActiveAdmin::Namespace.new(app, "Admin") }
|
6
|
-
let(:post_resource) { ns.register Post }
|
7
|
-
|
8
|
-
it "should be disabled globally by default" do
|
9
|
-
# Note: the default initializer would set it to true
|
10
|
-
|
11
|
-
expect(app.batch_actions).to eq false
|
12
|
-
expect(ns.batch_actions).to eq false
|
13
|
-
expect(post_resource.batch_actions_enabled?).to eq false
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should be settable to true" do
|
17
|
-
app.batch_actions = true
|
18
|
-
expect(app.batch_actions).to eq true
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should be an inheritable_setting" do
|
22
|
-
app.batch_actions = true
|
23
|
-
expect(ns.batch_actions).to eq true
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should be settable at the namespace level" do
|
27
|
-
app.batch_actions = true
|
28
|
-
ns.batch_actions = false
|
29
|
-
|
30
|
-
expect(app.batch_actions).to eq true
|
31
|
-
expect(ns.batch_actions).to eq false
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should be settable at the resource level" do
|
35
|
-
expect(post_resource.batch_actions_enabled?).to eq false
|
36
|
-
post_resource.batch_actions = true
|
37
|
-
expect(post_resource.batch_actions_enabled?).to eq true
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should inherit the setting on the resource from the namespace" do
|
41
|
-
ns.batch_actions = false
|
42
|
-
expect(post_resource.batch_actions_enabled?).to eq false
|
43
|
-
expect(post_resource.batch_actions).to be_empty
|
44
|
-
|
45
|
-
post_resource.batch_actions = true
|
46
|
-
expect(post_resource.batch_actions_enabled?).to eq true
|
47
|
-
expect(post_resource.batch_actions).to_not be_empty
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should inherit the setting from the namespace when set to nil" do
|
51
|
-
ns.batch_actions = true
|
52
|
-
|
53
|
-
post_resource.batch_actions = true
|
54
|
-
expect(post_resource.batch_actions_enabled?).to eq true
|
55
|
-
expect(post_resource.batch_actions).to_not be_empty
|
56
|
-
|
57
|
-
post_resource.batch_actions = nil
|
58
|
-
expect(post_resource.batch_actions_enabled?).to eq true # inherited from namespace
|
59
|
-
expect(post_resource.batch_actions).to_not be_empty
|
60
|
-
end
|
61
|
-
end
|