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,174 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class FlashTest < ActionController::TestCase
4
- class TestController < ActionController::Base
5
- def set_flash
6
- flash["that"] = "hello"
7
- render :inline => "hello"
8
- end
9
-
10
- def set_flash_now
11
- flash.now["that"] = "hello"
12
- flash.now["foo"] ||= "bar"
13
- flash.now["foo"] ||= "err"
14
- @flashy = flash.now["that"]
15
- @flash_copy = {}.update flash
16
- render :inline => "hello"
17
- end
18
-
19
- def attempt_to_use_flash_now
20
- @flash_copy = {}.update flash
21
- @flashy = flash["that"]
22
- render :inline => "hello"
23
- end
24
-
25
- def use_flash
26
- @flash_copy = {}.update flash
27
- @flashy = flash["that"]
28
- render :inline => "hello"
29
- end
30
-
31
- def use_flash_and_keep_it
32
- @flash_copy = {}.update flash
33
- @flashy = flash["that"]
34
- flash.keep
35
- render :inline => "hello"
36
- end
37
-
38
- def use_flash_and_update_it
39
- flash.update("this" => "hello again")
40
- @flash_copy = {}.update flash
41
- render :inline => "hello"
42
- end
43
-
44
- def use_flash_after_reset_session
45
- flash["that"] = "hello"
46
- @flashy_that = flash["that"]
47
- reset_session
48
- @flashy_that_reset = flash["that"]
49
- flash["this"] = "good-bye"
50
- @flashy_this = flash["this"]
51
- render :inline => "hello"
52
- end
53
-
54
- def rescue_action(e)
55
- raise unless ActionView::MissingTemplate === e
56
- end
57
-
58
- # methods for test_sweep_after_halted_filter_chain
59
- before_filter :halt_and_redir, :only => "filter_halting_action"
60
-
61
- def std_action
62
- @flash_copy = {}.update(flash)
63
- end
64
-
65
- def filter_halting_action
66
- @flash_copy = {}.update(flash)
67
- end
68
-
69
- def halt_and_redir
70
- flash["foo"] = "bar"
71
- redirect_to :action => "std_action"
72
- @flash_copy = {}.update(flash)
73
- end
74
-
75
- def redirect_with_alert
76
- redirect_to '/nowhere', :alert => "Beware the nowheres!"
77
- end
78
-
79
- def redirect_with_notice
80
- redirect_to '/somewhere', :notice => "Good luck in the somewheres!"
81
- end
82
-
83
- def redirect_with_other_flashes
84
- redirect_to '/wonderland', :flash => { :joyride => "Horses!" }
85
- end
86
- end
87
-
88
- tests TestController
89
-
90
- def test_flash
91
- get :set_flash
92
-
93
- get :use_flash
94
- assert_equal "hello", @response.template.assigns["flash_copy"]["that"]
95
- assert_equal "hello", @response.template.assigns["flashy"]
96
-
97
- get :use_flash
98
- assert_nil @response.template.assigns["flash_copy"]["that"], "On second flash"
99
- end
100
-
101
- def test_keep_flash
102
- get :set_flash
103
-
104
- get :use_flash_and_keep_it
105
- assert_equal "hello", @response.template.assigns["flash_copy"]["that"]
106
- assert_equal "hello", @response.template.assigns["flashy"]
107
-
108
- get :use_flash
109
- assert_equal "hello", @response.template.assigns["flash_copy"]["that"], "On second flash"
110
-
111
- get :use_flash
112
- assert_nil @response.template.assigns["flash_copy"]["that"], "On third flash"
113
- end
114
-
115
- def test_flash_now
116
- get :set_flash_now
117
- assert_equal "hello", @response.template.assigns["flash_copy"]["that"]
118
- assert_equal "bar" , @response.template.assigns["flash_copy"]["foo"]
119
- assert_equal "hello", @response.template.assigns["flashy"]
120
-
121
- get :attempt_to_use_flash_now
122
- assert_nil @response.template.assigns["flash_copy"]["that"]
123
- assert_nil @response.template.assigns["flash_copy"]["foo"]
124
- assert_nil @response.template.assigns["flashy"]
125
- end
126
-
127
- def test_update_flash
128
- get :set_flash
129
- get :use_flash_and_update_it
130
- assert_equal "hello", @response.template.assigns["flash_copy"]["that"]
131
- assert_equal "hello again", @response.template.assigns["flash_copy"]["this"]
132
- get :use_flash
133
- assert_nil @response.template.assigns["flash_copy"]["that"], "On second flash"
134
- assert_equal "hello again", @response.template.assigns["flash_copy"]["this"], "On second flash"
135
- end
136
-
137
- def test_flash_after_reset_session
138
- get :use_flash_after_reset_session
139
- assert_equal "hello", @response.template.assigns["flashy_that"]
140
- assert_equal "good-bye", @response.template.assigns["flashy_this"]
141
- assert_nil @response.template.assigns["flashy_that_reset"]
142
- end
143
-
144
- def test_sweep_after_halted_filter_chain
145
- get :std_action
146
- assert_nil @response.template.assigns["flash_copy"]["foo"]
147
- get :filter_halting_action
148
- assert_equal "bar", @response.template.assigns["flash_copy"]["foo"]
149
- get :std_action # follow redirection
150
- assert_equal "bar", @response.template.assigns["flash_copy"]["foo"]
151
- get :std_action
152
- assert_nil @response.template.assigns["flash_copy"]["foo"]
153
- end
154
-
155
- def test_does_not_set_the_session_if_the_flash_is_empty
156
- get :std_action
157
- assert_nil session["flash"]
158
- end
159
-
160
- def test_redirect_to_with_alert
161
- get :redirect_with_alert
162
- assert_equal "Beware the nowheres!", @controller.send(:flash)[:alert]
163
- end
164
-
165
- def test_redirect_to_with_notice
166
- get :redirect_with_notice
167
- assert_equal "Good luck in the somewheres!", @controller.send(:flash)[:notice]
168
- end
169
-
170
- def test_redirect_to_with_other_flashes
171
- get :redirect_with_other_flashes
172
- assert_equal "Horses!", @controller.send(:flash)[:joyride]
173
- end
174
- end
@@ -1,14 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class HeaderTest < Test::Unit::TestCase
4
- def setup
5
- @headers = ActionController::Http::Headers.new("HTTP_CONTENT_TYPE"=>"text/plain")
6
- end
7
-
8
- def test_content_type_works
9
- assert_equal "text/plain", @headers["Content-Type"]
10
- assert_equal "text/plain", @headers["content-type"]
11
- assert_equal "text/plain", @headers["CONTENT_TYPE"]
12
- assert_equal "text/plain", @headers["HTTP_CONTENT_TYPE"]
13
- end
14
- end
@@ -1,224 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- ActionController::Base.helpers_dir = File.dirname(__FILE__) + '/../fixtures/helpers'
4
-
5
- class TestController < ActionController::Base
6
- attr_accessor :delegate_attr
7
- def delegate_method() end
8
- def rescue_action(e) raise end
9
- end
10
-
11
- module Fun
12
- class GamesController < ActionController::Base
13
- def render_hello_world
14
- render :inline => "hello: <%= stratego %>"
15
- end
16
-
17
- def rescue_action(e) raise end
18
- end
19
-
20
- class PdfController < ActionController::Base
21
- def test
22
- render :inline => "test: <%= foobar %>"
23
- end
24
-
25
- def rescue_action(e) raise end
26
- end
27
- end
28
-
29
- class ApplicationController < ActionController::Base
30
- helper :all
31
- end
32
-
33
- module LocalAbcHelper
34
- def a() end
35
- def b() end
36
- def c() end
37
- end
38
-
39
- class HelperTest < Test::Unit::TestCase
40
- def setup
41
- # Increment symbol counter.
42
- @symbol = (@@counter ||= 'A0').succ!.dup
43
-
44
- # Generate new controller class.
45
- controller_class_name = "Helper#{@symbol}Controller"
46
- eval("class #{controller_class_name} < TestController; end")
47
- @controller_class = self.class.const_get(controller_class_name)
48
-
49
- # Set default test helper.
50
- self.test_helper = LocalAbcHelper
51
- end
52
-
53
- def test_deprecated_helper
54
- assert_equal expected_helper_methods, missing_methods
55
- assert_nothing_raised { @controller_class.helper TestHelper }
56
- assert_equal [], missing_methods
57
- end
58
-
59
- def test_declare_helper
60
- require 'abc_helper'
61
- self.test_helper = AbcHelper
62
- assert_equal expected_helper_methods, missing_methods
63
- assert_nothing_raised { @controller_class.helper :abc }
64
- assert_equal [], missing_methods
65
- end
66
-
67
- def test_declare_missing_helper
68
- assert_equal expected_helper_methods, missing_methods
69
- assert_raise(MissingSourceFile) { @controller_class.helper :missing }
70
- end
71
-
72
- def test_declare_missing_file_from_helper
73
- require 'broken_helper'
74
- rescue LoadError => e
75
- assert_nil(/\bbroken_helper\b/.match(e.to_s)[1])
76
- end
77
-
78
- def test_helper_block
79
- assert_nothing_raised {
80
- @controller_class.helper { def block_helper_method; end }
81
- }
82
- assert master_helper_methods.include?('block_helper_method')
83
- end
84
-
85
- def test_helper_block_include
86
- assert_equal expected_helper_methods, missing_methods
87
- assert_nothing_raised {
88
- @controller_class.helper { include HelperTest::TestHelper }
89
- }
90
- assert_equal [], missing_methods
91
- end
92
-
93
- def test_helper_method
94
- assert_nothing_raised { @controller_class.helper_method :delegate_method }
95
- assert master_helper_methods.include?('delegate_method')
96
- end
97
-
98
- def test_helper_attr
99
- assert_nothing_raised { @controller_class.helper_attr :delegate_attr }
100
- assert master_helper_methods.include?('delegate_attr')
101
- assert master_helper_methods.include?('delegate_attr=')
102
- end
103
-
104
- def test_helper_for_nested_controller
105
- request = ActionController::TestRequest.new
106
- response = ActionController::TestResponse.new
107
- request.action = 'render_hello_world'
108
-
109
- assert_equal 'hello: Iz guuut!', Fun::GamesController.process(request, response).body
110
- end
111
-
112
- def test_helper_for_acronym_controller
113
- request = ActionController::TestRequest.new
114
- response = ActionController::TestResponse.new
115
- request.action = 'test'
116
-
117
- assert_equal 'test: baz', Fun::PdfController.process(request, response).body
118
- end
119
-
120
- def test_all_helpers
121
- methods = ApplicationController.master_helper_module.instance_methods.map(&:to_s)
122
-
123
- # abc_helper.rb
124
- assert methods.include?('bare_a')
125
-
126
- # fun/games_helper.rb
127
- assert methods.include?('stratego')
128
-
129
- # fun/pdf_helper.rb
130
- assert methods.include?('foobar')
131
- end
132
-
133
- def test_all_helpers_with_alternate_helper_dir
134
- @controller_class.helpers_dir = File.dirname(__FILE__) + '/../fixtures/alternate_helpers'
135
-
136
- # Reload helpers
137
- @controller_class.master_helper_module = Module.new
138
- @controller_class.helper :all
139
-
140
- # helpers/abc_helper.rb should not be included
141
- assert !master_helper_methods.include?('bare_a')
142
-
143
- # alternate_helpers/foo_helper.rb
144
- assert master_helper_methods.include?('baz')
145
- end
146
-
147
- def test_helper_proxy
148
- methods = ApplicationController.helpers.methods.map(&:to_s)
149
-
150
- # ActionView
151
- assert methods.include?('pluralize')
152
-
153
- # abc_helper.rb
154
- assert methods.include?('bare_a')
155
-
156
- # fun/games_helper.rb
157
- assert methods.include?('stratego')
158
-
159
- # fun/pdf_helper.rb
160
- assert methods.include?('foobar')
161
- end
162
-
163
- private
164
- def expected_helper_methods
165
- TestHelper.instance_methods.map(&:to_s)
166
- end
167
-
168
- def master_helper_methods
169
- @controller_class.master_helper_module.instance_methods.map(&:to_s)
170
- end
171
-
172
- def missing_methods
173
- expected_helper_methods - master_helper_methods
174
- end
175
-
176
- def test_helper=(helper_module)
177
- silence_warnings { self.class.const_set('TestHelper', helper_module) }
178
- end
179
- end
180
-
181
-
182
- class IsolatedHelpersTest < Test::Unit::TestCase
183
- class A < ActionController::Base
184
- def index
185
- render :inline => '<%= shout %>'
186
- end
187
-
188
- def rescue_action(e) raise end
189
- end
190
-
191
- class B < A
192
- helper { def shout; 'B' end }
193
-
194
- def index
195
- render :inline => '<%= shout %>'
196
- end
197
- end
198
-
199
- class C < A
200
- helper { def shout; 'C' end }
201
-
202
- def index
203
- render :inline => '<%= shout %>'
204
- end
205
- end
206
-
207
- def setup
208
- @request = ActionController::TestRequest.new
209
- @response = ActionController::TestResponse.new
210
- @request.action = 'index'
211
- end
212
-
213
- def test_helper_in_a
214
- assert_raise(NameError) { A.process(@request, @response) }
215
- end
216
-
217
- def test_helper_in_b
218
- assert_equal 'B', B.process(@request, @response).body
219
- end
220
-
221
- def test_helper_in_c
222
- assert_equal 'C', C.process(@request, @response).body
223
- end
224
- end
@@ -1,15 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class CDATANodeTest < Test::Unit::TestCase
4
- def setup
5
- @node = HTML::CDATA.new(nil, 0, 0, "<p>howdy</p>")
6
- end
7
-
8
- def test_to_s
9
- assert_equal "<![CDATA[<p>howdy</p>]]>", @node.to_s
10
- end
11
-
12
- def test_content
13
- assert_equal "<p>howdy</p>", @node.content
14
- end
15
- end
@@ -1,148 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class DocumentTest < Test::Unit::TestCase
4
- def test_handle_doctype
5
- doc = nil
6
- assert_nothing_raised do
7
- doc = HTML::Document.new <<-HTML.strip
8
- <!DOCTYPE "blah" "blah" "blah">
9
- <html>
10
- </html>
11
- HTML
12
- end
13
- assert_equal 3, doc.root.children.length
14
- assert_equal %{<!DOCTYPE "blah" "blah" "blah">}, doc.root.children[0].content
15
- assert_match %r{\s+}m, doc.root.children[1].content
16
- assert_equal "html", doc.root.children[2].name
17
- end
18
-
19
- def test_find_img
20
- doc = HTML::Document.new <<-HTML.strip
21
- <html>
22
- <body>
23
- <p><img src="hello.gif"></p>
24
- </body>
25
- </html>
26
- HTML
27
- assert doc.find(:tag=>"img", :attributes=>{"src"=>"hello.gif"})
28
- end
29
-
30
- def test_find_all
31
- doc = HTML::Document.new <<-HTML.strip
32
- <html>
33
- <body>
34
- <p class="test"><img src="hello.gif"></p>
35
- <div class="foo">
36
- <p class="test">something</p>
37
- <p>here is <em class="test">more</em></p>
38
- </div>
39
- </body>
40
- </html>
41
- HTML
42
- all = doc.find_all :attributes => { :class => "test" }
43
- assert_equal 3, all.length
44
- assert_equal [ "p", "p", "em" ], all.map { |n| n.name }
45
- end
46
-
47
- def test_find_with_text
48
- doc = HTML::Document.new <<-HTML.strip
49
- <html>
50
- <body>
51
- <p>Some text</p>
52
- </body>
53
- </html>
54
- HTML
55
- assert doc.find(:content => "Some text")
56
- assert doc.find(:tag => "p", :child => { :content => "Some text" })
57
- assert doc.find(:tag => "p", :child => "Some text")
58
- assert doc.find(:tag => "p", :content => "Some text")
59
- end
60
-
61
- def test_parse_xml
62
- assert_nothing_raised { HTML::Document.new("<tags><tag/></tags>", true, true) }
63
- assert_nothing_raised { HTML::Document.new("<outer><link>something</link></outer>", true, true) }
64
- end
65
-
66
- def test_parse_document
67
- doc = HTML::Document.new(<<-HTML)
68
- <div>
69
- <h2>blah</h2>
70
- <table>
71
- </table>
72
- </div>
73
- HTML
74
- assert_not_nil doc.find(:tag => "div", :children => { :count => 1, :only => { :tag => "table" } })
75
- end
76
-
77
- def test_tag_nesting_nothing_to_s
78
- doc = HTML::Document.new("<tag></tag>")
79
- assert_equal "<tag></tag>", doc.root.to_s
80
- end
81
-
82
- def test_tag_nesting_space_to_s
83
- doc = HTML::Document.new("<tag> </tag>")
84
- assert_equal "<tag> </tag>", doc.root.to_s
85
- end
86
-
87
- def test_tag_nesting_text_to_s
88
- doc = HTML::Document.new("<tag>text</tag>")
89
- assert_equal "<tag>text</tag>", doc.root.to_s
90
- end
91
-
92
- def test_tag_nesting_tag_to_s
93
- doc = HTML::Document.new("<tag><nested /></tag>")
94
- assert_equal "<tag><nested /></tag>", doc.root.to_s
95
- end
96
-
97
- def test_parse_cdata
98
- doc = HTML::Document.new(<<-HTML)
99
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
100
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
101
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
102
- <head>
103
- <title><![CDATA[<br>]]></title>
104
- </head>
105
- <body>
106
- <p>this document has &lt;br&gt; for a title</p>
107
- </body>
108
- </html>
109
- HTML
110
-
111
- assert_nil doc.find(:tag => "title", :descendant => { :tag => "br" })
112
- assert doc.find(:tag => "title", :child => "<br>")
113
- end
114
-
115
- def test_find_empty_tag
116
- doc = HTML::Document.new("<div id='map'></div>")
117
- assert_nil doc.find(:tag => "div", :attributes => { :id => "map" }, :content => /./)
118
- assert doc.find(:tag => "div", :attributes => { :id => "map" }, :content => /\A\Z/)
119
- assert doc.find(:tag => "div", :attributes => { :id => "map" }, :content => /^$/)
120
- assert doc.find(:tag => "div", :attributes => { :id => "map" }, :content => "")
121
- assert doc.find(:tag => "div", :attributes => { :id => "map" }, :content => nil)
122
- end
123
-
124
- def test_parse_invalid_document
125
- assert_nothing_raised do
126
- doc = HTML::Document.new("<html>
127
- <table>
128
- <tr>
129
- <td style=\"color: #FFFFFF; height: 17px; onclick=\"window.location.href='http://www.rmeinc.com/about_rme.aspx'\" style=\"cursor:pointer; height: 17px;\"; nowrap onclick=\"window.location.href='http://www.rmeinc.com/about_rme.aspx'\" onmouseout=\"this.bgColor='#0066cc'; this.style.color='#FFFFFF'\" onmouseover=\"this.bgColor='#ffffff'; this.style.color='#0033cc'\">About Us</td>
130
- </tr>
131
- </table>
132
- </html>")
133
- end
134
- end
135
-
136
- def test_invalid_document_raises_exception_when_strict
137
- assert_raise RuntimeError do
138
- doc = HTML::Document.new("<html>
139
- <table>
140
- <tr>
141
- <td style=\"color: #FFFFFF; height: 17px; onclick=\"window.location.href='http://www.rmeinc.com/about_rme.aspx'\" style=\"cursor:pointer; height: 17px;\"; nowrap onclick=\"window.location.href='http://www.rmeinc.com/about_rme.aspx'\" onmouseout=\"this.bgColor='#0066cc'; this.style.color='#FFFFFF'\" onmouseover=\"this.bgColor='#ffffff'; this.style.color='#0033cc'\">About Us</td>
142
- </tr>
143
- </table>
144
- </html>", true)
145
- end
146
- end
147
-
148
- end