active_scaffold 3.7.12 → 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 -23
  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 +3 -2
  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,45 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Config
4
- class ShowTest < Minitest::Test
5
- def setup
6
- @config = ActiveScaffold::Config::Core.new :model_stub
7
- @default_link = @config.show.link
8
- end
9
-
10
- def teardown
11
- @config.show.link = @default_link
12
- end
13
-
14
- def test_link_defaults
15
- link = @config.show.link
16
- refute link.page?
17
- refute link.popup?
18
- refute link.confirm?
19
- assert_equal 'show', link.action
20
- assert_equal 'Show', link.label
21
- assert link.inline?
22
- blank = {}
23
- assert_equal blank, link.html_options
24
- assert_equal :get, link.method
25
- assert_equal :member, link.type
26
- assert_equal :read, link.crud_type
27
- assert_equal :show_authorized?, link.security_method
28
- end
29
-
30
- def test_setting_link
31
- @config.show.link = ActiveScaffold::DataStructures::ActionLink.new('update', :label => 'Monkeys')
32
- refute_equal @default_link, @config.show.link
33
- end
34
-
35
- def test_label
36
- label = 'show monkeys'
37
- @config.show.label = label
38
- assert_equal label, @config.show.label
39
- I18n.backend.store_translations :en, :active_scaffold => {:view_model => 'View %<model>s'}
40
- @config.show.label = :view_model
41
- assert_equal 'View Model stub', @config.show.label
42
- assert_equal 'View record', @config.show.label('record')
43
- end
44
- end
45
- end
@@ -1,19 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Config
4
- class SubformTest < Minitest::Test
5
- def setup
6
- @config = ActiveScaffold::Config::Core.new :model_stub
7
- end
8
-
9
- def test_defaults
10
- assert_equal :horizontal, @config.subform.layout
11
- end
12
-
13
- def test_setting_layout
14
- layout = :vertical
15
- @config.subform.layout = layout
16
- assert_equal layout, @config.subform.layout
17
- end
18
- end
19
- end
@@ -1,52 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Config
4
- class UpdateTest < Minitest::Test
5
- include ActiveScaffold::Helpers::ControllerHelpers
6
-
7
- def setup
8
- @config = ActiveScaffold::Config::Core.new :model_stub
9
- end
10
-
11
- def test_copy_columns_from_create
12
- @config.create.columns = %i[a c d]
13
- assert_equal %i[a d], @config.create.columns.visible_columns_names
14
- @config.update.columns = @config.create.columns
15
- assert_equal %i[a c d], @config.update.columns.visible_columns_names
16
- end
17
-
18
- def test__params_for_columns__returns_all_params
19
- @config.columns[:a].params.add :keep_a, :a_temp
20
- assert @config.columns[:a].params.include?(:keep_a)
21
- assert @config.columns[:a].params.include?(:a_temp)
22
- end
23
-
24
- def test_default_options
25
- refute @config.update.persistent
26
- refute @config.update.nested_links
27
- assert_equal 'Model stub', @config.update.label
28
- end
29
-
30
- def test_persistent
31
- @config.update.persistent = true
32
- assert @config.update.persistent
33
- end
34
-
35
- def test_nested_links
36
- old = @config.update.nested_links
37
- @config.update.nested_links = true
38
- assert @config.update.nested_links
39
- @config.update.nested_links = old
40
- end
41
-
42
- def test_label
43
- label = 'update new monkeys'
44
- @config.update.label = label
45
- assert_equal label, @config.update.label
46
- I18n.backend.store_translations :en, :active_scaffold => {:change_model => 'Change %<model>s'}
47
- @config.update.label = :change_model
48
- assert_equal 'Change Model stub', @config.update.label
49
- assert_equal 'Change record', @config.update.label('record')
50
- end
51
- end
52
- end
data/test/const_mocker.rb DELETED
@@ -1,32 +0,0 @@
1
- class ConstMocker
2
- def initialize(const_name, parent = Object)
3
- @parent = parent
4
- @const_name = const_name
5
- @const_state = nil
6
- @const_state = @parent.const_defined?(@const_name) ? @parent.const_get(@const_name) : nil
7
- end
8
-
9
- def remove
10
- @parent.send :remove_const, @const_name if @parent.const_defined?(@const_name)
11
- end
12
-
13
- def declare
14
- @parent.const_set @const_name, Class.new
15
- end
16
-
17
- def restore
18
- remove
19
- @parent.const_set @const_name, @const_state if @const_state
20
- end
21
-
22
- def const
23
- @parent.const_get @const_name if @parent.const_defined?(@const_name)
24
- end
25
-
26
- def self.mock(const_name, parent = Object, &block)
27
- cm = new(const_name, parent)
28
- yield(cm)
29
- cm.restore
30
- true
31
- end
32
- end
@@ -1,112 +0,0 @@
1
- require 'test_helper'
2
- # require 'test/model_stub'
3
- # require File.join(File.dirname(__FILE__), '../../lib/active_scaffold/data_structures/set.rb')
4
-
5
- class ActionColumnsTest < Minitest::Test
6
- def setup
7
- @columns = ActiveScaffold::DataStructures::ActionColumns.new(%i[a b])
8
- @columns.action = stub(core: stub(model_id: 'model_stub'), user_settings_key: :"model_stub_active_scaffold/config/test")
9
- end
10
-
11
- def test_label
12
- refute_equal 'foo', @columns.label
13
- @columns.label = 'foo'
14
- assert_equal 'foo', @columns.label
15
- end
16
-
17
- def test_initialization
18
- assert @columns.include?(:a)
19
- assert @columns.include?(:b)
20
- refute @columns.include?(:c)
21
- end
22
-
23
- def test_exclude
24
- # exclude with a symbol
25
- assert @columns.include?(:b)
26
- @columns.exclude :b
27
- refute @columns.include?(:b)
28
-
29
- # exclude with a string
30
- assert @columns.include?(:a)
31
- @columns.exclude 'a'
32
- refute @columns.include?(:a)
33
- end
34
-
35
- def test_exclude_array
36
- # exclude with a symbol
37
- assert @columns.include?(:b)
38
- @columns.exclude %i[a b]
39
- refute @columns.include?(:b)
40
- refute @columns.include?(:a)
41
- end
42
-
43
- def test_add
44
- # try adding a simple column using a string
45
- refute @columns.include?(:c)
46
- @columns.add 'c'
47
- assert @columns.include?(:c)
48
-
49
- # try adding a simple column using a symbol
50
- refute @columns.include?(:d)
51
- @columns.add :d
52
- assert @columns.include?(:d)
53
-
54
- # test that << also adds
55
- refute @columns.include?(:e)
56
- @columns << :e
57
- assert @columns.include?(:e)
58
-
59
- # try adding an array of columns
60
- refute @columns.include?(:f)
61
- @columns.add %i[f g]
62
- assert @columns.include?(:f)
63
- assert @columns.include?(:g)
64
- end
65
-
66
- def test_length
67
- assert_equal 2, @columns.length
68
- end
69
-
70
- def test_add_subgroup
71
- # first, use @columns.add directly
72
- @c2 = ActiveScaffold::DataStructures::ActionColumns.new
73
- @columns.add @c2
74
- assert(@columns.any? { |c| c == @c2 })
75
-
76
- # then use the shortcut
77
- @columns.add_subgroup 'foo' do
78
- end
79
- assert(@columns.any? { |c| c.respond_to?(:label) && c.label == 'foo' })
80
- end
81
-
82
- def test_block_config
83
- @columns.configure do |config|
84
- # we may use the config argument
85
- config.add :c
86
- # or we may not
87
- exclude :b
88
- add_subgroup 'my subgroup' do
89
- add :e
90
- end
91
- end
92
-
93
- assert @columns.include?(:c)
94
- refute @columns.include?(:b)
95
- @columns.each do |c|
96
- next unless c.is_a? ActiveScaffold::DataStructures::Columns
97
- assert c.include?(:e)
98
- assert_equal 'my subgroup', c.name
99
- end
100
- end
101
-
102
- def test_include
103
- @columns.add_subgroup 'foo' do
104
- add :c
105
- end
106
-
107
- assert @columns.include?(:a)
108
- assert @columns.include?(:b)
109
- assert @columns.include?(:c)
110
- refute @columns.include?(:d)
111
- end
112
- end
@@ -1,79 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ActionLinkTest < Minitest::Test
4
- def setup
5
- @link = ActiveScaffold::DataStructures::ActionLink.new('foo')
6
- end
7
-
8
- def test_simple_attributes
9
- assert_equal 'foo', @link.action
10
- @link.action = 'bar'
11
- assert_equal 'bar', @link.action
12
-
13
- hash = {:a => :b}
14
- @link.parameters = hash
15
- assert_equal hash, @link.parameters
16
-
17
- @link.label = 'hello world'
18
- assert_equal 'hello world', @link.label
19
-
20
- refute @link.confirm
21
- @link.confirm = true
22
- assert @link.confirm
23
- assert @link.confirm?
24
-
25
- assert_equal 'bar_authorized?', @link.security_method
26
-
27
- assert_equal false, @link.security_method_set?
28
- @link.security_method = 'blueberry_pie'
29
- assert_equal true, @link.security_method_set?
30
- assert_equal 'blueberry_pie', @link.security_method
31
-
32
- @link.type = :collection
33
- assert_equal :collection, @link.type
34
- @link.type = :member
35
- assert_equal :member, @link.type
36
-
37
- assert_equal :get, @link.method
38
- @link.method = :put
39
- assert_equal :put, @link.method
40
- end
41
-
42
- def test_position
43
- @link.position = true
44
-
45
- @link.type = :collection
46
- assert_equal :top, @link.position
47
-
48
- @link.type = :member
49
- assert_equal :replace, @link.position
50
-
51
- @link.position = :before
52
- assert_equal :before, @link.position
53
-
54
- @link.position = false
55
- assert_equal false, @link.position
56
- end
57
-
58
- def test_presentation_style
59
- # default
60
- assert @link.inline?
61
- refute @link.popup?
62
- refute @link.page?
63
-
64
- @link.popup = true
65
- refute @link.inline?
66
- assert @link.popup?
67
- refute @link.page?
68
-
69
- @link.page = true
70
- refute @link.inline?
71
- refute @link.popup?
72
- assert @link.page?
73
-
74
- @link.inline = true
75
- assert @link.inline?
76
- refute @link.popup?
77
- refute @link.page?
78
- end
79
- end
@@ -1,78 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ActionLinksTest < Minitest::Test
4
- def setup
5
- @links = ActiveScaffold::DataStructures::ActionLinks.new
6
- end
7
-
8
- def test_add_and_find
9
- # test adding with a shortcut
10
- @links.add 'foo/bar'
11
-
12
- assert_equal 1, @links.find_all { true }.size
13
- assert_equal 'foo/bar', @links.find_all { true }[0].action
14
- assert_equal 'foo/bar', @links['foo/bar'].action
15
-
16
- # test adding an ActionLink object directly
17
- @links.add ActiveScaffold::DataStructures::ActionLink.new('hello/world')
18
-
19
- assert_equal 2, @links.find_all { true }.size
20
-
21
- # test the << alias
22
- @links << 'a/b'
23
-
24
- assert_equal 3, @links.find_all { true }.size
25
- end
26
-
27
- def test_array_access
28
- @link1 = ActiveScaffold::DataStructures::ActionLink.new 'foo/bar'
29
- @link2 = ActiveScaffold::DataStructures::ActionLink.new 'hello_world'
30
-
31
- @links.add @link1
32
- @links.add @link2
33
-
34
- assert_equal @link1, @links[@link1.action]
35
- assert_equal @link2, @links[@link2.action]
36
- end
37
-
38
- def test_empty
39
- assert @links.empty?
40
- @links.add 'a'
41
- refute @links.empty?
42
- end
43
-
44
- def test_cloning
45
- @links.add 'foo/bar'
46
- @links_copy = @links.clone
47
-
48
- refute @links.equal?(@links_copy)
49
- refute @links['foo/bar'].equal?(@links_copy['foo/bar'])
50
- end
51
-
52
- def test_each
53
- @links.add 'foo', :type => :collection
54
- @links.add 'bar', :type => :member
55
-
56
- @links.collection.each do |link|
57
- assert_equal 'foo', link.action
58
- end
59
- @links.member.each do |link|
60
- assert_equal 'bar', link.action
61
- end
62
- end
63
-
64
- def test_delete
65
- @links.add 'foo'
66
- @links.add 'bar'
67
-
68
- @links.delete :foo
69
- assert @links['foo'].nil?
70
- begin
71
- @links.delete :foo
72
- @links.delete 'foo'
73
- rescue StandardError
74
- assert false, "deleting from action links when item doesn't exist should not throw an error"
75
- end
76
- refute @links['bar'].nil?
77
- end
78
- end
@@ -1,25 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ActionsTest < Minitest::Test
4
- def setup
5
- @actions = ActiveScaffold::DataStructures::Actions.new(:a, 'b')
6
- end
7
-
8
- def test_initialization
9
- assert @actions.include?('a')
10
- assert @actions.include?(:b)
11
- refute @actions.include?(:c)
12
- end
13
-
14
- def test_exclude
15
- assert @actions.include?('b')
16
- @actions.exclude :b
17
- refute @actions.include?(:b)
18
- end
19
-
20
- def test_add
21
- refute @actions.include?(:c)
22
- @actions.add 'c'
23
- assert @actions.include?('c')
24
- end
25
- end
@@ -1,41 +0,0 @@
1
- require 'test_helper'
2
- require 'model_stub'
3
-
4
- class AssociationColumnTest < Minitest::Test
5
- def setup
6
- @association_column = ActiveScaffold::DataStructures::Column.new('other_model', ModelStub)
7
- end
8
-
9
- def test_virtuality
10
- assert @association_column.association
11
- refute @association_column.virtual?
12
- end
13
-
14
- def test_sorting
15
- # sorting on association columns is not defined
16
- assert_equal false, @association_column.sort
17
- end
18
-
19
- def test_searching
20
- # by default searching on association columns uses primary key
21
- assert @association_column.searchable?
22
- assert_equal ['"model_stubs"."id"'], @association_column.search_sql
23
- end
24
-
25
- def test_association
26
- assert @association_column.association.is_a?(ActiveScaffold::DataStructures::Association::Abstract)
27
- end
28
-
29
- def test_includes
30
- assert_equal [:other_model], @association_column.includes
31
- end
32
-
33
- def test_plurality
34
- assert @association_column.association.singular?
35
- refute @association_column.association.collection?
36
-
37
- plural_association_column = ActiveScaffold::DataStructures::Column.new('other_models', ModelStub)
38
- assert plural_association_column.association.collection?
39
- refute plural_association_column.association.singular?
40
- end
41
- end
@@ -1,186 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ColumnTest < Minitest::Test
4
- def setup
5
- @column = ActiveScaffold::DataStructures::Column.new(:a, ModelStub)
6
- @association_col = ActiveScaffold::DataStructures::Column.new(:b, ModelStub)
7
- @association_col.stubs(:polymorphic_association?).returns(false)
8
- @association_col.stubs(association: stub(polymorphic?: false))
9
- end
10
-
11
- def test_column
12
- assert @column.column.is_a?(ActiveRecord::ConnectionAdapters::Column)
13
- assert_equal @column.column.name, 'a'
14
- end
15
-
16
- def test_basic_properties
17
- # test that it was set during initialization
18
- assert_equal @column.name, :a
19
-
20
- # label
21
- @column.label = 'foo'
22
- assert_equal 'foo', @column.label
23
-
24
- # description
25
- @column.description = 'hello world'
26
- assert_equal 'hello world', @column.description
27
-
28
- # css class
29
- @column.css_class = 'style_me'
30
- assert_equal 'style_me', @column.css_class
31
-
32
- # required
33
- refute @column.required?, 'default is false'
34
- @column.required = true
35
- assert @column.required?, 'can be changed'
36
-
37
- # calculation
38
- refute @column.calculation?, 'default is nil'
39
- @column.calculate = :sum
40
- assert @column.calculation?, 'can be changed'
41
- end
42
-
43
- def test_field
44
- assert_equal '"model_stubs"."a"', @column.send(:field)
45
- end
46
-
47
- def test_table
48
- assert_equal 'model_stubs', @column.send(:table)
49
- end
50
-
51
- def test_equality
52
- # create a separate columns object, and make sure it's not ==
53
- columns = ActiveScaffold::DataStructures::Columns.new(ModelStub, :a, :b)
54
- refute_equal columns, @column
55
-
56
- # create a separate action_columns object, and make sure it's not ==
57
- columns = ActiveScaffold::DataStructures::ActionColumns.new(:a, :b)
58
- refute_equal columns, @column
59
-
60
- # identity
61
- assert_equal @column, @column
62
-
63
- # string comparison
64
- assert_equal @column, 'a'
65
- refute_equal @column, 'fake'
66
-
67
- # symbol comparison
68
- assert_equal @column, :a
69
- refute_equal @column, :fake
70
-
71
- # comparison with different object of same type
72
- column2 = ActiveScaffold::DataStructures::Column.new(:fake, ModelStub)
73
- refute_equal @column, column2
74
- column2 = ActiveScaffold::DataStructures::Column.new(:a, ModelStub)
75
- assert_equal @column, column2
76
-
77
- # special comparisons
78
- refute @column.nil?
79
- refute_equal @column, ''
80
- refute_equal @column, 0
81
- end
82
-
83
- def test_ui
84
- assert_nil @column.form_ui
85
- assert_nil @column.list_ui
86
- assert_nil @column.search_ui
87
- assert_equal :select, @association_col.search_ui
88
-
89
- @column.form_ui = :calendar
90
- assert_equal :calendar, @column.form_ui
91
- assert_equal :calendar, @column.list_ui
92
- assert_equal :calendar, @column.search_ui
93
-
94
- @association_col.form_ui = :record_select
95
- assert_equal :record_select, @association_col.form_ui
96
- assert_equal :record_select, @association_col.search_ui
97
-
98
- @column.search_ui = :record_select
99
- @column.list_ui = :checkbox
100
- assert_equal :calendar, @column.form_ui
101
- assert_equal :checkbox, @column.list_ui
102
- assert_equal :record_select, @column.search_ui
103
- end
104
-
105
- def test_searchable
106
- @column.search_sql = nil
107
- refute @column.searchable?
108
- @column.search_sql = true
109
- assert @column.searchable?
110
- end
111
-
112
- def test_sortable
113
- @column.sort = nil
114
- refute @column.sortable?
115
- @column.sort = true
116
- assert @column.sortable?
117
- end
118
-
119
- def test_custom_search
120
- @column.search_sql = true
121
- assert_equal ['"model_stubs"."a"'], @column.search_sql
122
- @column.search_sql = 'foobar'
123
- assert_equal ['foobar'], @column.search_sql
124
- assert @column.searchable?
125
- end
126
-
127
- def test_custom_sort
128
- @column.sort = true
129
- hash = {:sql => '"model_stubs"."a"'}
130
- assert_equal hash, @column.sort
131
- @column.sort_by :sql => 'foobar'
132
- hash = {:sql => 'foobar'}
133
- assert_equal hash, @column.sort
134
-
135
- some_proc = proc { 'foobar' }
136
- @column.sort_by :method => some_proc
137
- hash = {:method => some_proc}
138
- assert_equal hash, @column.sort
139
- assert @column.sortable?
140
- end
141
-
142
- def test_custom_sort__should_assert_keys
143
- assert_raises(ArgumentError) { @column.sort_by :proc => 'invalid config' }
144
- assert_raises(ArgumentError) { @column.sort = {:proc => 'invalid config'} }
145
- assert_equal({:method => 'method'}, @column.sort_by(:method => 'method'))
146
- assert_equal({:sql => 'method'}, @column.sort_by(:sql => 'method'))
147
- end
148
-
149
- def test_config_block
150
- @column.configure do |config|
151
- # we can use the config object
152
- config.form_ui = :select
153
- # or not
154
- self.label = 'hello'
155
- end
156
-
157
- assert_equal :select, @column.form_ui
158
- assert_equal 'hello', @column.label
159
- end
160
-
161
- def test_action_link
162
- link = ActiveScaffold::DataStructures::ActionLink.new('foo/bar')
163
- @column.set_link link
164
- assert_equal link, @column.link
165
-
166
- @column.set_link 'hello_world'
167
- assert_equal 'hello_world', @column.link.action
168
- assert_equal @column.label, @column.link.label
169
- end
170
-
171
- def test_includes
172
- assert_nil @column.includes
173
-
174
- # make sure that when a non-array comes in, an array comes out
175
- @column.includes = :column_name
176
- assert_equal([:column_name], @column.includes)
177
-
178
- # make sure that when a non-array comes in, an array comes out
179
- @column.includes = [:column_name]
180
- assert_equal([:column_name], @column.includes)
181
-
182
- # make sure that when a non-array comes in, an array comes out
183
- @column.includes = nil
184
- assert_nil @column.includes
185
- end
186
- end