active_scaffold-sequel 0.3.0

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 (318) hide show
  1. data/CHANGELOG +179 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README +36 -0
  4. data/app/assets/images/active_scaffold/add.gif +0 -0
  5. data/app/assets/images/active_scaffold/arrow_down.gif +0 -0
  6. data/app/assets/images/active_scaffold/arrow_up.gif +0 -0
  7. data/app/assets/images/active_scaffold/close.gif +0 -0
  8. data/app/assets/images/active_scaffold/close_touch.png +0 -0
  9. data/app/assets/images/active_scaffold/config.png +0 -0
  10. data/app/assets/images/active_scaffold/cross.png +0 -0
  11. data/app/assets/images/active_scaffold/gears.png +0 -0
  12. data/app/assets/images/active_scaffold/indicator-small.gif +0 -0
  13. data/app/assets/images/active_scaffold/indicator.gif +0 -0
  14. data/app/assets/images/active_scaffold/magnifier.png +0 -0
  15. data/app/assets/javascripts/active_scaffold.js.erb +19 -0
  16. data/app/assets/javascripts/jquery/active_scaffold.js +1057 -0
  17. data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +24 -0
  18. data/app/assets/javascripts/jquery/draggable_lists.js +27 -0
  19. data/app/assets/javascripts/jquery/jquery.editinplace.js +743 -0
  20. data/app/assets/javascripts/jquery/tiny_mce_bridge.js +7 -0
  21. data/app/assets/javascripts/prototype/active_scaffold.js +1052 -0
  22. data/app/assets/javascripts/prototype/dhtml_history.js +870 -0
  23. data/app/assets/javascripts/prototype/form_enhancements.js +117 -0
  24. data/app/assets/javascripts/prototype/rico_corner.js +370 -0
  25. data/app/assets/javascripts/prototype/tiny_mce_bridge.js +7 -0
  26. data/app/assets/stylesheets/active_scaffold-ie.css +35 -0
  27. data/app/assets/stylesheets/active_scaffold.css.scss +14 -0
  28. data/app/assets/stylesheets/active_scaffold_colors.css.scss +395 -0
  29. data/app/assets/stylesheets/active_scaffold_extensions.css.erb +2 -0
  30. data/app/assets/stylesheets/active_scaffold_images.css.scss +43 -0
  31. data/app/assets/stylesheets/active_scaffold_layout.css +912 -0
  32. data/app/assets/stylesheets/blue-theme.css +74 -0
  33. data/config/locales/de.yml +114 -0
  34. data/config/locales/en.yml +118 -0
  35. data/config/locales/es.yml +120 -0
  36. data/config/locales/fr.yml +121 -0
  37. data/config/locales/hu.yml +74 -0
  38. data/config/locales/ja.yml +73 -0
  39. data/config/locales/ru.yml +123 -0
  40. data/frontends/default/views/_action_group.html.erb +24 -0
  41. data/frontends/default/views/_add_existing_form.html.erb +30 -0
  42. data/frontends/default/views/_base_form.html.erb +51 -0
  43. data/frontends/default/views/_create_form.html.erb +8 -0
  44. data/frontends/default/views/_create_form_on_list.html.erb +6 -0
  45. data/frontends/default/views/_field_search.html.erb +32 -0
  46. data/frontends/default/views/_form.html.erb +24 -0
  47. data/frontends/default/views/_form_association.html.erb +15 -0
  48. data/frontends/default/views/_form_association_footer.html.erb +47 -0
  49. data/frontends/default/views/_form_attribute.html.erb +20 -0
  50. data/frontends/default/views/_form_hidden_attribute.html.erb +2 -0
  51. data/frontends/default/views/_form_messages.html.erb +5 -0
  52. data/frontends/default/views/_horizontal_subform.html.erb +28 -0
  53. data/frontends/default/views/_horizontal_subform_footer.html.erb +0 -0
  54. data/frontends/default/views/_horizontal_subform_header.html.erb +11 -0
  55. data/frontends/default/views/_horizontal_subform_record.html.erb +38 -0
  56. data/frontends/default/views/_human_conditions.html.erb +1 -0
  57. data/frontends/default/views/_list.html.erb +18 -0
  58. data/frontends/default/views/_list_actions.html.erb +15 -0
  59. data/frontends/default/views/_list_calculations.html.erb +16 -0
  60. data/frontends/default/views/_list_column_headings.html.erb +12 -0
  61. data/frontends/default/views/_list_header.html.erb +10 -0
  62. data/frontends/default/views/_list_inline_adapter.html.erb +10 -0
  63. data/frontends/default/views/_list_messages.html.erb +30 -0
  64. data/frontends/default/views/_list_pagination.html.erb +11 -0
  65. data/frontends/default/views/_list_pagination_links.html.erb +9 -0
  66. data/frontends/default/views/_list_record.html.erb +14 -0
  67. data/frontends/default/views/_list_record_columns.html.erb +8 -0
  68. data/frontends/default/views/_list_with_header.html.erb +36 -0
  69. data/frontends/default/views/_messages.html.erb +10 -0
  70. data/frontends/default/views/_render_field.js.erb +20 -0
  71. data/frontends/default/views/_row.html.erb +6 -0
  72. data/frontends/default/views/_search.html.erb +34 -0
  73. data/frontends/default/views/_search_attribute.html.erb +10 -0
  74. data/frontends/default/views/_show.html.erb +8 -0
  75. data/frontends/default/views/_show_columns.html.erb +15 -0
  76. data/frontends/default/views/_update_actions.html.erb +9 -0
  77. data/frontends/default/views/_update_form.html.erb +6 -0
  78. data/frontends/default/views/_vertical_subform.html.erb +12 -0
  79. data/frontends/default/views/_vertical_subform_record.html.erb +38 -0
  80. data/frontends/default/views/action_confirmation.html.erb +13 -0
  81. data/frontends/default/views/add_existing.js.erb +18 -0
  82. data/frontends/default/views/add_existing_form.html.erb +5 -0
  83. data/frontends/default/views/create.html.erb +5 -0
  84. data/frontends/default/views/delete.html.erb +13 -0
  85. data/frontends/default/views/destroy.js.erb +24 -0
  86. data/frontends/default/views/edit_associated.js.erb +12 -0
  87. data/frontends/default/views/field_search.html.erb +5 -0
  88. data/frontends/default/views/form_messages.js.erb +1 -0
  89. data/frontends/default/views/list.html.erb +1 -0
  90. data/frontends/default/views/on_action_update.js.erb +13 -0
  91. data/frontends/default/views/on_create.js.erb +47 -0
  92. data/frontends/default/views/on_mark_all.js.erb +12 -0
  93. data/frontends/default/views/on_update.js.erb +31 -0
  94. data/frontends/default/views/refresh_list.js.erb +1 -0
  95. data/frontends/default/views/render_field.js.erb +1 -0
  96. data/frontends/default/views/search.html.erb +5 -0
  97. data/frontends/default/views/show.html.erb +5 -0
  98. data/frontends/default/views/update.html.erb +8 -0
  99. data/frontends/default/views/update_column.js.erb +16 -0
  100. data/frontends/default/views/update_row.js.erb +1 -0
  101. data/lib/active_scaffold/actions/common_search.rb +25 -0
  102. data/lib/active_scaffold/actions/core.rb +197 -0
  103. data/lib/active_scaffold/actions/create.rb +148 -0
  104. data/lib/active_scaffold/actions/delete.rb +76 -0
  105. data/lib/active_scaffold/actions/field_search.rb +82 -0
  106. data/lib/active_scaffold/actions/list.rb +196 -0
  107. data/lib/active_scaffold/actions/mark.rb +75 -0
  108. data/lib/active_scaffold/actions/nested.rb +245 -0
  109. data/lib/active_scaffold/actions/search.rb +48 -0
  110. data/lib/active_scaffold/actions/show.rb +61 -0
  111. data/lib/active_scaffold/actions/subform.rb +23 -0
  112. data/lib/active_scaffold/actions/update.rb +150 -0
  113. data/lib/active_scaffold/active_record_permissions.rb +136 -0
  114. data/lib/active_scaffold/attribute_params.rb +208 -0
  115. data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +39 -0
  116. data/lib/active_scaffold/bridges/ancestry.rb +5 -0
  117. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +67 -0
  118. data/lib/active_scaffold/bridges/calendar_date_select.rb +24 -0
  119. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +107 -0
  120. data/lib/active_scaffold/bridges/cancan.rb +15 -0
  121. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +31 -0
  122. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge_helpers.rb +10 -0
  123. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +45 -0
  124. data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +17 -0
  125. data/lib/active_scaffold/bridges/carrierwave.rb +12 -0
  126. data/lib/active_scaffold/bridges/country_helper/country_helper_bridge.rb +358 -0
  127. data/lib/active_scaffold/bridges/country_helper.rb +9 -0
  128. data/lib/active_scaffold/bridges/date_picker/ext.rb +45 -0
  129. data/lib/active_scaffold/bridges/date_picker/helper.rb +180 -0
  130. data/lib/active_scaffold/bridges/date_picker.rb +23 -0
  131. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +34 -0
  132. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge_helpers.rb +10 -0
  133. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +27 -0
  134. data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +16 -0
  135. data/lib/active_scaffold/bridges/dragonfly.rb +9 -0
  136. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +48 -0
  137. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +57 -0
  138. data/lib/active_scaffold/bridges/file_column/form_ui.rb +34 -0
  139. data/lib/active_scaffold/bridges/file_column/list_ui.rb +26 -0
  140. data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +43 -0
  141. data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +9 -0
  142. data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +15 -0
  143. data/lib/active_scaffold/bridges/file_column.rb +11 -0
  144. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +27 -0
  145. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +16 -0
  146. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +36 -0
  147. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb +24 -0
  148. data/lib/active_scaffold/bridges/paperclip.rb +12 -0
  149. data/lib/active_scaffold/bridges/record_select/helpers.rb +86 -0
  150. data/lib/active_scaffold/bridges/record_select.rb +11 -0
  151. data/lib/active_scaffold/bridges/semantic_attributes/column.rb +20 -0
  152. data/lib/active_scaffold/bridges/semantic_attributes.rb +5 -0
  153. data/lib/active_scaffold/bridges/shared/date_bridge.rb +209 -0
  154. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +46 -0
  155. data/lib/active_scaffold/bridges/tiny_mce.rb +17 -0
  156. data/lib/active_scaffold/bridges.rb +61 -0
  157. data/lib/active_scaffold/config/base.rb +71 -0
  158. data/lib/active_scaffold/config/core.rb +219 -0
  159. data/lib/active_scaffold/config/create.rb +44 -0
  160. data/lib/active_scaffold/config/delete.rb +33 -0
  161. data/lib/active_scaffold/config/field_search.rb +76 -0
  162. data/lib/active_scaffold/config/form.rb +48 -0
  163. data/lib/active_scaffold/config/list.rb +196 -0
  164. data/lib/active_scaffold/config/mark.rb +35 -0
  165. data/lib/active_scaffold/config/nested.rb +42 -0
  166. data/lib/active_scaffold/config/search.rb +73 -0
  167. data/lib/active_scaffold/config/show.rb +32 -0
  168. data/lib/active_scaffold/config/subform.rb +35 -0
  169. data/lib/active_scaffold/config/update.rb +41 -0
  170. data/lib/active_scaffold/configurable.rb +29 -0
  171. data/lib/active_scaffold/constraints.rb +170 -0
  172. data/lib/active_scaffold/data_structures/action_columns.rb +140 -0
  173. data/lib/active_scaffold/data_structures/action_link.rb +179 -0
  174. data/lib/active_scaffold/data_structures/action_links.rb +185 -0
  175. data/lib/active_scaffold/data_structures/actions.rb +45 -0
  176. data/lib/active_scaffold/data_structures/bridge.rb +22 -0
  177. data/lib/active_scaffold/data_structures/column.rb +389 -0
  178. data/lib/active_scaffold/data_structures/columns.rb +75 -0
  179. data/lib/active_scaffold/data_structures/error_message.rb +24 -0
  180. data/lib/active_scaffold/data_structures/nested_info.rb +130 -0
  181. data/lib/active_scaffold/data_structures/set.rb +57 -0
  182. data/lib/active_scaffold/data_structures/sorting.rb +172 -0
  183. data/lib/active_scaffold/engine.rb +4 -0
  184. data/lib/active_scaffold/extensions/action_controller_rendering.rb +22 -0
  185. data/lib/active_scaffold/extensions/action_view_rendering.rb +115 -0
  186. data/lib/active_scaffold/extensions/active_record_offset.rb +12 -0
  187. data/lib/active_scaffold/extensions/array.rb +7 -0
  188. data/lib/active_scaffold/extensions/cache_association.rb +16 -0
  189. data/lib/active_scaffold/extensions/localize.rb +10 -0
  190. data/lib/active_scaffold/extensions/name_option_for_datetime.rb +12 -0
  191. data/lib/active_scaffold/extensions/nil_id_in_url_params.rb +7 -0
  192. data/lib/active_scaffold/extensions/paginator_extensions.rb +26 -0
  193. data/lib/active_scaffold/extensions/routing_mapper.rb +48 -0
  194. data/lib/active_scaffold/extensions/to_label.rb +8 -0
  195. data/lib/active_scaffold/extensions/unsaved_associated.rb +60 -0
  196. data/lib/active_scaffold/extensions/unsaved_record.rb +20 -0
  197. data/lib/active_scaffold/extensions/usa_state.rb +46 -0
  198. data/lib/active_scaffold/finder.rb +372 -0
  199. data/lib/active_scaffold/helpers/association_helpers.rb +48 -0
  200. data/lib/active_scaffold/helpers/controller_helpers.rb +88 -0
  201. data/lib/active_scaffold/helpers/form_column_helpers.rb +321 -0
  202. data/lib/active_scaffold/helpers/human_condition_helpers.rb +62 -0
  203. data/lib/active_scaffold/helpers/id_helpers.rb +127 -0
  204. data/lib/active_scaffold/helpers/list_column_helpers.rb +340 -0
  205. data/lib/active_scaffold/helpers/pagination_helpers.rb +55 -0
  206. data/lib/active_scaffold/helpers/search_column_helpers.rb +267 -0
  207. data/lib/active_scaffold/helpers/show_column_helpers.rb +50 -0
  208. data/lib/active_scaffold/helpers/view_helpers.rb +342 -0
  209. data/lib/active_scaffold/marked_model.rb +38 -0
  210. data/lib/active_scaffold/paginator.rb +136 -0
  211. data/lib/active_scaffold/responds_to_parent.rb +70 -0
  212. data/lib/active_scaffold/version.rb +9 -0
  213. data/lib/active_scaffold.rb +368 -0
  214. data/lib/active_scaffold_env.rb +11 -0
  215. data/lib/generators/active_scaffold/USAGE +29 -0
  216. data/lib/generators/active_scaffold/active_scaffold_generator.rb +20 -0
  217. data/lib/generators/active_scaffold_controller/USAGE +19 -0
  218. data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +29 -0
  219. data/lib/generators/active_scaffold_controller/templates/controller.rb +4 -0
  220. data/lib/generators/active_scaffold_controller/templates/helper.rb +2 -0
  221. data/public/blank.html +33 -0
  222. data/shoulda_macros/macros.rb +136 -0
  223. data/test/bridges/active_scaffold_dependent_protect_test.rb +34 -0
  224. data/test/bridges/bridge_test.rb +90 -0
  225. data/test/bridges/company.rb +81 -0
  226. data/test/bridges/paperclip_test.rb +68 -0
  227. data/test/bridges/tiny_mce_test.rb +27 -0
  228. data/test/bridges/unobtrusive_date_picker_test.rb +49 -0
  229. data/test/bridges/validation_reflection_test.rb +57 -0
  230. data/test/config/base_test.rb +15 -0
  231. data/test/config/core_test.rb +58 -0
  232. data/test/config/create_test.rb +58 -0
  233. data/test/config/delete_test.rb +33 -0
  234. data/test/config/field_search_test.rb +47 -0
  235. data/test/config/list_test.rb +129 -0
  236. data/test/config/nested_test.rb +62 -0
  237. data/test/config/search_test.rb +60 -0
  238. data/test/config/show_test.rb +43 -0
  239. data/test/config/subform_test.rb +17 -0
  240. data/test/config/update_test.rb +40 -0
  241. data/test/const_mocker.rb +36 -0
  242. data/test/data_structures/action_columns_test.rb +113 -0
  243. data/test/data_structures/action_link_test.rb +78 -0
  244. data/test/data_structures/action_links_test.rb +78 -0
  245. data/test/data_structures/actions_test.rb +25 -0
  246. data/test/data_structures/association_column_test.rb +42 -0
  247. data/test/data_structures/column_test.rb +185 -0
  248. data/test/data_structures/columns_test.rb +69 -0
  249. data/test/data_structures/error_message_test.rb +28 -0
  250. data/test/data_structures/set_test.rb +86 -0
  251. data/test/data_structures/sorting_test.rb +126 -0
  252. data/test/data_structures/standard_column_test.rb +24 -0
  253. data/test/data_structures/virtual_column_test.rb +23 -0
  254. data/test/extensions/active_record_test.rb +45 -0
  255. data/test/extensions/array_test.rb +12 -0
  256. data/test/helpers/form_column_helpers_test.rb +31 -0
  257. data/test/helpers/list_column_helpers_test.rb +42 -0
  258. data/test/helpers/pagination_helpers_test.rb +59 -0
  259. data/test/misc/active_record_permissions_test.rb +154 -0
  260. data/test/misc/attribute_params_test.rb +146 -0
  261. data/test/misc/configurable_test.rb +96 -0
  262. data/test/misc/constraints_test.rb +193 -0
  263. data/test/misc/finder_test.rb +92 -0
  264. data/test/misc/lang_test.rb +11 -0
  265. data/test/mock_app/app/controllers/application_controller.rb +10 -0
  266. data/test/mock_app/app/helpers/application_helper.rb +3 -0
  267. data/test/mock_app/config/boot.rb +110 -0
  268. data/test/mock_app/config/database.yml +16 -0
  269. data/test/mock_app/config/environment.rb +43 -0
  270. data/test/mock_app/config/environments/development.rb +17 -0
  271. data/test/mock_app/config/environments/production.rb +28 -0
  272. data/test/mock_app/config/environments/test.rb +28 -0
  273. data/test/mock_app/config/initializers/backtrace_silencers.rb +7 -0
  274. data/test/mock_app/config/initializers/inflections.rb +10 -0
  275. data/test/mock_app/config/initializers/mime_types.rb +5 -0
  276. data/test/mock_app/config/initializers/new_rails_defaults.rb +19 -0
  277. data/test/mock_app/config/initializers/session_store.rb +15 -0
  278. data/test/mock_app/config/locales/en.yml +5 -0
  279. data/test/mock_app/config/routes.rb +43 -0
  280. data/test/mock_app/db/test.sqlite3 +1 -0
  281. data/test/mock_app/public/blank.html +33 -0
  282. data/test/mock_app/public/images/active_scaffold/DO_NOT_EDIT +2 -0
  283. data/test/mock_app/public/images/active_scaffold/default/add.gif +0 -0
  284. data/test/mock_app/public/images/active_scaffold/default/arrow_down.gif +0 -0
  285. data/test/mock_app/public/images/active_scaffold/default/arrow_up.gif +0 -0
  286. data/test/mock_app/public/images/active_scaffold/default/close.gif +0 -0
  287. data/test/mock_app/public/images/active_scaffold/default/cross.png +0 -0
  288. data/test/mock_app/public/images/active_scaffold/default/indicator-small.gif +0 -0
  289. data/test/mock_app/public/images/active_scaffold/default/indicator.gif +0 -0
  290. data/test/mock_app/public/images/active_scaffold/default/magnifier.png +0 -0
  291. data/test/mock_app/public/javascripts/active_scaffold/DO_NOT_EDIT +2 -0
  292. data/test/mock_app/public/javascripts/active_scaffold/default/active_scaffold.js +532 -0
  293. data/test/mock_app/public/javascripts/active_scaffold/default/dhtml_history.js +867 -0
  294. data/test/mock_app/public/javascripts/active_scaffold/default/form_enhancements.js +117 -0
  295. data/test/mock_app/public/javascripts/active_scaffold/default/rico_corner.js +370 -0
  296. data/test/mock_app/public/stylesheets/active_scaffold/DO_NOT_EDIT +2 -0
  297. data/test/mock_app/public/stylesheets/active_scaffold/default/stylesheet-ie.css +35 -0
  298. data/test/mock_app/public/stylesheets/active_scaffold/default/stylesheet.css +848 -0
  299. data/test/model_stub.rb +55 -0
  300. data/test/run_all.rb +8 -0
  301. data/test/test_helper.rb +39 -0
  302. data/vendor/assets/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  303. data/vendor/assets/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  304. data/vendor/assets/images/ui-bg_flat_10_000000_40x100.png +0 -0
  305. data/vendor/assets/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  306. data/vendor/assets/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  307. data/vendor/assets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  308. data/vendor/assets/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  309. data/vendor/assets/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  310. data/vendor/assets/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  311. data/vendor/assets/images/ui-icons_222222_256x240.png +0 -0
  312. data/vendor/assets/images/ui-icons_228ef1_256x240.png +0 -0
  313. data/vendor/assets/images/ui-icons_ef8c08_256x240.png +0 -0
  314. data/vendor/assets/images/ui-icons_ffd27a_256x240.png +0 -0
  315. data/vendor/assets/images/ui-icons_ffffff_256x240.png +0 -0
  316. data/vendor/assets/javascripts/jquery-ui-timepicker-addon.js +1276 -0
  317. data/vendor/assets/stylesheets/jquery-ui.css +568 -0
  318. metadata +502 -0
@@ -0,0 +1,34 @@
1
+ require 'test/unit'
2
+ require File.join(File.dirname(__FILE__), 'company')
3
+
4
+ class ActiveScaffoldDependentProtectTest < Test::Unit::TestCase
5
+ def test_destroy_protected_with_companies
6
+ protected_firm = Company.new(:with_companies)
7
+ assert !protected_firm.send(:authorized_for_delete?)
8
+ end
9
+
10
+ def test_destroy_protected_with_company
11
+ protected_firm = Company.new(:with_company)
12
+ assert !protected_firm.send(:authorized_for_delete?)
13
+ end
14
+
15
+ def test_destroy_protected_with_main_company
16
+ protected_firm = Company.new(:with_main_company)
17
+ assert !protected_firm.send(:authorized_for_delete?)
18
+ end
19
+
20
+ def test_destroy_protected_without_companies
21
+ protected_firm_without_companies = Company.new(:without_companies)
22
+ assert protected_firm_without_companies.send(:authorized_for_delete?)
23
+ end
24
+
25
+ def test_destroy_protected_without_company
26
+ protected_firm_without_company = Company.new(:without_company)
27
+ assert protected_firm_without_company.send(:authorized_for_delete?)
28
+ end
29
+
30
+ def test_destroy_protected_without_main_company
31
+ protected_firm_without_main_company = Company.new(:without_main_company)
32
+ assert protected_firm_without_main_company.send(:authorized_for_delete?)
33
+ end
34
+ end
@@ -0,0 +1,90 @@
1
+ def dbg; require "ruby-debug"; debugger; end;
2
+
3
+ require File.join(File.dirname(__FILE__), '../test_helper.rb')
4
+
5
+
6
+ class Bridges::BridgeTest < Test::Unit::TestCase
7
+ def setup
8
+ @const_store = {}
9
+ end
10
+
11
+ def teardown
12
+ end
13
+
14
+ def test__shouldnt_throw_errors
15
+ ActiveScaffold::Bridge.run_all
16
+ end
17
+
18
+ def test__cds_bridge
19
+ ConstMocker.mock("CalendarDateSelect") do |cm|
20
+ cm.remove
21
+ assert(! bridge_will_be_installed("CalendarDateSelect"))
22
+ cm.declare
23
+ assert(bridge_will_be_installed("CalendarDateSelect"))
24
+ end
25
+ end
26
+
27
+ def test__file_column_bridge
28
+ ConstMocker.mock("FileColumn") do |cm|
29
+ cm.remove
30
+ assert(! bridge_will_be_installed("FileColumn"))
31
+ cm.declare
32
+ assert(bridge_will_be_installed("FileColumn"))
33
+ end
34
+ end
35
+
36
+ def test__dependent_protect_bridge
37
+ ConstMocker.mock("DependentProtect") do |cm|
38
+ cm.remove
39
+ assert(! bridge_will_be_installed("DependentProtect"))
40
+ cm.declare
41
+ assert(bridge_will_be_installed("DependentProtect"))
42
+ end
43
+ end
44
+
45
+ def test__paperclip_bridge
46
+ ConstMocker.mock("Paperclip") do |cm|
47
+ cm.remove
48
+ assert(! bridge_will_be_installed("Paperclip"))
49
+ cm.declare
50
+ assert(bridge_will_be_installed("Paperclip"))
51
+ end
52
+ end
53
+
54
+ def test__unobtrusive_date_picker_bridge
55
+ ConstMocker.mock("UnobtrusiveDatePicker") do |cm|
56
+ cm.remove
57
+ assert(! bridge_will_be_installed("UnobtrusiveDatePicker"))
58
+ cm.declare
59
+ assert(bridge_will_be_installed("UnobtrusiveDatePicker"))
60
+ end
61
+ end
62
+
63
+ def test__validation_reflection_bridge
64
+ class << ActiveRecord::Base; undef_method :reflect_on_validations_for; end rescue nil
65
+ assert(! bridge_will_be_installed("ValidationReflection"))
66
+ class << ActiveRecord::Base; define_method :reflect_on_validations_for, lambda{}; end
67
+ assert(bridge_will_be_installed("ValidationReflection"))
68
+ end
69
+
70
+ def test__semantic_attributes_bridge
71
+ ConstMocker.mock("SemanticAttributes") do |cm|
72
+ cm.remove
73
+ assert(! bridge_will_be_installed("SemanticAttributes"))
74
+ cm.declare
75
+ assert(bridge_will_be_installed("SemanticAttributes"))
76
+ end
77
+ end
78
+
79
+ protected
80
+
81
+ def find_bridge(name)
82
+ ActiveScaffold::Bridge.bridges.find{|b| b.name.to_s==name.to_s}
83
+ end
84
+
85
+ def bridge_will_be_installed(name)
86
+ assert bridge=find_bridge(name), "No bridge found matching #{name}"
87
+
88
+ bridge.instance_variable_get("@install_if").call
89
+ end
90
+ end
@@ -0,0 +1,81 @@
1
+ require 'rubygems'
2
+ require 'active_record'
3
+ require 'active_record/reflection'
4
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/dependent_protect/lib/dependent_protect_bridge')
5
+
6
+ # Mocking everything necesary to test the plugin.
7
+ class Company
8
+ def initialize(with_or_without = nil)
9
+ @with_companies = with_or_without == :with_companies
10
+ @with_company = with_or_without == :with_company
11
+ @with_main_company = with_or_without == :with_main_company
12
+ end
13
+
14
+ def self.columns_hash
15
+ {
16
+ 'name' => ActiveRecord::ConnectionAdapters::Column.new('name', nil, 'varchar(255)'),
17
+ 'date' => ActiveRecord::ConnectionAdapters::Column.new('date', nil, 'date'),
18
+ 'datetime' => ActiveRecord::ConnectionAdapters::Column.new('datetime', nil, 'datetime'),
19
+ 'logo_file_name' => ActiveRecord::ConnectionAdapters::Column.new('logo_file_name', nil, 'varchar(255)'),
20
+ 'logo_content_type' => ActiveRecord::ConnectionAdapters::Column.new('logo_content_type', nil, 'varchar(255)'),
21
+ 'logo_file_size' => ActiveRecord::ConnectionAdapters::Column.new('logo_file_size', nil, 'int(11)'),
22
+ 'logo_updated_at' => ActiveRecord::ConnectionAdapters::Column.new('logo_updated_at', nil, 'datetime'),
23
+ }
24
+ end
25
+
26
+ def self.columns
27
+ self.columns_hash.values
28
+ end
29
+
30
+ def self.class_name
31
+ self.name
32
+ end
33
+
34
+ def self.table_name
35
+ 'companies'
36
+ end
37
+
38
+ def self.attachment_definitions
39
+ {:logo => {}}
40
+ end
41
+
42
+ # not the real signature of the method, but forgive me
43
+ def self.before_destroy(s=nil)
44
+ @@before = s
45
+ end
46
+
47
+ include ActiveRecord::Reflection
48
+ include DependentProtectSecurity
49
+
50
+ def self.has_many(association_id, options = {})
51
+ reflection = create_reflection(:has_many, association_id, options, self)
52
+ end
53
+ def self.has_one(association_id, options = {})
54
+ reflection = create_reflection(:has_one, association_id, options, self)
55
+ end
56
+ def self.belongs_to(association_id, options = {})
57
+ reflection = create_reflection(:belongs_to, association_id, options, self)
58
+ end
59
+ has_many :companies, :dependent => :protect
60
+ has_one :company, :dependent => :protect
61
+ belongs_to :main_company, :dependent => :protect, :class_name => 'Company'
62
+
63
+ def companies
64
+ if @with_companies
65
+ [nil]
66
+ else
67
+ []
68
+ end
69
+ end
70
+
71
+ def company
72
+ @with_company
73
+ end
74
+
75
+ def main_company
76
+ @with_main_company
77
+ end
78
+
79
+ def name
80
+ end
81
+ end
@@ -0,0 +1,68 @@
1
+ require 'test/unit'
2
+ require File.join(File.dirname(__FILE__), 'company')
3
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/paperclip_bridge')
4
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/paperclip_bridge_helpers')
5
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/form_ui')
6
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/list_ui')
7
+
8
+ class PaperclipCore < ActiveScaffold::Config::Core
9
+ include ActiveScaffold::PaperclipBridge
10
+ end
11
+
12
+ class PaperclipTest < ActionView::TestCase
13
+ include ActiveScaffold::Helpers::ViewHelpers
14
+
15
+ def test_initialization_without_paperclip
16
+ Company.expects(:attachment_definitions)
17
+ config = PaperclipCore.new(:company)
18
+ assert !config.create.multipart?
19
+ assert !config.update.multipart?
20
+ assert !config.columns.any? {|column| column.form_ui == :paperclip}
21
+ end
22
+
23
+ def test_initialization
24
+ config = PaperclipCore.new(:company)
25
+ assert config.create.multipart?
26
+ assert config.update.multipart?
27
+ assert_equal :paperclip, config.columns[:logo].form_ui
28
+ assert_equal [:delete_logo], config.columns[:logo].params.to_a
29
+ %w(logo_file_name logo_file_size logo_updated_at logo_content_type).each do |attr|
30
+ assert !config.columns._inheritable.include?(attr.to_sym)
31
+ end
32
+ assert Company.instance_methods.include?('delete_logo')
33
+ assert Company.instance_methods.include?('delete_logo=')
34
+ end
35
+
36
+ def test_delete
37
+ PaperclipCore.new(:company)
38
+ company = Company.new
39
+ company.expects(:logo=).never
40
+ company.delete_logo = 'false'
41
+
42
+ company.expects(:logo).returns(stub(:dirty? => false))
43
+ company.expects(:logo=)
44
+ company.delete_logo = 'true'
45
+ end
46
+
47
+ def test_list_ui
48
+ config = PaperclipCore.new(:company)
49
+ company = Company.new
50
+
51
+ company.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => Company.attachment_definitions[:logo]))
52
+ assert_dom_equal '<a href="/system/file" onclick="window.open(this.href);return false;">file</a>', active_scaffold_column_paperclip(config.columns[:logo], company)
53
+
54
+ company.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => {:thumbnail => '40x40'}))
55
+ assert_dom_equal '<a href="/system/file" onclick="window.open(this.href);return false;"><img src="/system/file" border="0" alt="File"/></a>', active_scaffold_column_paperclip(config.columns[:logo], company)
56
+ end
57
+
58
+ def test_form_ui
59
+ config = PaperclipCore.new(:company)
60
+ @record = Company.new
61
+
62
+ @record.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => Company.attachment_definitions[:logo]))
63
+ assert_dom_equal '<div><a href="/system/file" onclick="window.open(this.href);return false;">file</a>|<a href="#" onclick="$(this).next().value=\'true\'; $(this).up().hide().next().show(); return false;">Remove or Replace file</a><input name="record[delete_logo]" type="hidden" id="record_delete_logo" value="false" /></div><div style="display: none"><input name="record[logo]" size="30" type="file" id="record_logo" /></div>', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo')
64
+
65
+ @record.stubs(:logo).returns(stub(:file? => false))
66
+ assert_dom_equal '<input name="record[logo]" size="30" type="file" id="record_logo" />', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo')
67
+ end
68
+ end
@@ -0,0 +1,27 @@
1
+ require 'test/unit'
2
+ require File.join(File.dirname(__FILE__), 'company')
3
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/tiny_mce/lib/tiny_mce_bridge')
4
+
5
+ class TinyMceTest < ActionView::TestCase
6
+ include ActiveScaffold::Helpers::ViewHelpers
7
+ include ActiveScaffold::TinyMceBridge
8
+
9
+ def test_includes
10
+ assert_match /.*<script type="text\/javascript">.*ActiveScaffold\.ActionLink\.Abstract\.prototype\.close = function\(\).*<\/script>.*/m, active_scaffold_includes
11
+ end
12
+
13
+ def test_form_ui
14
+ config = PaperclipCore.new(:company)
15
+ @record = Company.new
16
+ self.expects(:request).returns(stub(:xhr? => true))
17
+
18
+ assert_dom_equal "<textarea name=\"record[name]\" class=\"name-input mceEditor\" id=\"record_name\"></textarea><script type=\"text/javascript\">\n//<![CDATA[\ntinyMCE.execCommand('mceAddControl', false, 'record_name');\n//]]>\n</script>", active_scaffold_input_text_editor(config.columns[:name], :name => 'record[name]', :id => 'record_name', :class => 'name-input')
19
+ end
20
+
21
+ protected
22
+ def include_tiny_mce_if_needed; end
23
+ def tiny_mce_js; end
24
+ def using_tiny_mce?
25
+ true
26
+ end
27
+ end
@@ -0,0 +1,49 @@
1
+ require 'test/unit'
2
+ require File.join(File.dirname(__FILE__), 'company')
3
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/unobtrusive_date_picker/lib/unobtrusive_date_picker_bridge')
4
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/unobtrusive_date_picker/lib/view_helpers')
5
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/unobtrusive_date_picker/lib/form_ui')
6
+
7
+ class UDPCore < ActiveScaffold::Config::Core
8
+ include ActiveScaffold::UnobtrusiveDatePickerBridge
9
+ end
10
+
11
+ class UnobtrusiveDatePickerTest < ActionView::TestCase
12
+ include ActiveScaffold::Helpers::ViewHelpers
13
+ include ActiveScaffold::UnobtrusiveDatePickerHelpers
14
+
15
+ def test_set_form_ui
16
+ config = UDPCore.new(:company)
17
+ assert_equal nil, config.columns[:name].form_ui, 'form_ui for name'
18
+ assert_equal :datepicker, config.columns[:date].form_ui, 'form_ui for date'
19
+ assert_equal :datepicker, config.columns[:datetime].form_ui, 'form_ui for datetime'
20
+ end
21
+
22
+ def test_stylesheets
23
+ assert active_scaffold_stylesheets.include?('datepicker.css')
24
+ end
25
+
26
+ def test_javascripts
27
+ assert active_scaffold_javascripts.include?('datepicker.js')
28
+ assert active_scaffold_javascripts.include?('datepicker_lang/es.js')
29
+ end
30
+
31
+ def test_form_ui
32
+ config = UDPCore.new(:company)
33
+ self.expects(:date_select).returns('')
34
+ self.expects(:date_picker).returns('')
35
+ assert active_scaffold_input_datepicker(config.columns[:date], :name => 'record[date]', :id => 'record_date')
36
+
37
+ self.expects(:datetime_select).returns('')
38
+ self.expects(:date_picker).returns('')
39
+ assert active_scaffold_input_datepicker(config.columns[:datetime], :name => 'record[datetime]', :id => 'record_datetime')
40
+ end
41
+
42
+ private
43
+ def unobtrusive_datepicker_stylesheets
44
+ ['datepicker.css']
45
+ end
46
+ def unobtrusive_datepicker_javascripts
47
+ ['datepicker.js', 'datepicker_lang/es.js']
48
+ end
49
+ end
@@ -0,0 +1,57 @@
1
+ require 'test/unit'
2
+ require File.join(File.dirname(__FILE__), 'company')
3
+ require File.join(File.dirname(__FILE__), '../../lib/bridges/validation_reflection/lib/validation_reflection_bridge')
4
+
5
+ class ColumnWithValidationReflection < ActiveScaffold::DataStructures::Column
6
+ include ActiveScaffold::ValidationReflectionBridge
7
+ end
8
+
9
+ class ValidationReflectionTest < Test::Unit::TestCase
10
+ def test_set_required_for_validates_presence_of
11
+ Company.expects(:reflect_on_validations_for).with(:name).returns([stub(:macro => :validates_presence_of)])
12
+ column = ColumnWithValidationReflection.new(:name, Company)
13
+ assert column.required?
14
+ end
15
+
16
+ def test_set_required_for_validates_inclusion_of
17
+ Company.expects(:reflect_on_validations_for).with(:name).returns([stub(:macro => :validates_inclusion_of, :options => {})])
18
+ column = ColumnWithValidationReflection.new(:name, Company)
19
+ assert column.required?
20
+ end
21
+
22
+ def test_not_set_required_for_validates_inclusion_of_and_allow_nil
23
+ Company.expects(:reflect_on_validations_for).with(:name).returns([stub(:macro => :validates_inclusion_of, :options => {:allow_nil => true})])
24
+ column = ColumnWithValidationReflection.new(:name, Company)
25
+ assert !column.required?
26
+ end
27
+
28
+ def test_not_set_required_for_validates_inclusion_of_and_allow_blank
29
+ Company.expects(:reflect_on_validations_for).with(:name).returns([stub(:macro => :validates_inclusion_of, :options => {:allow_blank => true})])
30
+ column = ColumnWithValidationReflection.new(:name, Company)
31
+ assert !column.required?
32
+ end
33
+
34
+ def test_not_set_required_for_no_validation
35
+ Company.expects(:reflect_on_validations_for).with(:name).returns([])
36
+ column = ColumnWithValidationReflection.new(:name, Company)
37
+ assert !column.required?
38
+ end
39
+
40
+ def test_set_required_for_validates_presence_of_in_association
41
+ Company.stubs(:reflect_on_validations_for).returns([stub(:macro => :validates_presence_of)], [])
42
+ column = ColumnWithValidationReflection.new(:main_company, Company)
43
+ assert column.required?
44
+ end
45
+
46
+ def test_set_required_for_validates_presence_of_in_foreign_key
47
+ Company.stubs(:reflect_on_validations_for).returns([], [stub(:macro => :validates_presence_of)])
48
+ column = ColumnWithValidationReflection.new(:main_company, Company)
49
+ assert column.required?
50
+ end
51
+
52
+ def test_not_set_required_for_no_validation_in_association_neither_foreign_key
53
+ Company.stubs(:reflect_on_validations_for).returns([])
54
+ column = ColumnWithValidationReflection.new(:main_company, Company)
55
+ assert !column.required?
56
+ end
57
+ end
@@ -0,0 +1,15 @@
1
+ require File.join(File.dirname(__FILE__), '../test_helper.rb')
2
+
3
+ class Config::BaseTest < Test::Unit::TestCase
4
+ def setup
5
+ @base = ActiveScaffold::Config::Base.new(ActiveScaffold::Config::Core.new(:model_stub))
6
+ end
7
+
8
+ def test_formats
9
+ assert_equal [], @base.formats
10
+ @base.formats << :pdf
11
+ assert_equal [:pdf], @base.formats
12
+ @base.formats = [:html]
13
+ assert_equal [:html], @base.formats
14
+ end
15
+ end
@@ -0,0 +1,58 @@
1
+ require File.join(File.dirname(__FILE__), '../test_helper.rb')
2
+
3
+ class Config::CoreTest < Test::Unit::TestCase
4
+ def setup
5
+ @config = ActiveScaffold::Config::Core.new :model_stub
6
+ end
7
+
8
+ def test_default_options
9
+ assert !@config.add_sti_create_links?
10
+ assert !@config.sti_children
11
+ assert_equal [:create, :list, :search, :update, :delete, :show, :nested, :subform], @config.actions.to_a
12
+ assert_equal :default, @config.frontend
13
+ assert_equal :default, @config.theme
14
+ assert_equal 'ModelStub', @config.label(:count => 1)
15
+ assert_equal 'ModelStubs', @config.label
16
+ end
17
+
18
+ def test_add_sti_children
19
+ @config.sti_create_links = true
20
+ assert !@config.add_sti_create_links?
21
+ @config.sti_children = [:a]
22
+ assert @config.add_sti_create_links?
23
+ end
24
+
25
+ def test_sti_children
26
+ @config.sti_children = [:a]
27
+ assert_equal [:a], @config.sti_children
28
+ end
29
+
30
+ def test_actions
31
+ assert @config.actions.include?(:create)
32
+ @config.actions = [:list]
33
+ assert !@config.actions.include?(:create)
34
+ assert_equal [:list], @config.actions.to_a
35
+ end
36
+
37
+ def test_form_ui_in_sti
38
+ @config.columns << :type
39
+
40
+ @config.sti_children = [:model_stub]
41
+ @config._configure_sti
42
+ assert_equal :select, @config.columns[:type].form_ui
43
+ assert_equal [['Modelstub', 'ModelStub']], @config.columns[:type].options[:options]
44
+
45
+ @config.columns[:type].form_ui = nil
46
+ @config.sti_create_links = true
47
+ @config._configure_sti
48
+ assert_equal :hidden, @config.columns[:type].form_ui
49
+ end
50
+
51
+ def test_sti_children_links
52
+ @config.sti_children = [:model_stub]
53
+ @config.sti_create_links = true
54
+ @config.action_links.add @config.create.link
55
+ @config._add_sti_create_links
56
+ assert_equal 'Create Modelstub', @config.action_links[:new].label
57
+ end
58
+ end
@@ -0,0 +1,58 @@
1
+ require File.join(File.dirname(__FILE__), '../test_helper.rb')
2
+
3
+ class Config::CreateTest < Test::Unit::TestCase
4
+ def setup
5
+ @config = ActiveScaffold::Config::Core.new :model_stub
6
+ @default_link = @config.create.link
7
+ end
8
+
9
+ def teardown
10
+ @config.create.link = @default_link
11
+ end
12
+
13
+ def test_default_options
14
+ assert !@config.create.persistent
15
+ assert @config.create.action_after_create.nil?
16
+ assert_equal 'Create ModelStub', @config.create.label
17
+ end
18
+
19
+ def test_link_defaults
20
+ link = @config.create.link
21
+ assert !link.page?
22
+ assert !link.popup?
23
+ assert !link.confirm?
24
+ assert_equal "new", link.action
25
+ assert_equal "Create New", link.label
26
+ assert link.inline?
27
+ blank = {}
28
+ assert_equal blank, link.html_options
29
+ assert_equal :get, link.method
30
+ assert_equal :collection, link.type
31
+ assert_equal :create, link.crud_type
32
+ assert_equal :create_authorized?, link.security_method
33
+ end
34
+
35
+ def test_setting_link
36
+ @config.create.link = ActiveScaffold::DataStructures::ActionLink.new('update', :label => 'Monkeys')
37
+ assert_not_equal(@default_link, @config.create.link)
38
+ end
39
+
40
+ def test_label
41
+ label = 'create new monkeys'
42
+ @config.create.label = label
43
+ assert_equal label, @config.create.label
44
+ I18n.backend.store_translations :en, :active_scaffold => {:create_new_model => 'Create new %{model}'}
45
+ @config.create.label = :create_new_model
46
+ assert_equal 'Create new ModelStub', @config.create.label
47
+ end
48
+
49
+ def test_persistent
50
+ @config.create.persistent = true
51
+ assert @config.create.persistent
52
+ end
53
+
54
+ def test_action_after_create
55
+ @config.create.action_after_create = :edit
56
+ assert_equal :edit, @config.create.action_after_create
57
+ end
58
+ end
@@ -0,0 +1,33 @@
1
+ require File.join(File.dirname(__FILE__), '../test_helper.rb')
2
+
3
+ class Config::DeleteTest < Test::Unit::TestCase
4
+ def setup
5
+ @config = ActiveScaffold::Config::Core.new :model_stub
6
+ @default_link = @config.delete.link
7
+ end
8
+
9
+ def teardown
10
+ @config.delete.link = @default_link
11
+ end
12
+
13
+ def test_link_defaults
14
+ link = @config.delete.link
15
+ assert !link.page?
16
+ assert !link.popup?
17
+ assert link.confirm?
18
+ assert_equal "delete", link.action
19
+ assert_equal "Delete", link.label
20
+ assert link.inline?
21
+ blank = {}
22
+ assert_equal blank, link.html_options
23
+ assert_equal :delete, link.method
24
+ assert_equal :member, link.type
25
+ assert_equal :delete, link.crud_type
26
+ assert_equal :delete_authorized?, link.security_method
27
+ end
28
+
29
+ def test_setting_link
30
+ @config.delete.link = ActiveScaffold::DataStructures::ActionLink.new('update', :label => 'Monkeys')
31
+ assert_not_equal(@default_link, @config.delete.link)
32
+ end
33
+ end
@@ -0,0 +1,47 @@
1
+ require File.join(File.dirname(__FILE__), '../test_helper.rb')
2
+
3
+ class Config::FieldSearchTest < Test::Unit::TestCase
4
+ def setup
5
+ @config = ActiveScaffold::Config::Core.new :model_stub
6
+ @config.actions.swap :search, :field_search
7
+ @default_link = @config.field_search.link
8
+ end
9
+
10
+ def teardown
11
+ @config.field_search.link = @default_link
12
+ end
13
+
14
+ def test_default_options
15
+ assert_equal :full, @config.field_search.text_search
16
+ end
17
+
18
+ def test_text_search
19
+ @config.field_search.text_search = :start
20
+ assert_equal :start, @config.field_search.text_search
21
+ @config.field_search.text_search = :end
22
+ assert_equal :end, @config.field_search.text_search
23
+ @config.field_search.text_search = false
24
+ assert !@config.field_search.text_search
25
+ end
26
+
27
+ def test_link_defaults
28
+ link = @config.field_search.link
29
+ assert !link.page?
30
+ assert !link.popup?
31
+ assert !link.confirm?
32
+ assert_equal "show_search", link.action
33
+ assert_equal "Search", link.label
34
+ assert link.inline?
35
+ blank = {}
36
+ assert_equal blank, link.html_options
37
+ assert_equal :get, link.method
38
+ assert_equal :collection, link.type
39
+ assert_equal :read, link.crud_type
40
+ assert_equal :search_authorized?, link.security_method
41
+ end
42
+
43
+ def test_setting_link
44
+ @config.field_search.link = ActiveScaffold::DataStructures::ActionLink.new('update', :label => 'Monkeys')
45
+ assert_not_equal(@default_link, @config.field_search.link)
46
+ end
47
+ end