active_scaffold 3.7.13 → 4.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.rdoc +9 -26
- data/README.md +3 -2
- data/app/assets/config/active_scaffold_manifest.js +3 -0
- data/app/assets/javascripts/active_scaffold.js.erb +24 -34
- data/app/assets/javascripts/jquery/active_scaffold.js +41 -58
- data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +1 -1
- data/app/assets/stylesheets/active_scaffold_colors.scss +0 -7
- data/app/assets/stylesheets/active_scaffold_extensions.css.erb +2 -2
- data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +7 -7
- data/app/assets/stylesheets/active_scaffold_layout.css +57 -30
- data/app/views/active_scaffold_overrides/_add_existing_form.html.erb +10 -10
- data/app/views/active_scaffold_overrides/_base_form.html.erb +21 -21
- data/app/views/active_scaffold_overrides/_create_form.html.erb +10 -7
- data/app/views/active_scaffold_overrides/_create_form_on_list.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_field_search.html.erb +6 -6
- data/app/views/active_scaffold_overrides/_form.html.erb +11 -14
- data/app/views/active_scaffold_overrides/_form_association.html.erb +21 -12
- data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +19 -10
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +15 -21
- data/app/views/active_scaffold_overrides/_form_messages.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +7 -6
- data/app/views/active_scaffold_overrides/_human_conditions.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_list.html.erb +15 -8
- data/app/views/active_scaffold_overrides/_list_calculations.html.erb +2 -3
- data/app/views/active_scaffold_overrides/_list_header.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_list_inline_adapter.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_list_messages.html.erb +12 -3
- data/app/views/active_scaffold_overrides/_list_pagination.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_list_pagination_links.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_list_record.html.erb +6 -6
- data/app/views/active_scaffold_overrides/_list_with_header.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_messages.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_refresh_list.js.erb +2 -2
- data/app/views/active_scaffold_overrides/_render_field.js.erb +4 -4
- data/app/views/active_scaffold_overrides/_row.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_search.html.erb +6 -5
- data/app/views/active_scaffold_overrides/_show.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_show_actions.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_association.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_association_vertical.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_show_horizontal_record.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_update_actions.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_update_calculations.js.erb +2 -2
- data/app/views/active_scaffold_overrides/_update_column.js.erb +8 -7
- data/app/views/active_scaffold_overrides/_update_form.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_update_messages.js.erb +1 -1
- data/app/views/active_scaffold_overrides/_vertical_subform.html.erb +4 -3
- data/app/views/active_scaffold_overrides/action_confirmation.html.erb +3 -3
- data/app/views/active_scaffold_overrides/add_existing.js.erb +6 -6
- data/app/views/active_scaffold_overrides/add_existing_form.html.erb +1 -1
- data/app/views/active_scaffold_overrides/add_tab.js.erb +15 -0
- data/app/views/active_scaffold_overrides/create.html.erb +1 -1
- data/app/views/active_scaffold_overrides/delete.html.erb +4 -4
- data/app/views/active_scaffold_overrides/destroy.js.erb +15 -13
- data/app/views/active_scaffold_overrides/edit_associated.js.erb +3 -3
- data/app/views/active_scaffold_overrides/field_search.html.erb +1 -1
- data/app/views/active_scaffold_overrides/form_messages.js.erb +1 -1
- data/app/views/active_scaffold_overrides/list.html.erb +1 -1
- data/app/views/active_scaffold_overrides/on_action_update.js.erb +13 -8
- data/app/views/active_scaffold_overrides/on_create.js.erb +34 -6
- data/app/views/active_scaffold_overrides/on_mark.js.erb +3 -3
- data/app/views/active_scaffold_overrides/on_update.js.erb +9 -9
- data/app/views/active_scaffold_overrides/render_field.js.erb +1 -1
- data/app/views/active_scaffold_overrides/render_field_inplace.html.erb +1 -1
- data/app/views/active_scaffold_overrides/row.js.erb +2 -2
- data/app/views/active_scaffold_overrides/search.html.erb +1 -1
- data/app/views/active_scaffold_overrides/show.html.erb +3 -3
- data/app/views/active_scaffold_overrides/update.html.erb +2 -2
- data/app/views/active_scaffold_overrides/update_column.js.erb +4 -4
- data/app/views/active_scaffold_overrides/update_row.js.erb +1 -1
- data/lib/active_scaffold/actions/common_search.rb +5 -3
- data/lib/active_scaffold/actions/core.rb +57 -32
- data/lib/active_scaffold/actions/create.rb +19 -17
- data/lib/active_scaffold/actions/delete.rb +10 -12
- data/lib/active_scaffold/actions/field_search.rb +28 -13
- data/lib/active_scaffold/actions/list.rb +34 -34
- data/lib/active_scaffold/actions/mark.rb +5 -5
- data/lib/active_scaffold/actions/nested.rb +64 -56
- data/lib/active_scaffold/actions/search.rb +2 -2
- data/lib/active_scaffold/actions/show.rb +5 -5
- data/lib/active_scaffold/actions/subform.rb +15 -4
- data/lib/active_scaffold/actions/update.rb +20 -20
- data/lib/active_scaffold/active_record_permissions.rb +4 -3
- data/lib/active_scaffold/attribute_params.rb +51 -50
- data/lib/active_scaffold/bridges/active_storage/active_storage_bridge.rb +4 -4
- data/lib/active_scaffold/bridges/active_storage/active_storage_helpers.rb +6 -2
- data/lib/active_scaffold/bridges/active_storage.rb +1 -1
- data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +3 -3
- data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +4 -1
- data/lib/active_scaffold/bridges/bitfields.rb +1 -1
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +9 -8
- data/lib/active_scaffold/bridges/cancan.rb +8 -8
- data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +4 -3
- data/lib/active_scaffold/bridges/carrierwave.rb +2 -2
- data/lib/active_scaffold/bridges/chosen.rb +1 -5
- data/lib/active_scaffold/bridges/country_select/country_select_bridge_helper.rb +4 -2
- data/lib/active_scaffold/bridges/date_picker/ext.rb +20 -12
- data/lib/active_scaffold/bridges/date_picker/helper.rb +37 -33
- data/lib/active_scaffold/bridges/date_picker.rb +1 -4
- data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +3 -2
- data/lib/active_scaffold/bridges/dragonfly.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +3 -2
- data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +2 -1
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +4 -9
- data/lib/active_scaffold/bridges/file_column/list_ui.rb +6 -3
- data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +3 -3
- data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +1 -4
- data/lib/active_scaffold/bridges/file_column.rb +1 -0
- data/lib/active_scaffold/bridges/paper_trail/actions.rb +4 -2
- data/lib/active_scaffold/bridges/paper_trail/config.rb +1 -1
- data/lib/active_scaffold/bridges/paper_trail/helper.rb +1 -1
- data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +2 -1
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +3 -2
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +10 -9
- data/lib/active_scaffold/bridges/paperclip.rb +2 -1
- data/lib/active_scaffold/bridges/record_select/helpers.rb +10 -11
- data/lib/active_scaffold/bridges/semantic_attributes/column.rb +3 -1
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -7
- data/lib/active_scaffold/bridges/tiny_mce.rb +2 -7
- data/lib/active_scaffold/bridges/usa_state_select/usa_state_select_helper.rb +7 -7
- data/lib/active_scaffold/bridges.rb +7 -5
- data/lib/active_scaffold/config/base.rb +20 -24
- data/lib/active_scaffold/config/core.rb +27 -39
- data/lib/active_scaffold/config/create.rb +1 -1
- data/lib/active_scaffold/config/delete.rb +9 -9
- data/lib/active_scaffold/config/field_search.rb +4 -9
- data/lib/active_scaffold/config/form.rb +3 -1
- data/lib/active_scaffold/config/list.rb +19 -15
- data/lib/active_scaffold/config/nested.rb +2 -2
- data/lib/active_scaffold/config/search.rb +5 -5
- data/lib/active_scaffold/config/show.rb +1 -1
- data/lib/active_scaffold/config/subform.rb +1 -1
- data/lib/active_scaffold/config/update.rb +4 -5
- data/lib/active_scaffold/configurable.rb +2 -1
- data/lib/active_scaffold/constraints.rb +16 -11
- data/lib/active_scaffold/core.rb +25 -27
- data/lib/active_scaffold/data_structures/action_columns.rb +10 -3
- data/lib/active_scaffold/data_structures/action_link.rb +19 -9
- data/lib/active_scaffold/data_structures/action_links.rb +20 -26
- data/lib/active_scaffold/data_structures/actions.rb +3 -3
- data/lib/active_scaffold/data_structures/association/abstract.rb +8 -4
- data/lib/active_scaffold/data_structures/association/active_mongoid.rb +1 -0
- data/lib/active_scaffold/data_structures/association/active_record.rb +1 -4
- data/lib/active_scaffold/data_structures/column.rb +368 -327
- data/lib/active_scaffold/data_structures/columns.rb +3 -2
- data/lib/active_scaffold/data_structures/nested_info.rb +6 -5
- data/lib/active_scaffold/data_structures/proxy_column.rb +68 -0
- data/lib/active_scaffold/data_structures/set.rb +7 -4
- data/lib/active_scaffold/data_structures/sorting.rb +21 -12
- data/lib/active_scaffold/engine.rb +12 -12
- data/lib/active_scaffold/extensions/action_controller_rendering.rb +5 -5
- data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -1
- data/lib/active_scaffold/extensions/action_view_rendering.rb +29 -31
- data/lib/active_scaffold/extensions/ice_nine.rb +2 -1
- data/lib/active_scaffold/extensions/localize.rb +2 -2
- data/lib/active_scaffold/extensions/name_option_for_datetime.rb +1 -1
- data/lib/active_scaffold/extensions/routing_mapper.rb +5 -4
- data/lib/active_scaffold/extensions/unsaved_associated.rb +3 -2
- data/lib/active_scaffold/finder.rb +71 -78
- data/lib/active_scaffold/helpers/action_link_helpers.rb +37 -49
- data/lib/active_scaffold/helpers/association_helpers.rb +4 -3
- data/lib/active_scaffold/helpers/controller_helpers.rb +18 -16
- data/lib/active_scaffold/helpers/form_column_helpers.rb +69 -53
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +17 -15
- data/lib/active_scaffold/helpers/id_helpers.rb +5 -5
- data/lib/active_scaffold/helpers/list_column_helpers.rb +35 -38
- data/lib/active_scaffold/helpers/pagination_helpers.rb +4 -4
- data/lib/active_scaffold/helpers/search_column_helpers.rb +25 -34
- data/lib/active_scaffold/helpers/show_column_helpers.rb +7 -4
- data/lib/active_scaffold/helpers/tabs_helpers.rb +88 -0
- data/lib/active_scaffold/helpers/view_helpers.rb +15 -13
- data/lib/active_scaffold/marked_model.rb +1 -2
- data/lib/active_scaffold/orm_checks.rb +6 -4
- data/lib/active_scaffold/paginator.rb +3 -2
- data/lib/active_scaffold/registry.rb +5 -0
- data/lib/active_scaffold/tableless.rb +24 -14
- data/lib/active_scaffold/version.rb +4 -4
- data/lib/active_scaffold.rb +8 -34
- data/lib/generators/active_scaffold/controller_generator.rb +20 -20
- data/lib/generators/active_scaffold/install_generator.rb +4 -8
- data/lib/generators/active_scaffold/resource_generator.rb +31 -31
- data/lib/tasks/brakeman.rake +1 -1
- data/shoulda_macros/macros.rb +14 -14
- metadata +11 -232
- data/app/assets/javascripts/prototype/active_scaffold.js +0 -1249
- data/app/assets/javascripts/prototype/active_scaffold_chosen.js +0 -0
- data/app/assets/javascripts/prototype/dhtml_history.js +0 -870
- data/app/assets/javascripts/prototype/form_enhancements.js +0 -117
- data/app/assets/javascripts/prototype/tiny_mce_bridge.js +0 -17
- data/app/views/active_scaffold_overrides/_list_messages_content.html.erb +0 -8
- data/app/views/active_scaffold_overrides/_new_record.js.erb +0 -15
- data/app/views/active_scaffold_overrides/_popup_adapter.html.erb +0 -20
- data/app/views/active_scaffold_overrides/_refresh_create_form.js.erb +0 -12
- data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +0 -58
- data/lib/active_scaffold/bridges/calendar_date_select.rb +0 -17
- data/lib/active_scaffold/data_structures/action_link_separator.rb +0 -13
- data/lib/active_scaffold/extensions/cow_proxy.rb +0 -102
- data/test/active_scaffold_config_mock.rb +0 -33
- data/test/bridges/bridge_test.rb +0 -88
- data/test/bridges/date_picker_test.rb +0 -31
- data/test/bridges/paper_trail_test.rb +0 -16
- data/test/bridges/paperclip_test.rb +0 -85
- data/test/bridges/tiny_mce_test.rb +0 -61
- data/test/class_with_finder.rb +0 -42
- data/test/company.rb +0 -97
- data/test/config/base_test.rb +0 -17
- data/test/config/core_test.rb +0 -66
- data/test/config/create_test.rb +0 -72
- data/test/config/delete_test.rb +0 -35
- data/test/config/field_search_test.rb +0 -49
- data/test/config/list_test.rb +0 -134
- data/test/config/nested_test.rb +0 -55
- data/test/config/search_test.rb +0 -62
- data/test/config/show_test.rb +0 -45
- data/test/config/subform_test.rb +0 -19
- data/test/config/update_test.rb +0 -52
- data/test/const_mocker.rb +0 -32
- data/test/data_structures/action_columns_test.rb +0 -112
- data/test/data_structures/action_link_test.rb +0 -79
- data/test/data_structures/action_links_test.rb +0 -78
- data/test/data_structures/actions_test.rb +0 -25
- data/test/data_structures/association_column_test.rb +0 -41
- data/test/data_structures/column_test.rb +0 -186
- data/test/data_structures/columns_test.rb +0 -68
- data/test/data_structures/set_test.rb +0 -84
- data/test/data_structures/sorting_test.rb +0 -148
- data/test/data_structures/standard_column_test.rb +0 -23
- data/test/data_structures/validation_reflection_test.rb +0 -69
- data/test/data_structures/virtual_column_test.rb +0 -23
- data/test/extensions/action_view_rendering_test.rb +0 -20
- data/test/extensions/active_record_test.rb +0 -44
- data/test/extensions/routing_mapper_test.rb +0 -73
- data/test/helpers/form_column_helpers_test.rb +0 -34
- data/test/helpers/list_column_helpers_test.rb +0 -53
- data/test/helpers/pagination_helpers_test.rb +0 -65
- data/test/helpers/search_column_helpers_test.rb +0 -15
- data/test/misc/active_record_permissions_test.rb +0 -193
- data/test/misc/attribute_params_test.rb +0 -460
- data/test/misc/calculation_test.rb +0 -39
- data/test/misc/configurable_test.rb +0 -97
- data/test/misc/constraints_test.rb +0 -209
- data/test/misc/convert_numbers_format_test.rb +0 -171
- data/test/misc/finder_test.rb +0 -124
- data/test/misc/lang_test.rb +0 -10
- data/test/misc/parse_datetime_test.rb +0 -159
- data/test/misc/render_test.rb +0 -9
- data/test/misc/tableless_test.rb +0 -56
- data/test/mock_app/.gitignore +0 -2
- data/test/mock_app/Rakefile +0 -7
- data/test/mock_app/app/assets/config/manifest.js +0 -0
- data/test/mock_app/app/controllers/addresses_controller.rb +0 -4
- data/test/mock_app/app/controllers/application_controller.rb +0 -10
- data/test/mock_app/app/controllers/buildings_controller.rb +0 -4
- data/test/mock_app/app/controllers/cars_controller.rb +0 -5
- data/test/mock_app/app/controllers/contacts_controller.rb +0 -4
- data/test/mock_app/app/controllers/floors_controller.rb +0 -6
- data/test/mock_app/app/controllers/people_controller.rb +0 -8
- data/test/mock_app/app/controllers/roles_controller.rb +0 -4
- data/test/mock_app/app/helpers/application_helper.rb +0 -3
- data/test/mock_app/app/models/address.rb +0 -3
- data/test/mock_app/app/models/building.rb +0 -9
- data/test/mock_app/app/models/car.rb +0 -3
- data/test/mock_app/app/models/contact.rb +0 -3
- data/test/mock_app/app/models/file_model.rb +0 -31
- data/test/mock_app/app/models/floor.rb +0 -8
- data/test/mock_app/app/models/person.rb +0 -12
- data/test/mock_app/app/models/role.rb +0 -3
- data/test/mock_app/app/views/active_scaffold_overrides/_form.html.erb +0 -2
- data/test/mock_app/app/views/active_scaffold_overrides/list.html.erb +0 -2
- data/test/mock_app/app/views/people/_first_name_form_column.html.erb +0 -2
- data/test/mock_app/app/views/people/_form.html.erb +0 -2
- data/test/mock_app/app/views/people/list.html.erb +0 -2
- data/test/mock_app/config/application.rb +0 -14
- data/test/mock_app/config/boot.rb +0 -7
- data/test/mock_app/config/database.yml +0 -16
- data/test/mock_app/config/environment.rb +0 -6
- data/test/mock_app/config/environments/development.rb +0 -24
- data/test/mock_app/config/environments/production.rb +0 -49
- data/test/mock_app/config/environments/test.rb +0 -34
- data/test/mock_app/config/initializers/backtrace_silencers.rb +0 -7
- data/test/mock_app/config/initializers/inflections.rb +0 -10
- data/test/mock_app/config/initializers/mime_types.rb +0 -5
- data/test/mock_app/config/initializers/secret_token.rb +0 -11
- data/test/mock_app/config/initializers/session_store.rb +0 -8
- data/test/mock_app/config/initializers/wrap_parameters.rb +0 -14
- data/test/mock_app/config/locales/en.yml +0 -5
- data/test/mock_app/config/routes.rb +0 -17
- data/test/mock_app/config.ru +0 -4
- data/test/mock_app/db/schema.rb +0 -68
- data/test/mock_app/db/test.sqlite3 +0 -1
- data/test/model_stub.rb +0 -64
- data/test/performance/list_cars_performance_test.rb +0 -34
- data/test/performance/list_people_performance_test.rb +0 -31
- data/test/performance_test_help.rb +0 -3
- data/test/run_all.rb +0 -6
- data/test/test_helper.rb +0 -71
- data/vendor/assets/javascripts/getprototypeof.js +0 -12
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class ColumnsTest < Minitest::Test
|
4
|
-
def setup
|
5
|
-
@columns = ActiveScaffold::DataStructures::Columns.new(ModelStub, :a, :b)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_initialization
|
9
|
-
assert_equal ModelStub, @columns.active_record_class
|
10
|
-
|
11
|
-
assert @columns.include?('a'), 'checking via string'
|
12
|
-
assert @columns.include?(:b), 'checking via symbol'
|
13
|
-
refute @columns.include?(:c)
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_add
|
17
|
-
refute @columns.include?(:c)
|
18
|
-
@columns.add 'c'
|
19
|
-
assert @columns.include?('c')
|
20
|
-
|
21
|
-
# test the alias
|
22
|
-
refute @columns.include?(:d)
|
23
|
-
@columns << :d
|
24
|
-
assert @columns.include?(:d)
|
25
|
-
|
26
|
-
# try adding an array of columns
|
27
|
-
refute @columns.include?(:f)
|
28
|
-
@columns.add %i[f g]
|
29
|
-
assert @columns.include?(:f)
|
30
|
-
assert @columns.include?(:g)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_finders
|
34
|
-
# test some basic assumptions before testing the finders
|
35
|
-
assert @columns.include?(:a)
|
36
|
-
assert @columns[:a].is_a?(ActiveScaffold::DataStructures::Column)
|
37
|
-
|
38
|
-
# test the single finders
|
39
|
-
assert @columns.find_by_name(:a).name == :a
|
40
|
-
assert @columns[:b].name == :b
|
41
|
-
|
42
|
-
# test the collection finders
|
43
|
-
found = @columns.find_by_names(:a, :b)
|
44
|
-
assert(found.any? { |c| c.name == :a })
|
45
|
-
assert(found.any? { |c| c.name == :b })
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_each
|
49
|
-
@columns.each do |column|
|
50
|
-
assert %i[a b].include?(column.name)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_block_config
|
55
|
-
refute @columns.include?(:d)
|
56
|
-
refute @columns.include?(:c)
|
57
|
-
|
58
|
-
@columns.configure do |config|
|
59
|
-
# test that we can use the config object
|
60
|
-
config << :d
|
61
|
-
# but test that we don't have to
|
62
|
-
add 'c'
|
63
|
-
end
|
64
|
-
|
65
|
-
assert @columns.include?(:d)
|
66
|
-
assert @columns.include?(:c)
|
67
|
-
end
|
68
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class SetTest < Minitest::Test
|
4
|
-
def setup
|
5
|
-
@items = ActiveScaffold::DataStructures::Set.new(:a, :b)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_initialization
|
9
|
-
assert @items.include?(:a)
|
10
|
-
assert @items.include?(:b)
|
11
|
-
refute @items.include?(:c)
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_exclude
|
15
|
-
# exclude with a symbol
|
16
|
-
assert @items.include?(:b)
|
17
|
-
@items.exclude :b
|
18
|
-
refute @items.include?(:b)
|
19
|
-
|
20
|
-
# exclude with a string
|
21
|
-
assert @items.include?(:a)
|
22
|
-
@items.exclude 'a'
|
23
|
-
refute @items.include?(:a)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_exclude_array
|
27
|
-
# exclude with a symbol
|
28
|
-
assert @items.include?(:b)
|
29
|
-
@items.exclude %i[a b]
|
30
|
-
refute @items.include?(:b)
|
31
|
-
refute @items.include?(:a)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_remove
|
35
|
-
assert @items.include?(:a)
|
36
|
-
@items.remove 'a'
|
37
|
-
refute @items.include?(:a)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_add
|
41
|
-
# try adding a simple column using a string
|
42
|
-
refute @items.include?(:c)
|
43
|
-
@items.add 'c'
|
44
|
-
assert @items.include?(:c)
|
45
|
-
|
46
|
-
# try adding a simple column using a symbol
|
47
|
-
refute @items.include?(:d)
|
48
|
-
@items.add :d
|
49
|
-
assert @items.include?(:d)
|
50
|
-
|
51
|
-
# test that << also adds
|
52
|
-
refute @items.include?(:e)
|
53
|
-
@items << 'e'
|
54
|
-
assert @items.include?(:e)
|
55
|
-
|
56
|
-
# try adding an array of columns
|
57
|
-
refute @items.include?(:f)
|
58
|
-
@items.add %i[f g]
|
59
|
-
assert @items.include?(:f)
|
60
|
-
assert @items.include?(:g)
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_length
|
64
|
-
assert_equal 2, @items.length
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_block_config
|
68
|
-
@items.configure do |config|
|
69
|
-
# we may use the config argument
|
70
|
-
config.add :c
|
71
|
-
# or we may not
|
72
|
-
exclude :b
|
73
|
-
end
|
74
|
-
|
75
|
-
assert @items.include?(:c)
|
76
|
-
refute @items.include?(:b)
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_include
|
80
|
-
assert @items.include?(:a)
|
81
|
-
assert @items.include?(:b)
|
82
|
-
refute @items.include?(:d)
|
83
|
-
end
|
84
|
-
end
|
@@ -1,148 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class SortingTest < Minitest::Test
|
4
|
-
def setup
|
5
|
-
@columns = ActiveScaffold::DataStructures::Columns.new(ModelStub, :a, :b, :c, :d, :id)
|
6
|
-
@sorting = ActiveScaffold::DataStructures::Sorting.new(@columns, ModelStub)
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_add
|
10
|
-
@sorting.add :a, 'ASC'
|
11
|
-
# test adding by symbol
|
12
|
-
assert @sorting.sorts_on?(:a)
|
13
|
-
# test adding an uppercase string direction
|
14
|
-
assert_equal 'ASC', @sorting.direction_of(:a)
|
15
|
-
|
16
|
-
@sorting.add 'b', :ASC
|
17
|
-
# test adding by string
|
18
|
-
assert @sorting.sorts_on?(:b)
|
19
|
-
# test adding an uppercase symbol direction
|
20
|
-
assert_equal 'ASC', @sorting.direction_of(:b)
|
21
|
-
|
22
|
-
@sorting.add @columns[:c], 'desc'
|
23
|
-
# test adding by object
|
24
|
-
assert @sorting.sorts_on?(:c)
|
25
|
-
# test adding a lowercase string direction
|
26
|
-
assert_equal 'DESC', @sorting.direction_of(:c)
|
27
|
-
|
28
|
-
@sorting << %i[d desc]
|
29
|
-
# testing adding with the alias
|
30
|
-
assert @sorting.sorts_on?(:d)
|
31
|
-
assert_equal 'DESC', @sorting.direction_of(:d)
|
32
|
-
|
33
|
-
@sorting.clear
|
34
|
-
|
35
|
-
# test adding without a direction (test default)
|
36
|
-
@sorting.add :a
|
37
|
-
assert_equal 'ASC', @sorting.direction_of(:a)
|
38
|
-
|
39
|
-
# test adding a bad column
|
40
|
-
assert_raises ArgumentError do
|
41
|
-
@sorting.add :foo
|
42
|
-
end
|
43
|
-
|
44
|
-
# test adding a bad direction
|
45
|
-
assert_raises ArgumentError do
|
46
|
-
@sorting.add :b, :FOO
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_set
|
51
|
-
@sorting.add :a, 'ASC'
|
52
|
-
assert @sorting.sorts_on?(:a)
|
53
|
-
|
54
|
-
@sorting.set :b, 'DESC'
|
55
|
-
assert @sorting.instance_variable_get('@clauses').size == 1
|
56
|
-
refute @sorting.sorts_on?(:a)
|
57
|
-
assert @sorting.sorts_on?(:b)
|
58
|
-
assert_equal 'DESC', @sorting.direction_of(:b)
|
59
|
-
|
60
|
-
@sorting.set :a => 'DESC', :b => 'ASC'
|
61
|
-
assert @sorting.instance_variable_get('@clauses').size == 2
|
62
|
-
assert @sorting.sorts_on?(:a)
|
63
|
-
assert_equal 'DESC', @sorting.direction_of(:a)
|
64
|
-
assert @sorting.sorts_on?(:b)
|
65
|
-
assert_equal 'ASC', @sorting.direction_of(:b)
|
66
|
-
|
67
|
-
@sorting.set({a: 'DESC'}, {b: 'ASC'})
|
68
|
-
assert @sorting.instance_variable_get('@clauses').size == 2
|
69
|
-
assert @sorting.sorts_on?(:a)
|
70
|
-
assert_equal 'DESC', @sorting.direction_of(:a)
|
71
|
-
assert @sorting.sorts_on?(:b)
|
72
|
-
assert_equal 'ASC', @sorting.direction_of(:b)
|
73
|
-
|
74
|
-
@sorting.set [:a, 'DESC'], [:b, 'ASC']
|
75
|
-
assert @sorting.instance_variable_get('@clauses').size == 2
|
76
|
-
assert @sorting.sorts_on?(:a)
|
77
|
-
assert_equal 'DESC', @sorting.direction_of(:a)
|
78
|
-
assert @sorting.sorts_on?(:b)
|
79
|
-
assert_equal 'ASC', @sorting.direction_of(:b)
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_sorts_on
|
83
|
-
@sorting.add :a
|
84
|
-
@sorting.add :b
|
85
|
-
|
86
|
-
assert @sorting.sorts_on?(:a)
|
87
|
-
assert @sorting.sorts_on?(:b)
|
88
|
-
refute @sorting.sorts_on?(:c)
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_direction_of
|
92
|
-
@sorting.add :a, 'ASC'
|
93
|
-
@sorting.add :b, :DESC
|
94
|
-
|
95
|
-
assert_equal 'ASC', @sorting.direction_of(:a)
|
96
|
-
assert_equal 'DESC', @sorting.direction_of(:b)
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_sorts_by_method
|
100
|
-
@columns[:a].sort_by :method => proc { 0 }
|
101
|
-
|
102
|
-
# test pure method sorting: true
|
103
|
-
@sorting.add :a
|
104
|
-
assert @sorting.sorts_by_method?
|
105
|
-
|
106
|
-
# test mixed sql/method sorting: raise error
|
107
|
-
assert_raises ArgumentError do
|
108
|
-
@sorting.add :b
|
109
|
-
end
|
110
|
-
|
111
|
-
# test pure sql sorting: false
|
112
|
-
@sorting.clear
|
113
|
-
@sorting.add :b
|
114
|
-
refute @sorting.sorts_by_method?
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_build_order_clause
|
118
|
-
assert @sorting.clause.nil?
|
119
|
-
|
120
|
-
@sorting << [:a, 'desc']
|
121
|
-
@sorting << [:b, 'asc']
|
122
|
-
|
123
|
-
assert_equal '"model_stubs"."a" DESC, "model_stubs"."b" ASC', @sorting.clause.join(', ')
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_set_default_sorting_with_simple_default_scope
|
127
|
-
model_stub_with_default_scope = ModelStub.clone
|
128
|
-
model_stub_with_default_scope.class_eval { default_scope -> { order('a') } }
|
129
|
-
@sorting = ActiveScaffold::DataStructures::Sorting.new(@columns, model_stub_with_default_scope)
|
130
|
-
@sorting.set_default_sorting
|
131
|
-
|
132
|
-
assert @sorting.sorts_on?(:a)
|
133
|
-
assert_equal 'ASC', @sorting.direction_of(:a)
|
134
|
-
assert_nil @sorting.clause
|
135
|
-
end
|
136
|
-
|
137
|
-
def test_set_default_sorting_with_complex_default_scope
|
138
|
-
model_stub_with_default_scope = ModelStub.clone
|
139
|
-
model_stub_with_default_scope.class_eval { default_scope -> { order('a DESC, players.last_name ASC') } }
|
140
|
-
@sorting = ActiveScaffold::DataStructures::Sorting.new(@columns, model_stub_with_default_scope)
|
141
|
-
@sorting.set_default_sorting
|
142
|
-
|
143
|
-
assert @sorting.sorts_on?(:a)
|
144
|
-
assert_equal 'DESC', @sorting.direction_of(:a)
|
145
|
-
assert_equal 1, @sorting.instance_variable_get(:@clauses).size
|
146
|
-
assert_nil @sorting.clause
|
147
|
-
end
|
148
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class StandardColumnTest < Minitest::Test
|
4
|
-
def setup
|
5
|
-
@standard_column = ActiveScaffold::DataStructures::Column.new(ModelStub.columns.first.name, ModelStub)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_virtuality
|
9
|
-
assert @standard_column.column
|
10
|
-
refute @standard_column.virtual?
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_sorting
|
14
|
-
hash = {:sql => '"model_stubs"."a"'}
|
15
|
-
assert @standard_column.sortable?
|
16
|
-
assert_equal hash, @standard_column.sort # check default
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_searching
|
20
|
-
assert @standard_column.searchable?
|
21
|
-
assert_equal ['"model_stubs"."a"'], @standard_column.search_sql # check default
|
22
|
-
end
|
23
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class ValidationReflectionTest < Minitest::Test
|
4
|
-
def test_set_required_for_validates_presence_of
|
5
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
6
|
-
refute column.required?
|
7
|
-
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :name)])
|
8
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
9
|
-
assert column.required?
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_set_required_for_validates_presence_of_with_on
|
13
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
14
|
-
refute column.required?
|
15
|
-
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :name, :on => [:create])])
|
16
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
17
|
-
assert column.required?
|
18
|
-
assert column.required?(:create)
|
19
|
-
refute column.required?(:update)
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_set_required_for_validates_inclusion_of
|
23
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
24
|
-
refute column.required?
|
25
|
-
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::InclusionValidator.new(:attributes => :name, :in => [])])
|
26
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
27
|
-
assert column.required?
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_not_set_required_for_validates_inclusion_of_and_allow_nil
|
31
|
-
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::InclusionValidator.new(:attributes => :name, :in => [], :allow_nil => true)])
|
32
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
33
|
-
refute column.required?
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_not_set_required_for_validates_inclusion_of_and_allow_blank
|
37
|
-
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::InclusionValidator.new(:attributes => :name, :in => [], :allow_blank => true)])
|
38
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
39
|
-
refute column.required?
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_not_set_required_for_no_validation
|
43
|
-
Company.expects(:validators_on).with(:name).returns([])
|
44
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
45
|
-
refute column.required?
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_set_required_for_validates_presence_of_in_association
|
49
|
-
column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
|
50
|
-
refute column.required?
|
51
|
-
Company.expects(:validators_on).with(:main_company).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :main_company)])
|
52
|
-
column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
|
53
|
-
assert column.required?
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_not_set_required_for_no_validation_in_association_neither_foreign_key
|
57
|
-
Company.expects(:validators_on).returns([])
|
58
|
-
column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
|
59
|
-
refute column.required?
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_override_required
|
63
|
-
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :name)])
|
64
|
-
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
65
|
-
assert column.required?
|
66
|
-
column.required = false
|
67
|
-
refute column.required?
|
68
|
-
end
|
69
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class VirtualColumnTest < Minitest::Test
|
4
|
-
def setup
|
5
|
-
@virtual_column = ActiveScaffold::DataStructures::Column.new(:fake, ModelStub)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_virtuality
|
9
|
-
refute @virtual_column.column
|
10
|
-
refute @virtual_column.association
|
11
|
-
assert @virtual_column.virtual?
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_sorting
|
15
|
-
# right now, there's no intelligent sorting on virtual columns
|
16
|
-
refute @virtual_column.sortable?
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_searching
|
20
|
-
# right now, there's no intelligent searching on virtual columns
|
21
|
-
refute @virtual_column.searchable?
|
22
|
-
end
|
23
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class ActionViewRenderingTest < ActionController::TestCase
|
4
|
-
setup do
|
5
|
-
@controller = PeopleController.new
|
6
|
-
end
|
7
|
-
|
8
|
-
test 'render :super twice' do
|
9
|
-
get :index
|
10
|
-
assert_select '#controller', 1
|
11
|
-
assert_select '#app', 1
|
12
|
-
end
|
13
|
-
|
14
|
-
test 'render partial override with render :super twice' do
|
15
|
-
get :new
|
16
|
-
assert_select '#first_name_field', 1
|
17
|
-
assert_select '#controller_form', 1
|
18
|
-
assert_select '#app_form', 1
|
19
|
-
end
|
20
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class ActiveRecordTest < Minitest::Test
|
4
|
-
def setup
|
5
|
-
@record = ModelStub.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_to_label
|
9
|
-
# without anything defined, it'll use the to_s method (e.g. #<ModelStub:0xb7379300>)
|
10
|
-
assert_match(/^#<[a-z]+:0x[0-9a-f]+>$/i, @record.to_label)
|
11
|
-
|
12
|
-
class << @record
|
13
|
-
def to_s
|
14
|
-
'to_s'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
RequestStore.clear!
|
18
|
-
assert_equal 'to_s', @record.to_label
|
19
|
-
|
20
|
-
class << @record
|
21
|
-
def title
|
22
|
-
'title'
|
23
|
-
end
|
24
|
-
end
|
25
|
-
RequestStore.clear!
|
26
|
-
assert_equal 'title', @record.to_label
|
27
|
-
|
28
|
-
class << @record
|
29
|
-
def label
|
30
|
-
'label'
|
31
|
-
end
|
32
|
-
end
|
33
|
-
RequestStore.clear!
|
34
|
-
assert_equal 'label', @record.to_label
|
35
|
-
|
36
|
-
class << @record
|
37
|
-
def name
|
38
|
-
'name'
|
39
|
-
end
|
40
|
-
end
|
41
|
-
RequestStore.clear!
|
42
|
-
assert_equal 'name', @record.to_label
|
43
|
-
end
|
44
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class RoutingMapperTest < ActionController::TestCase
|
4
|
-
test 'rails routes' do
|
5
|
-
assert_routing 'addresses', controller: 'addresses', action: 'index'
|
6
|
-
assert_routing 'addresses/1', controller: 'addresses', action: 'show', id: '1'
|
7
|
-
assert_routing 'addresses/1/list', controller: 'addresses', action: 'index', id: '1'
|
8
|
-
assert_routing 'addresses/1/edit', controller: 'addresses', action: 'edit', id: '1'
|
9
|
-
assert_routing({method: :patch, path: 'addresses/1'}, {controller: 'addresses', action: 'update', id: '1'})
|
10
|
-
assert_routing({method: :delete, path: 'addresses/1'}, {controller: 'addresses', action: 'destroy', id: '1'})
|
11
|
-
assert_routing({method: :post, path: 'addresses'}, {controller: 'addresses', action: 'create'})
|
12
|
-
end
|
13
|
-
|
14
|
-
test 'active scaffold routes' do
|
15
|
-
assert_routing 'addresses/show_search', controller: 'addresses', action: 'show_search'
|
16
|
-
assert_routing({method: 'post', path: 'addresses/mark'}, {controller: 'addresses', action: 'mark'})
|
17
|
-
assert_routing({method: 'post', path: 'addresses/2/mark'}, {controller: 'addresses', action: 'mark', id: '2'})
|
18
|
-
assert_routing({method: 'post', path: 'addresses/render_field'}, {controller: 'addresses', action: 'render_field'})
|
19
|
-
assert_routing({method: 'post', path: 'addresses/2/render_field'}, {controller: 'addresses', action: 'render_field', id: '2'})
|
20
|
-
assert_routing({method: 'post', path: 'addresses/2/update_column'}, {controller: 'addresses', action: 'update_column', id: '2'})
|
21
|
-
assert_routing 'addresses/2/render_field', controller: 'addresses', action: 'render_field', id: '2'
|
22
|
-
assert_routing 'addresses/edit_associated', controller: 'addresses', action: 'edit_associated'
|
23
|
-
assert_routing 'addresses/2/edit_associated', controller: 'addresses', action: 'edit_associated', id: '2'
|
24
|
-
assert_routing 'addresses/new_existing', controller: 'addresses', action: 'new_existing'
|
25
|
-
assert_routing({method: 'post', path: 'addresses/add_existing'}, {controller: 'addresses', action: 'add_existing'})
|
26
|
-
assert_routing({method: 'delete', path: 'addresses/2/destroy_existing'}, {controller: 'addresses', action: 'destroy_existing', id: '2'})
|
27
|
-
end
|
28
|
-
|
29
|
-
test 'rails routes with except' do
|
30
|
-
assert_routing 'buildings/1', controller: 'buildings', action: 'show', id: '1'
|
31
|
-
assert_routing 'buildings/1/edit', controller: 'buildings', action: 'edit', id: '1'
|
32
|
-
assert_routing({method: :patch, path: 'buildings/1'}, {controller: 'buildings', action: 'update', id: '1'})
|
33
|
-
assert_routing({method: :delete, path: 'buildings/1'}, {controller: 'buildings', action: 'destroy', id: '1'})
|
34
|
-
assert_routing({method: :post, path: 'buildings'}, {controller: 'buildings', action: 'create'})
|
35
|
-
|
36
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/buildings' }
|
37
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/buildings/1/list' }
|
38
|
-
end
|
39
|
-
|
40
|
-
test 'active scaffold routes with except' do
|
41
|
-
assert_routing 'buildings/show_search', controller: 'buildings', action: 'show_search'
|
42
|
-
assert_routing({method: 'post', path: 'buildings/render_field'}, {controller: 'buildings', action: 'render_field'})
|
43
|
-
assert_routing({method: 'post', path: 'buildings/2/render_field'}, {controller: 'buildings', action: 'render_field', id: '2'})
|
44
|
-
assert_routing({method: 'post', path: 'buildings/2/update_column'}, {controller: 'buildings', action: 'update_column', id: '2'})
|
45
|
-
assert_routing 'buildings/2/render_field', controller: 'buildings', action: 'render_field', id: '2'
|
46
|
-
assert_routing 'buildings/edit_associated', controller: 'buildings', action: 'edit_associated'
|
47
|
-
assert_routing 'buildings/2/edit_associated', controller: 'buildings', action: 'edit_associated', id: '2'
|
48
|
-
|
49
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/buildings/2/mark', method: :post }
|
50
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/buildings/2/destroy_existing', method: :delete }
|
51
|
-
end
|
52
|
-
|
53
|
-
test 'rails routes with only' do
|
54
|
-
assert_routing 'cars/1/edit', controller: 'cars', action: 'edit', id: '1'
|
55
|
-
assert_routing({method: :patch, path: 'cars/1'}, {controller: 'cars', action: 'update', id: '1'})
|
56
|
-
|
57
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/cars', method: :post }
|
58
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/cars/1' }
|
59
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/cars/1/destroy', method: :delete }
|
60
|
-
end
|
61
|
-
|
62
|
-
test 'active scaffold routes with only' do
|
63
|
-
assert_routing 'cars/show_search', controller: 'cars', action: 'show_search'
|
64
|
-
assert_routing({method: 'post', path: 'cars/render_field'}, {controller: 'cars', action: 'render_field'})
|
65
|
-
assert_routing({method: 'post', path: 'cars/2/render_field'}, {controller: 'cars', action: 'render_field', id: '2'})
|
66
|
-
assert_routing({method: 'post', path: 'cars/2/update_column'}, {controller: 'cars', action: 'update_column', id: '2'})
|
67
|
-
assert_routing 'cars/2/render_field', controller: 'cars', action: 'render_field', id: '2'
|
68
|
-
|
69
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/cars/2/edit_associated' }
|
70
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/cars/2/mark', method: :post }
|
71
|
-
assert_raises(ActionController::RoutingError) { @routes.recognize_path '/cars/2/destroy_existing', method: :delete }
|
72
|
-
end
|
73
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class FormColumnHelpersTest < ActionView::TestCase
|
4
|
-
include ActiveScaffold::Helpers::FormColumnHelpers
|
5
|
-
include ActiveScaffold::Helpers::ViewHelpers
|
6
|
-
|
7
|
-
def setup
|
8
|
-
@column = ActiveScaffold::DataStructures::Column.new(:a, ModelStub)
|
9
|
-
@record = ModelStub.new(a: nil)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_choices_for_select_form_ui_for_simple_column
|
13
|
-
opts = {object: @record}
|
14
|
-
@column.options[:options] = %i[value_1 value_2 value_3]
|
15
|
-
assert_dom_equal "<select name=\"record[a]\" id=\"record_a\"><option value=\"value_1\">Value 1</option>\n<option value=\"value_2\">Value 2</option>\n<option value=\"value_3\">Value 3</option></select>", active_scaffold_input_select(@column, opts.dup)
|
16
|
-
|
17
|
-
@column.options[:options] = %w[value_1 value_2 value_3]
|
18
|
-
assert_dom_equal "<select name=\"record[a]\" id=\"record_a\"><option value=\"value_1\">value_1</option>\n<option value=\"value_2\">value_2</option>\n<option value=\"value_3\">value_3</option></select>", active_scaffold_input_select(@column, opts.dup)
|
19
|
-
|
20
|
-
@column.options[:options] = [%w[text_1 value_1], %w[text_2 value_2], %w[text_3 value_3]]
|
21
|
-
assert_dom_equal "<select name=\"record[a]\" id=\"record_a\"><option value=\"value_1\">text_1</option>\n<option value=\"value_2\">text_2</option>\n<option value=\"value_3\">text_3</option></select>", active_scaffold_input_select(@column, opts.dup)
|
22
|
-
|
23
|
-
@column.options[:options] = [%i[text_1 value_1], %i[text_2 value_2], %i[text_3 value_3]]
|
24
|
-
assert_dom_equal "<select name=\"record[a]\" id=\"record_a\"><option value=\"value_1\">Text 1</option>\n<option value=\"value_2\">Text 2</option>\n<option value=\"value_3\">Text 3</option></select>", active_scaffold_input_select(@column, opts.dup)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_options_for_select_form_ui_for_simple_column
|
28
|
-
opts = {object: @record}
|
29
|
-
@column.options = {:include_blank => 'None', :selected => 'value_2', :disabled => %w[value_1 value_3]}
|
30
|
-
@column.options[:options] = %w[value_1 value_2 value_3]
|
31
|
-
@column.options[:html_options] = {:class => 'big'}
|
32
|
-
assert_dom_equal "<select name=\"record[a]\" class=\"big\" id=\"record_a\"><option value=\"\">None</option>\n<option disabled=\"disabled\" value=\"value_1\">value_1</option>\n<option selected=\"selected\" value=\"value_2\">value_2</option>\n<option disabled=\"disabled\" value=\"value_3\">value_3</option></select>", active_scaffold_input_select(@column, opts)
|
33
|
-
end
|
34
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class ListColumnHelpersTest < ActionView::TestCase
|
4
|
-
include ActiveScaffold::Helpers::ListColumnHelpers
|
5
|
-
include ActiveScaffold::Helpers::ViewHelpers
|
6
|
-
include ::ERB::Util
|
7
|
-
|
8
|
-
def setup
|
9
|
-
@column = ActiveScaffold::DataStructures::Column.new(:a, ModelStub)
|
10
|
-
@column.form_ui = :select
|
11
|
-
@record = stub(:a => 'value_2')
|
12
|
-
@config = stub(:list => stub(:empty_field_text => '-', :association_join_text => ', '), :actions => [:list])
|
13
|
-
@association_column = ActiveScaffold::DataStructures::Column.new(:b, ModelStub)
|
14
|
-
@association_column.stubs(:association).returns(stub(:collection? => true))
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_options_for_select_list_ui_for_simple_column
|
18
|
-
@column.options[:options] = %i[value_1 value_2 value_3]
|
19
|
-
assert_equal 'Value 2', format_column_value(@record, @column)
|
20
|
-
|
21
|
-
@column.options[:options] = %w[value_1 value_2 value_3]
|
22
|
-
assert_equal 'value_2', format_column_value(@record, @column)
|
23
|
-
|
24
|
-
@column.options[:options] = [%w[text_1 value_1], %w[text_2 value_2], %w[text_3 value_3]]
|
25
|
-
assert_equal 'text_2', format_column_value(@record, @column)
|
26
|
-
|
27
|
-
@column.options[:options] = [%i[text_1 value_1], %i[text_2 value_2], %i[text_3 value_3]]
|
28
|
-
assert_equal 'Text 2', format_column_value(@record, @column)
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_association_join_text
|
32
|
-
value = [1, 2, 3, 4].map(&:to_s)
|
33
|
-
value.stubs(loaded?: true)
|
34
|
-
value.each { |v| v.stubs(:to_label).returns(v) }
|
35
|
-
assert_equal '1, 2, 3, … (4)', format_association_value(value, @association_column, value.size)
|
36
|
-
@config.list.stubs(:association_join_text => ',<br/>')
|
37
|
-
remove_instance_variable :@_association_join_text
|
38
|
-
assert_equal '1,<br/>2,<br/>3,<br/>… (4)', format_association_value(value, @association_column, value.size)
|
39
|
-
@config.list.stubs(:association_join_text => ',<br/>'.html_safe) # rubocop:disable Rails/OutputSafety
|
40
|
-
remove_instance_variable :@_association_join_text
|
41
|
-
assert_equal '1,<br/>2,<br/>3,<br/>… (4)', format_association_value(value, @association_column, value.size)
|
42
|
-
end
|
43
|
-
|
44
|
-
private
|
45
|
-
|
46
|
-
def grouped_search?
|
47
|
-
false
|
48
|
-
end
|
49
|
-
|
50
|
-
def active_scaffold_config
|
51
|
-
@config
|
52
|
-
end
|
53
|
-
end
|