actionpack 2.3.18 → 3.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of actionpack might be problematic. Click here for more details.

Files changed (513) hide show
  1. data/CHANGELOG +15 -64
  2. data/README +39 -48
  3. data/lib/abstract_controller.rb +22 -0
  4. data/lib/abstract_controller/base.rb +191 -0
  5. data/lib/abstract_controller/callbacks.rb +113 -0
  6. data/lib/abstract_controller/collector.rb +30 -0
  7. data/lib/abstract_controller/compatibility.rb +18 -0
  8. data/lib/abstract_controller/helpers.rb +163 -0
  9. data/lib/abstract_controller/layouts.rb +413 -0
  10. data/lib/abstract_controller/localized_cache.rb +49 -0
  11. data/lib/abstract_controller/logger.rb +13 -0
  12. data/lib/abstract_controller/rendering.rb +238 -0
  13. data/lib/{action_controller → abstract_controller}/translation.rb +1 -1
  14. data/lib/action_controller.rb +68 -102
  15. data/lib/action_controller/base.rb +77 -1409
  16. data/lib/action_controller/caching.rb +58 -45
  17. data/lib/action_controller/caching/actions.rb +100 -114
  18. data/lib/action_controller/caching/fragments.rb +17 -19
  19. data/lib/action_controller/caching/pages.rb +12 -6
  20. data/lib/action_controller/caching/sweeping.rb +42 -0
  21. data/lib/action_controller/deprecated.rb +5 -0
  22. data/lib/action_controller/deprecated/dispatcher.rb +28 -0
  23. data/lib/action_controller/deprecated/integration_test.rb +2 -0
  24. data/lib/action_controller/deprecated/performance_test.rb +1 -0
  25. data/lib/action_controller/metal.rb +125 -0
  26. data/lib/action_controller/metal/compatibility.rb +141 -0
  27. data/lib/action_controller/metal/conditional_get.rb +86 -0
  28. data/lib/action_controller/metal/configuration.rb +28 -0
  29. data/lib/action_controller/metal/cookies.rb +17 -0
  30. data/lib/action_controller/metal/exceptions.rb +46 -0
  31. data/lib/action_controller/metal/flash.rb +28 -0
  32. data/lib/action_controller/metal/head.rb +33 -0
  33. data/lib/action_controller/metal/helpers.rb +116 -0
  34. data/lib/action_controller/metal/hide_actions.rb +50 -0
  35. data/lib/action_controller/{http_authentication.rb → metal/http_authentication.rb} +18 -15
  36. data/lib/action_controller/metal/instrumentation.rb +99 -0
  37. data/lib/action_controller/metal/mime_responds.rb +300 -0
  38. data/lib/action_controller/metal/rack_delegation.rb +35 -0
  39. data/lib/action_controller/metal/redirecting.rb +90 -0
  40. data/lib/action_controller/metal/renderers.rb +95 -0
  41. data/lib/action_controller/metal/rendering.rb +69 -0
  42. data/lib/action_controller/metal/request_forgery_protection.rb +115 -0
  43. data/lib/action_controller/metal/rescue.rb +13 -0
  44. data/lib/action_controller/metal/responder.rb +220 -0
  45. data/lib/action_controller/{session_management.rb → metal/session_management.rb} +5 -14
  46. data/lib/action_controller/{streaming.rb → metal/streaming.rb} +13 -12
  47. data/lib/action_controller/metal/testing.rb +42 -0
  48. data/lib/action_controller/metal/url_for.rb +157 -0
  49. data/lib/action_controller/{verification.rb → metal/verification.rb} +41 -41
  50. data/lib/action_controller/middleware.rb +38 -0
  51. data/lib/action_controller/polymorphic_routes.rb +20 -26
  52. data/lib/action_controller/railtie.rb +30 -0
  53. data/lib/action_controller/railties/subscriber.rb +63 -0
  54. data/lib/action_controller/record_identifier.rb +3 -16
  55. data/lib/action_controller/test_case.rb +156 -18
  56. data/lib/action_controller/url_rewriter.rb +47 -200
  57. data/lib/action_controller/vendor/html-scanner.rb +16 -12
  58. data/lib/action_controller/vendor/html-scanner/html/node.rb +1 -1
  59. data/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +12 -9
  60. data/lib/action_dispatch.rb +88 -0
  61. data/lib/action_dispatch/http/cache.rb +123 -0
  62. data/lib/action_dispatch/http/filter_parameters.rb +98 -0
  63. data/lib/{action_controller → action_dispatch/http}/headers.rb +8 -8
  64. data/lib/action_dispatch/http/mime_negotiation.rb +101 -0
  65. data/lib/{action_controller → action_dispatch/http}/mime_type.rb +30 -11
  66. data/lib/{action_controller → action_dispatch/http}/mime_types.rb +5 -3
  67. data/lib/action_dispatch/http/parameters.rb +49 -0
  68. data/lib/action_dispatch/http/request.rb +223 -0
  69. data/lib/action_dispatch/http/response.rb +209 -0
  70. data/lib/action_dispatch/http/upload.rb +48 -0
  71. data/lib/action_dispatch/http/url.rb +129 -0
  72. data/lib/action_dispatch/middleware/callbacks.rb +50 -0
  73. data/lib/action_dispatch/middleware/cascade.rb +29 -0
  74. data/lib/action_dispatch/middleware/cookies.rb +216 -0
  75. data/lib/{action_controller → action_dispatch/middleware}/flash.rb +51 -90
  76. data/lib/action_dispatch/middleware/head.rb +18 -0
  77. data/lib/action_dispatch/middleware/params_parser.rb +78 -0
  78. data/lib/action_dispatch/middleware/rescue.rb +26 -0
  79. data/lib/action_dispatch/middleware/session/abstract_store.rb +209 -0
  80. data/lib/{action_controller → action_dispatch/middleware}/session/cookie_store.rb +56 -60
  81. data/lib/action_dispatch/middleware/session/mem_cache_store.rb +47 -0
  82. data/lib/action_dispatch/middleware/show_exceptions.rb +173 -0
  83. data/lib/{action_controller/middleware_stack.rb → action_dispatch/middleware/stack.rb} +23 -13
  84. data/lib/action_dispatch/middleware/static.rb +44 -0
  85. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_request_and_response.erb +10 -3
  86. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_trace.erb +4 -4
  87. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb +10 -0
  88. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/layout.erb +2 -2
  89. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/missing_template.erb +0 -0
  90. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/routing_error.erb +0 -0
  91. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/template_error.erb +3 -3
  92. data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/unknown_action.erb +0 -0
  93. data/lib/action_dispatch/railtie.rb +15 -0
  94. data/lib/action_dispatch/routing.rb +217 -0
  95. data/lib/action_dispatch/routing/deprecated_mapper.rb +877 -0
  96. data/lib/action_dispatch/routing/mapper.rb +649 -0
  97. data/lib/action_dispatch/routing/route.rb +55 -0
  98. data/lib/action_dispatch/routing/route_set.rb +445 -0
  99. data/lib/action_dispatch/testing/assertions.rb +21 -0
  100. data/lib/action_dispatch/testing/assertions/dom.rb +37 -0
  101. data/lib/{action_controller/assertions/model_assertions.rb → action_dispatch/testing/assertions/model.rb} +2 -4
  102. data/lib/action_dispatch/testing/assertions/response.rb +154 -0
  103. data/lib/{action_controller/assertions/routing_assertions.rb → action_dispatch/testing/assertions/routing.rb} +72 -34
  104. data/lib/{action_controller/assertions/selector_assertions.rb → action_dispatch/testing/assertions/selector.rb} +14 -11
  105. data/lib/{action_controller/assertions/tag_assertions.rb → action_dispatch/testing/assertions/tag.rb} +25 -14
  106. data/lib/{action_controller → action_dispatch/testing}/integration.rb +173 -406
  107. data/lib/action_dispatch/testing/performance_test.rb +17 -0
  108. data/lib/action_dispatch/testing/test_process.rb +42 -0
  109. data/lib/action_dispatch/testing/test_request.rb +83 -0
  110. data/lib/action_dispatch/testing/test_response.rb +136 -0
  111. data/lib/action_pack/version.rb +3 -3
  112. data/lib/action_view.rb +29 -26
  113. data/lib/action_view/base.rb +101 -148
  114. data/lib/action_view/context.rb +44 -0
  115. data/lib/action_view/helpers.rb +6 -4
  116. data/lib/action_view/helpers/{active_record_helper.rb → active_model_helper.rb} +63 -63
  117. data/lib/action_view/helpers/asset_tag_helper.rb +166 -31
  118. data/lib/action_view/helpers/cache_helper.rb +1 -1
  119. data/lib/action_view/helpers/capture_helper.rb +40 -8
  120. data/lib/action_view/helpers/csrf_helper.rb +2 -4
  121. data/lib/action_view/helpers/date_helper.rb +14 -15
  122. data/lib/action_view/helpers/form_helper.rb +121 -24
  123. data/lib/action_view/helpers/form_options_helper.rb +26 -25
  124. data/lib/action_view/helpers/form_tag_helper.rb +42 -33
  125. data/lib/action_view/helpers/javascript_helper.rb +1 -109
  126. data/lib/action_view/helpers/number_helper.rb +4 -1
  127. data/lib/action_view/helpers/prototype_helper.rb +75 -499
  128. data/lib/action_view/helpers/raw_output_helper.rb +1 -1
  129. data/lib/action_view/helpers/record_tag_helper.rb +3 -3
  130. data/lib/action_view/helpers/sanitize_helper.rb +3 -2
  131. data/lib/action_view/helpers/scriptaculous_helper.rb +89 -53
  132. data/lib/action_view/helpers/tag_helper.rb +12 -13
  133. data/lib/action_view/helpers/text_helper.rb +33 -38
  134. data/lib/action_view/helpers/translation_helper.rb +11 -35
  135. data/lib/action_view/helpers/url_helper.rb +140 -134
  136. data/lib/action_view/locale/en.yml +34 -28
  137. data/lib/action_view/paths.rb +27 -24
  138. data/lib/action_view/railtie.rb +17 -0
  139. data/lib/action_view/railties/subscriber.rb +24 -0
  140. data/lib/action_view/{partials.rb → render/partials.rb} +161 -51
  141. data/lib/action_view/render/rendering.rb +117 -0
  142. data/lib/action_view/template.rb +88 -217
  143. data/lib/action_view/template/error.rb +105 -0
  144. data/lib/action_view/template/handler.rb +41 -0
  145. data/lib/action_view/template/handlers.rb +54 -0
  146. data/lib/action_view/{template_handlers → template/handlers}/builder.rb +6 -6
  147. data/lib/action_view/template/handlers/erb.rb +58 -0
  148. data/lib/action_view/{template_handlers → template/handlers}/rjs.rb +8 -3
  149. data/lib/action_view/template/resolver.rb +164 -0
  150. data/lib/action_view/template/text.rb +40 -0
  151. data/lib/action_view/test_case.rb +18 -18
  152. metadata +165 -420
  153. data/RUNNING_UNIT_TESTS +0 -24
  154. data/Rakefile +0 -158
  155. data/install.rb +0 -30
  156. data/lib/action_controller/assertions/dom_assertions.rb +0 -55
  157. data/lib/action_controller/assertions/response_assertions.rb +0 -169
  158. data/lib/action_controller/benchmarking.rb +0 -107
  159. data/lib/action_controller/caching/sweeper.rb +0 -45
  160. data/lib/action_controller/cgi_ext.rb +0 -15
  161. data/lib/action_controller/cgi_ext/cookie.rb +0 -112
  162. data/lib/action_controller/cgi_ext/query_extension.rb +0 -22
  163. data/lib/action_controller/cgi_ext/stdinput.rb +0 -24
  164. data/lib/action_controller/cgi_process.rb +0 -77
  165. data/lib/action_controller/cookies.rb +0 -197
  166. data/lib/action_controller/dispatcher.rb +0 -133
  167. data/lib/action_controller/failsafe.rb +0 -87
  168. data/lib/action_controller/filters.rb +0 -680
  169. data/lib/action_controller/helpers.rb +0 -225
  170. data/lib/action_controller/layout.rb +0 -286
  171. data/lib/action_controller/middlewares.rb +0 -14
  172. data/lib/action_controller/mime_responds.rb +0 -193
  173. data/lib/action_controller/params_parser.rb +0 -77
  174. data/lib/action_controller/performance_test.rb +0 -15
  175. data/lib/action_controller/rack_lint_patch.rb +0 -36
  176. data/lib/action_controller/reloader.rb +0 -54
  177. data/lib/action_controller/request.rb +0 -518
  178. data/lib/action_controller/request_forgery_protection.rb +0 -116
  179. data/lib/action_controller/rescue.rb +0 -183
  180. data/lib/action_controller/resources.rb +0 -682
  181. data/lib/action_controller/response.rb +0 -237
  182. data/lib/action_controller/routing.rb +0 -388
  183. data/lib/action_controller/routing/builder.rb +0 -197
  184. data/lib/action_controller/routing/optimisations.rb +0 -130
  185. data/lib/action_controller/routing/recognition_optimisation.rb +0 -167
  186. data/lib/action_controller/routing/route.rb +0 -265
  187. data/lib/action_controller/routing/route_set.rb +0 -503
  188. data/lib/action_controller/routing/routing_ext.rb +0 -49
  189. data/lib/action_controller/routing/segments.rb +0 -343
  190. data/lib/action_controller/session/abstract_store.rb +0 -276
  191. data/lib/action_controller/session/mem_cache_store.rb +0 -60
  192. data/lib/action_controller/status_codes.rb +0 -88
  193. data/lib/action_controller/string_coercion.rb +0 -29
  194. data/lib/action_controller/templates/rescues/diagnostics.erb +0 -11
  195. data/lib/action_controller/test_process.rb +0 -580
  196. data/lib/action_controller/uploaded_file.rb +0 -44
  197. data/lib/action_view/helpers/benchmark_helper.rb +0 -54
  198. data/lib/action_view/inline_template.rb +0 -19
  199. data/lib/action_view/reloadable_template.rb +0 -117
  200. data/lib/action_view/renderable.rb +0 -109
  201. data/lib/action_view/renderable_partial.rb +0 -53
  202. data/lib/action_view/template_error.rb +0 -99
  203. data/lib/action_view/template_handler.rb +0 -34
  204. data/lib/action_view/template_handlers.rb +0 -48
  205. data/lib/action_view/template_handlers/erb.rb +0 -25
  206. data/lib/actionpack.rb +0 -2
  207. data/test/abstract_unit.rb +0 -78
  208. data/test/active_record_unit.rb +0 -104
  209. data/test/activerecord/active_record_store_test.rb +0 -221
  210. data/test/activerecord/render_partial_with_record_identification_test.rb +0 -188
  211. data/test/adv_attr_test.rb +0 -20
  212. data/test/controller/action_pack_assertions_test.rb +0 -545
  213. data/test/controller/addresses_render_test.rb +0 -37
  214. data/test/controller/assert_select_test.rb +0 -735
  215. data/test/controller/base_test.rb +0 -217
  216. data/test/controller/benchmark_test.rb +0 -32
  217. data/test/controller/caching_test.rb +0 -743
  218. data/test/controller/capture_test.rb +0 -66
  219. data/test/controller/content_type_test.rb +0 -178
  220. data/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
  221. data/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
  222. data/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
  223. data/test/controller/cookie_test.rb +0 -208
  224. data/test/controller/deprecation/deprecated_base_methods_test.rb +0 -32
  225. data/test/controller/dispatcher_test.rb +0 -144
  226. data/test/controller/dom_assertions_test.rb +0 -53
  227. data/test/controller/failsafe_test.rb +0 -60
  228. data/test/controller/fake_controllers.rb +0 -33
  229. data/test/controller/fake_models.rb +0 -19
  230. data/test/controller/filter_params_test.rb +0 -52
  231. data/test/controller/filters_test.rb +0 -885
  232. data/test/controller/flash_test.rb +0 -174
  233. data/test/controller/header_test.rb +0 -14
  234. data/test/controller/helper_test.rb +0 -224
  235. data/test/controller/html-scanner/cdata_node_test.rb +0 -15
  236. data/test/controller/html-scanner/document_test.rb +0 -148
  237. data/test/controller/html-scanner/node_test.rb +0 -89
  238. data/test/controller/html-scanner/sanitizer_test.rb +0 -300
  239. data/test/controller/html-scanner/tag_node_test.rb +0 -238
  240. data/test/controller/html-scanner/text_node_test.rb +0 -50
  241. data/test/controller/html-scanner/tokenizer_test.rb +0 -131
  242. data/test/controller/http_basic_authentication_test.rb +0 -113
  243. data/test/controller/http_digest_authentication_test.rb +0 -254
  244. data/test/controller/integration_test.rb +0 -526
  245. data/test/controller/layout_test.rb +0 -215
  246. data/test/controller/localized_templates_test.rb +0 -24
  247. data/test/controller/logging_test.rb +0 -46
  248. data/test/controller/middleware_stack_test.rb +0 -90
  249. data/test/controller/mime_responds_test.rb +0 -536
  250. data/test/controller/mime_type_test.rb +0 -93
  251. data/test/controller/output_escaping_test.rb +0 -19
  252. data/test/controller/polymorphic_routes_test.rb +0 -297
  253. data/test/controller/rack_test.rb +0 -308
  254. data/test/controller/record_identifier_test.rb +0 -139
  255. data/test/controller/redirect_test.rb +0 -285
  256. data/test/controller/reloader_test.rb +0 -125
  257. data/test/controller/render_test.rb +0 -1783
  258. data/test/controller/request/json_params_parsing_test.rb +0 -65
  259. data/test/controller/request/multipart_params_parsing_test.rb +0 -177
  260. data/test/controller/request/query_string_parsing_test.rb +0 -129
  261. data/test/controller/request/test_request_test.rb +0 -35
  262. data/test/controller/request/url_encoded_params_parsing_test.rb +0 -146
  263. data/test/controller/request/xml_params_parsing_test.rb +0 -103
  264. data/test/controller/request_forgery_protection_test.rb +0 -233
  265. data/test/controller/request_test.rb +0 -398
  266. data/test/controller/rescue_test.rb +0 -541
  267. data/test/controller/resources_test.rb +0 -1393
  268. data/test/controller/routing_test.rb +0 -2592
  269. data/test/controller/selector_test.rb +0 -628
  270. data/test/controller/send_file_test.rb +0 -171
  271. data/test/controller/session/abstract_store_test.rb +0 -64
  272. data/test/controller/session/cookie_store_test.rb +0 -354
  273. data/test/controller/session/mem_cache_store_test.rb +0 -187
  274. data/test/controller/session/test_session_test.rb +0 -58
  275. data/test/controller/test_test.rb +0 -700
  276. data/test/controller/translation_test.rb +0 -26
  277. data/test/controller/url_rewriter_test.rb +0 -395
  278. data/test/controller/verification_test.rb +0 -270
  279. data/test/controller/view_paths_test.rb +0 -141
  280. data/test/controller/webservice_test.rb +0 -273
  281. data/test/fixtures/_top_level_partial.html.erb +0 -1
  282. data/test/fixtures/_top_level_partial_only.erb +0 -1
  283. data/test/fixtures/addresses/list.erb +0 -1
  284. data/test/fixtures/alternate_helpers/foo_helper.rb +0 -3
  285. data/test/fixtures/bad_customers/_bad_customer.html.erb +0 -1
  286. data/test/fixtures/companies.yml +0 -24
  287. data/test/fixtures/company.rb +0 -10
  288. data/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +0 -1
  289. data/test/fixtures/content_type/render_default_for_rhtml.rhtml +0 -1
  290. data/test/fixtures/content_type/render_default_for_rjs.rjs +0 -1
  291. data/test/fixtures/content_type/render_default_for_rxml.rxml +0 -1
  292. data/test/fixtures/customers/_customer.html.erb +0 -1
  293. data/test/fixtures/db_definitions/sqlite.sql +0 -49
  294. data/test/fixtures/developer.rb +0 -9
  295. data/test/fixtures/developers.yml +0 -21
  296. data/test/fixtures/developers/_developer.erb +0 -1
  297. data/test/fixtures/developers_projects.yml +0 -13
  298. data/test/fixtures/failsafe/500.html +0 -1
  299. data/test/fixtures/fun/games/_game.erb +0 -1
  300. data/test/fixtures/fun/games/hello_world.erb +0 -1
  301. data/test/fixtures/fun/serious/games/_game.erb +0 -1
  302. data/test/fixtures/functional_caching/_partial.erb +0 -3
  303. data/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +0 -3
  304. data/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +0 -6
  305. data/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +0 -5
  306. data/test/fixtures/functional_caching/fragment_cached.html.erb +0 -2
  307. data/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +0 -1
  308. data/test/fixtures/functional_caching/inline_fragment_cached.html.erb +0 -2
  309. data/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +0 -1
  310. data/test/fixtures/good_customers/_good_customer.html.erb +0 -1
  311. data/test/fixtures/helpers/abc_helper.rb +0 -5
  312. data/test/fixtures/helpers/fun/games_helper.rb +0 -3
  313. data/test/fixtures/helpers/fun/pdf_helper.rb +0 -3
  314. data/test/fixtures/layout_tests/abs_path_layout.rhtml +0 -1
  315. data/test/fixtures/layout_tests/alt/hello.rhtml +0 -1
  316. data/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
  317. data/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +0 -1
  318. data/test/fixtures/layout_tests/layouts/item.rhtml +0 -1
  319. data/test/fixtures/layout_tests/layouts/layout_test.rhtml +0 -1
  320. data/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +0 -1
  321. data/test/fixtures/layout_tests/layouts/third_party_template_library.mab +0 -1
  322. data/test/fixtures/layout_tests/views/hello.rhtml +0 -1
  323. data/test/fixtures/layouts/_column.html.erb +0 -2
  324. data/test/fixtures/layouts/block_with_layout.erb +0 -3
  325. data/test/fixtures/layouts/builder.builder +0 -3
  326. data/test/fixtures/layouts/default_html.html.erb +0 -1
  327. data/test/fixtures/layouts/partial_with_layout.erb +0 -3
  328. data/test/fixtures/layouts/standard.erb +0 -1
  329. data/test/fixtures/layouts/talk_from_action.erb +0 -2
  330. data/test/fixtures/layouts/xhr.html.erb +0 -2
  331. data/test/fixtures/layouts/yield.erb +0 -2
  332. data/test/fixtures/localized/hello_world.de.html +0 -1
  333. data/test/fixtures/localized/hello_world.en.html +0 -1
  334. data/test/fixtures/mascot.rb +0 -3
  335. data/test/fixtures/mascots.yml +0 -4
  336. data/test/fixtures/mascots/_mascot.html.erb +0 -1
  337. data/test/fixtures/multipart/binary_file +0 -0
  338. data/test/fixtures/multipart/boundary_problem_file +0 -10
  339. data/test/fixtures/multipart/bracketed_param +0 -5
  340. data/test/fixtures/multipart/empty +0 -10
  341. data/test/fixtures/multipart/hello.txt +0 -1
  342. data/test/fixtures/multipart/large_text_file +0 -10
  343. data/test/fixtures/multipart/mixed_files +0 -0
  344. data/test/fixtures/multipart/mona_lisa.jpg +0 -0
  345. data/test/fixtures/multipart/none +0 -9
  346. data/test/fixtures/multipart/single_parameter +0 -5
  347. data/test/fixtures/multipart/text_file +0 -10
  348. data/test/fixtures/override/test/hello_world.erb +0 -1
  349. data/test/fixtures/override2/layouts/test/sub.erb +0 -1
  350. data/test/fixtures/post_test/layouts/post.html.erb +0 -1
  351. data/test/fixtures/post_test/layouts/super_post.iphone.erb +0 -1
  352. data/test/fixtures/post_test/post/index.html.erb +0 -1
  353. data/test/fixtures/post_test/post/index.iphone.erb +0 -1
  354. data/test/fixtures/post_test/super_post/index.html.erb +0 -1
  355. data/test/fixtures/post_test/super_post/index.iphone.erb +0 -1
  356. data/test/fixtures/project.rb +0 -3
  357. data/test/fixtures/projects.yml +0 -7
  358. data/test/fixtures/projects/_project.erb +0 -1
  359. data/test/fixtures/public/404.html +0 -1
  360. data/test/fixtures/public/500.da.html +0 -1
  361. data/test/fixtures/public/500.html +0 -1
  362. data/test/fixtures/public/absolute/test.css +0 -23
  363. data/test/fixtures/public/absolute/test.js +0 -63
  364. data/test/fixtures/public/images/rails.png +0 -0
  365. data/test/fixtures/public/javascripts/application.js +0 -1
  366. data/test/fixtures/public/javascripts/bank.js +0 -1
  367. data/test/fixtures/public/javascripts/controls.js +0 -1
  368. data/test/fixtures/public/javascripts/dragdrop.js +0 -1
  369. data/test/fixtures/public/javascripts/effects.js +0 -1
  370. data/test/fixtures/public/javascripts/prototype.js +0 -1
  371. data/test/fixtures/public/javascripts/robber.js +0 -1
  372. data/test/fixtures/public/javascripts/subdir/subdir.js +0 -1
  373. data/test/fixtures/public/javascripts/version.1.0.js +0 -1
  374. data/test/fixtures/public/stylesheets/bank.css +0 -1
  375. data/test/fixtures/public/stylesheets/robber.css +0 -1
  376. data/test/fixtures/public/stylesheets/subdir/subdir.css +0 -1
  377. data/test/fixtures/public/stylesheets/version.1.0.css +0 -1
  378. data/test/fixtures/quiz/questions/_question.html.erb +0 -1
  379. data/test/fixtures/replies.yml +0 -15
  380. data/test/fixtures/replies/_reply.erb +0 -1
  381. data/test/fixtures/reply.rb +0 -7
  382. data/test/fixtures/respond_to/all_types_with_layout.html.erb +0 -1
  383. data/test/fixtures/respond_to/all_types_with_layout.js.rjs +0 -1
  384. data/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +0 -1
  385. data/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +0 -1
  386. data/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +0 -1
  387. data/test/fixtures/respond_to/layouts/missing.html.erb +0 -1
  388. data/test/fixtures/respond_to/layouts/standard.html.erb +0 -1
  389. data/test/fixtures/respond_to/layouts/standard.iphone.erb +0 -1
  390. data/test/fixtures/respond_to/using_defaults.html.erb +0 -1
  391. data/test/fixtures/respond_to/using_defaults.js.rjs +0 -1
  392. data/test/fixtures/respond_to/using_defaults.xml.builder +0 -1
  393. data/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +0 -1
  394. data/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +0 -1
  395. data/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +0 -1
  396. data/test/fixtures/scope/test/modgreet.erb +0 -1
  397. data/test/fixtures/session_autoload_test/session_autoload_test/foo.rb +0 -10
  398. data/test/fixtures/shared.html.erb +0 -1
  399. data/test/fixtures/symlink_parent/symlinked_layout.erb +0 -5
  400. data/test/fixtures/test/_counter.html.erb +0 -1
  401. data/test/fixtures/test/_customer.erb +0 -1
  402. data/test/fixtures/test/_customer_counter.erb +0 -1
  403. data/test/fixtures/test/_customer_counter_with_as.erb +0 -1
  404. data/test/fixtures/test/_customer_greeting.erb +0 -1
  405. data/test/fixtures/test/_customer_with_var.erb +0 -1
  406. data/test/fixtures/test/_form.erb +0 -1
  407. data/test/fixtures/test/_from_helper.erb +0 -1
  408. data/test/fixtures/test/_hash_greeting.erb +0 -1
  409. data/test/fixtures/test/_hash_object.erb +0 -2
  410. data/test/fixtures/test/_hello.builder +0 -1
  411. data/test/fixtures/test/_labelling_form.erb +0 -1
  412. data/test/fixtures/test/_layout_for_block_with_args.html.erb +0 -3
  413. data/test/fixtures/test/_layout_for_partial.html.erb +0 -3
  414. data/test/fixtures/test/_local_inspector.html.erb +0 -1
  415. data/test/fixtures/test/_one.html.erb +0 -1
  416. data/test/fixtures/test/_partial.erb +0 -1
  417. data/test/fixtures/test/_partial.html.erb +0 -1
  418. data/test/fixtures/test/_partial.js.erb +0 -1
  419. data/test/fixtures/test/_partial_for_use_in_layout.html.erb +0 -1
  420. data/test/fixtures/test/_partial_only.erb +0 -1
  421. data/test/fixtures/test/_partial_with_only_html_version.html.erb +0 -1
  422. data/test/fixtures/test/_person.erb +0 -2
  423. data/test/fixtures/test/_raise.html.erb +0 -1
  424. data/test/fixtures/test/_two.html.erb +0 -1
  425. data/test/fixtures/test/_utf8_partial.html.erb +0 -1
  426. data/test/fixtures/test/_utf8_partial_magic.html.erb +0 -2
  427. data/test/fixtures/test/action_talk_to_layout.erb +0 -2
  428. data/test/fixtures/test/array_translation.erb +0 -1
  429. data/test/fixtures/test/calling_partial_with_layout.html.erb +0 -1
  430. data/test/fixtures/test/capturing.erb +0 -4
  431. data/test/fixtures/test/content_for.erb +0 -2
  432. data/test/fixtures/test/content_for_concatenated.erb +0 -3
  433. data/test/fixtures/test/content_for_with_parameter.erb +0 -2
  434. data/test/fixtures/test/delete_with_js.rjs +0 -2
  435. data/test/fixtures/test/dont_pick_me +0 -1
  436. data/test/fixtures/test/dot.directory/render_file_with_ivar.erb +0 -1
  437. data/test/fixtures/test/enum_rjs_test.rjs +0 -6
  438. data/test/fixtures/test/formatted_html_erb.html.erb +0 -1
  439. data/test/fixtures/test/formatted_xml_erb.builder +0 -1
  440. data/test/fixtures/test/formatted_xml_erb.html.erb +0 -1
  441. data/test/fixtures/test/formatted_xml_erb.xml.erb +0 -1
  442. data/test/fixtures/test/greeting.erb +0 -1
  443. data/test/fixtures/test/greeting.js.rjs +0 -1
  444. data/test/fixtures/test/hello.builder +0 -4
  445. data/test/fixtures/test/hello_world.da.html.erb +0 -1
  446. data/test/fixtures/test/hello_world.erb +0 -1
  447. data/test/fixtures/test/hello_world.erb~ +0 -1
  448. data/test/fixtures/test/hello_world.pt-BR.html.erb +0 -1
  449. data/test/fixtures/test/hello_world_container.builder +0 -3
  450. data/test/fixtures/test/hello_world_from_rxml.builder +0 -4
  451. data/test/fixtures/test/hello_world_with_layout_false.erb +0 -1
  452. data/test/fixtures/test/hello_xml_world.builder +0 -11
  453. data/test/fixtures/test/hyphen-ated.erb +0 -1
  454. data/test/fixtures/test/implicit_content_type.atom.builder +0 -2
  455. data/test/fixtures/test/list.erb +0 -1
  456. data/test/fixtures/test/malformed/malformed.en.html.erb~ +0 -1
  457. data/test/fixtures/test/malformed/malformed.erb~ +0 -1
  458. data/test/fixtures/test/malformed/malformed.html.erb~ +0 -1
  459. data/test/fixtures/test/nested_layout.erb +0 -3
  460. data/test/fixtures/test/non_erb_block_content_for.builder +0 -4
  461. data/test/fixtures/test/potential_conflicts.erb +0 -4
  462. data/test/fixtures/test/render_explicit_html_template.js.rjs +0 -1
  463. data/test/fixtures/test/render_file_from_template.html.erb +0 -1
  464. data/test/fixtures/test/render_file_with_ivar.erb +0 -1
  465. data/test/fixtures/test/render_file_with_locals.erb +0 -1
  466. data/test/fixtures/test/render_implicit_html_template.js.rjs +0 -1
  467. data/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +0 -1
  468. data/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +0 -1
  469. data/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +0 -1
  470. data/test/fixtures/test/render_to_string_test.erb +0 -1
  471. data/test/fixtures/test/scoped_array_translation.erb +0 -1
  472. data/test/fixtures/test/sub_template_raise.html.erb +0 -1
  473. data/test/fixtures/test/template.erb +0 -1
  474. data/test/fixtures/test/translation.erb +0 -1
  475. data/test/fixtures/test/update_element_with_capture.erb +0 -9
  476. data/test/fixtures/test/using_layout_around_block.html.erb +0 -1
  477. data/test/fixtures/test/using_layout_around_block_with_args.html.erb +0 -1
  478. data/test/fixtures/test/utf8.html.erb +0 -4
  479. data/test/fixtures/test/utf8_magic.html.erb +0 -5
  480. data/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +0 -5
  481. data/test/fixtures/topic.rb +0 -3
  482. data/test/fixtures/topics.yml +0 -22
  483. data/test/fixtures/topics/_topic.html.erb +0 -1
  484. data/test/template/active_record_helper_i18n_test.rb +0 -51
  485. data/test/template/active_record_helper_test.rb +0 -302
  486. data/test/template/asset_tag_helper_test.rb +0 -770
  487. data/test/template/atom_feed_helper_test.rb +0 -315
  488. data/test/template/benchmark_helper_test.rb +0 -86
  489. data/test/template/compiled_templates_test.rb +0 -204
  490. data/test/template/date_helper_i18n_test.rb +0 -121
  491. data/test/template/date_helper_test.rb +0 -2603
  492. data/test/template/erb_util_test.rb +0 -36
  493. data/test/template/form_helper_test.rb +0 -1447
  494. data/test/template/form_options_helper_i18n_test.rb +0 -27
  495. data/test/template/form_options_helper_test.rb +0 -811
  496. data/test/template/form_tag_helper_test.rb +0 -356
  497. data/test/template/javascript_helper_test.rb +0 -106
  498. data/test/template/number_helper_i18n_test.rb +0 -69
  499. data/test/template/number_helper_test.rb +0 -132
  500. data/test/template/prototype_helper_test.rb +0 -639
  501. data/test/template/raw_output_helper_test.rb +0 -21
  502. data/test/template/record_tag_helper_test.rb +0 -58
  503. data/test/template/render_test.rb +0 -329
  504. data/test/template/sanitize_helper_test.rb +0 -57
  505. data/test/template/scriptaculous_helper_test.rb +0 -90
  506. data/test/template/tag_helper_test.rb +0 -98
  507. data/test/template/template_test.rb +0 -32
  508. data/test/template/test_test.rb +0 -54
  509. data/test/template/text_helper_test.rb +0 -601
  510. data/test/template/translation_helper_test.rb +0 -95
  511. data/test/template/url_helper_test.rb +0 -641
  512. data/test/testing_sandbox.rb +0 -15
  513. data/test/view/test_case_test.rb +0 -176
@@ -1,26 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- # class TranslatingController < ActionController::Base
4
- # end
5
-
6
- class TranslationControllerTest < Test::Unit::TestCase
7
- def setup
8
- @controller = ActionController::Base.new
9
- end
10
-
11
- def test_action_controller_base_responds_to_translate
12
- assert @controller.respond_to?(:translate)
13
- end
14
-
15
- def test_action_controller_base_responds_to_t
16
- assert @controller.respond_to?(:t)
17
- end
18
-
19
- def test_action_controller_base_responds_to_localize
20
- assert @controller.respond_to?(:localize)
21
- end
22
-
23
- def test_action_controller_base_responds_to_l
24
- assert @controller.respond_to?(:l)
25
- end
26
- end
@@ -1,395 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- ActionController::UrlRewriter
4
-
5
- class UrlRewriterTests < ActionController::TestCase
6
- def setup
7
- @request = ActionController::TestRequest.new
8
- @params = {}
9
- @rewriter = ActionController::UrlRewriter.new(@request, @params)
10
- end
11
-
12
- def test_port
13
- assert_equal('http://test.host:1271/c/a/i',
14
- @rewriter.rewrite(:controller => 'c', :action => 'a', :id => 'i', :port => 1271)
15
- )
16
- end
17
-
18
- def test_protocol_with_and_without_separator
19
- assert_equal('https://test.host/c/a/i',
20
- @rewriter.rewrite(:protocol => 'https', :controller => 'c', :action => 'a', :id => 'i')
21
- )
22
-
23
- assert_equal('https://test.host/c/a/i',
24
- @rewriter.rewrite(:protocol => 'https://', :controller => 'c', :action => 'a', :id => 'i')
25
- )
26
- end
27
-
28
- def test_user_name_and_password
29
- assert_equal(
30
- 'http://david:secret@test.host/c/a/i',
31
- @rewriter.rewrite(:user => "david", :password => "secret", :controller => 'c', :action => 'a', :id => 'i')
32
- )
33
- end
34
-
35
- def test_user_name_and_password_with_escape_codes
36
- assert_equal(
37
- 'http://openid.aol.com%2Fnextangler:one+two%3F@test.host/c/a/i',
38
- @rewriter.rewrite(:user => "openid.aol.com/nextangler", :password => "one two?", :controller => 'c', :action => 'a', :id => 'i')
39
- )
40
- end
41
-
42
- def test_anchor
43
- assert_equal(
44
- 'http://test.host/c/a/i#anchor',
45
- @rewriter.rewrite(:controller => 'c', :action => 'a', :id => 'i', :anchor => 'anchor')
46
- )
47
- end
48
-
49
- def test_anchor_should_call_to_param
50
- assert_equal(
51
- 'http://test.host/c/a/i#anchor',
52
- @rewriter.rewrite(:controller => 'c', :action => 'a', :id => 'i', :anchor => Struct.new(:to_param).new('anchor'))
53
- )
54
- end
55
-
56
- def test_anchor_should_be_cgi_escaped
57
- assert_equal(
58
- 'http://test.host/c/a/i#anc%2Fhor',
59
- @rewriter.rewrite(:controller => 'c', :action => 'a', :id => 'i', :anchor => Struct.new(:to_param).new('anc/hor'))
60
- )
61
- end
62
-
63
- def test_overwrite_params
64
- @params[:controller] = 'hi'
65
- @params[:action] = 'bye'
66
- @params[:id] = '2'
67
-
68
- assert_deprecated /overwrite_params/ do
69
- assert_equal '/hi/hi/2', @rewriter.rewrite(:only_path => true, :overwrite_params => {:action => 'hi'})
70
- u = @rewriter.rewrite(:only_path => false, :overwrite_params => {:action => 'hi'})
71
- assert_match %r(/hi/hi/2$), u
72
- end
73
- end
74
-
75
- def test_overwrite_removes_original
76
- @params[:controller] = 'search'
77
- @params[:action] = 'list'
78
- @params[:list_page] = 1
79
-
80
- assert_deprecated /overwrite_params/ do
81
- assert_equal '/search/list?list_page=2', @rewriter.rewrite(:only_path => true, :overwrite_params => {"list_page" => 2})
82
- u = @rewriter.rewrite(:only_path => false, :overwrite_params => {:list_page => 2})
83
- assert_equal 'http://test.host/search/list?list_page=2', u
84
- end
85
- end
86
-
87
- def test_to_str
88
- @params[:controller] = 'hi'
89
- @params[:action] = 'bye'
90
- @request.parameters[:id] = '2'
91
-
92
- assert_equal 'http://, test.host, /, hi, bye, {"id"=>"2"}', @rewriter.to_str
93
- end
94
-
95
- def test_trailing_slash
96
- options = {:controller => 'foo', :action => 'bar', :id => '3', :only_path => true}
97
- assert_equal '/foo/bar/3', @rewriter.rewrite(options)
98
- assert_equal '/foo/bar/3?query=string', @rewriter.rewrite(options.merge({:query => 'string'}))
99
- options.update({:trailing_slash => true})
100
- assert_equal '/foo/bar/3/', @rewriter.rewrite(options)
101
- options.update({:query => 'string'})
102
- assert_equal '/foo/bar/3/?query=string', @rewriter.rewrite(options)
103
- end
104
- end
105
-
106
- class UrlWriterTests < ActionController::TestCase
107
- class W
108
- include ActionController::UrlWriter
109
- end
110
-
111
- def teardown
112
- W.default_url_options.clear
113
- end
114
-
115
- def add_host!
116
- W.default_url_options[:host] = 'www.basecamphq.com'
117
- end
118
-
119
- def test_exception_is_thrown_without_host
120
- assert_raise RuntimeError do
121
- W.new.url_for :controller => 'c', :action => 'a', :id => 'i'
122
- end
123
- end
124
-
125
- def test_anchor
126
- assert_equal('/c/a#anchor',
127
- W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :anchor => 'anchor')
128
- )
129
- end
130
-
131
- def test_anchor_should_call_to_param
132
- assert_equal('/c/a#anchor',
133
- W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :anchor => Struct.new(:to_param).new('anchor'))
134
- )
135
- end
136
-
137
- def test_anchor_should_escape_unsafe_pchar
138
- assert_equal('/c/a#%23anchor',
139
- W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :anchor => Struct.new(:to_param).new('#anchor'))
140
- )
141
- end
142
-
143
- def test_anchor_should_not_escape_safe_pchar
144
- assert_equal('/c/a#name=user&email=user@domain.com',
145
- W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :anchor => Struct.new(:to_param).new('name=user&email=user@domain.com'))
146
- )
147
- end
148
-
149
- def test_default_host
150
- add_host!
151
- assert_equal('http://www.basecamphq.com/c/a/i',
152
- W.new.url_for(:controller => 'c', :action => 'a', :id => 'i')
153
- )
154
- end
155
-
156
- def test_host_may_be_overridden
157
- add_host!
158
- assert_equal('http://37signals.basecamphq.com/c/a/i',
159
- W.new.url_for(:host => '37signals.basecamphq.com', :controller => 'c', :action => 'a', :id => 'i')
160
- )
161
- end
162
-
163
- def test_port
164
- add_host!
165
- assert_equal('http://www.basecamphq.com:3000/c/a/i',
166
- W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :port => 3000)
167
- )
168
- end
169
-
170
- def test_protocol
171
- add_host!
172
- assert_equal('https://www.basecamphq.com/c/a/i',
173
- W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :protocol => 'https')
174
- )
175
- end
176
-
177
- def test_protocol_with_and_without_separator
178
- add_host!
179
- assert_equal('https://www.basecamphq.com/c/a/i',
180
- W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :protocol => 'https')
181
- )
182
- assert_equal('https://www.basecamphq.com/c/a/i',
183
- W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :protocol => 'https://')
184
- )
185
- end
186
-
187
- def test_trailing_slash
188
- add_host!
189
- options = {:controller => 'foo', :trailing_slash => true, :action => 'bar', :id => '33'}
190
- assert_equal('http://www.basecamphq.com/foo/bar/33/', W.new.url_for(options) )
191
- end
192
-
193
- def test_trailing_slash_with_protocol
194
- add_host!
195
- options = { :trailing_slash => true,:protocol => 'https', :controller => 'foo', :action => 'bar', :id => '33'}
196
- assert_equal('https://www.basecamphq.com/foo/bar/33/', W.new.url_for(options) )
197
- assert_equal 'https://www.basecamphq.com/foo/bar/33/?query=string', W.new.url_for(options.merge({:query => 'string'}))
198
- end
199
-
200
- def test_trailing_slash_with_only_path
201
- options = {:controller => 'foo', :trailing_slash => true}
202
- assert_equal '/foo/', W.new.url_for(options.merge({:only_path => true}))
203
- options.update({:action => 'bar', :id => '33'})
204
- assert_equal '/foo/bar/33/', W.new.url_for(options.merge({:only_path => true}))
205
- assert_equal '/foo/bar/33/?query=string', W.new.url_for(options.merge({:query => 'string',:only_path => true}))
206
- end
207
-
208
- def test_trailing_slash_with_anchor
209
- options = {:trailing_slash => true, :controller => 'foo', :action => 'bar', :id => '33', :only_path => true, :anchor=> 'chapter7'}
210
- assert_equal '/foo/bar/33/#chapter7', W.new.url_for(options)
211
- assert_equal '/foo/bar/33/?query=string#chapter7', W.new.url_for(options.merge({:query => 'string'}))
212
- end
213
-
214
- def test_trailing_slash_with_params
215
- url = W.new.url_for(:trailing_slash => true, :only_path => true, :controller => 'cont', :action => 'act', :p1 => 'cafe', :p2 => 'link')
216
- params = extract_params(url)
217
- assert_equal params[0], { :p1 => 'cafe' }.to_query
218
- assert_equal params[1], { :p2 => 'link' }.to_query
219
- end
220
-
221
- def test_relative_url_root_is_respected
222
- orig_relative_url_root = ActionController::Base.relative_url_root
223
- ActionController::Base.relative_url_root = '/subdir'
224
-
225
- add_host!
226
- assert_equal('https://www.basecamphq.com/subdir/c/a/i',
227
- W.new.url_for(:controller => 'c', :action => 'a', :id => 'i', :protocol => 'https')
228
- )
229
- ensure
230
- ActionController::Base.relative_url_root = orig_relative_url_root
231
- end
232
-
233
- def test_named_routes
234
- ActionController::Routing::Routes.draw do |map|
235
- map.no_args '/this/is/verbose', :controller => 'home', :action => 'index'
236
- map.home '/home/sweet/home/:user', :controller => 'home', :action => 'index'
237
- map.connect ':controller/:action/:id'
238
- end
239
-
240
- # We need to create a new class in order to install the new named route.
241
- kls = Class.new { include ActionController::UrlWriter }
242
- controller = kls.new
243
- assert controller.respond_to?(:home_url)
244
- assert_equal 'http://www.basecamphq.com/home/sweet/home/again',
245
- controller.send(:home_url, :host => 'www.basecamphq.com', :user => 'again')
246
-
247
- assert_equal("/home/sweet/home/alabama", controller.send(:home_path, :user => 'alabama', :host => 'unused'))
248
- assert_equal("http://www.basecamphq.com/home/sweet/home/alabama", controller.send(:home_url, :user => 'alabama', :host => 'www.basecamphq.com'))
249
- assert_equal("http://www.basecamphq.com/this/is/verbose", controller.send(:no_args_url, :host=>'www.basecamphq.com'))
250
- ensure
251
- ActionController::Routing::Routes.load!
252
- end
253
-
254
- def test_relative_url_root_is_respected_for_named_routes
255
- orig_relative_url_root = ActionController::Base.relative_url_root
256
- ActionController::Base.relative_url_root = '/subdir'
257
-
258
- ActionController::Routing::Routes.draw do |map|
259
- map.home '/home/sweet/home/:user', :controller => 'home', :action => 'index'
260
- end
261
-
262
- kls = Class.new { include ActionController::UrlWriter }
263
- controller = kls.new
264
-
265
- assert_equal 'http://www.basecamphq.com/subdir/home/sweet/home/again',
266
- controller.send(:home_url, :host => 'www.basecamphq.com', :user => 'again')
267
- ensure
268
- ActionController::Routing::Routes.load!
269
- ActionController::Base.relative_url_root = orig_relative_url_root
270
- end
271
-
272
- def test_only_path
273
- ActionController::Routing::Routes.draw do |map|
274
- map.home '/home/sweet/home/:user', :controller => 'home', :action => 'index'
275
- map.connect ':controller/:action/:id'
276
- end
277
-
278
- # We need to create a new class in order to install the new named route.
279
- kls = Class.new { include ActionController::UrlWriter }
280
- controller = kls.new
281
- assert controller.respond_to?(:home_url)
282
- assert_equal '/brave/new/world',
283
- controller.send(:url_for, :controller => 'brave', :action => 'new', :id => 'world', :only_path => true)
284
-
285
- assert_equal("/home/sweet/home/alabama", controller.send(:home_url, :user => 'alabama', :host => 'unused', :only_path => true))
286
- assert_equal("/home/sweet/home/alabama", controller.send(:home_path, 'alabama'))
287
- ensure
288
- ActionController::Routing::Routes.load!
289
- end
290
-
291
- def test_one_parameter
292
- assert_equal('/c/a?param=val',
293
- W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :param => 'val')
294
- )
295
- end
296
-
297
- def test_two_parameters
298
- url = W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :p1 => 'X1', :p2 => 'Y2')
299
- params = extract_params(url)
300
- assert_equal params[0], { :p1 => 'X1' }.to_query
301
- assert_equal params[1], { :p2 => 'Y2' }.to_query
302
- end
303
-
304
- def test_hash_parameter
305
- url = W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :query => {:name => 'Bob', :category => 'prof'})
306
- params = extract_params(url)
307
- assert_equal params[0], { 'query[category]' => 'prof' }.to_query
308
- assert_equal params[1], { 'query[name]' => 'Bob' }.to_query
309
- end
310
-
311
- def test_array_parameter
312
- url = W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :query => ['Bob', 'prof'])
313
- params = extract_params(url)
314
- assert_equal params[0], { 'query[]' => 'Bob' }.to_query
315
- assert_equal params[1], { 'query[]' => 'prof' }.to_query
316
- end
317
-
318
- def test_hash_recursive_parameters
319
- url = W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :query => {:person => {:name => 'Bob', :position => 'prof'}, :hobby => 'piercing'})
320
- params = extract_params(url)
321
- assert_equal params[0], { 'query[hobby]' => 'piercing' }.to_query
322
- assert_equal params[1], { 'query[person][name]' => 'Bob' }.to_query
323
- assert_equal params[2], { 'query[person][position]' => 'prof' }.to_query
324
- end
325
-
326
- def test_hash_recursive_and_array_parameters
327
- url = W.new.url_for(:only_path => true, :controller => 'c', :action => 'a', :id => 101, :query => {:person => {:name => 'Bob', :position => ['prof', 'art director']}, :hobby => 'piercing'})
328
- assert_match %r(^/c/a/101), url
329
- params = extract_params(url)
330
- assert_equal params[0], { 'query[hobby]' => 'piercing' }.to_query
331
- assert_equal params[1], { 'query[person][name]' => 'Bob' }.to_query
332
- assert_equal params[2], { 'query[person][position][]' => 'prof' }.to_query
333
- assert_equal params[3], { 'query[person][position][]' => 'art director' }.to_query
334
- end
335
-
336
- def test_path_generation_for_symbol_parameter_keys
337
- assert_generates("/image", :controller=> :image)
338
- end
339
-
340
- def test_named_routes_with_nil_keys
341
- ActionController::Routing::Routes.clear!
342
- ActionController::Routing::Routes.draw do |map|
343
- map.main '', :controller => 'posts', :format => nil
344
- map.resources :posts
345
- map.connect ':controller/:action/:id'
346
- end
347
- # We need to create a new class in order to install the new named route.
348
- kls = Class.new { include ActionController::UrlWriter }
349
- kls.default_url_options[:host] = 'www.basecamphq.com'
350
-
351
- controller = kls.new
352
- params = {:action => :index, :controller => :posts, :format => :xml}
353
- assert_equal("http://www.basecamphq.com/posts.xml", controller.send(:url_for, params))
354
- params[:format] = nil
355
- assert_equal("http://www.basecamphq.com/", controller.send(:url_for, params))
356
- ensure
357
- ActionController::Routing::Routes.load!
358
- end
359
-
360
- def test_formatted_url_methods_are_deprecated
361
- ActionController::Routing::Routes.draw do |map|
362
- map.resources :posts
363
- end
364
- # We need to create a new class in order to install the new named route.
365
- kls = Class.new { include ActionController::UrlWriter }
366
- controller = kls.new
367
- params = {:id => 1, :format => :xml}
368
- assert_deprecated do
369
- assert_equal("/posts/1.xml", controller.send(:formatted_post_path, params))
370
- end
371
- assert_deprecated do
372
- assert_equal("/posts/1.xml", controller.send(:formatted_post_path, 1, :xml))
373
- end
374
- ensure
375
- ActionController::Routing::Routes.load!
376
- end
377
-
378
- def test_multiple_includes_maintain_distinct_options
379
- first_class = Class.new { include ActionController::UrlWriter }
380
- second_class = Class.new { include ActionController::UrlWriter }
381
-
382
- first_host, second_host = 'firsthost.com', 'secondhost.com'
383
-
384
- first_class.default_url_options[:host] = first_host
385
- second_class.default_url_options[:host] = second_host
386
-
387
- assert_equal first_class.default_url_options[:host], first_host
388
- assert_equal second_class.default_url_options[:host], second_host
389
- end
390
-
391
- private
392
- def extract_params(url)
393
- url.split('?', 2).last.split('&')
394
- end
395
- end
@@ -1,270 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class VerificationTest < ActionController::TestCase
4
- class TestController < ActionController::Base
5
- verify :only => :guarded_one, :params => "one",
6
- :add_flash => { :error => 'unguarded' },
7
- :redirect_to => { :action => "unguarded" }
8
-
9
- verify :only => :guarded_two, :params => %w( one two ),
10
- :redirect_to => { :action => "unguarded" }
11
-
12
- verify :only => :guarded_with_flash, :params => "one",
13
- :add_flash => { :notice => "prereqs failed" },
14
- :redirect_to => { :action => "unguarded" }
15
-
16
- verify :only => :guarded_in_session, :session => "one",
17
- :redirect_to => { :action => "unguarded" }
18
-
19
- verify :only => [:multi_one, :multi_two], :session => %w( one two ),
20
- :redirect_to => { :action => "unguarded" }
21
-
22
- verify :only => :guarded_by_method, :method => :post,
23
- :redirect_to => { :action => "unguarded" }
24
-
25
- verify :only => :guarded_by_xhr, :xhr => true,
26
- :redirect_to => { :action => "unguarded" }
27
-
28
- verify :only => :guarded_by_not_xhr, :xhr => false,
29
- :redirect_to => { :action => "unguarded" }
30
-
31
- before_filter :unconditional_redirect, :only => :two_redirects
32
- verify :only => :two_redirects, :method => :post,
33
- :redirect_to => { :action => "unguarded" }
34
-
35
- verify :only => :must_be_post, :method => :post, :render => { :status => 405, :text => "Must be post" }, :add_headers => { "Allow" => "POST" }
36
-
37
- verify :only => :guarded_one_for_named_route_test, :params => "one",
38
- :redirect_to => :foo_url
39
-
40
- verify :only => :no_default_action, :params => "santa"
41
-
42
- verify :only => :guarded_with_back, :method => :post,
43
- :redirect_to => :back
44
-
45
- def guarded_one
46
- render :text => "#{params[:one]}"
47
- end
48
-
49
- def guarded_one_for_named_route_test
50
- render :text => "#{params[:one]}"
51
- end
52
-
53
- def guarded_with_flash
54
- render :text => "#{params[:one]}"
55
- end
56
-
57
- def guarded_two
58
- render :text => "#{params[:one]}:#{params[:two]}"
59
- end
60
-
61
- def guarded_in_session
62
- render :text => "#{session["one"]}"
63
- end
64
-
65
- def multi_one
66
- render :text => "#{session["one"]}:#{session["two"]}"
67
- end
68
-
69
- def multi_two
70
- render :text => "#{session["two"]}:#{session["one"]}"
71
- end
72
-
73
- def guarded_by_method
74
- render :text => "#{request.method}"
75
- end
76
-
77
- def guarded_by_xhr
78
- render :text => "#{request.xhr?}"
79
- end
80
-
81
- def guarded_by_not_xhr
82
- render :text => "#{request.xhr?}"
83
- end
84
-
85
- def unguarded
86
- render :text => "#{params[:one]}"
87
- end
88
-
89
- def two_redirects
90
- render :nothing => true
91
- end
92
-
93
- def must_be_post
94
- render :text => "Was a post!"
95
- end
96
-
97
- def guarded_with_back
98
- render :text => "#{params[:one]}"
99
- end
100
-
101
- def no_default_action
102
- # Will never run
103
- end
104
-
105
- protected
106
- def rescue_action(e) raise end
107
-
108
- def unconditional_redirect
109
- redirect_to :action => "unguarded"
110
- end
111
- end
112
-
113
- def setup
114
- @controller = TestController.new
115
- @request = ActionController::TestRequest.new
116
- @response = ActionController::TestResponse.new
117
- ActionController::Routing::Routes.add_named_route :foo, '/foo', :controller => 'test', :action => 'foo'
118
- end
119
-
120
- def test_using_symbol_back_with_no_referrer
121
- assert_raise(ActionController::RedirectBackError) { get :guarded_with_back }
122
- end
123
-
124
- def test_using_symbol_back_redirects_to_referrer
125
- @request.env["HTTP_REFERER"] = "/foo"
126
- get :guarded_with_back
127
- assert_redirected_to '/foo'
128
- end
129
-
130
- def test_no_deprecation_warning_for_named_route
131
- assert_not_deprecated do
132
- get :guarded_one_for_named_route_test, :two => "not one"
133
- assert_redirected_to '/foo'
134
- end
135
- end
136
-
137
- def test_guarded_one_with_prereqs
138
- get :guarded_one, :one => "here"
139
- assert_equal "here", @response.body
140
- end
141
-
142
- def test_guarded_one_without_prereqs
143
- get :guarded_one
144
- assert_redirected_to :action => "unguarded"
145
- assert_equal 'unguarded', flash[:error]
146
- end
147
-
148
- def test_guarded_with_flash_with_prereqs
149
- get :guarded_with_flash, :one => "here"
150
- assert_equal "here", @response.body
151
- assert flash.empty?
152
- end
153
-
154
- def test_guarded_with_flash_without_prereqs
155
- get :guarded_with_flash
156
- assert_redirected_to :action => "unguarded"
157
- assert_equal "prereqs failed", flash[:notice]
158
- end
159
-
160
- def test_guarded_two_with_prereqs
161
- get :guarded_two, :one => "here", :two => "there"
162
- assert_equal "here:there", @response.body
163
- end
164
-
165
- def test_guarded_two_without_prereqs_one
166
- get :guarded_two, :two => "there"
167
- assert_redirected_to :action => "unguarded"
168
- end
169
-
170
- def test_guarded_two_without_prereqs_two
171
- get :guarded_two, :one => "here"
172
- assert_redirected_to :action => "unguarded"
173
- end
174
-
175
- def test_guarded_two_without_prereqs_both
176
- get :guarded_two
177
- assert_redirected_to :action => "unguarded"
178
- end
179
-
180
- def test_unguarded_with_params
181
- get :unguarded, :one => "here"
182
- assert_equal "here", @response.body
183
- end
184
-
185
- def test_unguarded_without_params
186
- get :unguarded
187
- assert_equal "", @response.body
188
- end
189
-
190
- def test_guarded_in_session_with_prereqs
191
- get :guarded_in_session, {}, "one" => "here"
192
- assert_equal "here", @response.body
193
- end
194
-
195
- def test_guarded_in_session_without_prereqs
196
- get :guarded_in_session
197
- assert_redirected_to :action => "unguarded"
198
- end
199
-
200
- def test_multi_one_with_prereqs
201
- get :multi_one, {}, "one" => "here", "two" => "there"
202
- assert_equal "here:there", @response.body
203
- end
204
-
205
- def test_multi_one_without_prereqs
206
- get :multi_one
207
- assert_redirected_to :action => "unguarded"
208
- end
209
-
210
- def test_multi_two_with_prereqs
211
- get :multi_two, {}, "one" => "here", "two" => "there"
212
- assert_equal "there:here", @response.body
213
- end
214
-
215
- def test_multi_two_without_prereqs
216
- get :multi_two
217
- assert_redirected_to :action => "unguarded"
218
- end
219
-
220
- def test_guarded_by_method_with_prereqs
221
- post :guarded_by_method
222
- assert_equal "post", @response.body
223
- end
224
-
225
- def test_guarded_by_method_without_prereqs
226
- get :guarded_by_method
227
- assert_redirected_to :action => "unguarded"
228
- end
229
-
230
- def test_guarded_by_xhr_with_prereqs
231
- xhr :post, :guarded_by_xhr
232
- assert_equal "true", @response.body
233
- end
234
-
235
- def test_guarded_by_xhr_without_prereqs
236
- get :guarded_by_xhr
237
- assert_redirected_to :action => "unguarded"
238
- end
239
-
240
- def test_guarded_by_not_xhr_with_prereqs
241
- get :guarded_by_not_xhr
242
- assert_equal "false", @response.body
243
- end
244
-
245
- def test_guarded_by_not_xhr_without_prereqs
246
- xhr :post, :guarded_by_not_xhr
247
- assert_redirected_to :action => "unguarded"
248
- end
249
-
250
- def test_guarded_post_and_calls_render_succeeds
251
- post :must_be_post
252
- assert_equal "Was a post!", @response.body
253
- end
254
-
255
- def test_default_failure_should_be_a_bad_request
256
- post :no_default_action
257
- assert_response :bad_request
258
- end
259
-
260
- def test_guarded_post_and_calls_render_fails_and_sets_allow_header
261
- get :must_be_post
262
- assert_response 405
263
- assert_equal "Must be post", @response.body
264
- assert_equal "POST", @response.headers["Allow"]
265
- end
266
-
267
- def test_second_redirect
268
- assert_nothing_raised { get :two_redirects }
269
- end
270
- end