actionpack 2.3.18 → 3.0.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,188 +0,0 @@
1
- require 'active_record_unit'
2
-
3
- class RenderPartialWithRecordIdentificationController < ActionController::Base
4
- def render_with_has_many_and_belongs_to_association
5
- @developer = Developer.find(1)
6
- render :partial => @developer.projects
7
- end
8
-
9
- def render_with_has_many_association
10
- @topic = Topic.find(1)
11
- render :partial => @topic.replies
12
- end
13
-
14
- def render_with_named_scope
15
- render :partial => Reply.base
16
- end
17
-
18
- def render_with_has_many_through_association
19
- @developer = Developer.find(:first)
20
- render :partial => @developer.topics
21
- end
22
-
23
- def render_with_has_one_association
24
- @company = Company.find(1)
25
- render :partial => @company.mascot
26
- end
27
-
28
- def render_with_belongs_to_association
29
- @reply = Reply.find(1)
30
- render :partial => @reply.topic
31
- end
32
-
33
- def render_with_record
34
- @developer = Developer.find(:first)
35
- render :partial => @developer
36
- end
37
-
38
- def render_with_record_collection
39
- @developers = Developer.find(:all)
40
- render :partial => @developers
41
- end
42
-
43
- def render_with_record_collection_and_spacer_template
44
- @developer = Developer.find(1)
45
- render :partial => @developer.projects, :spacer_template => 'test/partial_only'
46
- end
47
- end
48
-
49
- class RenderPartialWithRecordIdentificationTest < ActiveRecordTestCase
50
- tests RenderPartialWithRecordIdentificationController
51
- fixtures :developers, :projects, :developers_projects, :topics, :replies, :companies, :mascots
52
-
53
- def test_rendering_partial_with_has_many_and_belongs_to_association
54
- get :render_with_has_many_and_belongs_to_association
55
- assert_template 'projects/_project'
56
- assert_equal assigns(:developer).projects.map(&:name).join, @response.body
57
- end
58
-
59
- def test_rendering_partial_with_has_many_association
60
- get :render_with_has_many_association
61
- assert_template 'replies/_reply'
62
- assert_equal 'Birdman is better!', @response.body
63
- end
64
-
65
- def test_rendering_partial_with_named_scope
66
- get :render_with_named_scope
67
- assert_template 'replies/_reply'
68
- assert_equal 'Birdman is better!Nuh uh!', @response.body
69
- end
70
-
71
- def test_render_with_record
72
- get :render_with_record
73
- assert_template 'developers/_developer'
74
- assert_equal 'David', @response.body
75
- end
76
-
77
- def test_render_with_record_collection
78
- get :render_with_record_collection
79
- assert_template 'developers/_developer'
80
- assert_equal 'DavidJamisfixture_3fixture_4fixture_5fixture_6fixture_7fixture_8fixture_9fixture_10Jamis', @response.body
81
- end
82
-
83
- def test_render_with_record_collection_and_spacer_template
84
- get :render_with_record_collection_and_spacer_template
85
- assert_equal assigns(:developer).projects.map(&:name).join('only partial'), @response.body
86
- end
87
-
88
- def test_rendering_partial_with_has_one_association
89
- mascot = Company.find(1).mascot
90
- get :render_with_has_one_association
91
- assert_template 'mascots/_mascot'
92
- assert_equal mascot.name, @response.body
93
- end
94
- end
95
-
96
- class RenderPartialWithRecordIdentificationController < ActionController::Base
97
- def render_with_has_many_and_belongs_to_association
98
- @developer = Developer.find(1)
99
- render :partial => @developer.projects
100
- end
101
-
102
- def render_with_has_many_association
103
- @topic = Topic.find(1)
104
- render :partial => @topic.replies
105
- end
106
-
107
- def render_with_has_many_through_association
108
- @developer = Developer.find(:first)
109
- render :partial => @developer.topics
110
- end
111
-
112
- def render_with_belongs_to_association
113
- @reply = Reply.find(1)
114
- render :partial => @reply.topic
115
- end
116
-
117
- def render_with_record
118
- @developer = Developer.find(:first)
119
- render :partial => @developer
120
- end
121
-
122
- def render_with_record_collection
123
- @developers = Developer.find(:all)
124
- render :partial => @developers
125
- end
126
- end
127
-
128
- class Game < Struct.new(:name, :id)
129
- def to_param
130
- id.to_s
131
- end
132
- end
133
-
134
- module Fun
135
- class NestedController < ActionController::Base
136
- def render_with_record_in_nested_controller
137
- render :partial => Game.new("Pong")
138
- end
139
-
140
- def render_with_record_collection_in_nested_controller
141
- render :partial => [ Game.new("Pong"), Game.new("Tank") ]
142
- end
143
- end
144
-
145
- module Serious
146
- class NestedDeeperController < ActionController::Base
147
- def render_with_record_in_deeper_nested_controller
148
- render :partial => Game.new("Chess")
149
- end
150
-
151
- def render_with_record_collection_in_deeper_nested_controller
152
- render :partial => [ Game.new("Chess"), Game.new("Sudoku"), Game.new("Solitaire") ]
153
- end
154
- end
155
- end
156
- end
157
-
158
- class RenderPartialWithRecordIdentificationAndNestedControllersTest < ActiveRecordTestCase
159
- tests Fun::NestedController
160
-
161
- def test_render_with_record_in_nested_controller
162
- get :render_with_record_in_nested_controller
163
- assert_template 'fun/games/_game'
164
- assert_equal 'Pong', @response.body
165
- end
166
-
167
- def test_render_with_record_collection_in_nested_controller
168
- get :render_with_record_collection_in_nested_controller
169
- assert_template 'fun/games/_game'
170
- assert_equal 'PongTank', @response.body
171
- end
172
- end
173
-
174
- class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest < ActiveRecordTestCase
175
- tests Fun::Serious::NestedDeeperController
176
-
177
- def test_render_with_record_in_deeper_nested_controller
178
- get :render_with_record_in_deeper_nested_controller
179
- assert_template 'fun/serious/games/_game'
180
- assert_equal 'Chess', @response.body
181
- end
182
-
183
- def test_render_with_record_collection_in_deeper_nested_controller
184
- get :render_with_record_collection_in_deeper_nested_controller
185
- assert_template 'fun/serious/games/_game'
186
- assert_equal 'ChessSudokuSolitaire', @response.body
187
- end
188
- end
@@ -1,20 +0,0 @@
1
- require File.dirname(__FILE__) + '/abstract_unit'
2
- require 'action_mailer/adv_attr_accessor'
3
-
4
- class AdvAttrTest < Test::Unit::TestCase
5
- class Person
6
- include ActionMailer::AdvAttrAccessor
7
- adv_attr_accessor :name
8
- end
9
-
10
- def test_adv_attr
11
- bob = Person.new
12
- assert_nil bob.name
13
- bob.name 'Bob'
14
- assert_equal 'Bob', bob.name
15
-
16
- assert_raise(ArgumentError) {bob.name 'x', 'y'}
17
- end
18
-
19
-
20
- end
@@ -1,545 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- # a controller class to facilitate the tests
4
- class ActionPackAssertionsController < ActionController::Base
5
-
6
- # this does absolutely nothing
7
- def nothing() head :ok end
8
-
9
- # a standard template
10
- def hello_world() render :template => "test/hello_world"; end
11
-
12
- # a standard template
13
- def hello_xml_world() render :template => "test/hello_xml_world"; end
14
-
15
- # a standard partial
16
- def partial() render :partial => 'test/partial'; end
17
-
18
- # a redirect to an internal location
19
- def redirect_internal() redirect_to "/nothing"; end
20
-
21
- def redirect_to_action() redirect_to :action => "flash_me", :id => 1, :params => { "panda" => "fun" }; end
22
-
23
- def redirect_to_controller() redirect_to :controller => "elsewhere", :action => "flash_me"; end
24
-
25
- def redirect_to_controller_with_symbol() redirect_to :controller => :elsewhere, :action => :flash_me; end
26
-
27
- def redirect_to_path() redirect_to '/some/path' end
28
-
29
- def redirect_to_named_route() redirect_to route_one_url end
30
-
31
- # a redirect to an external location
32
- def redirect_external() redirect_to "http://www.rubyonrails.org"; end
33
-
34
- # a 404
35
- def response404() head '404 AWOL' end
36
-
37
- # a 500
38
- def response500() head '500 Sorry' end
39
-
40
- # a fictional 599
41
- def response599() head '599 Whoah!' end
42
-
43
- # putting stuff in the flash
44
- def flash_me
45
- flash['hello'] = 'my name is inigo montoya...'
46
- render :text => "Inconceivable!"
47
- end
48
-
49
- # we have a flash, but nothing is in it
50
- def flash_me_naked
51
- flash.clear
52
- render :text => "wow!"
53
- end
54
-
55
- # assign some template instance variables
56
- def assign_this
57
- @howdy = "ho"
58
- render :inline => "Mr. Henke"
59
- end
60
-
61
- def render_based_on_parameters
62
- render :text => "Mr. #{params[:name]}"
63
- end
64
-
65
- def render_url
66
- render :text => "<div>#{url_for(:action => 'flash_me', :only_path => true)}</div>"
67
- end
68
-
69
- def render_text_with_custom_content_type
70
- render :text => "Hello!", :content_type => Mime::RSS
71
- end
72
-
73
- # puts something in the session
74
- def session_stuffing
75
- session['xmas'] = 'turkey'
76
- render :text => "ho ho ho"
77
- end
78
-
79
- # raises exception on get requests
80
- def raise_on_get
81
- raise "get" if request.get?
82
- render :text => "request method: #{request.env['REQUEST_METHOD']}"
83
- end
84
-
85
- # raises exception on post requests
86
- def raise_on_post
87
- raise "post" if request.post?
88
- render :text => "request method: #{request.env['REQUEST_METHOD']}"
89
- end
90
-
91
- def get_valid_record
92
- @record = Class.new do
93
- def valid?
94
- true
95
- end
96
-
97
- def errors
98
- Class.new do
99
- def full_messages; []; end
100
- end.new
101
- end
102
-
103
- end.new
104
-
105
- render :nothing => true
106
- end
107
-
108
-
109
- def get_invalid_record
110
- @record = Class.new do
111
-
112
- def valid?
113
- false
114
- end
115
-
116
- def errors
117
- Class.new do
118
- def full_messages; ['...stuff...']; end
119
- end.new
120
- end
121
- end.new
122
-
123
- render :nothing => true
124
- end
125
-
126
- # 911
127
- def rescue_action(e) raise; end
128
- end
129
-
130
- # Used to test that assert_response includes the exception message
131
- # in the failure message when an action raises and assert_response
132
- # is expecting something other than an error.
133
- class AssertResponseWithUnexpectedErrorController < ActionController::Base
134
- def index
135
- raise 'FAIL'
136
- end
137
-
138
- def show
139
- render :text => "Boom", :status => 500
140
- end
141
- end
142
-
143
- class UserController < ActionController::Base
144
- end
145
-
146
- module Admin
147
- class InnerModuleController < ActionController::Base
148
- def index
149
- render :nothing => true
150
- end
151
-
152
- def redirect_to_index
153
- redirect_to admin_inner_module_path
154
- end
155
-
156
- def redirect_to_absolute_controller
157
- redirect_to :controller => '/content'
158
- end
159
-
160
- def redirect_to_fellow_controller
161
- redirect_to :controller => 'user'
162
- end
163
-
164
- def redirect_to_top_level_named_route
165
- redirect_to top_level_url(:id => "foo")
166
- end
167
- end
168
- end
169
-
170
- # a test case to exercise the new capabilities TestRequest & TestResponse
171
- class ActionPackAssertionsControllerTest < ActionController::TestCase
172
- # let's get this party started
173
- def setup
174
- ActionController::Routing::Routes.reload
175
- ActionController::Routing.use_controllers!(%w(action_pack_assertions admin/inner_module user content admin/user))
176
- end
177
-
178
- def teardown
179
- ActionController::Routing::Routes.reload
180
- end
181
-
182
- # -- assertion-based testing ------------------------------------------------
183
-
184
- def test_assert_tag_and_url_for
185
- get :render_url
186
- assert_tag :content => "/action_pack_assertions/flash_me"
187
- end
188
-
189
- # test the get method, make sure the request really was a get
190
- def test_get
191
- assert_raise(RuntimeError) { get :raise_on_get }
192
- get :raise_on_post
193
- assert_equal @response.body, 'request method: GET'
194
- end
195
-
196
- # test the get method, make sure the request really was a get
197
- def test_post
198
- assert_raise(RuntimeError) { post :raise_on_post }
199
- post :raise_on_get
200
- assert_equal @response.body, 'request method: POST'
201
- end
202
-
203
- # the following test fails because the request_method is now cached on the request instance
204
- # test the get/post switch within one test action
205
- # def test_get_post_switch
206
- # post :raise_on_get
207
- # assert_equal @response.body, 'request method: POST'
208
- # get :raise_on_post
209
- # assert_equal @response.body, 'request method: GET'
210
- # post :raise_on_get
211
- # assert_equal @response.body, 'request method: POST'
212
- # get :raise_on_post
213
- # assert_equal @response.body, 'request method: GET'
214
- # end
215
-
216
- # test the redirection to a named route
217
- def test_assert_redirect_to_named_route
218
- with_routing do |set|
219
- set.draw do |map|
220
- map.route_one 'route_one', :controller => 'action_pack_assertions', :action => 'nothing'
221
- map.connect ':controller/:action/:id'
222
- end
223
- set.install_helpers
224
-
225
- process :redirect_to_named_route
226
- assert_redirected_to 'http://test.host/route_one'
227
- assert_redirected_to route_one_url
228
- end
229
- end
230
-
231
- def test_assert_redirect_to_named_route_failure
232
- with_routing do |set|
233
- set.draw do |map|
234
- map.route_one 'route_one', :controller => 'action_pack_assertions', :action => 'nothing', :id => 'one'
235
- map.route_two 'route_two', :controller => 'action_pack_assertions', :action => 'nothing', :id => 'two'
236
- map.connect ':controller/:action/:id'
237
- end
238
- process :redirect_to_named_route
239
- assert_raise(ActiveSupport::TestCase::Assertion) do
240
- assert_redirected_to 'http://test.host/route_two'
241
- end
242
- assert_raise(ActiveSupport::TestCase::Assertion) do
243
- assert_redirected_to :controller => 'action_pack_assertions', :action => 'nothing', :id => 'two'
244
- end
245
- assert_raise(ActiveSupport::TestCase::Assertion) do
246
- assert_redirected_to route_two_url
247
- end
248
- end
249
- end
250
-
251
- def test_assert_redirect_to_nested_named_route
252
- with_routing do |set|
253
- set.draw do |map|
254
- map.admin_inner_module 'admin/inner_module', :controller => 'admin/inner_module', :action => 'index'
255
- map.connect ':controller/:action/:id'
256
- end
257
- @controller = Admin::InnerModuleController.new
258
- process :redirect_to_index
259
- # redirection is <{"action"=>"index", "controller"=>"admin/admin/inner_module"}>
260
- assert_redirected_to admin_inner_module_path
261
- end
262
- end
263
-
264
- def test_assert_redirected_to_top_level_named_route_from_nested_controller
265
- with_routing do |set|
266
- set.draw do |map|
267
- map.top_level '/action_pack_assertions/:id', :controller => 'action_pack_assertions', :action => 'index'
268
- map.connect ':controller/:action/:id'
269
- end
270
- @controller = Admin::InnerModuleController.new
271
- process :redirect_to_top_level_named_route
272
- # assert_redirected_to "http://test.host/action_pack_assertions/foo" would pass because of exact match early return
273
- assert_redirected_to "/action_pack_assertions/foo"
274
- end
275
- end
276
-
277
- def test_assert_redirected_to_top_level_named_route_with_same_controller_name_in_both_namespaces
278
- with_routing do |set|
279
- set.draw do |map|
280
- # this controller exists in the admin namespace as well which is the only difference from previous test
281
- map.top_level '/user/:id', :controller => 'user', :action => 'index'
282
- map.connect ':controller/:action/:id'
283
- end
284
- @controller = Admin::InnerModuleController.new
285
- process :redirect_to_top_level_named_route
286
- # assert_redirected_to top_level_url('foo') would pass because of exact match early return
287
- assert_redirected_to top_level_path('foo')
288
- end
289
- end
290
-
291
- # -- standard request/response object testing --------------------------------
292
-
293
- # make sure that the template objects exist
294
- def test_template_objects_alive
295
- process :assign_this
296
- assert !@response.has_template_object?('hi')
297
- assert @response.has_template_object?('howdy')
298
- end
299
-
300
- # make sure we don't have template objects when we shouldn't
301
- def test_template_object_missing
302
- process :nothing
303
- assert_nil @response.template_objects['howdy']
304
- end
305
-
306
- # check the empty flashing
307
- def test_flash_me_naked
308
- process :flash_me_naked
309
- assert !@response.has_flash?
310
- assert !@response.has_flash_with_contents?
311
- end
312
-
313
- # check if we have flash objects
314
- def test_flash_haves
315
- process :flash_me
316
- assert @response.has_flash?
317
- assert @response.has_flash_with_contents?
318
- assert @response.has_flash_object?('hello')
319
- end
320
-
321
- # ensure we don't have flash objects
322
- def test_flash_have_nots
323
- process :nothing
324
- assert !@response.has_flash?
325
- assert !@response.has_flash_with_contents?
326
- assert_nil @response.flash['hello']
327
- end
328
-
329
- # check if we were rendered by a file-based template?
330
- def test_rendered_action
331
- process :nothing
332
- assert_nil @response.rendered[:template]
333
-
334
- process :hello_world
335
- assert @response.rendered[:template]
336
- assert 'hello_world', @response.rendered[:template].to_s
337
- end
338
-
339
- def test_assert_template_with_partial
340
- get :partial
341
- assert_template :partial => '_partial'
342
- end
343
-
344
- def test_assert_template_with_nil
345
- get :nothing
346
- assert_template nil
347
- end
348
-
349
- def test_assert_template_with_string
350
- get :hello_world
351
- assert_template 'hello_world'
352
- end
353
-
354
- def test_assert_template_with_symbol
355
- get :hello_world
356
- assert_template :hello_world
357
- end
358
-
359
- def test_assert_template_with_bad_argument
360
- assert_raise(ArgumentError) { assert_template 1 }
361
- end
362
-
363
- # check the redirection location
364
- def test_redirection_location
365
- process :redirect_internal
366
- assert_equal 'http://test.host/nothing', @response.redirect_url
367
-
368
- process :redirect_external
369
- assert_equal 'http://www.rubyonrails.org', @response.redirect_url
370
- end
371
-
372
- def test_no_redirect_url
373
- process :nothing
374
- assert_nil @response.redirect_url
375
- end
376
-
377
-
378
- # check server errors
379
- def test_server_error_response_code
380
- process :response500
381
- assert @response.server_error?
382
-
383
- process :response599
384
- assert @response.server_error?
385
-
386
- process :response404
387
- assert !@response.server_error?
388
- end
389
-
390
- # check a 404 response code
391
- def test_missing_response_code
392
- process :response404
393
- assert @response.missing?
394
- end
395
-
396
- # check client errors
397
- def test_client_error_response_code
398
- process :response404
399
- assert @response.client_error?
400
- end
401
-
402
- # check to see if our redirection matches a pattern
403
- def test_redirect_url_match
404
- process :redirect_external
405
- assert @response.redirect?
406
- assert @response.redirect_url_match?("rubyonrails")
407
- assert @response.redirect_url_match?(/rubyonrails/)
408
- assert !@response.redirect_url_match?("phpoffrails")
409
- assert !@response.redirect_url_match?(/perloffrails/)
410
- end
411
-
412
- # check for a redirection
413
- def test_redirection
414
- process :redirect_internal
415
- assert @response.redirect?
416
-
417
- process :redirect_external
418
- assert @response.redirect?
419
-
420
- process :nothing
421
- assert !@response.redirect?
422
- end
423
-
424
- # check a successful response code
425
- def test_successful_response_code
426
- process :nothing
427
- assert @response.success?
428
- end
429
-
430
- # a basic check to make sure we have a TestResponse object
431
- def test_has_response
432
- process :nothing
433
- assert_kind_of ActionController::TestResponse, @response
434
- end
435
-
436
- def test_render_based_on_parameters
437
- process :render_based_on_parameters, "name" => "David"
438
- assert_equal "Mr. David", @response.body
439
- end
440
-
441
-
442
- def test_assert_redirection_fails_with_incorrect_controller
443
- process :redirect_to_controller
444
- assert_raise(ActiveSupport::TestCase::Assertion) do
445
- assert_redirected_to :controller => "action_pack_assertions", :action => "flash_me"
446
- end
447
- end
448
-
449
- def test_assert_redirection_with_extra_controller_option
450
- get :redirect_to_action
451
- assert_redirected_to :controller => 'action_pack_assertions', :action => "flash_me", :id => 1, :params => { :panda => 'fun' }
452
- end
453
-
454
- def test_redirected_to_url_leading_slash
455
- process :redirect_to_path
456
- assert_redirected_to '/some/path'
457
- end
458
-
459
- def test_redirected_to_url_no_leadling_slash
460
- process :redirect_to_path
461
- assert_deprecated /leading/ do
462
- assert_redirected_to 'some/path'
463
- end
464
- end
465
-
466
- def test_redirected_to_url_full_url
467
- process :redirect_to_path
468
- assert_redirected_to 'http://test.host/some/path'
469
- end
470
-
471
- def test_assert_redirection_with_symbol
472
- process :redirect_to_controller_with_symbol
473
- assert_nothing_raised {
474
- assert_redirected_to :controller => "elsewhere", :action => "flash_me"
475
- }
476
- process :redirect_to_controller_with_symbol
477
- assert_nothing_raised {
478
- assert_redirected_to :controller => :elsewhere, :action => :flash_me
479
- }
480
- end
481
-
482
- def test_redirected_to_with_nested_controller
483
- @controller = Admin::InnerModuleController.new
484
- get :redirect_to_absolute_controller
485
- assert_redirected_to :controller => '/content'
486
-
487
- get :redirect_to_fellow_controller
488
- assert_redirected_to :controller => 'admin/user'
489
- end
490
-
491
- def test_assert_valid
492
- get :get_valid_record
493
- assert_deprecated { assert_valid assigns('record') }
494
- end
495
-
496
- def test_assert_valid_failing
497
- get :get_invalid_record
498
-
499
- begin
500
- assert_deprecated { assert_valid assigns('record') }
501
- assert false
502
- rescue ActiveSupport::TestCase::Assertion => e
503
- end
504
- end
505
-
506
- def test_assert_response_uses_exception_message
507
- @controller = AssertResponseWithUnexpectedErrorController.new
508
- get :index
509
- assert_response :success
510
- flunk 'Expected non-success response'
511
- rescue ActiveSupport::TestCase::Assertion => e
512
- assert e.message.include?('FAIL')
513
- end
514
-
515
- def test_assert_response_failure_response_with_no_exception
516
- @controller = AssertResponseWithUnexpectedErrorController.new
517
- get :show
518
- assert_response :success
519
- flunk 'Expected non-success response'
520
- rescue ActiveSupport::TestCase::Assertion
521
- # success
522
- rescue
523
- flunk "assert_response failed to handle failure response with missing, but optional, exception."
524
- end
525
- end
526
-
527
- class ActionPackHeaderTest < ActionController::TestCase
528
- tests ActionPackAssertionsController
529
-
530
- def test_rendering_xml_sets_content_type
531
- process :hello_xml_world
532
- assert_equal('application/xml; charset=utf-8', @response.headers['Content-Type'])
533
- end
534
-
535
- def test_rendering_xml_respects_content_type
536
- @response.headers['type'] = 'application/pdf'
537
- process :hello_xml_world
538
- assert_equal('application/pdf; charset=utf-8', @response.headers['Content-Type'])
539
- end
540
-
541
- def test_render_text_with_custom_content_type
542
- get :render_text_with_custom_content_type
543
- assert_equal 'application/rss+xml; charset=utf-8', @response.headers['Content-Type']
544
- end
545
- end