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,356 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class FormTagHelperTest < ActionView::TestCase
|
4
|
-
tests ActionView::Helpers::FormTagHelper
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@controller = Class.new do
|
8
|
-
def url_for(options)
|
9
|
-
"http://www.example.com"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
@controller = @controller.new
|
13
|
-
end
|
14
|
-
|
15
|
-
VALID_HTML_ID = /^[A-Za-z][-_:.A-Za-z0-9]*$/ # see http://www.w3.org/TR/html4/types.html#type-name
|
16
|
-
|
17
|
-
def test_check_box_tag
|
18
|
-
actual = check_box_tag "admin"
|
19
|
-
expected = %(<input id="admin" name="admin" type="checkbox" value="1" />)
|
20
|
-
assert_dom_equal expected, actual
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_check_box_tag_id_sanitized
|
24
|
-
label_elem = root_elem(check_box_tag("project[2][admin]"))
|
25
|
-
assert_match VALID_HTML_ID, label_elem['id']
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_form_tag
|
29
|
-
actual = form_tag
|
30
|
-
expected = %(<form action="http://www.example.com" method="post">)
|
31
|
-
assert_dom_equal expected, actual
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_form_tag_multipart
|
35
|
-
actual = form_tag({}, { 'multipart' => true })
|
36
|
-
expected = %(<form action="http://www.example.com" enctype="multipart/form-data" method="post">)
|
37
|
-
assert_dom_equal expected, actual
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_form_tag_with_method_put
|
41
|
-
actual = form_tag({}, { :method => :put })
|
42
|
-
expected = %(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0;display:inline'><input type="hidden" name="_method" value="put" /></div>)
|
43
|
-
assert_dom_equal expected, actual
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_form_tag_with_method_delete
|
47
|
-
actual = form_tag({}, { :method => :delete })
|
48
|
-
expected = %(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0;display:inline'><input type="hidden" name="_method" value="delete" /></div>)
|
49
|
-
assert_dom_equal expected, actual
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_form_tag_with_block_in_erb
|
53
|
-
__in_erb_template = ''
|
54
|
-
form_tag("http://example.com") { concat "Hello world!" }
|
55
|
-
|
56
|
-
expected = %(<form action="http://example.com" method="post">Hello world!</form>)
|
57
|
-
assert_dom_equal expected, output_buffer
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_form_tag_with_block_and_method_in_erb
|
61
|
-
__in_erb_template = ''
|
62
|
-
form_tag("http://example.com", :method => :put) { concat "Hello world!" }
|
63
|
-
|
64
|
-
expected = %(<form action="http://example.com" method="post"><div style='margin:0;padding:0;display:inline'><input type="hidden" name="_method" value="put" /></div>Hello world!</form>)
|
65
|
-
assert_dom_equal expected, output_buffer
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_hidden_field_tag
|
69
|
-
actual = hidden_field_tag "id", 3
|
70
|
-
expected = %(<input id="id" name="id" type="hidden" value="3" />)
|
71
|
-
assert_dom_equal expected, actual
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_hidden_field_tag_id_sanitized
|
75
|
-
input_elem = root_elem(hidden_field_tag("item[][title]"))
|
76
|
-
assert_match VALID_HTML_ID, input_elem['id']
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_file_field_tag
|
80
|
-
assert_dom_equal "<input name=\"picsplz\" type=\"file\" id=\"picsplz\" />", file_field_tag("picsplz")
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_file_field_tag_with_options
|
84
|
-
assert_dom_equal "<input name=\"picsplz\" type=\"file\" id=\"picsplz\" class=\"pix\"/>", file_field_tag("picsplz", :class => "pix")
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_password_field_tag
|
88
|
-
actual = password_field_tag
|
89
|
-
expected = %(<input id="password" name="password" type="password" />)
|
90
|
-
assert_dom_equal expected, actual
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_radio_button_tag
|
94
|
-
actual = radio_button_tag "people", "david"
|
95
|
-
expected = %(<input id="people_david" name="people" type="radio" value="david" />)
|
96
|
-
assert_dom_equal expected, actual
|
97
|
-
|
98
|
-
actual = radio_button_tag("num_people", 5)
|
99
|
-
expected = %(<input id="num_people_5" name="num_people" type="radio" value="5" />)
|
100
|
-
assert_dom_equal expected, actual
|
101
|
-
|
102
|
-
actual = radio_button_tag("gender", "m") + radio_button_tag("gender", "f")
|
103
|
-
expected = %(<input id="gender_m" name="gender" type="radio" value="m" /><input id="gender_f" name="gender" type="radio" value="f" />)
|
104
|
-
assert_dom_equal expected, actual
|
105
|
-
|
106
|
-
actual = radio_button_tag("opinion", "-1") + radio_button_tag("opinion", "1")
|
107
|
-
expected = %(<input id="opinion_-1" name="opinion" type="radio" value="-1" /><input id="opinion_1" name="opinion" type="radio" value="1" />)
|
108
|
-
assert_dom_equal expected, actual
|
109
|
-
|
110
|
-
actual = radio_button_tag("person[gender]", "m")
|
111
|
-
expected = %(<input id="person_gender_m" name="person[gender]" type="radio" value="m" />)
|
112
|
-
assert_dom_equal expected, actual
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_select_tag
|
116
|
-
actual = select_tag "people", "<option>david</option>".html_safe
|
117
|
-
expected = %(<select id="people" name="people"><option>david</option></select>)
|
118
|
-
assert_dom_equal expected, actual
|
119
|
-
end
|
120
|
-
|
121
|
-
def test_select_tag_with_multiple
|
122
|
-
actual = select_tag "colors", "<option>Red</option><option>Blue</option><option>Green</option>".html_safe, :multiple => :true
|
123
|
-
expected = %(<select id="colors" multiple="multiple" name="colors"><option>Red</option><option>Blue</option><option>Green</option></select>)
|
124
|
-
assert_dom_equal expected, actual
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_select_tag_disabled
|
128
|
-
actual = select_tag "places", "<option>Home</option><option>Work</option><option>Pub</option>".html_safe, :disabled => :true
|
129
|
-
expected = %(<select id="places" disabled="disabled" name="places"><option>Home</option><option>Work</option><option>Pub</option></select>)
|
130
|
-
assert_dom_equal expected, actual
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_select_tag_id_sanitized
|
134
|
-
input_elem = root_elem(select_tag("project[1]people", "<option>david</option>"))
|
135
|
-
assert_match VALID_HTML_ID, input_elem['id']
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_select_tag_with_array_options
|
139
|
-
assert_deprecated /array/ do
|
140
|
-
select_tag "people", ["<option>david</option>"]
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
def test_text_area_tag_size_string
|
145
|
-
actual = text_area_tag "body", "hello world", "size" => "20x40"
|
146
|
-
expected = %(<textarea cols="20" id="body" name="body" rows="40">hello world</textarea>)
|
147
|
-
assert_dom_equal expected, actual
|
148
|
-
end
|
149
|
-
|
150
|
-
def test_text_area_tag_size_symbol
|
151
|
-
actual = text_area_tag "body", "hello world", :size => "20x40"
|
152
|
-
expected = %(<textarea cols="20" id="body" name="body" rows="40">hello world</textarea>)
|
153
|
-
assert_dom_equal expected, actual
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_text_area_tag_should_disregard_size_if_its_given_as_an_integer
|
157
|
-
actual = text_area_tag "body", "hello world", :size => 20
|
158
|
-
expected = %(<textarea id="body" name="body">hello world</textarea>)
|
159
|
-
assert_dom_equal expected, actual
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_text_area_tag_id_sanitized
|
163
|
-
input_elem = root_elem(text_area_tag("item[][description]"))
|
164
|
-
assert_match VALID_HTML_ID, input_elem['id']
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_text_area_tag_escape_content
|
168
|
-
actual = text_area_tag "body", "<b>hello world</b>", :size => "20x40"
|
169
|
-
expected = %(<textarea cols="20" id="body" name="body" rows="40"><b>hello world</b></textarea>)
|
170
|
-
assert_dom_equal expected, actual
|
171
|
-
end
|
172
|
-
|
173
|
-
def test_text_area_tag_unescaped_content
|
174
|
-
actual = text_area_tag "body", "<b>hello world</b>", :size => "20x40", :escape => false
|
175
|
-
expected = %(<textarea cols="20" id="body" name="body" rows="40"><b>hello world</b></textarea>)
|
176
|
-
assert_dom_equal expected, actual
|
177
|
-
end
|
178
|
-
|
179
|
-
def test_text_area_tag_unescaped_nil_content
|
180
|
-
actual = text_area_tag "body", nil, :escape => false
|
181
|
-
expected = %(<textarea id="body" name="body"></textarea>)
|
182
|
-
assert_dom_equal expected, actual
|
183
|
-
end
|
184
|
-
|
185
|
-
def test_text_field_tag
|
186
|
-
actual = text_field_tag "title", "Hello!"
|
187
|
-
expected = %(<input id="title" name="title" type="text" value="Hello!" />)
|
188
|
-
assert_dom_equal expected, actual
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_text_field_tag_class_string
|
192
|
-
actual = text_field_tag "title", "Hello!", "class" => "admin"
|
193
|
-
expected = %(<input class="admin" id="title" name="title" type="text" value="Hello!" />)
|
194
|
-
assert_dom_equal expected, actual
|
195
|
-
end
|
196
|
-
|
197
|
-
def test_text_field_tag_size_symbol
|
198
|
-
actual = text_field_tag "title", "Hello!", :size => 75
|
199
|
-
expected = %(<input id="title" name="title" size="75" type="text" value="Hello!" />)
|
200
|
-
assert_dom_equal expected, actual
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_text_field_tag_size_string
|
204
|
-
actual = text_field_tag "title", "Hello!", "size" => "75"
|
205
|
-
expected = %(<input id="title" name="title" size="75" type="text" value="Hello!" />)
|
206
|
-
assert_dom_equal expected, actual
|
207
|
-
end
|
208
|
-
|
209
|
-
def test_text_field_tag_maxlength_symbol
|
210
|
-
actual = text_field_tag "title", "Hello!", :maxlength => 75
|
211
|
-
expected = %(<input id="title" name="title" maxlength="75" type="text" value="Hello!" />)
|
212
|
-
assert_dom_equal expected, actual
|
213
|
-
end
|
214
|
-
|
215
|
-
def test_text_field_tag_maxlength_string
|
216
|
-
actual = text_field_tag "title", "Hello!", "maxlength" => "75"
|
217
|
-
expected = %(<input id="title" name="title" maxlength="75" type="text" value="Hello!" />)
|
218
|
-
assert_dom_equal expected, actual
|
219
|
-
end
|
220
|
-
|
221
|
-
def test_text_field_disabled
|
222
|
-
actual = text_field_tag "title", "Hello!", :disabled => :true
|
223
|
-
expected = %(<input id="title" name="title" disabled="disabled" type="text" value="Hello!" />)
|
224
|
-
assert_dom_equal expected, actual
|
225
|
-
end
|
226
|
-
|
227
|
-
def test_text_field_tag_with_multiple_options
|
228
|
-
actual = text_field_tag "title", "Hello!", :size => 70, :maxlength => 80
|
229
|
-
expected = %(<input id="title" name="title" size="70" maxlength="80" type="text" value="Hello!" />)
|
230
|
-
assert_dom_equal expected, actual
|
231
|
-
end
|
232
|
-
|
233
|
-
def test_text_field_tag_id_sanitized
|
234
|
-
input_elem = root_elem(text_field_tag("item[][title]"))
|
235
|
-
assert_match VALID_HTML_ID, input_elem['id']
|
236
|
-
end
|
237
|
-
|
238
|
-
def test_label_tag_without_text
|
239
|
-
actual = label_tag "title"
|
240
|
-
expected = %(<label for="title">Title</label>)
|
241
|
-
assert_dom_equal expected, actual
|
242
|
-
end
|
243
|
-
|
244
|
-
def test_label_tag_with_symbol
|
245
|
-
actual = label_tag :title
|
246
|
-
expected = %(<label for="title">Title</label>)
|
247
|
-
assert_dom_equal expected, actual
|
248
|
-
end
|
249
|
-
|
250
|
-
def test_label_tag_with_text
|
251
|
-
actual = label_tag "title", "My Title"
|
252
|
-
expected = %(<label for="title">My Title</label>)
|
253
|
-
assert_dom_equal expected, actual
|
254
|
-
end
|
255
|
-
|
256
|
-
def test_label_tag_class_string
|
257
|
-
actual = label_tag "title", "My Title", "class" => "small_label"
|
258
|
-
expected = %(<label for="title" class="small_label">My Title</label>)
|
259
|
-
assert_dom_equal expected, actual
|
260
|
-
end
|
261
|
-
|
262
|
-
def test_label_tag_id_sanitized
|
263
|
-
label_elem = root_elem(label_tag("item[title]"))
|
264
|
-
assert_match VALID_HTML_ID, label_elem['for']
|
265
|
-
end
|
266
|
-
|
267
|
-
def test_boolean_options
|
268
|
-
assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
|
269
|
-
assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)
|
270
|
-
assert_dom_equal %(<input type="checkbox" />), tag(:input, :type => "checkbox", :checked => false)
|
271
|
-
assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>".html_safe, :multiple => true)
|
272
|
-
assert_dom_equal %(<select id="people_" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people[]", "<option>david</option>".html_safe, :multiple => true)
|
273
|
-
assert_dom_equal %(<select id="people" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>".html_safe, :multiple => nil)
|
274
|
-
end
|
275
|
-
|
276
|
-
def test_stringify_symbol_keys
|
277
|
-
actual = text_field_tag "title", "Hello!", :id => "admin"
|
278
|
-
expected = %(<input id="admin" name="title" type="text" value="Hello!" />)
|
279
|
-
assert_dom_equal expected, actual
|
280
|
-
end
|
281
|
-
|
282
|
-
def test_submit_tag
|
283
|
-
assert_dom_equal(
|
284
|
-
%(<input name='commit' onclick="if (window.hiddenCommit) { window.hiddenCommit.setAttribute('value', this.value); }else { hiddenCommit = document.createElement('input');hiddenCommit.type = 'hidden';hiddenCommit.value = this.value;hiddenCommit.name = this.name;this.form.appendChild(hiddenCommit); }this.setAttribute('originalValue', this.value);this.disabled = true;this.value='Saving...';alert('hello!');result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());if (result == false) { this.value = this.getAttribute('originalValue');this.disabled = false; }return result;" type="submit" value="Save" />),
|
285
|
-
submit_tag("Save", :disable_with => "Saving...", :onclick => "alert('hello!')")
|
286
|
-
)
|
287
|
-
end
|
288
|
-
|
289
|
-
def test_submit_tag_with_no_onclick_options
|
290
|
-
assert_dom_equal(
|
291
|
-
%(<input name='commit' onclick="if (window.hiddenCommit) { window.hiddenCommit.setAttribute('value', this.value); }else { hiddenCommit = document.createElement('input');hiddenCommit.type = 'hidden';hiddenCommit.value = this.value;hiddenCommit.name = this.name;this.form.appendChild(hiddenCommit); }this.setAttribute('originalValue', this.value);this.disabled = true;this.value='Saving...';result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());if (result == false) { this.value = this.getAttribute('originalValue');this.disabled = false; }return result;" type="submit" value="Save" />),
|
292
|
-
submit_tag("Save", :disable_with => "Saving...")
|
293
|
-
)
|
294
|
-
end
|
295
|
-
|
296
|
-
def test_submit_tag_with_confirmation
|
297
|
-
assert_dom_equal(
|
298
|
-
%(<input name='commit' type='submit' value='Save' onclick="if (!confirm('Are you sure?')) return false; return true;"/>),
|
299
|
-
submit_tag("Save", :confirm => "Are you sure?")
|
300
|
-
)
|
301
|
-
end
|
302
|
-
|
303
|
-
def test_submit_tag_with_confirmation_and_with_disable_with
|
304
|
-
assert_dom_equal(
|
305
|
-
%(<input name="commit" onclick="if (!confirm('Are you sure?')) return false; if (window.hiddenCommit) { window.hiddenCommit.setAttribute('value', this.value); }else { hiddenCommit = document.createElement('input');hiddenCommit.type = 'hidden';hiddenCommit.value = this.value;hiddenCommit.name = this.name;this.form.appendChild(hiddenCommit); }this.setAttribute('originalValue', this.value);this.disabled = true;this.value='Saving...';result = (this.form.onsubmit ? (this.form.onsubmit() ? this.form.submit() : false) : this.form.submit());if (result == false) { this.value = this.getAttribute('originalValue');this.disabled = false; }return result;" type="submit" value="Save" />),
|
306
|
-
submit_tag("Save", :disable_with => "Saving...", :confirm => "Are you sure?")
|
307
|
-
)
|
308
|
-
end
|
309
|
-
|
310
|
-
def test_image_submit_tag_with_confirmation
|
311
|
-
assert_dom_equal(
|
312
|
-
%(<input type="image" src="/images/save.gif" onclick="return confirm('Are you sure?');"/>),
|
313
|
-
image_submit_tag("save.gif", :confirm => "Are you sure?")
|
314
|
-
)
|
315
|
-
end
|
316
|
-
|
317
|
-
def test_pass
|
318
|
-
assert_equal 1, 1
|
319
|
-
end
|
320
|
-
|
321
|
-
def test_field_set_tag_in_erb
|
322
|
-
__in_erb_template = ''
|
323
|
-
field_set_tag("Your details") { concat "Hello world!" }
|
324
|
-
|
325
|
-
expected = %(<fieldset><legend>Your details</legend>Hello world!</fieldset>)
|
326
|
-
assert_dom_equal expected, output_buffer
|
327
|
-
|
328
|
-
self.output_buffer = ''.html_safe
|
329
|
-
field_set_tag { concat "Hello world!" }
|
330
|
-
|
331
|
-
expected = %(<fieldset>Hello world!</fieldset>)
|
332
|
-
assert_dom_equal expected, output_buffer
|
333
|
-
|
334
|
-
self.output_buffer = ''.html_safe
|
335
|
-
field_set_tag('') { concat "Hello world!" }
|
336
|
-
|
337
|
-
expected = %(<fieldset>Hello world!</fieldset>)
|
338
|
-
assert_dom_equal expected, output_buffer
|
339
|
-
|
340
|
-
self.output_buffer = ''.html_safe
|
341
|
-
field_set_tag('', :class => 'format') { concat "Hello world!" }
|
342
|
-
|
343
|
-
expected = %(<fieldset class="format">Hello world!</fieldset>)
|
344
|
-
assert_dom_equal expected, output_buffer
|
345
|
-
end
|
346
|
-
|
347
|
-
def protect_against_forgery?
|
348
|
-
false
|
349
|
-
end
|
350
|
-
|
351
|
-
private
|
352
|
-
|
353
|
-
def root_elem(rendered_content)
|
354
|
-
HTML::Document.new(rendered_content).root.children[0]
|
355
|
-
end
|
356
|
-
end
|
@@ -1,106 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class JavaScriptHelperTest < ActionView::TestCase
|
4
|
-
tests ActionView::Helpers::JavaScriptHelper
|
5
|
-
|
6
|
-
attr_accessor :template_format, :output_buffer
|
7
|
-
|
8
|
-
def setup
|
9
|
-
@template = self
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_escape_javascript
|
13
|
-
assert_equal '', escape_javascript(nil)
|
14
|
-
assert_equal %(This \\"thing\\" is really\\n netos\\'), escape_javascript(%(This "thing" is really\n netos'))
|
15
|
-
assert_equal %(backslash\\\\test), escape_javascript( %(backslash\\test) )
|
16
|
-
assert_equal %(dont <\\/close> tags), escape_javascript(%(dont </close> tags))
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_link_to_function
|
20
|
-
assert_dom_equal %(<a href="#" onclick="alert('Hello world!'); return false;">Greeting</a>),
|
21
|
-
link_to_function("Greeting", "alert('Hello world!')")
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_link_to_function_with_existing_onclick
|
25
|
-
assert_dom_equal %(<a href="#" onclick="confirm('Sanity!'); alert('Hello world!'); return false;">Greeting</a>),
|
26
|
-
link_to_function("Greeting", "alert('Hello world!')", :onclick => "confirm('Sanity!')")
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_link_to_function_with_rjs_block
|
30
|
-
html = link_to_function( "Greet me!" ) do |page|
|
31
|
-
page.replace_html 'header', "<h1>Greetings</h1>"
|
32
|
-
end
|
33
|
-
assert_dom_equal %(<a href="#" onclick="Element.update("header", "\\u003Ch1\\u003EGreetings\\u003C/h1\\u003E");; return false;">Greet me!</a>), html
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_link_to_function_with_rjs_block_and_options
|
37
|
-
html = link_to_function( "Greet me!", :class => "updater" ) do |page|
|
38
|
-
page.replace_html 'header', "<h1>Greetings</h1>"
|
39
|
-
end
|
40
|
-
assert_dom_equal %(<a href="#" class="updater" onclick="Element.update("header", "\\u003Ch1\\u003EGreetings\\u003C/h1\\u003E");; return false;">Greet me!</a>), html
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_link_to_function_with_href
|
44
|
-
assert_dom_equal %(<a href="http://example.com/" onclick="alert('Hello world!'); return false;">Greeting</a>),
|
45
|
-
link_to_function("Greeting", "alert('Hello world!')", :href => 'http://example.com/')
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_button_to_function
|
49
|
-
assert_dom_equal %(<input type="button" onclick="alert('Hello world!');" value="Greeting" />),
|
50
|
-
button_to_function("Greeting", "alert('Hello world!')")
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_button_to_function_with_rjs_block
|
54
|
-
html = button_to_function( "Greet me!" ) do |page|
|
55
|
-
page.replace_html 'header', "<h1>Greetings</h1>"
|
56
|
-
end
|
57
|
-
assert_dom_equal %(<input type="button" onclick="Element.update("header", "\\u003Ch1\\u003EGreetings\\u003C/h1\\u003E");;" value="Greet me!" />), html
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_button_to_function_with_rjs_block_and_options
|
61
|
-
html = button_to_function( "Greet me!", :class => "greeter" ) do |page|
|
62
|
-
page.replace_html 'header', "<h1>Greetings</h1>"
|
63
|
-
end
|
64
|
-
assert_dom_equal %(<input type="button" class="greeter" onclick="Element.update("header", "\\u003Ch1\\u003EGreetings\\u003C\/h1\\u003E");;" value="Greet me!" />), html
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_button_to_function_with_onclick
|
68
|
-
assert_dom_equal "<input onclick=\"alert('Goodbye World :('); alert('Hello world!');\" type=\"button\" value=\"Greeting\" />",
|
69
|
-
button_to_function("Greeting", "alert('Hello world!')", :onclick => "alert('Goodbye World :(')")
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_button_to_function_without_function
|
73
|
-
assert_dom_equal "<input onclick=\";\" type=\"button\" value=\"Greeting\" />",
|
74
|
-
button_to_function("Greeting")
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_javascript_tag
|
78
|
-
self.output_buffer = 'foo'
|
79
|
-
|
80
|
-
assert_dom_equal "<script type=\"text/javascript\">\n//<![CDATA[\nalert('hello')\n//]]>\n</script>",
|
81
|
-
javascript_tag("alert('hello')")
|
82
|
-
|
83
|
-
assert_equal 'foo', output_buffer, 'javascript_tag without a block should not concat to output_buffer'
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_javascript_tag_with_options
|
87
|
-
assert_dom_equal "<script id=\"the_js_tag\" type=\"text/javascript\">\n//<![CDATA[\nalert('hello')\n//]]>\n</script>",
|
88
|
-
javascript_tag("alert('hello')", :id => "the_js_tag")
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_javascript_tag_with_block_in_erb
|
92
|
-
__in_erb_template = ''
|
93
|
-
javascript_tag { concat "alert('hello')" }
|
94
|
-
assert_dom_equal "<script type=\"text/javascript\">\n//<![CDATA[\nalert('hello')\n//]]>\n</script>", output_buffer
|
95
|
-
end
|
96
|
-
|
97
|
-
def test_javascript_tag_with_block_and_options_in_erb
|
98
|
-
__in_erb_template = ''
|
99
|
-
javascript_tag(:id => "the_js_tag") { concat "alert('hello')" }
|
100
|
-
assert_dom_equal "<script id=\"the_js_tag\" type=\"text/javascript\">\n//<![CDATA[\nalert('hello')\n//]]>\n</script>", output_buffer
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_javascript_cdata_section
|
104
|
-
assert_dom_equal "\n//<![CDATA[\nalert('hello')\n//]]>\n", javascript_cdata_section("alert('hello')")
|
105
|
-
end
|
106
|
-
end
|