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,526 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class SessionTest < Test::Unit::TestCase
4
- StubApp = lambda { |env|
5
- [200, {"Content-Type" => "text/html", "Content-Length" => "13"}, ["Hello, World!"]]
6
- }
7
-
8
- def setup
9
- @session = ActionController::Integration::Session.new(StubApp)
10
- end
11
-
12
- def test_https_bang_works_and_sets_truth_by_default
13
- assert !@session.https?
14
- @session.https!
15
- assert @session.https?
16
- @session.https! false
17
- assert !@session.https?
18
- end
19
-
20
- def test_host!
21
- assert_not_equal "glu.ttono.us", @session.host
22
- @session.host! "rubyonrails.com"
23
- assert_equal "rubyonrails.com", @session.host
24
- end
25
-
26
- def test_follow_redirect_raises_when_no_redirect
27
- @session.stubs(:redirect?).returns(false)
28
- assert_raise(RuntimeError) { @session.follow_redirect! }
29
- end
30
-
31
- def test_request_via_redirect_uses_given_method
32
- path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue"}
33
- @session.expects(:put).with(path, args, headers)
34
- @session.stubs(:redirect?).returns(false)
35
- @session.request_via_redirect(:put, path, args, headers)
36
- end
37
-
38
- def test_request_via_redirect_follows_redirects
39
- path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue"}
40
- @session.stubs(:redirect?).returns(true, true, false)
41
- @session.expects(:follow_redirect!).times(2)
42
- @session.request_via_redirect(:get, path, args, headers)
43
- end
44
-
45
- def test_request_via_redirect_returns_status
46
- path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue"}
47
- @session.stubs(:redirect?).returns(false)
48
- @session.stubs(:status).returns(200)
49
- assert_equal 200, @session.request_via_redirect(:get, path, args, headers)
50
- end
51
-
52
- def test_get_via_redirect
53
- path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue" }
54
- @session.expects(:request_via_redirect).with(:get, path, args, headers)
55
- @session.get_via_redirect(path, args, headers)
56
- end
57
-
58
- def test_post_via_redirect
59
- path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue" }
60
- @session.expects(:request_via_redirect).with(:post, path, args, headers)
61
- @session.post_via_redirect(path, args, headers)
62
- end
63
-
64
- def test_put_via_redirect
65
- path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue" }
66
- @session.expects(:request_via_redirect).with(:put, path, args, headers)
67
- @session.put_via_redirect(path, args, headers)
68
- end
69
-
70
- def test_delete_via_redirect
71
- path = "/somepath"; args = {:id => '1'}; headers = {"X-Test-Header" => "testvalue" }
72
- @session.expects(:request_via_redirect).with(:delete, path, args, headers)
73
- @session.delete_via_redirect(path, args, headers)
74
- end
75
-
76
- def test_url_for_with_controller
77
- options = {:action => 'show'}
78
- mock_controller = mock()
79
- mock_controller.expects(:url_for).with(options).returns('/show')
80
- @session.stubs(:controller).returns(mock_controller)
81
- assert_equal '/show', @session.url_for(options)
82
- end
83
-
84
- def test_url_for_without_controller
85
- options = {:action => 'show'}
86
- mock_rewriter = mock()
87
- mock_rewriter.expects(:rewrite).with(options).returns('/show')
88
- @session.stubs(:generic_url_rewriter).returns(mock_rewriter)
89
- @session.stubs(:controller).returns(nil)
90
- assert_equal '/show', @session.url_for(options)
91
- end
92
-
93
- def test_redirect_bool_with_status_in_300s
94
- @session.stubs(:status).returns 301
95
- assert @session.redirect?
96
- end
97
-
98
- def test_redirect_bool_with_status_in_200s
99
- @session.stubs(:status).returns 200
100
- assert !@session.redirect?
101
- end
102
-
103
- def test_get
104
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
105
- @session.expects(:process).with(:get,path,params,headers)
106
- @session.get(path,params,headers)
107
- end
108
-
109
- def test_post
110
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
111
- @session.expects(:process).with(:post,path,params,headers)
112
- @session.post(path,params,headers)
113
- end
114
-
115
- def test_put
116
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
117
- @session.expects(:process).with(:put,path,params,headers)
118
- @session.put(path,params,headers)
119
- end
120
-
121
- def test_delete
122
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
123
- @session.expects(:process).with(:delete,path,params,headers)
124
- @session.delete(path,params,headers)
125
- end
126
-
127
- def test_head
128
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
129
- @session.expects(:process).with(:head,path,params,headers)
130
- @session.head(path,params,headers)
131
- end
132
-
133
- def test_xml_http_request_get
134
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
135
- headers_after_xhr = headers.merge(
136
- "X-Requested-With" => "XMLHttpRequest",
137
- "Accept" => "text/javascript, text/html, application/xml, text/xml, */*"
138
- )
139
- @session.expects(:process).with(:get,path,params,headers_after_xhr)
140
- @session.xml_http_request(:get,path,params,headers)
141
- end
142
-
143
- def test_xml_http_request_post
144
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
145
- headers_after_xhr = headers.merge(
146
- "X-Requested-With" => "XMLHttpRequest",
147
- "Accept" => "text/javascript, text/html, application/xml, text/xml, */*"
148
- )
149
- @session.expects(:process).with(:post,path,params,headers_after_xhr)
150
- @session.xml_http_request(:post,path,params,headers)
151
- end
152
-
153
- def test_xml_http_request_put
154
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
155
- headers_after_xhr = headers.merge(
156
- "X-Requested-With" => "XMLHttpRequest",
157
- "Accept" => "text/javascript, text/html, application/xml, text/xml, */*"
158
- )
159
- @session.expects(:process).with(:put,path,params,headers_after_xhr)
160
- @session.xml_http_request(:put,path,params,headers)
161
- end
162
-
163
- def test_xml_http_request_delete
164
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
165
- headers_after_xhr = headers.merge(
166
- "X-Requested-With" => "XMLHttpRequest",
167
- "Accept" => "text/javascript, text/html, application/xml, text/xml, */*"
168
- )
169
- @session.expects(:process).with(:delete,path,params,headers_after_xhr)
170
- @session.xml_http_request(:delete,path,params,headers)
171
- end
172
-
173
- def test_xml_http_request_head
174
- path = "/index"; params = "blah"; headers = {:location => 'blah'}
175
- headers_after_xhr = headers.merge(
176
- "X-Requested-With" => "XMLHttpRequest",
177
- "Accept" => "text/javascript, text/html, application/xml, text/xml, */*"
178
- )
179
- @session.expects(:process).with(:head,path,params,headers_after_xhr)
180
- @session.xml_http_request(:head,path,params,headers)
181
- end
182
-
183
- def test_xml_http_request_override_accept
184
- path = "/index"; params = "blah"; headers = {:location => 'blah', "Accept" => "application/xml"}
185
- headers_after_xhr = headers.merge(
186
- "X-Requested-With" => "XMLHttpRequest"
187
- )
188
- @session.expects(:process).with(:post,path,params,headers_after_xhr)
189
- @session.xml_http_request(:post,path,params,headers)
190
- end
191
- end
192
-
193
- class IntegrationTestTest < Test::Unit::TestCase
194
- def setup
195
- @test = ::ActionController::IntegrationTest.new(:default_test)
196
- @test.class.stubs(:fixture_table_names).returns([])
197
- @session = @test.open_session
198
- end
199
-
200
- def test_opens_new_session
201
- @test.class.expects(:fixture_table_names).times(2).returns(['foo'])
202
-
203
- session1 = @test.open_session { |sess| }
204
- session2 = @test.open_session # implicit session
205
-
206
- assert_equal ::ActionController::Integration::Session, session1.class
207
- assert_equal ::ActionController::Integration::Session, session2.class
208
- assert_not_equal session1, session2
209
- end
210
-
211
- # RSpec mixes Matchers (which has a #method_missing) into
212
- # IntegrationTest's superclass. Make sure IntegrationTest does not
213
- # try to delegate these methods to the session object.
214
- def test_does_not_prevent_method_missing_passing_up_to_ancestors
215
- mixin = Module.new do
216
- def method_missing(name, *args)
217
- name.to_s == 'foo' ? 'pass' : super
218
- end
219
- end
220
- @test.class.superclass.__send__(:include, mixin)
221
- begin
222
- assert_equal 'pass', @test.foo
223
- ensure
224
- # leave other tests as unaffected as possible
225
- mixin.__send__(:remove_method, :method_missing)
226
- end
227
- end
228
- end
229
-
230
- require 'active_record_unit'
231
- # Tests that fixtures are accessible in the integration test sessions
232
- class IntegrationTestWithFixtures < ActiveRecordTestCase
233
- include ActionController::Integration::Runner
234
-
235
- fixtures :companies
236
-
237
- def test_fixtures_in_new_session
238
- sym = :thirty_seven_signals
239
- # fixtures are accessible in main session
240
- assert_not_nil companies(sym)
241
-
242
- # create a new session and the fixtures should be accessible in it as well
243
- session1 = open_session { |sess| }
244
- assert_not_nil session1.companies(sym)
245
- end
246
- end
247
-
248
- # Tests that integration tests don't call Controller test methods for processing.
249
- # Integration tests have their own setup and teardown.
250
- class IntegrationTestUsesCorrectClass < ActionController::IntegrationTest
251
- def self.fixture_table_names
252
- []
253
- end
254
-
255
- def test_integration_methods_called
256
- reset!
257
- @integration_session.stubs(:generic_url_rewriter)
258
- @integration_session.stubs(:process)
259
-
260
- %w( get post head put delete ).each do |verb|
261
- assert_nothing_raised("'#{verb}' should use integration test methods") { __send__(verb, '/') }
262
- end
263
- end
264
- end
265
-
266
- class IntegrationProcessTest < ActionController::IntegrationTest
267
- class IntegrationController < ActionController::Base
268
- def get
269
- respond_to do |format|
270
- format.html { render :text => "OK", :status => 200 }
271
- format.js { render :text => "JS OK", :status => 200 }
272
- end
273
- end
274
-
275
- def get_with_params
276
- render :text => "foo: #{params[:foo]}", :status => 200
277
- end
278
-
279
- def post_with_multiparameter_params
280
- render :text => "foo(1i): #{params[:"foo(1i)"]}, foo(2i): #{params[:"foo(2i)"]}", :status => 200
281
- end
282
-
283
- def multipart_post_with_multiparameter_params
284
- render :text => "foo(1i): #{params[:"foo(1i)"]}, foo(2i): #{params[:"foo(2i)"]}, filesize: #{params[:file].size}", :status => 200
285
- end
286
-
287
- def multipart_post_with_nested_params
288
- render :text => "foo: #{params[:foo][0]}, #{params[:foo][1]}; [filesize: #{params[:file_list][0][:content].size}, filesize: #{params[:file_list][1][:content].size}]", :status => 200
289
- end
290
-
291
- def multipart_post_with_multiparameter_complex_params
292
- render :text => "foo(1i): #{params[:"foo(1i)"]}, foo(2i): #{params[:"foo(2i)"]}, [filesize: #{params[:file_list][0][:content].size}, filesize: #{params[:file_list][1][:content].size}]", :status => 200
293
- end
294
-
295
- def post
296
- render :text => "Created", :status => 201
297
- end
298
-
299
- def cookie_monster
300
- cookies["cookie_1"] = nil
301
- cookies["cookie_3"] = "chocolate"
302
- render :text => "Gone", :status => 410
303
- end
304
-
305
- def redirect
306
- redirect_to :action => "get"
307
- end
308
- end
309
-
310
- FILES_DIR = File.dirname(__FILE__) + '/../fixtures/multipart'
311
-
312
- def test_get
313
- with_test_route_set do
314
- get '/get'
315
- assert_equal 200, status
316
- assert_equal "OK", status_message
317
- assert_response 200
318
- assert_response :success
319
- assert_response :ok
320
- assert_equal({}, cookies)
321
- assert_equal "OK", body
322
- assert_equal "OK", response.body
323
- assert_kind_of HTML::Document, html_document
324
- assert_equal 1, request_count
325
- end
326
- end
327
-
328
- def test_post
329
- with_test_route_set do
330
- post '/post'
331
- assert_equal 201, status
332
- assert_equal "Created", status_message
333
- assert_response 201
334
- assert_response :success
335
- assert_response :created
336
- assert_equal({}, cookies)
337
- assert_equal "Created", body
338
- assert_equal "Created", response.body
339
- assert_kind_of HTML::Document, html_document
340
- assert_equal 1, request_count
341
- end
342
- end
343
-
344
- def test_cookie_monster
345
- with_test_route_set do
346
- self.cookies['cookie_1'] = "sugar"
347
- self.cookies['cookie_2'] = "oatmeal"
348
- get '/cookie_monster'
349
- assert_equal 410, status
350
- assert_equal "Gone", status_message
351
- assert_response 410
352
- assert_response :gone
353
- assert_equal({"cookie_1"=>"", "cookie_2"=>"oatmeal", "cookie_3"=>"chocolate"}, cookies)
354
- assert_equal "Gone", response.body
355
- end
356
- end
357
-
358
- def test_redirect
359
- with_test_route_set do
360
- get '/redirect'
361
- assert_equal 302, status
362
- assert_equal "Found", status_message
363
- assert_response 302
364
- assert_response :redirect
365
- assert_response :found
366
- assert_equal "<html><body>You are being <a href=\"http://www.example.com/get\">redirected</a>.</body></html>", response.body
367
- assert_kind_of HTML::Document, html_document
368
- assert_equal 1, request_count
369
-
370
- follow_redirect!
371
- assert_response :success
372
- assert_equal "/get", path
373
- end
374
- end
375
-
376
- def test_xml_http_request_get
377
- with_test_route_set do
378
- xhr :get, '/get'
379
- assert_equal 200, status
380
- assert_equal "OK", status_message
381
- assert_response 200
382
- assert_response :success
383
- assert_response :ok
384
- assert_equal "JS OK", response.body
385
- end
386
- end
387
-
388
- def test_get_with_query_string
389
- with_test_route_set do
390
- get '/get_with_params?foo=bar'
391
- assert_equal '/get_with_params?foo=bar', request.env["REQUEST_URI"]
392
- assert_equal '/get_with_params?foo=bar', request.request_uri
393
- assert_equal "", request.env["QUERY_STRING"]
394
- assert_equal 'foo=bar', request.query_string
395
- assert_equal 'bar', request.parameters['foo']
396
-
397
- assert_equal 200, status
398
- assert_equal "foo: bar", response.body
399
- end
400
- end
401
-
402
- def test_get_with_parameters
403
- with_test_route_set do
404
- get '/get_with_params', :foo => "bar"
405
- assert_equal '/get_with_params', request.env["REQUEST_URI"]
406
- assert_equal '/get_with_params', request.request_uri
407
- assert_equal 'foo=bar', request.env["QUERY_STRING"]
408
- assert_equal 'foo=bar', request.query_string
409
- assert_equal 'bar', request.parameters['foo']
410
-
411
- assert_equal 200, status
412
- assert_equal "foo: bar", response.body
413
- end
414
- end
415
-
416
- def test_post_with_multiparameter_attribute_parameters
417
- with_test_route_set do
418
- post '/post_with_multiparameter_params', :"foo(1i)" => "bar", :"foo(2i)" => "baz"
419
-
420
- assert_equal 200, status
421
- assert_equal "foo(1i): bar, foo(2i): baz", response.body
422
- end
423
- end
424
-
425
- def test_multipart_post_with_multiparameter_attribute_parameters
426
- with_test_route_set do
427
- post '/multipart_post_with_multiparameter_params', :"foo(1i)" => "bar", :"foo(2i)" => "baz", :file => fixture_file_upload(FILES_DIR + "/mona_lisa.jpg", "image/jpg")
428
-
429
- assert_equal 200, status
430
- assert_equal "foo(1i): bar, foo(2i): baz, filesize: 159528", response.body
431
- end
432
- end
433
-
434
- def test_multipart_post_with_nested_params
435
- with_test_route_set do
436
- post '/multipart_post_with_nested_params', :"foo" => ['a', 'b'], :file_list => [{:content => fixture_file_upload(FILES_DIR + "/mona_lisa.jpg", "image/jpg")}, {:content => fixture_file_upload(FILES_DIR + "/mona_lisa.jpg", "image/jpg")}]
437
-
438
- assert_equal 200, status
439
- assert_equal "foo: a, b; [filesize: 159528, filesize: 159528]", response.body
440
- end
441
- end
442
-
443
- def test_multipart_post_with_multiparameter_complex_attribute_parameters
444
- with_test_route_set do
445
- post '/multipart_post_with_multiparameter_complex_params', :"foo(1i)" => "bar", :"foo(2i)" => "baz", :file_list => [{:content => fixture_file_upload(FILES_DIR + "/mona_lisa.jpg", "image/jpg")}, {:content => fixture_file_upload(FILES_DIR + "/mona_lisa.jpg", "image/jpg")}]
446
-
447
- assert_equal 200, status
448
- assert_equal "foo(1i): bar, foo(2i): baz, [filesize: 159528, filesize: 159528]", response.body
449
- end
450
- end
451
-
452
- def test_head
453
- with_test_route_set do
454
- head '/get'
455
- assert_equal 200, status
456
- assert_equal "", body
457
-
458
- head '/post'
459
- assert_equal 201, status
460
- assert_equal "", body
461
- end
462
- end
463
-
464
- private
465
- def with_test_route_set
466
- with_routing do |set|
467
- set.draw do |map|
468
- map.with_options :controller => "IntegrationProcessTest::Integration" do |c|
469
- c.connect "/:action"
470
- end
471
- end
472
- yield
473
- end
474
- end
475
- end
476
-
477
- class MetalTest < ActionController::IntegrationTest
478
- class Poller
479
- def self.call(env)
480
- if env["PATH_INFO"] =~ /^\/success/
481
- [200, {"Content-Type" => "text/plain", "Content-Length" => "12"}, ["Hello World!"]]
482
- else
483
- [404, {"Content-Type" => "text/plain", "Content-Length" => "0"}, []]
484
- end
485
- end
486
- end
487
-
488
- def setup
489
- @integration_session = ActionController::Integration::Session.new(Poller)
490
- end
491
-
492
- def test_successful_get
493
- get "/success"
494
- assert_response 200
495
- assert_response :success
496
- assert_response :ok
497
- assert_equal "Hello World!", response.body
498
- end
499
-
500
- def test_failed_get
501
- get "/failure"
502
- assert_response 404
503
- assert_response :not_found
504
- assert_equal '', response.body
505
- end
506
- end
507
-
508
- class StringSubclassBodyTest < ActionController::IntegrationTest
509
- class SafeString < String
510
- end
511
-
512
- class SafeStringMiddleware
513
- def self.call(env)
514
- [200, {"Content-Type" => "text/plain", "Content-Length" => "12"}, [SafeString.new("Hello World!")]]
515
- end
516
- end
517
-
518
- def setup
519
- @integration_session = ActionController::Integration::Session.new(SafeStringMiddleware)
520
- end
521
-
522
- def test_string_subclass_body
523
- get '/'
524
- assert_equal 'Hello World!', response.body
525
- end
526
- end