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.
Files changed (303) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.rdoc +9 -26
  3. data/README.md +3 -2
  4. data/app/assets/config/active_scaffold_manifest.js +3 -0
  5. data/app/assets/javascripts/active_scaffold.js.erb +24 -34
  6. data/app/assets/javascripts/jquery/active_scaffold.js +41 -58
  7. data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +1 -1
  8. data/app/assets/stylesheets/active_scaffold_colors.scss +0 -7
  9. data/app/assets/stylesheets/active_scaffold_extensions.css.erb +2 -2
  10. data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +7 -7
  11. data/app/assets/stylesheets/active_scaffold_layout.css +57 -30
  12. data/app/views/active_scaffold_overrides/_add_existing_form.html.erb +10 -10
  13. data/app/views/active_scaffold_overrides/_base_form.html.erb +21 -21
  14. data/app/views/active_scaffold_overrides/_create_form.html.erb +10 -7
  15. data/app/views/active_scaffold_overrides/_create_form_on_list.html.erb +5 -5
  16. data/app/views/active_scaffold_overrides/_field_search.html.erb +6 -6
  17. data/app/views/active_scaffold_overrides/_form.html.erb +11 -14
  18. data/app/views/active_scaffold_overrides/_form_association.html.erb +21 -12
  19. data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +19 -10
  20. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +15 -21
  21. data/app/views/active_scaffold_overrides/_form_messages.html.erb +2 -2
  22. data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +7 -6
  23. data/app/views/active_scaffold_overrides/_human_conditions.html.erb +2 -2
  24. data/app/views/active_scaffold_overrides/_list.html.erb +15 -8
  25. data/app/views/active_scaffold_overrides/_list_calculations.html.erb +2 -3
  26. data/app/views/active_scaffold_overrides/_list_header.html.erb +2 -2
  27. data/app/views/active_scaffold_overrides/_list_inline_adapter.html.erb +5 -5
  28. data/app/views/active_scaffold_overrides/_list_messages.html.erb +12 -3
  29. data/app/views/active_scaffold_overrides/_list_pagination.html.erb +3 -3
  30. data/app/views/active_scaffold_overrides/_list_pagination_links.html.erb +4 -4
  31. data/app/views/active_scaffold_overrides/_list_record.html.erb +6 -6
  32. data/app/views/active_scaffold_overrides/_list_with_header.html.erb +4 -4
  33. data/app/views/active_scaffold_overrides/_messages.html.erb +1 -1
  34. data/app/views/active_scaffold_overrides/_refresh_list.js.erb +2 -2
  35. data/app/views/active_scaffold_overrides/_render_field.js.erb +4 -4
  36. data/app/views/active_scaffold_overrides/_row.html.erb +1 -1
  37. data/app/views/active_scaffold_overrides/_search.html.erb +6 -5
  38. data/app/views/active_scaffold_overrides/_show.html.erb +3 -3
  39. data/app/views/active_scaffold_overrides/_show_actions.html.erb +1 -1
  40. data/app/views/active_scaffold_overrides/_show_association.html.erb +1 -1
  41. data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +1 -1
  42. data/app/views/active_scaffold_overrides/_show_association_vertical.html.erb +1 -1
  43. data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
  44. data/app/views/active_scaffold_overrides/_show_horizontal_record.html.erb +1 -1
  45. data/app/views/active_scaffold_overrides/_update_actions.html.erb +1 -1
  46. data/app/views/active_scaffold_overrides/_update_calculations.js.erb +2 -2
  47. data/app/views/active_scaffold_overrides/_update_column.js.erb +8 -7
  48. data/app/views/active_scaffold_overrides/_update_form.html.erb +5 -5
  49. data/app/views/active_scaffold_overrides/_update_messages.js.erb +1 -1
  50. data/app/views/active_scaffold_overrides/_vertical_subform.html.erb +4 -3
  51. data/app/views/active_scaffold_overrides/action_confirmation.html.erb +3 -3
  52. data/app/views/active_scaffold_overrides/add_existing.js.erb +6 -6
  53. data/app/views/active_scaffold_overrides/add_existing_form.html.erb +1 -1
  54. data/app/views/active_scaffold_overrides/add_tab.js.erb +15 -0
  55. data/app/views/active_scaffold_overrides/create.html.erb +1 -1
  56. data/app/views/active_scaffold_overrides/delete.html.erb +4 -4
  57. data/app/views/active_scaffold_overrides/destroy.js.erb +15 -13
  58. data/app/views/active_scaffold_overrides/edit_associated.js.erb +3 -3
  59. data/app/views/active_scaffold_overrides/field_search.html.erb +1 -1
  60. data/app/views/active_scaffold_overrides/form_messages.js.erb +1 -1
  61. data/app/views/active_scaffold_overrides/list.html.erb +1 -1
  62. data/app/views/active_scaffold_overrides/on_action_update.js.erb +13 -8
  63. data/app/views/active_scaffold_overrides/on_create.js.erb +34 -6
  64. data/app/views/active_scaffold_overrides/on_mark.js.erb +3 -3
  65. data/app/views/active_scaffold_overrides/on_update.js.erb +9 -9
  66. data/app/views/active_scaffold_overrides/render_field.js.erb +1 -1
  67. data/app/views/active_scaffold_overrides/render_field_inplace.html.erb +1 -1
  68. data/app/views/active_scaffold_overrides/row.js.erb +2 -2
  69. data/app/views/active_scaffold_overrides/search.html.erb +1 -1
  70. data/app/views/active_scaffold_overrides/show.html.erb +3 -3
  71. data/app/views/active_scaffold_overrides/update.html.erb +2 -2
  72. data/app/views/active_scaffold_overrides/update_column.js.erb +4 -4
  73. data/app/views/active_scaffold_overrides/update_row.js.erb +1 -1
  74. data/lib/active_scaffold/actions/common_search.rb +5 -3
  75. data/lib/active_scaffold/actions/core.rb +57 -32
  76. data/lib/active_scaffold/actions/create.rb +19 -17
  77. data/lib/active_scaffold/actions/delete.rb +10 -12
  78. data/lib/active_scaffold/actions/field_search.rb +28 -13
  79. data/lib/active_scaffold/actions/list.rb +34 -34
  80. data/lib/active_scaffold/actions/mark.rb +5 -5
  81. data/lib/active_scaffold/actions/nested.rb +64 -56
  82. data/lib/active_scaffold/actions/search.rb +2 -2
  83. data/lib/active_scaffold/actions/show.rb +5 -5
  84. data/lib/active_scaffold/actions/subform.rb +15 -4
  85. data/lib/active_scaffold/actions/update.rb +20 -20
  86. data/lib/active_scaffold/active_record_permissions.rb +4 -3
  87. data/lib/active_scaffold/attribute_params.rb +51 -50
  88. data/lib/active_scaffold/bridges/active_storage/active_storage_bridge.rb +4 -4
  89. data/lib/active_scaffold/bridges/active_storage/active_storage_helpers.rb +6 -2
  90. data/lib/active_scaffold/bridges/active_storage.rb +1 -1
  91. data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +3 -3
  92. data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +4 -1
  93. data/lib/active_scaffold/bridges/bitfields.rb +1 -1
  94. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +9 -8
  95. data/lib/active_scaffold/bridges/cancan.rb +8 -8
  96. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +1 -1
  97. data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +4 -3
  98. data/lib/active_scaffold/bridges/carrierwave.rb +2 -2
  99. data/lib/active_scaffold/bridges/chosen.rb +1 -5
  100. data/lib/active_scaffold/bridges/country_select/country_select_bridge_helper.rb +4 -2
  101. data/lib/active_scaffold/bridges/date_picker/ext.rb +20 -12
  102. data/lib/active_scaffold/bridges/date_picker/helper.rb +37 -33
  103. data/lib/active_scaffold/bridges/date_picker.rb +1 -4
  104. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +1 -1
  105. data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +3 -2
  106. data/lib/active_scaffold/bridges/dragonfly.rb +1 -1
  107. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +3 -2
  108. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +2 -1
  109. data/lib/active_scaffold/bridges/file_column/form_ui.rb +4 -9
  110. data/lib/active_scaffold/bridges/file_column/list_ui.rb +6 -3
  111. data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +3 -3
  112. data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +1 -4
  113. data/lib/active_scaffold/bridges/file_column.rb +1 -0
  114. data/lib/active_scaffold/bridges/paper_trail/actions.rb +4 -2
  115. data/lib/active_scaffold/bridges/paper_trail/config.rb +1 -1
  116. data/lib/active_scaffold/bridges/paper_trail/helper.rb +1 -1
  117. data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +2 -1
  118. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +3 -2
  119. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +1 -1
  120. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +10 -9
  121. data/lib/active_scaffold/bridges/paperclip.rb +2 -1
  122. data/lib/active_scaffold/bridges/record_select/helpers.rb +10 -11
  123. data/lib/active_scaffold/bridges/semantic_attributes/column.rb +3 -1
  124. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -7
  125. data/lib/active_scaffold/bridges/tiny_mce.rb +2 -7
  126. data/lib/active_scaffold/bridges/usa_state_select/usa_state_select_helper.rb +7 -7
  127. data/lib/active_scaffold/bridges.rb +7 -5
  128. data/lib/active_scaffold/config/base.rb +20 -24
  129. data/lib/active_scaffold/config/core.rb +27 -39
  130. data/lib/active_scaffold/config/create.rb +1 -1
  131. data/lib/active_scaffold/config/delete.rb +9 -9
  132. data/lib/active_scaffold/config/field_search.rb +4 -9
  133. data/lib/active_scaffold/config/form.rb +3 -1
  134. data/lib/active_scaffold/config/list.rb +19 -15
  135. data/lib/active_scaffold/config/nested.rb +2 -2
  136. data/lib/active_scaffold/config/search.rb +5 -5
  137. data/lib/active_scaffold/config/show.rb +1 -1
  138. data/lib/active_scaffold/config/subform.rb +1 -1
  139. data/lib/active_scaffold/config/update.rb +4 -5
  140. data/lib/active_scaffold/configurable.rb +2 -1
  141. data/lib/active_scaffold/constraints.rb +16 -11
  142. data/lib/active_scaffold/core.rb +25 -27
  143. data/lib/active_scaffold/data_structures/action_columns.rb +10 -3
  144. data/lib/active_scaffold/data_structures/action_link.rb +19 -9
  145. data/lib/active_scaffold/data_structures/action_links.rb +20 -26
  146. data/lib/active_scaffold/data_structures/actions.rb +3 -3
  147. data/lib/active_scaffold/data_structures/association/abstract.rb +8 -4
  148. data/lib/active_scaffold/data_structures/association/active_mongoid.rb +1 -0
  149. data/lib/active_scaffold/data_structures/association/active_record.rb +1 -4
  150. data/lib/active_scaffold/data_structures/column.rb +368 -327
  151. data/lib/active_scaffold/data_structures/columns.rb +3 -2
  152. data/lib/active_scaffold/data_structures/nested_info.rb +6 -5
  153. data/lib/active_scaffold/data_structures/proxy_column.rb +68 -0
  154. data/lib/active_scaffold/data_structures/set.rb +7 -4
  155. data/lib/active_scaffold/data_structures/sorting.rb +21 -12
  156. data/lib/active_scaffold/engine.rb +12 -12
  157. data/lib/active_scaffold/extensions/action_controller_rendering.rb +5 -5
  158. data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -1
  159. data/lib/active_scaffold/extensions/action_view_rendering.rb +29 -31
  160. data/lib/active_scaffold/extensions/ice_nine.rb +2 -1
  161. data/lib/active_scaffold/extensions/localize.rb +2 -2
  162. data/lib/active_scaffold/extensions/name_option_for_datetime.rb +1 -1
  163. data/lib/active_scaffold/extensions/routing_mapper.rb +5 -4
  164. data/lib/active_scaffold/extensions/unsaved_associated.rb +3 -2
  165. data/lib/active_scaffold/finder.rb +71 -78
  166. data/lib/active_scaffold/helpers/action_link_helpers.rb +37 -49
  167. data/lib/active_scaffold/helpers/association_helpers.rb +4 -3
  168. data/lib/active_scaffold/helpers/controller_helpers.rb +18 -16
  169. data/lib/active_scaffold/helpers/form_column_helpers.rb +69 -53
  170. data/lib/active_scaffold/helpers/human_condition_helpers.rb +17 -15
  171. data/lib/active_scaffold/helpers/id_helpers.rb +5 -5
  172. data/lib/active_scaffold/helpers/list_column_helpers.rb +35 -38
  173. data/lib/active_scaffold/helpers/pagination_helpers.rb +4 -4
  174. data/lib/active_scaffold/helpers/search_column_helpers.rb +25 -34
  175. data/lib/active_scaffold/helpers/show_column_helpers.rb +7 -4
  176. data/lib/active_scaffold/helpers/tabs_helpers.rb +88 -0
  177. data/lib/active_scaffold/helpers/view_helpers.rb +15 -13
  178. data/lib/active_scaffold/marked_model.rb +1 -2
  179. data/lib/active_scaffold/orm_checks.rb +6 -4
  180. data/lib/active_scaffold/paginator.rb +3 -2
  181. data/lib/active_scaffold/registry.rb +5 -0
  182. data/lib/active_scaffold/tableless.rb +24 -14
  183. data/lib/active_scaffold/version.rb +4 -4
  184. data/lib/active_scaffold.rb +8 -34
  185. data/lib/generators/active_scaffold/controller_generator.rb +20 -20
  186. data/lib/generators/active_scaffold/install_generator.rb +4 -8
  187. data/lib/generators/active_scaffold/resource_generator.rb +31 -31
  188. data/lib/tasks/brakeman.rake +1 -1
  189. data/shoulda_macros/macros.rb +14 -14
  190. metadata +11 -232
  191. data/app/assets/javascripts/prototype/active_scaffold.js +0 -1249
  192. data/app/assets/javascripts/prototype/active_scaffold_chosen.js +0 -0
  193. data/app/assets/javascripts/prototype/dhtml_history.js +0 -870
  194. data/app/assets/javascripts/prototype/form_enhancements.js +0 -117
  195. data/app/assets/javascripts/prototype/tiny_mce_bridge.js +0 -17
  196. data/app/views/active_scaffold_overrides/_list_messages_content.html.erb +0 -8
  197. data/app/views/active_scaffold_overrides/_new_record.js.erb +0 -15
  198. data/app/views/active_scaffold_overrides/_popup_adapter.html.erb +0 -20
  199. data/app/views/active_scaffold_overrides/_refresh_create_form.js.erb +0 -12
  200. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +0 -58
  201. data/lib/active_scaffold/bridges/calendar_date_select.rb +0 -17
  202. data/lib/active_scaffold/data_structures/action_link_separator.rb +0 -13
  203. data/lib/active_scaffold/extensions/cow_proxy.rb +0 -102
  204. data/test/active_scaffold_config_mock.rb +0 -33
  205. data/test/bridges/bridge_test.rb +0 -88
  206. data/test/bridges/date_picker_test.rb +0 -31
  207. data/test/bridges/paper_trail_test.rb +0 -16
  208. data/test/bridges/paperclip_test.rb +0 -85
  209. data/test/bridges/tiny_mce_test.rb +0 -61
  210. data/test/class_with_finder.rb +0 -42
  211. data/test/company.rb +0 -97
  212. data/test/config/base_test.rb +0 -17
  213. data/test/config/core_test.rb +0 -66
  214. data/test/config/create_test.rb +0 -72
  215. data/test/config/delete_test.rb +0 -35
  216. data/test/config/field_search_test.rb +0 -49
  217. data/test/config/list_test.rb +0 -134
  218. data/test/config/nested_test.rb +0 -55
  219. data/test/config/search_test.rb +0 -62
  220. data/test/config/show_test.rb +0 -45
  221. data/test/config/subform_test.rb +0 -19
  222. data/test/config/update_test.rb +0 -52
  223. data/test/const_mocker.rb +0 -32
  224. data/test/data_structures/action_columns_test.rb +0 -112
  225. data/test/data_structures/action_link_test.rb +0 -79
  226. data/test/data_structures/action_links_test.rb +0 -78
  227. data/test/data_structures/actions_test.rb +0 -25
  228. data/test/data_structures/association_column_test.rb +0 -41
  229. data/test/data_structures/column_test.rb +0 -186
  230. data/test/data_structures/columns_test.rb +0 -68
  231. data/test/data_structures/set_test.rb +0 -84
  232. data/test/data_structures/sorting_test.rb +0 -148
  233. data/test/data_structures/standard_column_test.rb +0 -23
  234. data/test/data_structures/validation_reflection_test.rb +0 -69
  235. data/test/data_structures/virtual_column_test.rb +0 -23
  236. data/test/extensions/action_view_rendering_test.rb +0 -20
  237. data/test/extensions/active_record_test.rb +0 -44
  238. data/test/extensions/routing_mapper_test.rb +0 -73
  239. data/test/helpers/form_column_helpers_test.rb +0 -34
  240. data/test/helpers/list_column_helpers_test.rb +0 -53
  241. data/test/helpers/pagination_helpers_test.rb +0 -65
  242. data/test/helpers/search_column_helpers_test.rb +0 -15
  243. data/test/misc/active_record_permissions_test.rb +0 -193
  244. data/test/misc/attribute_params_test.rb +0 -460
  245. data/test/misc/calculation_test.rb +0 -39
  246. data/test/misc/configurable_test.rb +0 -97
  247. data/test/misc/constraints_test.rb +0 -209
  248. data/test/misc/convert_numbers_format_test.rb +0 -171
  249. data/test/misc/finder_test.rb +0 -124
  250. data/test/misc/lang_test.rb +0 -10
  251. data/test/misc/parse_datetime_test.rb +0 -159
  252. data/test/misc/render_test.rb +0 -9
  253. data/test/misc/tableless_test.rb +0 -56
  254. data/test/mock_app/.gitignore +0 -2
  255. data/test/mock_app/Rakefile +0 -7
  256. data/test/mock_app/app/assets/config/manifest.js +0 -0
  257. data/test/mock_app/app/controllers/addresses_controller.rb +0 -4
  258. data/test/mock_app/app/controllers/application_controller.rb +0 -10
  259. data/test/mock_app/app/controllers/buildings_controller.rb +0 -4
  260. data/test/mock_app/app/controllers/cars_controller.rb +0 -5
  261. data/test/mock_app/app/controllers/contacts_controller.rb +0 -4
  262. data/test/mock_app/app/controllers/floors_controller.rb +0 -6
  263. data/test/mock_app/app/controllers/people_controller.rb +0 -8
  264. data/test/mock_app/app/controllers/roles_controller.rb +0 -4
  265. data/test/mock_app/app/helpers/application_helper.rb +0 -3
  266. data/test/mock_app/app/models/address.rb +0 -3
  267. data/test/mock_app/app/models/building.rb +0 -9
  268. data/test/mock_app/app/models/car.rb +0 -3
  269. data/test/mock_app/app/models/contact.rb +0 -3
  270. data/test/mock_app/app/models/file_model.rb +0 -31
  271. data/test/mock_app/app/models/floor.rb +0 -8
  272. data/test/mock_app/app/models/person.rb +0 -12
  273. data/test/mock_app/app/models/role.rb +0 -3
  274. data/test/mock_app/app/views/active_scaffold_overrides/_form.html.erb +0 -2
  275. data/test/mock_app/app/views/active_scaffold_overrides/list.html.erb +0 -2
  276. data/test/mock_app/app/views/people/_first_name_form_column.html.erb +0 -2
  277. data/test/mock_app/app/views/people/_form.html.erb +0 -2
  278. data/test/mock_app/app/views/people/list.html.erb +0 -2
  279. data/test/mock_app/config/application.rb +0 -14
  280. data/test/mock_app/config/boot.rb +0 -7
  281. data/test/mock_app/config/database.yml +0 -16
  282. data/test/mock_app/config/environment.rb +0 -6
  283. data/test/mock_app/config/environments/development.rb +0 -24
  284. data/test/mock_app/config/environments/production.rb +0 -49
  285. data/test/mock_app/config/environments/test.rb +0 -34
  286. data/test/mock_app/config/initializers/backtrace_silencers.rb +0 -7
  287. data/test/mock_app/config/initializers/inflections.rb +0 -10
  288. data/test/mock_app/config/initializers/mime_types.rb +0 -5
  289. data/test/mock_app/config/initializers/secret_token.rb +0 -11
  290. data/test/mock_app/config/initializers/session_store.rb +0 -8
  291. data/test/mock_app/config/initializers/wrap_parameters.rb +0 -14
  292. data/test/mock_app/config/locales/en.yml +0 -5
  293. data/test/mock_app/config/routes.rb +0 -17
  294. data/test/mock_app/config.ru +0 -4
  295. data/test/mock_app/db/schema.rb +0 -68
  296. data/test/mock_app/db/test.sqlite3 +0 -1
  297. data/test/model_stub.rb +0 -64
  298. data/test/performance/list_cars_performance_test.rb +0 -34
  299. data/test/performance/list_people_performance_test.rb +0 -31
  300. data/test/performance_test_help.rb +0 -3
  301. data/test/run_all.rb +0 -6
  302. data/test/test_helper.rb +0 -71
  303. 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,&lt;br/&gt;2,&lt;br/&gt;3,&lt;br/&gt;… (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