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.
- data/CHANGELOG +15 -64
- data/README +39 -48
- data/lib/abstract_controller.rb +22 -0
- data/lib/abstract_controller/base.rb +191 -0
- data/lib/abstract_controller/callbacks.rb +113 -0
- data/lib/abstract_controller/collector.rb +30 -0
- data/lib/abstract_controller/compatibility.rb +18 -0
- data/lib/abstract_controller/helpers.rb +163 -0
- data/lib/abstract_controller/layouts.rb +413 -0
- data/lib/abstract_controller/localized_cache.rb +49 -0
- data/lib/abstract_controller/logger.rb +13 -0
- data/lib/abstract_controller/rendering.rb +238 -0
- data/lib/{action_controller → abstract_controller}/translation.rb +1 -1
- data/lib/action_controller.rb +68 -102
- data/lib/action_controller/base.rb +77 -1409
- data/lib/action_controller/caching.rb +58 -45
- data/lib/action_controller/caching/actions.rb +100 -114
- data/lib/action_controller/caching/fragments.rb +17 -19
- data/lib/action_controller/caching/pages.rb +12 -6
- data/lib/action_controller/caching/sweeping.rb +42 -0
- data/lib/action_controller/deprecated.rb +5 -0
- data/lib/action_controller/deprecated/dispatcher.rb +28 -0
- data/lib/action_controller/deprecated/integration_test.rb +2 -0
- data/lib/action_controller/deprecated/performance_test.rb +1 -0
- data/lib/action_controller/metal.rb +125 -0
- data/lib/action_controller/metal/compatibility.rb +141 -0
- data/lib/action_controller/metal/conditional_get.rb +86 -0
- data/lib/action_controller/metal/configuration.rb +28 -0
- data/lib/action_controller/metal/cookies.rb +17 -0
- data/lib/action_controller/metal/exceptions.rb +46 -0
- data/lib/action_controller/metal/flash.rb +28 -0
- data/lib/action_controller/metal/head.rb +33 -0
- data/lib/action_controller/metal/helpers.rb +116 -0
- data/lib/action_controller/metal/hide_actions.rb +50 -0
- data/lib/action_controller/{http_authentication.rb → metal/http_authentication.rb} +18 -15
- data/lib/action_controller/metal/instrumentation.rb +99 -0
- data/lib/action_controller/metal/mime_responds.rb +300 -0
- data/lib/action_controller/metal/rack_delegation.rb +35 -0
- data/lib/action_controller/metal/redirecting.rb +90 -0
- data/lib/action_controller/metal/renderers.rb +95 -0
- data/lib/action_controller/metal/rendering.rb +69 -0
- data/lib/action_controller/metal/request_forgery_protection.rb +115 -0
- data/lib/action_controller/metal/rescue.rb +13 -0
- data/lib/action_controller/metal/responder.rb +220 -0
- data/lib/action_controller/{session_management.rb → metal/session_management.rb} +5 -14
- data/lib/action_controller/{streaming.rb → metal/streaming.rb} +13 -12
- data/lib/action_controller/metal/testing.rb +42 -0
- data/lib/action_controller/metal/url_for.rb +157 -0
- data/lib/action_controller/{verification.rb → metal/verification.rb} +41 -41
- data/lib/action_controller/middleware.rb +38 -0
- data/lib/action_controller/polymorphic_routes.rb +20 -26
- data/lib/action_controller/railtie.rb +30 -0
- data/lib/action_controller/railties/subscriber.rb +63 -0
- data/lib/action_controller/record_identifier.rb +3 -16
- data/lib/action_controller/test_case.rb +156 -18
- data/lib/action_controller/url_rewriter.rb +47 -200
- data/lib/action_controller/vendor/html-scanner.rb +16 -12
- data/lib/action_controller/vendor/html-scanner/html/node.rb +1 -1
- data/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +12 -9
- data/lib/action_dispatch.rb +88 -0
- data/lib/action_dispatch/http/cache.rb +123 -0
- data/lib/action_dispatch/http/filter_parameters.rb +98 -0
- data/lib/{action_controller → action_dispatch/http}/headers.rb +8 -8
- data/lib/action_dispatch/http/mime_negotiation.rb +101 -0
- data/lib/{action_controller → action_dispatch/http}/mime_type.rb +30 -11
- data/lib/{action_controller → action_dispatch/http}/mime_types.rb +5 -3
- data/lib/action_dispatch/http/parameters.rb +49 -0
- data/lib/action_dispatch/http/request.rb +223 -0
- data/lib/action_dispatch/http/response.rb +209 -0
- data/lib/action_dispatch/http/upload.rb +48 -0
- data/lib/action_dispatch/http/url.rb +129 -0
- data/lib/action_dispatch/middleware/callbacks.rb +50 -0
- data/lib/action_dispatch/middleware/cascade.rb +29 -0
- data/lib/action_dispatch/middleware/cookies.rb +216 -0
- data/lib/{action_controller → action_dispatch/middleware}/flash.rb +51 -90
- data/lib/action_dispatch/middleware/head.rb +18 -0
- data/lib/action_dispatch/middleware/params_parser.rb +78 -0
- data/lib/action_dispatch/middleware/rescue.rb +26 -0
- data/lib/action_dispatch/middleware/session/abstract_store.rb +209 -0
- data/lib/{action_controller → action_dispatch/middleware}/session/cookie_store.rb +56 -60
- data/lib/action_dispatch/middleware/session/mem_cache_store.rb +47 -0
- data/lib/action_dispatch/middleware/show_exceptions.rb +173 -0
- data/lib/{action_controller/middleware_stack.rb → action_dispatch/middleware/stack.rb} +23 -13
- data/lib/action_dispatch/middleware/static.rb +44 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_request_and_response.erb +10 -3
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_trace.erb +4 -4
- data/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb +10 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/layout.erb +2 -2
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/missing_template.erb +0 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/routing_error.erb +0 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/template_error.erb +3 -3
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/unknown_action.erb +0 -0
- data/lib/action_dispatch/railtie.rb +15 -0
- data/lib/action_dispatch/routing.rb +217 -0
- data/lib/action_dispatch/routing/deprecated_mapper.rb +877 -0
- data/lib/action_dispatch/routing/mapper.rb +649 -0
- data/lib/action_dispatch/routing/route.rb +55 -0
- data/lib/action_dispatch/routing/route_set.rb +445 -0
- data/lib/action_dispatch/testing/assertions.rb +21 -0
- data/lib/action_dispatch/testing/assertions/dom.rb +37 -0
- data/lib/{action_controller/assertions/model_assertions.rb → action_dispatch/testing/assertions/model.rb} +2 -4
- data/lib/action_dispatch/testing/assertions/response.rb +154 -0
- data/lib/{action_controller/assertions/routing_assertions.rb → action_dispatch/testing/assertions/routing.rb} +72 -34
- data/lib/{action_controller/assertions/selector_assertions.rb → action_dispatch/testing/assertions/selector.rb} +14 -11
- data/lib/{action_controller/assertions/tag_assertions.rb → action_dispatch/testing/assertions/tag.rb} +25 -14
- data/lib/{action_controller → action_dispatch/testing}/integration.rb +173 -406
- data/lib/action_dispatch/testing/performance_test.rb +17 -0
- data/lib/action_dispatch/testing/test_process.rb +42 -0
- data/lib/action_dispatch/testing/test_request.rb +83 -0
- data/lib/action_dispatch/testing/test_response.rb +136 -0
- data/lib/action_pack/version.rb +3 -3
- data/lib/action_view.rb +29 -26
- data/lib/action_view/base.rb +101 -148
- data/lib/action_view/context.rb +44 -0
- data/lib/action_view/helpers.rb +6 -4
- data/lib/action_view/helpers/{active_record_helper.rb → active_model_helper.rb} +63 -63
- data/lib/action_view/helpers/asset_tag_helper.rb +166 -31
- data/lib/action_view/helpers/cache_helper.rb +1 -1
- data/lib/action_view/helpers/capture_helper.rb +40 -8
- data/lib/action_view/helpers/csrf_helper.rb +2 -4
- data/lib/action_view/helpers/date_helper.rb +14 -15
- data/lib/action_view/helpers/form_helper.rb +121 -24
- data/lib/action_view/helpers/form_options_helper.rb +26 -25
- data/lib/action_view/helpers/form_tag_helper.rb +42 -33
- data/lib/action_view/helpers/javascript_helper.rb +1 -109
- data/lib/action_view/helpers/number_helper.rb +4 -1
- data/lib/action_view/helpers/prototype_helper.rb +75 -499
- data/lib/action_view/helpers/raw_output_helper.rb +1 -1
- data/lib/action_view/helpers/record_tag_helper.rb +3 -3
- data/lib/action_view/helpers/sanitize_helper.rb +3 -2
- data/lib/action_view/helpers/scriptaculous_helper.rb +89 -53
- data/lib/action_view/helpers/tag_helper.rb +12 -13
- data/lib/action_view/helpers/text_helper.rb +33 -38
- data/lib/action_view/helpers/translation_helper.rb +11 -35
- data/lib/action_view/helpers/url_helper.rb +140 -134
- data/lib/action_view/locale/en.yml +34 -28
- data/lib/action_view/paths.rb +27 -24
- data/lib/action_view/railtie.rb +17 -0
- data/lib/action_view/railties/subscriber.rb +24 -0
- data/lib/action_view/{partials.rb → render/partials.rb} +161 -51
- data/lib/action_view/render/rendering.rb +117 -0
- data/lib/action_view/template.rb +88 -217
- data/lib/action_view/template/error.rb +105 -0
- data/lib/action_view/template/handler.rb +41 -0
- data/lib/action_view/template/handlers.rb +54 -0
- data/lib/action_view/{template_handlers → template/handlers}/builder.rb +6 -6
- data/lib/action_view/template/handlers/erb.rb +58 -0
- data/lib/action_view/{template_handlers → template/handlers}/rjs.rb +8 -3
- data/lib/action_view/template/resolver.rb +164 -0
- data/lib/action_view/template/text.rb +40 -0
- data/lib/action_view/test_case.rb +18 -18
- metadata +165 -420
- data/RUNNING_UNIT_TESTS +0 -24
- data/Rakefile +0 -158
- data/install.rb +0 -30
- data/lib/action_controller/assertions/dom_assertions.rb +0 -55
- data/lib/action_controller/assertions/response_assertions.rb +0 -169
- data/lib/action_controller/benchmarking.rb +0 -107
- data/lib/action_controller/caching/sweeper.rb +0 -45
- data/lib/action_controller/cgi_ext.rb +0 -15
- data/lib/action_controller/cgi_ext/cookie.rb +0 -112
- data/lib/action_controller/cgi_ext/query_extension.rb +0 -22
- data/lib/action_controller/cgi_ext/stdinput.rb +0 -24
- data/lib/action_controller/cgi_process.rb +0 -77
- data/lib/action_controller/cookies.rb +0 -197
- data/lib/action_controller/dispatcher.rb +0 -133
- data/lib/action_controller/failsafe.rb +0 -87
- data/lib/action_controller/filters.rb +0 -680
- data/lib/action_controller/helpers.rb +0 -225
- data/lib/action_controller/layout.rb +0 -286
- data/lib/action_controller/middlewares.rb +0 -14
- data/lib/action_controller/mime_responds.rb +0 -193
- data/lib/action_controller/params_parser.rb +0 -77
- data/lib/action_controller/performance_test.rb +0 -15
- data/lib/action_controller/rack_lint_patch.rb +0 -36
- data/lib/action_controller/reloader.rb +0 -54
- data/lib/action_controller/request.rb +0 -518
- data/lib/action_controller/request_forgery_protection.rb +0 -116
- data/lib/action_controller/rescue.rb +0 -183
- data/lib/action_controller/resources.rb +0 -682
- data/lib/action_controller/response.rb +0 -237
- data/lib/action_controller/routing.rb +0 -388
- data/lib/action_controller/routing/builder.rb +0 -197
- data/lib/action_controller/routing/optimisations.rb +0 -130
- data/lib/action_controller/routing/recognition_optimisation.rb +0 -167
- data/lib/action_controller/routing/route.rb +0 -265
- data/lib/action_controller/routing/route_set.rb +0 -503
- data/lib/action_controller/routing/routing_ext.rb +0 -49
- data/lib/action_controller/routing/segments.rb +0 -343
- data/lib/action_controller/session/abstract_store.rb +0 -276
- data/lib/action_controller/session/mem_cache_store.rb +0 -60
- data/lib/action_controller/status_codes.rb +0 -88
- data/lib/action_controller/string_coercion.rb +0 -29
- data/lib/action_controller/templates/rescues/diagnostics.erb +0 -11
- data/lib/action_controller/test_process.rb +0 -580
- data/lib/action_controller/uploaded_file.rb +0 -44
- data/lib/action_view/helpers/benchmark_helper.rb +0 -54
- data/lib/action_view/inline_template.rb +0 -19
- data/lib/action_view/reloadable_template.rb +0 -117
- data/lib/action_view/renderable.rb +0 -109
- data/lib/action_view/renderable_partial.rb +0 -53
- data/lib/action_view/template_error.rb +0 -99
- data/lib/action_view/template_handler.rb +0 -34
- data/lib/action_view/template_handlers.rb +0 -48
- data/lib/action_view/template_handlers/erb.rb +0 -25
- data/lib/actionpack.rb +0 -2
- data/test/abstract_unit.rb +0 -78
- data/test/active_record_unit.rb +0 -104
- data/test/activerecord/active_record_store_test.rb +0 -221
- data/test/activerecord/render_partial_with_record_identification_test.rb +0 -188
- data/test/adv_attr_test.rb +0 -20
- data/test/controller/action_pack_assertions_test.rb +0 -545
- data/test/controller/addresses_render_test.rb +0 -37
- data/test/controller/assert_select_test.rb +0 -735
- data/test/controller/base_test.rb +0 -217
- data/test/controller/benchmark_test.rb +0 -32
- data/test/controller/caching_test.rb +0 -743
- data/test/controller/capture_test.rb +0 -66
- data/test/controller/content_type_test.rb +0 -178
- data/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
- data/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
- data/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
- data/test/controller/cookie_test.rb +0 -208
- data/test/controller/deprecation/deprecated_base_methods_test.rb +0 -32
- data/test/controller/dispatcher_test.rb +0 -144
- data/test/controller/dom_assertions_test.rb +0 -53
- data/test/controller/failsafe_test.rb +0 -60
- data/test/controller/fake_controllers.rb +0 -33
- data/test/controller/fake_models.rb +0 -19
- data/test/controller/filter_params_test.rb +0 -52
- data/test/controller/filters_test.rb +0 -885
- data/test/controller/flash_test.rb +0 -174
- data/test/controller/header_test.rb +0 -14
- data/test/controller/helper_test.rb +0 -224
- data/test/controller/html-scanner/cdata_node_test.rb +0 -15
- data/test/controller/html-scanner/document_test.rb +0 -148
- data/test/controller/html-scanner/node_test.rb +0 -89
- data/test/controller/html-scanner/sanitizer_test.rb +0 -300
- data/test/controller/html-scanner/tag_node_test.rb +0 -238
- data/test/controller/html-scanner/text_node_test.rb +0 -50
- data/test/controller/html-scanner/tokenizer_test.rb +0 -131
- data/test/controller/http_basic_authentication_test.rb +0 -113
- data/test/controller/http_digest_authentication_test.rb +0 -254
- data/test/controller/integration_test.rb +0 -526
- data/test/controller/layout_test.rb +0 -215
- data/test/controller/localized_templates_test.rb +0 -24
- data/test/controller/logging_test.rb +0 -46
- data/test/controller/middleware_stack_test.rb +0 -90
- data/test/controller/mime_responds_test.rb +0 -536
- data/test/controller/mime_type_test.rb +0 -93
- data/test/controller/output_escaping_test.rb +0 -19
- data/test/controller/polymorphic_routes_test.rb +0 -297
- data/test/controller/rack_test.rb +0 -308
- data/test/controller/record_identifier_test.rb +0 -139
- data/test/controller/redirect_test.rb +0 -285
- data/test/controller/reloader_test.rb +0 -125
- data/test/controller/render_test.rb +0 -1783
- data/test/controller/request/json_params_parsing_test.rb +0 -65
- data/test/controller/request/multipart_params_parsing_test.rb +0 -177
- data/test/controller/request/query_string_parsing_test.rb +0 -129
- data/test/controller/request/test_request_test.rb +0 -35
- data/test/controller/request/url_encoded_params_parsing_test.rb +0 -146
- data/test/controller/request/xml_params_parsing_test.rb +0 -103
- data/test/controller/request_forgery_protection_test.rb +0 -233
- data/test/controller/request_test.rb +0 -398
- data/test/controller/rescue_test.rb +0 -541
- data/test/controller/resources_test.rb +0 -1393
- data/test/controller/routing_test.rb +0 -2592
- data/test/controller/selector_test.rb +0 -628
- data/test/controller/send_file_test.rb +0 -171
- data/test/controller/session/abstract_store_test.rb +0 -64
- data/test/controller/session/cookie_store_test.rb +0 -354
- data/test/controller/session/mem_cache_store_test.rb +0 -187
- data/test/controller/session/test_session_test.rb +0 -58
- data/test/controller/test_test.rb +0 -700
- data/test/controller/translation_test.rb +0 -26
- data/test/controller/url_rewriter_test.rb +0 -395
- data/test/controller/verification_test.rb +0 -270
- data/test/controller/view_paths_test.rb +0 -141
- data/test/controller/webservice_test.rb +0 -273
- data/test/fixtures/_top_level_partial.html.erb +0 -1
- data/test/fixtures/_top_level_partial_only.erb +0 -1
- data/test/fixtures/addresses/list.erb +0 -1
- data/test/fixtures/alternate_helpers/foo_helper.rb +0 -3
- data/test/fixtures/bad_customers/_bad_customer.html.erb +0 -1
- data/test/fixtures/companies.yml +0 -24
- data/test/fixtures/company.rb +0 -10
- data/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +0 -1
- data/test/fixtures/content_type/render_default_for_rhtml.rhtml +0 -1
- data/test/fixtures/content_type/render_default_for_rjs.rjs +0 -1
- data/test/fixtures/content_type/render_default_for_rxml.rxml +0 -1
- data/test/fixtures/customers/_customer.html.erb +0 -1
- data/test/fixtures/db_definitions/sqlite.sql +0 -49
- data/test/fixtures/developer.rb +0 -9
- data/test/fixtures/developers.yml +0 -21
- data/test/fixtures/developers/_developer.erb +0 -1
- data/test/fixtures/developers_projects.yml +0 -13
- data/test/fixtures/failsafe/500.html +0 -1
- data/test/fixtures/fun/games/_game.erb +0 -1
- data/test/fixtures/fun/games/hello_world.erb +0 -1
- data/test/fixtures/fun/serious/games/_game.erb +0 -1
- data/test/fixtures/functional_caching/_partial.erb +0 -3
- data/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +0 -3
- data/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +0 -6
- data/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +0 -5
- data/test/fixtures/functional_caching/fragment_cached.html.erb +0 -2
- data/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +0 -1
- data/test/fixtures/functional_caching/inline_fragment_cached.html.erb +0 -2
- data/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +0 -1
- data/test/fixtures/good_customers/_good_customer.html.erb +0 -1
- data/test/fixtures/helpers/abc_helper.rb +0 -5
- data/test/fixtures/helpers/fun/games_helper.rb +0 -3
- data/test/fixtures/helpers/fun/pdf_helper.rb +0 -3
- data/test/fixtures/layout_tests/abs_path_layout.rhtml +0 -1
- data/test/fixtures/layout_tests/alt/hello.rhtml +0 -1
- data/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
- data/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +0 -1
- data/test/fixtures/layout_tests/layouts/item.rhtml +0 -1
- data/test/fixtures/layout_tests/layouts/layout_test.rhtml +0 -1
- data/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +0 -1
- data/test/fixtures/layout_tests/layouts/third_party_template_library.mab +0 -1
- data/test/fixtures/layout_tests/views/hello.rhtml +0 -1
- data/test/fixtures/layouts/_column.html.erb +0 -2
- data/test/fixtures/layouts/block_with_layout.erb +0 -3
- data/test/fixtures/layouts/builder.builder +0 -3
- data/test/fixtures/layouts/default_html.html.erb +0 -1
- data/test/fixtures/layouts/partial_with_layout.erb +0 -3
- data/test/fixtures/layouts/standard.erb +0 -1
- data/test/fixtures/layouts/talk_from_action.erb +0 -2
- data/test/fixtures/layouts/xhr.html.erb +0 -2
- data/test/fixtures/layouts/yield.erb +0 -2
- data/test/fixtures/localized/hello_world.de.html +0 -1
- data/test/fixtures/localized/hello_world.en.html +0 -1
- data/test/fixtures/mascot.rb +0 -3
- data/test/fixtures/mascots.yml +0 -4
- data/test/fixtures/mascots/_mascot.html.erb +0 -1
- data/test/fixtures/multipart/binary_file +0 -0
- data/test/fixtures/multipart/boundary_problem_file +0 -10
- data/test/fixtures/multipart/bracketed_param +0 -5
- data/test/fixtures/multipart/empty +0 -10
- data/test/fixtures/multipart/hello.txt +0 -1
- data/test/fixtures/multipart/large_text_file +0 -10
- data/test/fixtures/multipart/mixed_files +0 -0
- data/test/fixtures/multipart/mona_lisa.jpg +0 -0
- data/test/fixtures/multipart/none +0 -9
- data/test/fixtures/multipart/single_parameter +0 -5
- data/test/fixtures/multipart/text_file +0 -10
- data/test/fixtures/override/test/hello_world.erb +0 -1
- data/test/fixtures/override2/layouts/test/sub.erb +0 -1
- data/test/fixtures/post_test/layouts/post.html.erb +0 -1
- data/test/fixtures/post_test/layouts/super_post.iphone.erb +0 -1
- data/test/fixtures/post_test/post/index.html.erb +0 -1
- data/test/fixtures/post_test/post/index.iphone.erb +0 -1
- data/test/fixtures/post_test/super_post/index.html.erb +0 -1
- data/test/fixtures/post_test/super_post/index.iphone.erb +0 -1
- data/test/fixtures/project.rb +0 -3
- data/test/fixtures/projects.yml +0 -7
- data/test/fixtures/projects/_project.erb +0 -1
- data/test/fixtures/public/404.html +0 -1
- data/test/fixtures/public/500.da.html +0 -1
- data/test/fixtures/public/500.html +0 -1
- data/test/fixtures/public/absolute/test.css +0 -23
- data/test/fixtures/public/absolute/test.js +0 -63
- data/test/fixtures/public/images/rails.png +0 -0
- data/test/fixtures/public/javascripts/application.js +0 -1
- data/test/fixtures/public/javascripts/bank.js +0 -1
- data/test/fixtures/public/javascripts/controls.js +0 -1
- data/test/fixtures/public/javascripts/dragdrop.js +0 -1
- data/test/fixtures/public/javascripts/effects.js +0 -1
- data/test/fixtures/public/javascripts/prototype.js +0 -1
- data/test/fixtures/public/javascripts/robber.js +0 -1
- data/test/fixtures/public/javascripts/subdir/subdir.js +0 -1
- data/test/fixtures/public/javascripts/version.1.0.js +0 -1
- data/test/fixtures/public/stylesheets/bank.css +0 -1
- data/test/fixtures/public/stylesheets/robber.css +0 -1
- data/test/fixtures/public/stylesheets/subdir/subdir.css +0 -1
- data/test/fixtures/public/stylesheets/version.1.0.css +0 -1
- data/test/fixtures/quiz/questions/_question.html.erb +0 -1
- data/test/fixtures/replies.yml +0 -15
- data/test/fixtures/replies/_reply.erb +0 -1
- data/test/fixtures/reply.rb +0 -7
- data/test/fixtures/respond_to/all_types_with_layout.html.erb +0 -1
- data/test/fixtures/respond_to/all_types_with_layout.js.rjs +0 -1
- data/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +0 -1
- data/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +0 -1
- data/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +0 -1
- data/test/fixtures/respond_to/layouts/missing.html.erb +0 -1
- data/test/fixtures/respond_to/layouts/standard.html.erb +0 -1
- data/test/fixtures/respond_to/layouts/standard.iphone.erb +0 -1
- data/test/fixtures/respond_to/using_defaults.html.erb +0 -1
- data/test/fixtures/respond_to/using_defaults.js.rjs +0 -1
- data/test/fixtures/respond_to/using_defaults.xml.builder +0 -1
- data/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +0 -1
- data/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +0 -1
- data/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +0 -1
- data/test/fixtures/scope/test/modgreet.erb +0 -1
- data/test/fixtures/session_autoload_test/session_autoload_test/foo.rb +0 -10
- data/test/fixtures/shared.html.erb +0 -1
- data/test/fixtures/symlink_parent/symlinked_layout.erb +0 -5
- data/test/fixtures/test/_counter.html.erb +0 -1
- data/test/fixtures/test/_customer.erb +0 -1
- data/test/fixtures/test/_customer_counter.erb +0 -1
- data/test/fixtures/test/_customer_counter_with_as.erb +0 -1
- data/test/fixtures/test/_customer_greeting.erb +0 -1
- data/test/fixtures/test/_customer_with_var.erb +0 -1
- data/test/fixtures/test/_form.erb +0 -1
- data/test/fixtures/test/_from_helper.erb +0 -1
- data/test/fixtures/test/_hash_greeting.erb +0 -1
- data/test/fixtures/test/_hash_object.erb +0 -2
- data/test/fixtures/test/_hello.builder +0 -1
- data/test/fixtures/test/_labelling_form.erb +0 -1
- data/test/fixtures/test/_layout_for_block_with_args.html.erb +0 -3
- data/test/fixtures/test/_layout_for_partial.html.erb +0 -3
- data/test/fixtures/test/_local_inspector.html.erb +0 -1
- data/test/fixtures/test/_one.html.erb +0 -1
- data/test/fixtures/test/_partial.erb +0 -1
- data/test/fixtures/test/_partial.html.erb +0 -1
- data/test/fixtures/test/_partial.js.erb +0 -1
- data/test/fixtures/test/_partial_for_use_in_layout.html.erb +0 -1
- data/test/fixtures/test/_partial_only.erb +0 -1
- data/test/fixtures/test/_partial_with_only_html_version.html.erb +0 -1
- data/test/fixtures/test/_person.erb +0 -2
- data/test/fixtures/test/_raise.html.erb +0 -1
- data/test/fixtures/test/_two.html.erb +0 -1
- data/test/fixtures/test/_utf8_partial.html.erb +0 -1
- data/test/fixtures/test/_utf8_partial_magic.html.erb +0 -2
- data/test/fixtures/test/action_talk_to_layout.erb +0 -2
- data/test/fixtures/test/array_translation.erb +0 -1
- data/test/fixtures/test/calling_partial_with_layout.html.erb +0 -1
- data/test/fixtures/test/capturing.erb +0 -4
- data/test/fixtures/test/content_for.erb +0 -2
- data/test/fixtures/test/content_for_concatenated.erb +0 -3
- data/test/fixtures/test/content_for_with_parameter.erb +0 -2
- data/test/fixtures/test/delete_with_js.rjs +0 -2
- data/test/fixtures/test/dont_pick_me +0 -1
- data/test/fixtures/test/dot.directory/render_file_with_ivar.erb +0 -1
- data/test/fixtures/test/enum_rjs_test.rjs +0 -6
- data/test/fixtures/test/formatted_html_erb.html.erb +0 -1
- data/test/fixtures/test/formatted_xml_erb.builder +0 -1
- data/test/fixtures/test/formatted_xml_erb.html.erb +0 -1
- data/test/fixtures/test/formatted_xml_erb.xml.erb +0 -1
- data/test/fixtures/test/greeting.erb +0 -1
- data/test/fixtures/test/greeting.js.rjs +0 -1
- data/test/fixtures/test/hello.builder +0 -4
- data/test/fixtures/test/hello_world.da.html.erb +0 -1
- data/test/fixtures/test/hello_world.erb +0 -1
- data/test/fixtures/test/hello_world.erb~ +0 -1
- data/test/fixtures/test/hello_world.pt-BR.html.erb +0 -1
- data/test/fixtures/test/hello_world_container.builder +0 -3
- data/test/fixtures/test/hello_world_from_rxml.builder +0 -4
- data/test/fixtures/test/hello_world_with_layout_false.erb +0 -1
- data/test/fixtures/test/hello_xml_world.builder +0 -11
- data/test/fixtures/test/hyphen-ated.erb +0 -1
- data/test/fixtures/test/implicit_content_type.atom.builder +0 -2
- data/test/fixtures/test/list.erb +0 -1
- data/test/fixtures/test/malformed/malformed.en.html.erb~ +0 -1
- data/test/fixtures/test/malformed/malformed.erb~ +0 -1
- data/test/fixtures/test/malformed/malformed.html.erb~ +0 -1
- data/test/fixtures/test/nested_layout.erb +0 -3
- data/test/fixtures/test/non_erb_block_content_for.builder +0 -4
- data/test/fixtures/test/potential_conflicts.erb +0 -4
- data/test/fixtures/test/render_explicit_html_template.js.rjs +0 -1
- data/test/fixtures/test/render_file_from_template.html.erb +0 -1
- data/test/fixtures/test/render_file_with_ivar.erb +0 -1
- data/test/fixtures/test/render_file_with_locals.erb +0 -1
- data/test/fixtures/test/render_implicit_html_template.js.rjs +0 -1
- data/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +0 -1
- data/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +0 -1
- data/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +0 -1
- data/test/fixtures/test/render_to_string_test.erb +0 -1
- data/test/fixtures/test/scoped_array_translation.erb +0 -1
- data/test/fixtures/test/sub_template_raise.html.erb +0 -1
- data/test/fixtures/test/template.erb +0 -1
- data/test/fixtures/test/translation.erb +0 -1
- data/test/fixtures/test/update_element_with_capture.erb +0 -9
- data/test/fixtures/test/using_layout_around_block.html.erb +0 -1
- data/test/fixtures/test/using_layout_around_block_with_args.html.erb +0 -1
- data/test/fixtures/test/utf8.html.erb +0 -4
- data/test/fixtures/test/utf8_magic.html.erb +0 -5
- data/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +0 -5
- data/test/fixtures/topic.rb +0 -3
- data/test/fixtures/topics.yml +0 -22
- data/test/fixtures/topics/_topic.html.erb +0 -1
- data/test/template/active_record_helper_i18n_test.rb +0 -51
- data/test/template/active_record_helper_test.rb +0 -302
- data/test/template/asset_tag_helper_test.rb +0 -770
- data/test/template/atom_feed_helper_test.rb +0 -315
- data/test/template/benchmark_helper_test.rb +0 -86
- data/test/template/compiled_templates_test.rb +0 -204
- data/test/template/date_helper_i18n_test.rb +0 -121
- data/test/template/date_helper_test.rb +0 -2603
- data/test/template/erb_util_test.rb +0 -36
- data/test/template/form_helper_test.rb +0 -1447
- data/test/template/form_options_helper_i18n_test.rb +0 -27
- data/test/template/form_options_helper_test.rb +0 -811
- data/test/template/form_tag_helper_test.rb +0 -356
- data/test/template/javascript_helper_test.rb +0 -106
- data/test/template/number_helper_i18n_test.rb +0 -69
- data/test/template/number_helper_test.rb +0 -132
- data/test/template/prototype_helper_test.rb +0 -639
- data/test/template/raw_output_helper_test.rb +0 -21
- data/test/template/record_tag_helper_test.rb +0 -58
- data/test/template/render_test.rb +0 -329
- data/test/template/sanitize_helper_test.rb +0 -57
- data/test/template/scriptaculous_helper_test.rb +0 -90
- data/test/template/tag_helper_test.rb +0 -98
- data/test/template/template_test.rb +0 -32
- data/test/template/test_test.rb +0 -54
- data/test/template/text_helper_test.rb +0 -601
- data/test/template/translation_helper_test.rb +0 -95
- data/test/template/url_helper_test.rb +0 -641
- data/test/testing_sandbox.rb +0 -15
- data/test/view/test_case_test.rb +0 -176
@@ -1,187 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
# You need to start a memcached server inorder to run these tests
|
4
|
-
class MemCacheStoreTest < ActionController::IntegrationTest
|
5
|
-
class TestController < ActionController::Base
|
6
|
-
def no_session_access
|
7
|
-
head :ok
|
8
|
-
end
|
9
|
-
|
10
|
-
def set_session_value
|
11
|
-
session[:foo] = "bar"
|
12
|
-
head :ok
|
13
|
-
end
|
14
|
-
|
15
|
-
def set_serialized_session_value
|
16
|
-
session[:foo] = SessionAutoloadTest::Foo.new
|
17
|
-
head :ok
|
18
|
-
end
|
19
|
-
|
20
|
-
def get_session_value
|
21
|
-
render :text => "foo: #{session[:foo].inspect}"
|
22
|
-
end
|
23
|
-
|
24
|
-
def get_session_id
|
25
|
-
render :text => "#{request.session_options[:id]}"
|
26
|
-
end
|
27
|
-
|
28
|
-
def call_reset_session
|
29
|
-
session[:bar]
|
30
|
-
reset_session
|
31
|
-
session[:bar] = "baz"
|
32
|
-
head :ok
|
33
|
-
end
|
34
|
-
|
35
|
-
def rescue_action(e) raise end
|
36
|
-
end
|
37
|
-
|
38
|
-
begin
|
39
|
-
DispatcherApp = ActionController::Dispatcher.new
|
40
|
-
|
41
|
-
def test_setting_and_getting_session_value
|
42
|
-
with_test_route_set do
|
43
|
-
get '/set_session_value'
|
44
|
-
assert_response :success
|
45
|
-
assert cookies['_session_id']
|
46
|
-
|
47
|
-
get '/get_session_value'
|
48
|
-
assert_response :success
|
49
|
-
assert_equal 'foo: "bar"', response.body
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_getting_nil_session_value
|
54
|
-
with_test_route_set do
|
55
|
-
get '/get_session_value'
|
56
|
-
assert_response :success
|
57
|
-
assert_equal 'foo: nil', response.body
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_setting_session_value_after_session_reset
|
62
|
-
with_test_route_set do
|
63
|
-
get '/set_session_value'
|
64
|
-
assert_response :success
|
65
|
-
assert cookies['_session_id']
|
66
|
-
session_id = cookies['_session_id']
|
67
|
-
|
68
|
-
get '/call_reset_session'
|
69
|
-
assert_response :success
|
70
|
-
assert_not_equal [], headers['Set-Cookie']
|
71
|
-
|
72
|
-
get '/get_session_value'
|
73
|
-
assert_response :success
|
74
|
-
assert_equal 'foo: nil', response.body
|
75
|
-
|
76
|
-
get '/get_session_id'
|
77
|
-
assert_response :success
|
78
|
-
assert_not_equal session_id, response.body
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_getting_session_value_after_session_reset
|
83
|
-
with_test_route_set do
|
84
|
-
get '/set_session_value'
|
85
|
-
assert_response :success
|
86
|
-
assert cookies['_session_id']
|
87
|
-
session_id = cookies["_session_id"]
|
88
|
-
|
89
|
-
get '/call_reset_session'
|
90
|
-
assert_response :success
|
91
|
-
assert_not_equal [], headers['Set-Cookie']
|
92
|
-
|
93
|
-
cookies["_session_id"] = session_id # replace our new session_id with our old, pre-reset session_id
|
94
|
-
|
95
|
-
get '/get_session_value'
|
96
|
-
assert_response :success
|
97
|
-
assert_equal 'foo: nil', response.body, "data for this session should have been obliterated from memcached"
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_getting_from_nonexistent_session
|
102
|
-
with_test_route_set do
|
103
|
-
get '/get_session_value'
|
104
|
-
assert_response :success
|
105
|
-
assert_equal 'foo: nil', response.body
|
106
|
-
assert_nil cookies['_session_id'], "should only create session on write, not read"
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_getting_session_id
|
111
|
-
with_test_route_set do
|
112
|
-
get '/set_session_value'
|
113
|
-
assert_response :success
|
114
|
-
assert cookies['_session_id']
|
115
|
-
session_id = cookies['_session_id']
|
116
|
-
|
117
|
-
get '/get_session_id'
|
118
|
-
assert_response :success
|
119
|
-
assert_equal session_id, response.body, "should be able to read session id without accessing the session hash"
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_doesnt_write_session_cookie_if_session_id_is_already_exists
|
124
|
-
with_test_route_set do
|
125
|
-
get '/set_session_value'
|
126
|
-
assert_response :success
|
127
|
-
assert cookies['_session_id']
|
128
|
-
|
129
|
-
get '/get_session_value'
|
130
|
-
assert_response :success
|
131
|
-
assert_equal nil, headers['Set-Cookie'], "should not resend the cookie again if session_id cookie is already exists"
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_deserializes_unloaded_class
|
136
|
-
with_test_route_set do
|
137
|
-
with_autoload_path "session_autoload_test" do
|
138
|
-
get '/set_serialized_session_value'
|
139
|
-
assert_response :success
|
140
|
-
assert cookies['_session_id']
|
141
|
-
end
|
142
|
-
with_autoload_path "session_autoload_test" do
|
143
|
-
get '/get_session_id'
|
144
|
-
assert_response :success
|
145
|
-
end
|
146
|
-
with_autoload_path "session_autoload_test" do
|
147
|
-
get '/get_session_value'
|
148
|
-
assert_response :success
|
149
|
-
assert_equal 'foo: #<SessionAutoloadTest::Foo bar:"baz">', response.body, "should auto-load unloaded class"
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
def test_prevents_session_fixation
|
155
|
-
with_test_route_set do
|
156
|
-
get '/get_session_value'
|
157
|
-
assert_response :success
|
158
|
-
assert_equal 'foo: nil', response.body
|
159
|
-
session_id = cookies['_session_id']
|
160
|
-
|
161
|
-
reset!
|
162
|
-
|
163
|
-
get '/set_session_value', :_session_id => session_id
|
164
|
-
assert_response :success
|
165
|
-
assert_equal nil, cookies['_session_id']
|
166
|
-
end
|
167
|
-
end
|
168
|
-
rescue LoadError, RuntimeError
|
169
|
-
$stderr.puts "Skipping MemCacheStoreTest tests. Start memcached and try again."
|
170
|
-
end
|
171
|
-
|
172
|
-
private
|
173
|
-
def with_test_route_set(options = {})
|
174
|
-
with_routing do |set|
|
175
|
-
set.draw do |map|
|
176
|
-
map.with_options :controller => "mem_cache_store_test/test" do |c|
|
177
|
-
c.connect "/:action"
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
|
-
options = { :key => '_session_id' }.merge!(options)
|
182
|
-
@integration_session = open_session(ActionController::Session::MemCacheStore.new(DispatcherApp, options))
|
183
|
-
|
184
|
-
yield
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
require 'stringio'
|
3
|
-
|
4
|
-
class ActionController::TestSessionTest < ActiveSupport::TestCase
|
5
|
-
|
6
|
-
def test_calling_delete_without_parameters_raises_deprecation_warning_and_calls_to_clear_test_session
|
7
|
-
assert_deprecated(/use clear instead/){ ActionController::TestSession.new.delete }
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_calling_update_without_parameters_raises_deprecation_warning_and_calls_to_clear_test_session
|
11
|
-
assert_deprecated(/use replace instead/){ ActionController::TestSession.new.update }
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_calling_close_raises_deprecation_warning
|
15
|
-
assert_deprecated(/sessions should no longer be closed/){ ActionController::TestSession.new.close }
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_defaults
|
19
|
-
session = ActionController::TestSession.new
|
20
|
-
assert_equal({}, session.data)
|
21
|
-
assert_equal('', session.session_id)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_ctor_allows_setting
|
25
|
-
session = ActionController::TestSession.new({:one => 'one', :two => 'two'})
|
26
|
-
assert_equal('one', session[:one])
|
27
|
-
assert_equal('two', session[:two])
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_setting_session_item_sets_item
|
31
|
-
session = ActionController::TestSession.new
|
32
|
-
session[:key] = 'value'
|
33
|
-
assert_equal('value', session[:key])
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_calling_delete_removes_item_and_returns_its_value
|
37
|
-
session = ActionController::TestSession.new
|
38
|
-
session[:key] = 'value'
|
39
|
-
assert_equal('value', session[:key])
|
40
|
-
assert_equal('value', session.delete(:key))
|
41
|
-
assert_nil(session[:key])
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_calling_update_with_params_passes_to_attributes
|
45
|
-
session = ActionController::TestSession.new()
|
46
|
-
session.update('key' => 'value')
|
47
|
-
assert_equal('value', session[:key])
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_clear_emptys_session
|
51
|
-
params = {:one => 'one', :two => 'two'}
|
52
|
-
session = ActionController::TestSession.new({:one => 'one', :two => 'two'})
|
53
|
-
session.clear
|
54
|
-
assert_nil(session[:one])
|
55
|
-
assert_nil(session[:two])
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
@@ -1,700 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
require 'controller/fake_controllers'
|
3
|
-
|
4
|
-
class TestTest < ActionController::TestCase
|
5
|
-
class TestController < ActionController::Base
|
6
|
-
def no_op
|
7
|
-
render :text => 'dummy'
|
8
|
-
end
|
9
|
-
|
10
|
-
def set_flash
|
11
|
-
flash["test"] = ">#{flash["test"]}<"
|
12
|
-
render :text => 'ignore me'
|
13
|
-
end
|
14
|
-
|
15
|
-
def set_flash_now
|
16
|
-
flash.now["test_now"] = ">#{flash["test_now"]}<"
|
17
|
-
render :text => 'ignore me'
|
18
|
-
end
|
19
|
-
|
20
|
-
def set_session
|
21
|
-
session['string'] = 'A wonder'
|
22
|
-
session[:symbol] = 'it works'
|
23
|
-
render :text => 'Success'
|
24
|
-
end
|
25
|
-
|
26
|
-
def reset_the_session
|
27
|
-
reset_session
|
28
|
-
render :text => 'ignore me'
|
29
|
-
end
|
30
|
-
|
31
|
-
def render_raw_post
|
32
|
-
raise ActiveSupport::TestCase::Assertion, "#raw_post is blank" if request.raw_post.blank?
|
33
|
-
render :text => request.raw_post
|
34
|
-
end
|
35
|
-
|
36
|
-
def render_body
|
37
|
-
render :text => request.body.read
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_params
|
41
|
-
render :text => params.inspect
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_uri
|
45
|
-
render :text => request.request_uri
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_query_string
|
49
|
-
render :text => request.query_string
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_html_output
|
53
|
-
render :text => <<HTML
|
54
|
-
<html>
|
55
|
-
<body>
|
56
|
-
<a href="/"><img src="/images/button.png" /></a>
|
57
|
-
<div id="foo">
|
58
|
-
<ul>
|
59
|
-
<li class="item">hello</li>
|
60
|
-
<li class="item">goodbye</li>
|
61
|
-
</ul>
|
62
|
-
</div>
|
63
|
-
<div id="bar">
|
64
|
-
<form action="/somewhere">
|
65
|
-
Name: <input type="text" name="person[name]" id="person_name" />
|
66
|
-
</form>
|
67
|
-
</div>
|
68
|
-
</body>
|
69
|
-
</html>
|
70
|
-
HTML
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_xml_output
|
74
|
-
response.content_type = "application/xml"
|
75
|
-
render :text => <<XML
|
76
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
77
|
-
<root>
|
78
|
-
<area>area is an empty tag in HTML, raising an error if not in xml mode</area>
|
79
|
-
</root>
|
80
|
-
XML
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_only_one_param
|
84
|
-
render :text => (params[:left] && params[:right]) ? "EEP, Both here!" : "OK"
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_remote_addr
|
88
|
-
render :text => (request.remote_addr || "not specified")
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_file_upload
|
92
|
-
render :text => params[:file].size
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_send_file
|
96
|
-
send_file(File.expand_path(__FILE__))
|
97
|
-
end
|
98
|
-
|
99
|
-
def redirect_to_same_controller
|
100
|
-
redirect_to :controller => 'test', :action => 'test_uri', :id => 5
|
101
|
-
end
|
102
|
-
|
103
|
-
def redirect_to_different_controller
|
104
|
-
redirect_to :controller => 'fail', :id => 5
|
105
|
-
end
|
106
|
-
|
107
|
-
def create
|
108
|
-
head :created, :location => 'created resource'
|
109
|
-
end
|
110
|
-
|
111
|
-
private
|
112
|
-
def rescue_action(e)
|
113
|
-
raise e
|
114
|
-
end
|
115
|
-
|
116
|
-
def generate_url(opts)
|
117
|
-
url_for(opts.merge(:action => "test_uri"))
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
def setup
|
122
|
-
@controller = TestController.new
|
123
|
-
@request = ActionController::TestRequest.new
|
124
|
-
@response = ActionController::TestResponse.new
|
125
|
-
ActionController::Routing.use_controllers! %w(content admin/user test_test/test)
|
126
|
-
ActionController::Routing::Routes.load_routes!
|
127
|
-
end
|
128
|
-
|
129
|
-
def teardown
|
130
|
-
ActionController::Routing::Routes.reload
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_raw_post_handling
|
134
|
-
params = {:page => {:name => 'page name'}, 'some key' => 123}
|
135
|
-
post :render_raw_post, params.dup
|
136
|
-
|
137
|
-
assert_equal params.to_query, @response.body
|
138
|
-
end
|
139
|
-
|
140
|
-
def test_body_stream
|
141
|
-
params = { :page => { :name => 'page name' }, 'some key' => 123 }
|
142
|
-
|
143
|
-
post :render_body, params.dup
|
144
|
-
|
145
|
-
assert_equal params.to_query, @response.body
|
146
|
-
end
|
147
|
-
|
148
|
-
def test_process_without_flash
|
149
|
-
process :set_flash
|
150
|
-
assert_equal '><', flash['test']
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_process_with_flash
|
154
|
-
process :set_flash, nil, nil, { "test" => "value" }
|
155
|
-
assert_equal '>value<', flash['test']
|
156
|
-
end
|
157
|
-
|
158
|
-
def test_process_with_flash_now
|
159
|
-
process :set_flash_now, nil, nil, { "test_now" => "value_now" }
|
160
|
-
assert_equal '>value_now<', flash['test_now']
|
161
|
-
end
|
162
|
-
|
163
|
-
def test_process_with_session
|
164
|
-
process :set_session
|
165
|
-
assert_equal 'A wonder', session['string'], "A value stored in the session should be available by string key"
|
166
|
-
assert_equal 'A wonder', session[:string], "Test session hash should allow indifferent access"
|
167
|
-
assert_equal 'it works', session['symbol'], "Test session hash should allow indifferent access"
|
168
|
-
assert_equal 'it works', session[:symbol], "Test session hash should allow indifferent access"
|
169
|
-
end
|
170
|
-
|
171
|
-
def test_process_with_session_arg
|
172
|
-
process :no_op, nil, { 'string' => 'value1', :symbol => 'value2' }
|
173
|
-
assert_equal 'value1', session['string']
|
174
|
-
assert_equal 'value1', session[:string]
|
175
|
-
assert_equal 'value2', session['symbol']
|
176
|
-
assert_equal 'value2', session[:symbol]
|
177
|
-
end
|
178
|
-
|
179
|
-
def test_session_is_cleared_from_controller_after_reset_session
|
180
|
-
process :set_session
|
181
|
-
process :reset_the_session
|
182
|
-
assert_equal Hash.new, @controller.session.to_hash
|
183
|
-
end
|
184
|
-
|
185
|
-
def test_session_is_cleared_from_response_after_reset_session
|
186
|
-
process :set_session
|
187
|
-
process :reset_the_session
|
188
|
-
assert_equal Hash.new, @response.session.to_hash
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_session_is_cleared_from_request_after_reset_session
|
192
|
-
process :set_session
|
193
|
-
process :reset_the_session
|
194
|
-
assert_equal Hash.new, @request.session.to_hash
|
195
|
-
end
|
196
|
-
|
197
|
-
def test_process_with_request_uri_with_no_params
|
198
|
-
process :test_uri
|
199
|
-
assert_equal "/test_test/test/test_uri", @response.body
|
200
|
-
end
|
201
|
-
|
202
|
-
def test_process_with_request_uri_with_params
|
203
|
-
process :test_uri, :id => 7
|
204
|
-
assert_equal "/test_test/test/test_uri/7", @response.body
|
205
|
-
end
|
206
|
-
|
207
|
-
def test_process_with_request_uri_with_params_with_explicit_uri
|
208
|
-
@request.set_REQUEST_URI "/explicit/uri"
|
209
|
-
process :test_uri, :id => 7
|
210
|
-
assert_equal "/explicit/uri", @response.body
|
211
|
-
end
|
212
|
-
|
213
|
-
def test_process_with_query_string
|
214
|
-
process :test_query_string, :q => 'test'
|
215
|
-
assert_equal "q=test", @response.body
|
216
|
-
end
|
217
|
-
|
218
|
-
def test_process_with_query_string_with_explicit_uri
|
219
|
-
@request.set_REQUEST_URI "/explicit/uri?q=test?extra=question"
|
220
|
-
process :test_query_string
|
221
|
-
assert_equal "q=test?extra=question", @response.body
|
222
|
-
end
|
223
|
-
|
224
|
-
def test_multiple_calls
|
225
|
-
process :test_only_one_param, :left => true
|
226
|
-
assert_equal "OK", @response.body
|
227
|
-
process :test_only_one_param, :right => true
|
228
|
-
assert_equal "OK", @response.body
|
229
|
-
end
|
230
|
-
|
231
|
-
def test_assert_tag_tag
|
232
|
-
process :test_html_output
|
233
|
-
|
234
|
-
# there is a 'form' tag
|
235
|
-
assert_tag :tag => 'form'
|
236
|
-
# there is not an 'hr' tag
|
237
|
-
assert_no_tag :tag => 'hr'
|
238
|
-
end
|
239
|
-
|
240
|
-
def test_assert_tag_attributes
|
241
|
-
process :test_html_output
|
242
|
-
|
243
|
-
# there is a tag with an 'id' of 'bar'
|
244
|
-
assert_tag :attributes => { :id => "bar" }
|
245
|
-
# there is no tag with a 'name' of 'baz'
|
246
|
-
assert_no_tag :attributes => { :name => "baz" }
|
247
|
-
end
|
248
|
-
|
249
|
-
def test_assert_tag_parent
|
250
|
-
process :test_html_output
|
251
|
-
|
252
|
-
# there is a tag with a parent 'form' tag
|
253
|
-
assert_tag :parent => { :tag => "form" }
|
254
|
-
# there is no tag with a parent of 'input'
|
255
|
-
assert_no_tag :parent => { :tag => "input" }
|
256
|
-
end
|
257
|
-
|
258
|
-
def test_assert_tag_child
|
259
|
-
process :test_html_output
|
260
|
-
|
261
|
-
# there is a tag with a child 'input' tag
|
262
|
-
assert_tag :child => { :tag => "input" }
|
263
|
-
# there is no tag with a child 'strong' tag
|
264
|
-
assert_no_tag :child => { :tag => "strong" }
|
265
|
-
end
|
266
|
-
|
267
|
-
def test_assert_tag_ancestor
|
268
|
-
process :test_html_output
|
269
|
-
|
270
|
-
# there is a 'li' tag with an ancestor having an id of 'foo'
|
271
|
-
assert_tag :ancestor => { :attributes => { :id => "foo" } }, :tag => "li"
|
272
|
-
# there is no tag of any kind with an ancestor having an href matching 'foo'
|
273
|
-
assert_no_tag :ancestor => { :attributes => { :href => /foo/ } }
|
274
|
-
end
|
275
|
-
|
276
|
-
def test_assert_tag_descendant
|
277
|
-
process :test_html_output
|
278
|
-
|
279
|
-
# there is a tag with a descendant 'li' tag
|
280
|
-
assert_tag :descendant => { :tag => "li" }
|
281
|
-
# there is no tag with a descendant 'html' tag
|
282
|
-
assert_no_tag :descendant => { :tag => "html" }
|
283
|
-
end
|
284
|
-
|
285
|
-
def test_assert_tag_sibling
|
286
|
-
process :test_html_output
|
287
|
-
|
288
|
-
# there is a tag with a sibling of class 'item'
|
289
|
-
assert_tag :sibling => { :attributes => { :class => "item" } }
|
290
|
-
# there is no tag with a sibling 'ul' tag
|
291
|
-
assert_no_tag :sibling => { :tag => "ul" }
|
292
|
-
end
|
293
|
-
|
294
|
-
def test_assert_tag_after
|
295
|
-
process :test_html_output
|
296
|
-
|
297
|
-
# there is a tag following a sibling 'div' tag
|
298
|
-
assert_tag :after => { :tag => "div" }
|
299
|
-
# there is no tag following a sibling tag with id 'bar'
|
300
|
-
assert_no_tag :after => { :attributes => { :id => "bar" } }
|
301
|
-
end
|
302
|
-
|
303
|
-
def test_assert_tag_before
|
304
|
-
process :test_html_output
|
305
|
-
|
306
|
-
# there is a tag preceding a tag with id 'bar'
|
307
|
-
assert_tag :before => { :attributes => { :id => "bar" } }
|
308
|
-
# there is no tag preceding a 'form' tag
|
309
|
-
assert_no_tag :before => { :tag => "form" }
|
310
|
-
end
|
311
|
-
|
312
|
-
def test_assert_tag_children_count
|
313
|
-
process :test_html_output
|
314
|
-
|
315
|
-
# there is a tag with 2 children
|
316
|
-
assert_tag :children => { :count => 2 }
|
317
|
-
# in particular, there is a <ul> tag with two children (a nameless pair of <li>s)
|
318
|
-
assert_tag :tag => 'ul', :children => { :count => 2 }
|
319
|
-
# there is no tag with 4 children
|
320
|
-
assert_no_tag :children => { :count => 4 }
|
321
|
-
end
|
322
|
-
|
323
|
-
def test_assert_tag_children_less_than
|
324
|
-
process :test_html_output
|
325
|
-
|
326
|
-
# there is a tag with less than 5 children
|
327
|
-
assert_tag :children => { :less_than => 5 }
|
328
|
-
# there is no 'ul' tag with less than 2 children
|
329
|
-
assert_no_tag :children => { :less_than => 2 }, :tag => "ul"
|
330
|
-
end
|
331
|
-
|
332
|
-
def test_assert_tag_children_greater_than
|
333
|
-
process :test_html_output
|
334
|
-
|
335
|
-
# there is a 'body' tag with more than 1 children
|
336
|
-
assert_tag :children => { :greater_than => 1 }, :tag => "body"
|
337
|
-
# there is no tag with more than 10 children
|
338
|
-
assert_no_tag :children => { :greater_than => 10 }
|
339
|
-
end
|
340
|
-
|
341
|
-
def test_assert_tag_children_only
|
342
|
-
process :test_html_output
|
343
|
-
|
344
|
-
# there is a tag containing only one child with an id of 'foo'
|
345
|
-
assert_tag :children => { :count => 1,
|
346
|
-
:only => { :attributes => { :id => "foo" } } }
|
347
|
-
# there is no tag containing only one 'li' child
|
348
|
-
assert_no_tag :children => { :count => 1, :only => { :tag => "li" } }
|
349
|
-
end
|
350
|
-
|
351
|
-
def test_assert_tag_content
|
352
|
-
process :test_html_output
|
353
|
-
|
354
|
-
# the output contains the string "Name"
|
355
|
-
assert_tag :content => /Name/
|
356
|
-
# the output does not contain the string "test"
|
357
|
-
assert_no_tag :content => /test/
|
358
|
-
end
|
359
|
-
|
360
|
-
def test_assert_tag_multiple
|
361
|
-
process :test_html_output
|
362
|
-
|
363
|
-
# there is a 'div', id='bar', with an immediate child whose 'action'
|
364
|
-
# attribute matches the regexp /somewhere/.
|
365
|
-
assert_tag :tag => "div", :attributes => { :id => "bar" },
|
366
|
-
:child => { :attributes => { :action => /somewhere/ } }
|
367
|
-
|
368
|
-
# there is no 'div', id='foo', with a 'ul' child with more than
|
369
|
-
# 2 "li" children.
|
370
|
-
assert_no_tag :tag => "div", :attributes => { :id => "foo" },
|
371
|
-
:child => {
|
372
|
-
:tag => "ul",
|
373
|
-
:children => { :greater_than => 2,
|
374
|
-
:only => { :tag => "li" } } }
|
375
|
-
end
|
376
|
-
|
377
|
-
def test_assert_tag_children_without_content
|
378
|
-
process :test_html_output
|
379
|
-
|
380
|
-
# there is a form tag with an 'input' child which is a self closing tag
|
381
|
-
assert_tag :tag => "form",
|
382
|
-
:children => { :count => 1,
|
383
|
-
:only => { :tag => "input" } }
|
384
|
-
|
385
|
-
# the body tag has an 'a' child which in turn has an 'img' child
|
386
|
-
assert_tag :tag => "body",
|
387
|
-
:children => { :count => 1,
|
388
|
-
:only => { :tag => "a",
|
389
|
-
:children => { :count => 1,
|
390
|
-
:only => { :tag => "img" } } } }
|
391
|
-
end
|
392
|
-
|
393
|
-
def test_should_not_impose_childless_html_tags_in_xml
|
394
|
-
process :test_xml_output
|
395
|
-
|
396
|
-
begin
|
397
|
-
$stderr = StringIO.new
|
398
|
-
assert_select 'area' #This will cause a warning if content is processed as HTML
|
399
|
-
$stderr.rewind && err = $stderr.read
|
400
|
-
ensure
|
401
|
-
$stderr = STDERR
|
402
|
-
end
|
403
|
-
|
404
|
-
assert err.empty?
|
405
|
-
end
|
406
|
-
|
407
|
-
def test_assert_tag_attribute_matching
|
408
|
-
@response.body = '<input type="text" name="my_name">'
|
409
|
-
assert_tag :tag => 'input',
|
410
|
-
:attributes => { :name => /my/, :type => 'text' }
|
411
|
-
assert_no_tag :tag => 'input',
|
412
|
-
:attributes => { :name => 'my', :type => 'text' }
|
413
|
-
assert_no_tag :tag => 'input',
|
414
|
-
:attributes => { :name => /^my$/, :type => 'text' }
|
415
|
-
end
|
416
|
-
|
417
|
-
def test_assert_tag_content_matching
|
418
|
-
@response.body = "<p>hello world</p>"
|
419
|
-
assert_tag :tag => "p", :content => "hello world"
|
420
|
-
assert_tag :tag => "p", :content => /hello/
|
421
|
-
assert_no_tag :tag => "p", :content => "hello"
|
422
|
-
end
|
423
|
-
|
424
|
-
def test_assert_generates
|
425
|
-
assert_generates 'controller/action/5', :controller => 'controller', :action => 'action', :id => '5'
|
426
|
-
assert_generates 'controller/action/7', {:id => "7"}, {:controller => "controller", :action => "action"}
|
427
|
-
assert_generates 'controller/action/5', {:controller => "controller", :action => "action", :id => "5", :name => "bob"}, {}, {:name => "bob"}
|
428
|
-
assert_generates 'controller/action/7', {:id => "7", :name => "bob"}, {:controller => "controller", :action => "action"}, {:name => "bob"}
|
429
|
-
assert_generates 'controller/action/7', {:id => "7"}, {:controller => "controller", :action => "action", :name => "bob"}, {}
|
430
|
-
end
|
431
|
-
|
432
|
-
def test_assert_routing
|
433
|
-
assert_routing 'content', :controller => 'content', :action => 'index'
|
434
|
-
end
|
435
|
-
|
436
|
-
def test_assert_routing_with_method
|
437
|
-
with_routing do |set|
|
438
|
-
set.draw { |map| map.resources(:content) }
|
439
|
-
assert_routing({ :method => 'post', :path => 'content' }, { :controller => 'content', :action => 'create' })
|
440
|
-
end
|
441
|
-
end
|
442
|
-
|
443
|
-
def test_assert_routing_in_module
|
444
|
-
assert_routing 'admin/user', :controller => 'admin/user', :action => 'index'
|
445
|
-
end
|
446
|
-
|
447
|
-
def test_params_passing
|
448
|
-
get :test_params, :page => {:name => "Page name", :month => '4', :year => '2004', :day => '6'}
|
449
|
-
parsed_params = eval(@response.body)
|
450
|
-
assert_equal(
|
451
|
-
{'controller' => 'test_test/test', 'action' => 'test_params',
|
452
|
-
'page' => {'name' => "Page name", 'month' => '4', 'year' => '2004', 'day' => '6'}},
|
453
|
-
parsed_params
|
454
|
-
)
|
455
|
-
end
|
456
|
-
|
457
|
-
def test_id_converted_to_string
|
458
|
-
get :test_params, :id => 20, :foo => Object.new
|
459
|
-
assert_kind_of String, @request.path_parameters['id']
|
460
|
-
end
|
461
|
-
|
462
|
-
def test_array_path_parameter_handled_properly
|
463
|
-
with_routing do |set|
|
464
|
-
set.draw do |map|
|
465
|
-
map.connect 'file/*path', :controller => 'test_test/test', :action => 'test_params'
|
466
|
-
map.connect ':controller/:action/:id'
|
467
|
-
end
|
468
|
-
|
469
|
-
get :test_params, :path => ['hello', 'world']
|
470
|
-
assert_equal ['hello', 'world'], @request.path_parameters['path']
|
471
|
-
assert_equal 'hello/world', @request.path_parameters['path'].to_s
|
472
|
-
end
|
473
|
-
end
|
474
|
-
|
475
|
-
def test_assert_realistic_path_parameters
|
476
|
-
get :test_params, :id => 20, :foo => Object.new
|
477
|
-
|
478
|
-
# All elements of path_parameters should use string keys
|
479
|
-
@request.path_parameters.keys.each do |key|
|
480
|
-
assert_kind_of String, key
|
481
|
-
end
|
482
|
-
end
|
483
|
-
|
484
|
-
def test_with_routing_places_routes_back
|
485
|
-
assert ActionController::Routing::Routes
|
486
|
-
routes_id = ActionController::Routing::Routes.object_id
|
487
|
-
|
488
|
-
begin
|
489
|
-
with_routing { raise 'fail' }
|
490
|
-
fail 'Should not be here.'
|
491
|
-
rescue RuntimeError
|
492
|
-
end
|
493
|
-
|
494
|
-
assert ActionController::Routing::Routes
|
495
|
-
assert_equal routes_id, ActionController::Routing::Routes.object_id
|
496
|
-
end
|
497
|
-
|
498
|
-
def test_remote_addr
|
499
|
-
get :test_remote_addr
|
500
|
-
assert_equal "0.0.0.0", @response.body
|
501
|
-
|
502
|
-
@request.remote_addr = "192.0.0.1"
|
503
|
-
get :test_remote_addr
|
504
|
-
assert_equal "192.0.0.1", @response.body
|
505
|
-
end
|
506
|
-
|
507
|
-
def test_header_properly_reset_after_remote_http_request
|
508
|
-
xhr :get, :test_params
|
509
|
-
assert_nil @request.env['HTTP_X_REQUESTED_WITH']
|
510
|
-
end
|
511
|
-
|
512
|
-
def test_header_properly_reset_after_get_request
|
513
|
-
get :test_params
|
514
|
-
@request.recycle!
|
515
|
-
assert_nil @request.instance_variable_get("@request_method")
|
516
|
-
end
|
517
|
-
|
518
|
-
def test_params_reset_after_post_request
|
519
|
-
post :no_op, :foo => "bar"
|
520
|
-
assert_equal "bar", @request.params[:foo]
|
521
|
-
@request.recycle!
|
522
|
-
post :no_op
|
523
|
-
assert @request.params[:foo].blank?
|
524
|
-
end
|
525
|
-
|
526
|
-
%w(controller response request).each do |variable|
|
527
|
-
%w(get post put delete head process).each do |method|
|
528
|
-
define_method("test_#{variable}_missing_for_#{method}_raises_error") do
|
529
|
-
remove_instance_variable "@#{variable}"
|
530
|
-
begin
|
531
|
-
send(method, :test_remote_addr)
|
532
|
-
assert false, "expected RuntimeError, got nothing"
|
533
|
-
rescue RuntimeError => error
|
534
|
-
assert true
|
535
|
-
assert_match %r{@#{variable} is nil}, error.message
|
536
|
-
rescue => error
|
537
|
-
assert false, "expected RuntimeError, got #{error.class}"
|
538
|
-
end
|
539
|
-
end
|
540
|
-
end
|
541
|
-
end
|
542
|
-
|
543
|
-
FILES_DIR = File.dirname(__FILE__) + '/../fixtures/multipart'
|
544
|
-
|
545
|
-
if RUBY_VERSION < '1.9'
|
546
|
-
READ_BINARY = 'rb'
|
547
|
-
READ_PLAIN = 'r'
|
548
|
-
else
|
549
|
-
READ_BINARY = 'rb:binary'
|
550
|
-
READ_PLAIN = 'r:binary'
|
551
|
-
end
|
552
|
-
|
553
|
-
def test_test_uploaded_file
|
554
|
-
filename = 'mona_lisa.jpg'
|
555
|
-
path = "#{FILES_DIR}/#{filename}"
|
556
|
-
content_type = 'image/png'
|
557
|
-
expected = File.read(path)
|
558
|
-
expected.force_encoding(Encoding::BINARY) if expected.respond_to?(:force_encoding)
|
559
|
-
|
560
|
-
file = ActionController::TestUploadedFile.new(path, content_type)
|
561
|
-
assert_equal filename, file.original_filename
|
562
|
-
assert_equal content_type, file.content_type
|
563
|
-
assert_equal file.path, file.local_path
|
564
|
-
assert_equal expected, file.read
|
565
|
-
|
566
|
-
new_content_type = "new content_type"
|
567
|
-
file.content_type = new_content_type
|
568
|
-
assert_equal new_content_type, file.content_type
|
569
|
-
|
570
|
-
end
|
571
|
-
|
572
|
-
def test_test_uploaded_file_with_binary
|
573
|
-
filename = 'mona_lisa.jpg'
|
574
|
-
path = "#{FILES_DIR}/#{filename}"
|
575
|
-
content_type = 'image/png'
|
576
|
-
|
577
|
-
binary_uploaded_file = ActionController::TestUploadedFile.new(path, content_type, :binary)
|
578
|
-
assert_equal File.open(path, READ_BINARY).read, binary_uploaded_file.read
|
579
|
-
|
580
|
-
plain_uploaded_file = ActionController::TestUploadedFile.new(path, content_type)
|
581
|
-
assert_equal File.open(path, READ_PLAIN).read, plain_uploaded_file.read
|
582
|
-
end
|
583
|
-
|
584
|
-
def test_fixture_file_upload_with_binary
|
585
|
-
filename = 'mona_lisa.jpg'
|
586
|
-
path = "#{FILES_DIR}/#{filename}"
|
587
|
-
content_type = 'image/jpg'
|
588
|
-
|
589
|
-
binary_file_upload = fixture_file_upload(path, content_type, :binary)
|
590
|
-
assert_equal File.open(path, READ_BINARY).read, binary_file_upload.read
|
591
|
-
|
592
|
-
plain_file_upload = fixture_file_upload(path, content_type)
|
593
|
-
assert_equal File.open(path, READ_PLAIN).read, plain_file_upload.read
|
594
|
-
end
|
595
|
-
|
596
|
-
def test_fixture_file_upload
|
597
|
-
post :test_file_upload, :file => fixture_file_upload(FILES_DIR + "/mona_lisa.jpg", "image/jpg")
|
598
|
-
assert_equal '159528', @response.body
|
599
|
-
end
|
600
|
-
|
601
|
-
def test_test_uploaded_file_exception_when_file_doesnt_exist
|
602
|
-
assert_raise(RuntimeError) { ActionController::TestUploadedFile.new('non_existent_file') }
|
603
|
-
end
|
604
|
-
|
605
|
-
def test_redirect_url_only_cares_about_location_header
|
606
|
-
get :create
|
607
|
-
assert_response :created
|
608
|
-
|
609
|
-
# Redirect url doesn't care that it wasn't a :redirect response.
|
610
|
-
assert_equal 'created resource', @response.redirect_url
|
611
|
-
assert_equal @response.redirect_url, redirect_to_url
|
612
|
-
|
613
|
-
# Must be a :redirect response.
|
614
|
-
assert_raise(ActiveSupport::TestCase::Assertion) do
|
615
|
-
assert_redirected_to 'created resource'
|
616
|
-
end
|
617
|
-
end
|
618
|
-
|
619
|
-
def test_binary_content_works_with_send_file
|
620
|
-
get :test_send_file
|
621
|
-
assert_nothing_raised(NoMethodError) { @response.binary_content }
|
622
|
-
end
|
623
|
-
|
624
|
-
protected
|
625
|
-
def with_foo_routing
|
626
|
-
with_routing do |set|
|
627
|
-
set.draw do |map|
|
628
|
-
map.generate_url 'foo', :controller => 'test'
|
629
|
-
map.connect ':controller/:action/:id'
|
630
|
-
end
|
631
|
-
yield set
|
632
|
-
end
|
633
|
-
end
|
634
|
-
end
|
635
|
-
|
636
|
-
class CleanBacktraceTest < ActionController::TestCase
|
637
|
-
def test_should_reraise_the_same_object
|
638
|
-
exception = ActiveSupport::TestCase::Assertion.new('message')
|
639
|
-
clean_backtrace { raise exception }
|
640
|
-
rescue Exception => caught
|
641
|
-
assert_equal exception.object_id, caught.object_id
|
642
|
-
assert_equal exception.message, caught.message
|
643
|
-
end
|
644
|
-
|
645
|
-
def test_should_clean_assertion_lines_from_backtrace
|
646
|
-
path = File.expand_path("#{File.dirname(__FILE__)}/../../lib/action_controller")
|
647
|
-
exception = ActiveSupport::TestCase::Assertion.new('message')
|
648
|
-
exception.set_backtrace ["#{path}/abc", "#{path}/assertions/def"]
|
649
|
-
clean_backtrace { raise exception }
|
650
|
-
rescue Exception => caught
|
651
|
-
assert_equal ["#{path}/abc"], caught.backtrace
|
652
|
-
end
|
653
|
-
|
654
|
-
def test_should_only_clean_assertion_failure_errors
|
655
|
-
clean_backtrace do
|
656
|
-
raise "can't touch this", [File.expand_path("#{File.dirname(__FILE__)}/../../lib/action_controller/assertions/abc")]
|
657
|
-
end
|
658
|
-
rescue => caught
|
659
|
-
assert !caught.backtrace.empty?
|
660
|
-
end
|
661
|
-
end
|
662
|
-
|
663
|
-
class InferringClassNameTest < ActionController::TestCase
|
664
|
-
def test_determine_controller_class
|
665
|
-
assert_equal ContentController, determine_class("ContentControllerTest")
|
666
|
-
end
|
667
|
-
|
668
|
-
def test_determine_controller_class_with_nonsense_name
|
669
|
-
assert_nil determine_class("HelloGoodBye")
|
670
|
-
end
|
671
|
-
|
672
|
-
def test_determine_controller_class_with_sensible_name_where_no_controller_exists
|
673
|
-
assert_nil determine_class("NoControllerWithThisNameTest")
|
674
|
-
end
|
675
|
-
|
676
|
-
private
|
677
|
-
def determine_class(name)
|
678
|
-
ActionController::TestCase.determine_default_controller_class(name)
|
679
|
-
end
|
680
|
-
end
|
681
|
-
|
682
|
-
class CrazyNameTest < ActionController::TestCase
|
683
|
-
tests ContentController
|
684
|
-
|
685
|
-
def test_controller_class_can_be_set_manually_not_just_inferred
|
686
|
-
assert_equal ContentController, self.class.controller_class
|
687
|
-
end
|
688
|
-
end
|
689
|
-
|
690
|
-
class NamedRoutesControllerTest < ActionController::TestCase
|
691
|
-
tests ContentController
|
692
|
-
|
693
|
-
def test_should_be_able_to_use_named_routes_before_a_request_is_done
|
694
|
-
with_routing do |set|
|
695
|
-
set.draw { |map| map.resources :contents }
|
696
|
-
assert_equal 'http://test.host/contents/new', new_content_url
|
697
|
-
assert_equal 'http://test.host/contents/1', content_url(:id => 1)
|
698
|
-
end
|
699
|
-
end
|
700
|
-
end
|