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
data/test/fixtures/topic.rb
DELETED
data/test/fixtures/topics.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
futurama:
|
2
|
-
id: 1
|
3
|
-
title: Isnt futurama awesome?
|
4
|
-
subtitle: It really is, isnt it.
|
5
|
-
content: I like futurama
|
6
|
-
created_at: <%= 1.day.ago.to_s(:db) %>
|
7
|
-
updated_at:
|
8
|
-
|
9
|
-
harvey_birdman:
|
10
|
-
id: 2
|
11
|
-
title: Harvey Birdman is the king of all men
|
12
|
-
subtitle: yup
|
13
|
-
content: It really is
|
14
|
-
created_at: <%= 2.hours.ago.to_s(:db) %>
|
15
|
-
updated_at:
|
16
|
-
|
17
|
-
rails:
|
18
|
-
id: 3
|
19
|
-
title: Rails is nice
|
20
|
-
subtitle: It makes me happy
|
21
|
-
content: except when I have to hack internals to fix pagination. even then really.
|
22
|
-
created_at: <%= 20.minutes.ago.to_s(:db) %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= topic.title %>
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class ActiveRecordHelperI18nTest < Test::Unit::TestCase
|
4
|
-
include ActionView::Helpers::ActiveRecordHelper
|
5
|
-
|
6
|
-
attr_reader :request
|
7
|
-
def setup
|
8
|
-
@object = stub :errors => stub(:count => 1, :full_messages => ['full_messages'])
|
9
|
-
@object_name = 'book'
|
10
|
-
stubs(:content_tag).returns 'content_tag'
|
11
|
-
|
12
|
-
I18n.stubs(:t).with(:'header', :locale => 'en', :scope => [:activerecord, :errors, :template], :count => 1, :model => '').returns "1 error prohibited this from being saved"
|
13
|
-
I18n.stubs(:t).with(:'body', :locale => 'en', :scope => [:activerecord, :errors, :template]).returns 'There were problems with the following fields:'
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_error_messages_for_given_a_header_option_it_does_not_translate_header_message
|
17
|
-
I18n.expects(:translate).with(:'header', :locale => 'en', :scope => [:activerecord, :errors, :template], :count => 1, :model => '').never
|
18
|
-
error_messages_for(:object => @object, :header_message => 'header message', :locale => 'en')
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_error_messages_for_given_no_header_option_it_translates_header_message
|
22
|
-
I18n.expects(:t).with(:'header', :locale => 'en', :scope => [:activerecord, :errors, :template], :count => 1, :model => '').returns 'header message'
|
23
|
-
I18n.expects(:t).with('', :default => '', :count => 1, :scope => [:activerecord, :models]).once.returns ''
|
24
|
-
error_messages_for(:object => @object, :locale => 'en')
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_error_messages_for_given_a_message_option_it_does_not_translate_message
|
28
|
-
I18n.expects(:t).with(:'body', :locale => 'en', :scope => [:activerecord, :errors, :template]).never
|
29
|
-
I18n.expects(:t).with('', :default => '', :count => 1, :scope => [:activerecord, :models]).once.returns ''
|
30
|
-
error_messages_for(:object => @object, :message => 'message', :locale => 'en')
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_error_messages_for_given_no_message_option_it_translates_message
|
34
|
-
I18n.expects(:t).with(:'body', :locale => 'en', :scope => [:activerecord, :errors, :template]).returns 'There were problems with the following fields:'
|
35
|
-
I18n.expects(:t).with('', :default => '', :count => 1, :scope => [:activerecord, :models]).once.returns ''
|
36
|
-
error_messages_for(:object => @object, :locale => 'en')
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_error_messages_for_given_object_name_it_translates_object_name
|
40
|
-
I18n.expects(:t).with(:header, :locale => 'en', :scope => [:activerecord, :errors, :template], :count => 1, :model => @object_name).returns "1 error prohibited this #{@object_name} from being saved"
|
41
|
-
I18n.expects(:t).with(@object_name, :default => @object_name, :count => 1, :scope => [:activerecord, :models]).once.returns @object_name
|
42
|
-
error_messages_for(:object => @object, :locale => 'en', :object_name => @object_name)
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_error_messages_for_given_object_name_with_underscore_it_translates_object_name
|
46
|
-
I18n.expects(:t).with('bank_account', :default => 'bank account', :count => 1, :scope => [:activerecord, :models]).once.returns 'bank account'
|
47
|
-
I18n.expects(:t).with(:header, :locale => 'en', :scope => [:activerecord, :errors, :template], :count => 1, :model => 'bank account').returns "1 error prohibited this bank account from being saved"
|
48
|
-
error_messages_for(:object => @object, :locale => 'en', :object_name => 'bank_account')
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
@@ -1,302 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class ActiveRecordHelperTest < ActionView::TestCase
|
4
|
-
tests ActionView::Helpers::ActiveRecordHelper
|
5
|
-
|
6
|
-
silence_warnings do
|
7
|
-
Post = Struct.new("Post", :title, :author_name, :body, :secret, :written_on)
|
8
|
-
Post.class_eval do
|
9
|
-
alias_method :title_before_type_cast, :title unless respond_to?(:title_before_type_cast)
|
10
|
-
alias_method :body_before_type_cast, :body unless respond_to?(:body_before_type_cast)
|
11
|
-
alias_method :author_name_before_type_cast, :author_name unless respond_to?(:author_name_before_type_cast)
|
12
|
-
end
|
13
|
-
|
14
|
-
User = Struct.new("User", :email)
|
15
|
-
User.class_eval do
|
16
|
-
alias_method :email_before_type_cast, :email unless respond_to?(:email_before_type_cast)
|
17
|
-
end
|
18
|
-
|
19
|
-
Column = Struct.new("Column", :type, :name, :human_name)
|
20
|
-
end
|
21
|
-
|
22
|
-
class DirtyPost
|
23
|
-
class Errors
|
24
|
-
def empty?
|
25
|
-
false
|
26
|
-
end
|
27
|
-
|
28
|
-
def count
|
29
|
-
1
|
30
|
-
end
|
31
|
-
|
32
|
-
def full_messages
|
33
|
-
["Author name can't be <em>empty</em>"]
|
34
|
-
end
|
35
|
-
|
36
|
-
def on(field)
|
37
|
-
"can't be <em>empty</em>"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def errors
|
42
|
-
Errors.new
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def setup_post
|
47
|
-
@post = Post.new
|
48
|
-
def @post.errors
|
49
|
-
Class.new {
|
50
|
-
def on(field)
|
51
|
-
case field.to_s
|
52
|
-
when "author_name"
|
53
|
-
"can't be empty"
|
54
|
-
when "body"
|
55
|
-
true
|
56
|
-
else
|
57
|
-
false
|
58
|
-
end
|
59
|
-
end
|
60
|
-
def empty?() false end
|
61
|
-
def count() 1 end
|
62
|
-
def full_messages() [ "Author name can't be empty" ] end
|
63
|
-
}.new
|
64
|
-
end
|
65
|
-
|
66
|
-
def @post.new_record?() true end
|
67
|
-
def @post.to_param() nil end
|
68
|
-
|
69
|
-
def @post.column_for_attribute(attr_name)
|
70
|
-
Post.content_columns.select { |column| column.name == attr_name }.first
|
71
|
-
end
|
72
|
-
|
73
|
-
silence_warnings do
|
74
|
-
def Post.content_columns() [ Column.new(:string, "title", "Title"), Column.new(:text, "body", "Body") ] end
|
75
|
-
end
|
76
|
-
|
77
|
-
@post.title = "Hello World"
|
78
|
-
@post.author_name = ""
|
79
|
-
@post.body = "Back to the hill and over it again!"
|
80
|
-
@post.secret = 1
|
81
|
-
@post.written_on = Date.new(2004, 6, 15)
|
82
|
-
end
|
83
|
-
|
84
|
-
def setup_user
|
85
|
-
@user = User.new
|
86
|
-
def @user.errors
|
87
|
-
Class.new {
|
88
|
-
def on(field) field == "email" end
|
89
|
-
def empty?() false end
|
90
|
-
def count() 1 end
|
91
|
-
def full_messages() [ "User email can't be empty" ] end
|
92
|
-
}.new
|
93
|
-
end
|
94
|
-
|
95
|
-
def @user.new_record?() true end
|
96
|
-
def @user.to_param() nil end
|
97
|
-
|
98
|
-
def @user.column_for_attribute(attr_name)
|
99
|
-
User.content_columns.select { |column| column.name == attr_name }.first
|
100
|
-
end
|
101
|
-
|
102
|
-
silence_warnings do
|
103
|
-
def User.content_columns() [ Column.new(:string, "email", "Email") ] end
|
104
|
-
end
|
105
|
-
|
106
|
-
@user.email = ""
|
107
|
-
end
|
108
|
-
|
109
|
-
def protect_against_forgery?
|
110
|
-
@protect_against_forgery ? true : false
|
111
|
-
end
|
112
|
-
attr_accessor :request_forgery_protection_token, :form_authenticity_token
|
113
|
-
|
114
|
-
def setup
|
115
|
-
setup_post
|
116
|
-
setup_user
|
117
|
-
|
118
|
-
@response = ActionController::TestResponse.new
|
119
|
-
|
120
|
-
@controller = Object.new
|
121
|
-
def @controller.url_for(options)
|
122
|
-
options = options.symbolize_keys
|
123
|
-
|
124
|
-
[options[:action], options[:id].to_param].compact.join('/')
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_generic_input_tag
|
129
|
-
assert_dom_equal(
|
130
|
-
%(<input id="post_title" name="post[title]" size="30" type="text" value="Hello World" />), input("post", "title")
|
131
|
-
)
|
132
|
-
end
|
133
|
-
|
134
|
-
def test_text_area_with_errors
|
135
|
-
assert_dom_equal(
|
136
|
-
%(<div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div>),
|
137
|
-
text_area("post", "body")
|
138
|
-
)
|
139
|
-
end
|
140
|
-
|
141
|
-
def test_text_field_with_errors
|
142
|
-
assert_dom_equal(
|
143
|
-
%(<div class="fieldWithErrors"><input id="post_author_name" name="post[author_name]" size="30" type="text" value="" /></div>),
|
144
|
-
text_field("post", "author_name")
|
145
|
-
)
|
146
|
-
end
|
147
|
-
|
148
|
-
def test_form_with_string
|
149
|
-
assert_dom_equal(
|
150
|
-
%(<form action="create" method="post"><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>),
|
151
|
-
form("post")
|
152
|
-
)
|
153
|
-
|
154
|
-
silence_warnings do
|
155
|
-
class << @post
|
156
|
-
def new_record?() false end
|
157
|
-
def to_param() id end
|
158
|
-
def id() 1 end
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
assert_dom_equal(
|
163
|
-
%(<form action="update/1" method="post"><input id="post_id" name="post[id]" type="hidden" value="1" /><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Update" /></form>),
|
164
|
-
form("post")
|
165
|
-
)
|
166
|
-
end
|
167
|
-
|
168
|
-
def test_form_with_protect_against_forgery
|
169
|
-
@protect_against_forgery = true
|
170
|
-
@request_forgery_protection_token = 'authenticity_token'
|
171
|
-
@form_authenticity_token = '123'
|
172
|
-
assert_dom_equal(
|
173
|
-
%(<form action="create" method="post"><div style='margin:0;padding:0;display:inline'><input type='hidden' name='authenticity_token' value='123' /></div><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>),
|
174
|
-
form("post")
|
175
|
-
)
|
176
|
-
end
|
177
|
-
|
178
|
-
def test_form_with_method_option
|
179
|
-
assert_dom_equal(
|
180
|
-
%(<form action="create" method="get"><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>),
|
181
|
-
form("post", :method=>'get')
|
182
|
-
)
|
183
|
-
end
|
184
|
-
|
185
|
-
def test_form_with_action_option
|
186
|
-
output_buffer << form("post", :action => "sign")
|
187
|
-
assert_select "form[action=sign]" do |form|
|
188
|
-
assert_select "input[type=submit][value=Sign]"
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
def test_form_with_date
|
193
|
-
silence_warnings do
|
194
|
-
def Post.content_columns() [ Column.new(:date, "written_on", "Written on") ] end
|
195
|
-
end
|
196
|
-
|
197
|
-
assert_dom_equal(
|
198
|
-
%(<form action="create" method="post"><p><label for="post_written_on">Written on</label><br /><select id="post_written_on_1i" name="post[written_on(1i)]">\n<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n</select>\n<select id="post_written_on_2i" name="post[written_on(2i)]">\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select id="post_written_on_3i" name="post[written_on(3i)]">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n</p><input name="commit" type="submit" value="Create" /></form>),
|
199
|
-
form("post")
|
200
|
-
)
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_form_with_datetime
|
204
|
-
silence_warnings do
|
205
|
-
def Post.content_columns() [ Column.new(:datetime, "written_on", "Written on") ] end
|
206
|
-
end
|
207
|
-
@post.written_on = Time.gm(2004, 6, 15, 16, 30)
|
208
|
-
|
209
|
-
assert_dom_equal(
|
210
|
-
%(<form action="create" method="post"><p><label for="post_written_on">Written on</label><br /><select id="post_written_on_1i" name="post[written_on(1i)]">\n<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n</select>\n<select id="post_written_on_2i" name="post[written_on(2i)]">\n<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n</select>\n<select id="post_written_on_3i" name="post[written_on(3i)]">\n<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n</select>\n — <select id="post_written_on_4i" name="post[written_on(4i)]">\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n</select>\n : <select id="post_written_on_5i" name="post[written_on(5i)]">\n<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30" selected="selected">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n</select>\n</p><input name="commit" type="submit" value="Create" /></form>),
|
211
|
-
form("post")
|
212
|
-
)
|
213
|
-
end
|
214
|
-
|
215
|
-
def test_error_for_block
|
216
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>), error_messages_for("post")
|
217
|
-
assert_equal %(<div class="errorDeathByClass" id="errorDeathById"><h1>1 error prohibited this post from being saved</h1><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>), error_messages_for("post", :class => "errorDeathByClass", :id => "errorDeathById", :header_tag => "h1")
|
218
|
-
assert_equal %(<div id="errorDeathById"><h1>1 error prohibited this post from being saved</h1><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>), error_messages_for("post", :class => nil, :id => "errorDeathById", :header_tag => "h1")
|
219
|
-
assert_equal %(<div class="errorDeathByClass"><h1>1 error prohibited this post from being saved</h1><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>), error_messages_for("post", :class => "errorDeathByClass", :id => nil, :header_tag => "h1")
|
220
|
-
end
|
221
|
-
|
222
|
-
def test_error_messages_for_escapes_html
|
223
|
-
@dirty_post = DirtyPost.new
|
224
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this dirty post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be <em>empty</em></li></ul></div>), error_messages_for("dirty_post")
|
225
|
-
end
|
226
|
-
|
227
|
-
def test_error_messages_for_handles_nil
|
228
|
-
assert_equal "", error_messages_for("notthere")
|
229
|
-
end
|
230
|
-
|
231
|
-
def test_error_message_on_escapes_html
|
232
|
-
@dirty_post = DirtyPost.new
|
233
|
-
assert_dom_equal "<div class=\"formError\">can't be <em>empty</em></div>", error_message_on(:dirty_post, :author_name)
|
234
|
-
end
|
235
|
-
|
236
|
-
def test_error_message_on_handles_nil
|
237
|
-
assert_equal "", error_message_on("notthere", "notthere")
|
238
|
-
end
|
239
|
-
|
240
|
-
def test_error_message_on
|
241
|
-
assert_dom_equal "<div class=\"formError\">can't be empty</div>", error_message_on(:post, :author_name)
|
242
|
-
end
|
243
|
-
|
244
|
-
def test_error_message_on_no_instance_variable
|
245
|
-
other_post = @post
|
246
|
-
assert_dom_equal "<div class=\"formError\">can't be empty</div>", error_message_on(other_post, :author_name)
|
247
|
-
end
|
248
|
-
|
249
|
-
def test_error_message_on_with_options_hash
|
250
|
-
assert_dom_equal "<div class=\"differentError\">beforecan't be emptyafter</div>", error_message_on(:post, :author_name, :css_class => 'differentError', :prepend_text => 'before', :append_text => 'after')
|
251
|
-
end
|
252
|
-
|
253
|
-
def test_error_messages_for_many_objects
|
254
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li><li>User email can't be empty</li></ul></div>), error_messages_for("post", "user")
|
255
|
-
|
256
|
-
# reverse the order, error order changes and so does the title
|
257
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this user from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for("user", "post")
|
258
|
-
|
259
|
-
# add the default to put post back in the title
|
260
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for("user", "post", :object_name => "post")
|
261
|
-
|
262
|
-
# symbols work as well
|
263
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for(:user, :post, :object_name => :post)
|
264
|
-
|
265
|
-
# any default works too
|
266
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this monkey from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for(:user, :post, :object_name => "monkey")
|
267
|
-
|
268
|
-
# should space object name
|
269
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this chunky bacon from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for(:user, :post, :object_name => "chunky_bacon")
|
270
|
-
|
271
|
-
# hide header and explanation messages with nil or empty string
|
272
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for(:user, :post, :header_message => nil, :message => "")
|
273
|
-
|
274
|
-
# override header and explanation messages
|
275
|
-
header_message = "Yikes! Some errors"
|
276
|
-
message = "Please fix the following fields and resubmit:"
|
277
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>#{header_message}</h2><p>#{message}</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for(:user, :post, :header_message => header_message, :message => message)
|
278
|
-
end
|
279
|
-
|
280
|
-
def test_error_messages_for_non_instance_variable
|
281
|
-
actual_user = @user
|
282
|
-
actual_post = @post
|
283
|
-
@user = nil
|
284
|
-
@post = nil
|
285
|
-
|
286
|
-
#explicitly set object
|
287
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>), error_messages_for("post", :object => actual_post)
|
288
|
-
|
289
|
-
#multiple objects
|
290
|
-
assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this user from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>), error_messages_for("user", "post", :object => [actual_user, actual_post])
|
291
|
-
|
292
|
-
#nil object
|
293
|
-
assert_equal '', error_messages_for('user', :object => nil)
|
294
|
-
end
|
295
|
-
|
296
|
-
def test_form_with_string_multipart
|
297
|
-
assert_dom_equal(
|
298
|
-
%(<form action="create" enctype="multipart/form-data" method="post"><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>),
|
299
|
-
form("post", :multipart => true)
|
300
|
-
)
|
301
|
-
end
|
302
|
-
end
|
@@ -1,770 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class AssetTagHelperTest < ActionView::TestCase
|
4
|
-
tests ActionView::Helpers::AssetTagHelper
|
5
|
-
|
6
|
-
def setup
|
7
|
-
silence_warnings do
|
8
|
-
ActionView::Helpers::AssetTagHelper.send(
|
9
|
-
:const_set,
|
10
|
-
:JAVASCRIPTS_DIR,
|
11
|
-
File.dirname(__FILE__) + "/../fixtures/public/javascripts"
|
12
|
-
)
|
13
|
-
|
14
|
-
ActionView::Helpers::AssetTagHelper.send(
|
15
|
-
:const_set,
|
16
|
-
:STYLESHEETS_DIR,
|
17
|
-
File.dirname(__FILE__) + "/../fixtures/public/stylesheets"
|
18
|
-
)
|
19
|
-
|
20
|
-
ActionView::Helpers::AssetTagHelper.send(
|
21
|
-
:const_set,
|
22
|
-
:ASSETS_DIR,
|
23
|
-
File.dirname(__FILE__) + "/../fixtures/public"
|
24
|
-
)
|
25
|
-
end
|
26
|
-
|
27
|
-
@controller = Class.new do
|
28
|
-
attr_accessor :request
|
29
|
-
def url_for(*args) "http://www.example.com" end
|
30
|
-
end.new
|
31
|
-
|
32
|
-
@request = Class.new do
|
33
|
-
def protocol() 'http://' end
|
34
|
-
def ssl?() false end
|
35
|
-
def host_with_port() 'localhost' end
|
36
|
-
end.new
|
37
|
-
|
38
|
-
@controller.request = @request
|
39
|
-
|
40
|
-
ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
|
41
|
-
end
|
42
|
-
|
43
|
-
def teardown
|
44
|
-
ActionController::Base.perform_caching = false
|
45
|
-
ActionController::Base.asset_host = nil
|
46
|
-
ENV.delete('RAILS_ASSET_ID')
|
47
|
-
end
|
48
|
-
|
49
|
-
AutoDiscoveryToTag = {
|
50
|
-
%(auto_discovery_link_tag) => %(<link href="http://www.example.com" rel="alternate" title="RSS" type="application/rss+xml" />),
|
51
|
-
%(auto_discovery_link_tag(:rss)) => %(<link href="http://www.example.com" rel="alternate" title="RSS" type="application/rss+xml" />),
|
52
|
-
%(auto_discovery_link_tag(:atom)) => %(<link href="http://www.example.com" rel="alternate" title="ATOM" type="application/atom+xml" />),
|
53
|
-
%(auto_discovery_link_tag(:xml)) => %(<link href="http://www.example.com" rel="alternate" title="XML" type="application/xml" />),
|
54
|
-
%(auto_discovery_link_tag(:rss, :action => "feed")) => %(<link href="http://www.example.com" rel="alternate" title="RSS" type="application/rss+xml" />),
|
55
|
-
%(auto_discovery_link_tag(:rss, "http://localhost/feed")) => %(<link href="http://localhost/feed" rel="alternate" title="RSS" type="application/rss+xml" />),
|
56
|
-
%(auto_discovery_link_tag(:rss, {:action => "feed"}, {:title => "My RSS"})) => %(<link href="http://www.example.com" rel="alternate" title="My RSS" type="application/rss+xml" />),
|
57
|
-
%(auto_discovery_link_tag(:rss, {}, {:title => "My RSS"})) => %(<link href="http://www.example.com" rel="alternate" title="My RSS" type="application/rss+xml" />),
|
58
|
-
%(auto_discovery_link_tag(nil, {}, {:type => "text/html"})) => %(<link href="http://www.example.com" rel="alternate" title="" type="text/html" />),
|
59
|
-
%(auto_discovery_link_tag(nil, {}, {:title => "No stream.. really", :type => "text/html"})) => %(<link href="http://www.example.com" rel="alternate" title="No stream.. really" type="text/html" />),
|
60
|
-
%(auto_discovery_link_tag(:rss, {}, {:title => "My RSS", :type => "text/html"})) => %(<link href="http://www.example.com" rel="alternate" title="My RSS" type="text/html" />),
|
61
|
-
%(auto_discovery_link_tag(:atom, {}, {:rel => "Not so alternate"})) => %(<link href="http://www.example.com" rel="Not so alternate" title="ATOM" type="application/atom+xml" />),
|
62
|
-
}
|
63
|
-
|
64
|
-
JavascriptPathToTag = {
|
65
|
-
%(javascript_path("xmlhr")) => %(/javascripts/xmlhr.js),
|
66
|
-
%(javascript_path("super/xmlhr")) => %(/javascripts/super/xmlhr.js),
|
67
|
-
%(javascript_path("/super/xmlhr.js")) => %(/super/xmlhr.js)
|
68
|
-
}
|
69
|
-
|
70
|
-
PathToJavascriptToTag = {
|
71
|
-
%(path_to_javascript("xmlhr")) => %(/javascripts/xmlhr.js),
|
72
|
-
%(path_to_javascript("super/xmlhr")) => %(/javascripts/super/xmlhr.js),
|
73
|
-
%(path_to_javascript("/super/xmlhr.js")) => %(/super/xmlhr.js)
|
74
|
-
}
|
75
|
-
|
76
|
-
JavascriptIncludeToTag = {
|
77
|
-
%(javascript_include_tag("xmlhr")) => %(<script src="/javascripts/xmlhr.js" type="text/javascript"></script>),
|
78
|
-
%(javascript_include_tag("xmlhr.js")) => %(<script src="/javascripts/xmlhr.js" type="text/javascript"></script>),
|
79
|
-
%(javascript_include_tag("xmlhr", :lang => "vbscript")) => %(<script lang="vbscript" src="/javascripts/xmlhr.js" type="text/javascript"></script>),
|
80
|
-
%(javascript_include_tag("common.javascript", "/elsewhere/cools")) => %(<script src="/javascripts/common.javascript" type="text/javascript"></script>\n<script src="/elsewhere/cools.js" type="text/javascript"></script>),
|
81
|
-
%(javascript_include_tag(:defaults)) => %(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>),
|
82
|
-
%(javascript_include_tag(:all)) => %(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>\n<script src="/javascripts/bank.js" type="text/javascript"></script>\n<script src="/javascripts/robber.js" type="text/javascript"></script>\n<script src="/javascripts/version.1.0.js" type="text/javascript"></script>),
|
83
|
-
%(javascript_include_tag(:all, :recursive => true)) => %(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>\n<script src="/javascripts/bank.js" type="text/javascript"></script>\n<script src="/javascripts/robber.js" type="text/javascript"></script>\n<script src="/javascripts/subdir/subdir.js" type="text/javascript"></script>\n<script src="/javascripts/version.1.0.js" type="text/javascript"></script>),
|
84
|
-
%(javascript_include_tag(:defaults, "test")) => %(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/test.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>),
|
85
|
-
%(javascript_include_tag("test", :defaults)) => %(<script src="/javascripts/test.js" type="text/javascript"></script>\n<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>)
|
86
|
-
}
|
87
|
-
|
88
|
-
StylePathToTag = {
|
89
|
-
%(stylesheet_path("style")) => %(/stylesheets/style.css),
|
90
|
-
%(stylesheet_path("style.css")) => %(/stylesheets/style.css),
|
91
|
-
%(stylesheet_path('dir/file')) => %(/stylesheets/dir/file.css),
|
92
|
-
%(stylesheet_path('/dir/file.rcss')) => %(/dir/file.rcss)
|
93
|
-
}
|
94
|
-
|
95
|
-
PathToStyleToTag = {
|
96
|
-
%(path_to_stylesheet("style")) => %(/stylesheets/style.css),
|
97
|
-
%(path_to_stylesheet("style.css")) => %(/stylesheets/style.css),
|
98
|
-
%(path_to_stylesheet('dir/file')) => %(/stylesheets/dir/file.css),
|
99
|
-
%(path_to_stylesheet('/dir/file.rcss')) => %(/dir/file.rcss)
|
100
|
-
}
|
101
|
-
|
102
|
-
StyleLinkToTag = {
|
103
|
-
%(stylesheet_link_tag("style")) => %(<link href="/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" />),
|
104
|
-
%(stylesheet_link_tag("style.css")) => %(<link href="/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" />),
|
105
|
-
%(stylesheet_link_tag("/dir/file")) => %(<link href="/dir/file.css" media="screen" rel="stylesheet" type="text/css" />),
|
106
|
-
%(stylesheet_link_tag("dir/file")) => %(<link href="/stylesheets/dir/file.css" media="screen" rel="stylesheet" type="text/css" />),
|
107
|
-
%(stylesheet_link_tag("style", :media => "all")) => %(<link href="/stylesheets/style.css" media="all" rel="stylesheet" type="text/css" />),
|
108
|
-
%(stylesheet_link_tag(:all)) => %(<link href="/stylesheets/bank.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/robber.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/version.1.0.css" media="screen" rel="stylesheet" type="text/css" />),
|
109
|
-
%(stylesheet_link_tag(:all, :recursive => true)) => %(<link href="/stylesheets/bank.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/robber.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/subdir/subdir.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/version.1.0.css" media="screen" rel="stylesheet" type="text/css" />),
|
110
|
-
%(stylesheet_link_tag(:all, :media => "all")) => %(<link href="/stylesheets/bank.css" media="all" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/robber.css" media="all" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/version.1.0.css" media="all" rel="stylesheet" type="text/css" />),
|
111
|
-
%(stylesheet_link_tag("random.styles", "/css/stylish")) => %(<link href="/stylesheets/random.styles" media="screen" rel="stylesheet" type="text/css" />\n<link href="/css/stylish.css" media="screen" rel="stylesheet" type="text/css" />),
|
112
|
-
%(stylesheet_link_tag("http://www.example.com/styles/style")) => %(<link href="http://www.example.com/styles/style.css" media="screen" rel="stylesheet" type="text/css" />)
|
113
|
-
}
|
114
|
-
|
115
|
-
ImagePathToTag = {
|
116
|
-
%(image_path("xml")) => %(/images/xml),
|
117
|
-
%(image_path("xml.png")) => %(/images/xml.png),
|
118
|
-
%(image_path("dir/xml.png")) => %(/images/dir/xml.png),
|
119
|
-
%(image_path("/dir/xml.png")) => %(/dir/xml.png)
|
120
|
-
}
|
121
|
-
|
122
|
-
PathToImageToTag = {
|
123
|
-
%(path_to_image("xml")) => %(/images/xml),
|
124
|
-
%(path_to_image("xml.png")) => %(/images/xml.png),
|
125
|
-
%(path_to_image("dir/xml.png")) => %(/images/dir/xml.png),
|
126
|
-
%(path_to_image("/dir/xml.png")) => %(/dir/xml.png)
|
127
|
-
}
|
128
|
-
|
129
|
-
ImageLinkToTag = {
|
130
|
-
%(image_tag("xml.png")) => %(<img alt="Xml" src="/images/xml.png" />),
|
131
|
-
%(image_tag("rss.gif", :alt => "rss syndication")) => %(<img alt="rss syndication" src="/images/rss.gif" />),
|
132
|
-
%(image_tag("gold.png", :size => "45x70")) => %(<img alt="Gold" height="70" src="/images/gold.png" width="45" />),
|
133
|
-
%(image_tag("gold.png", "size" => "45x70")) => %(<img alt="Gold" height="70" src="/images/gold.png" width="45" />),
|
134
|
-
%(image_tag("error.png", "size" => "45")) => %(<img alt="Error" src="/images/error.png" />),
|
135
|
-
%(image_tag("error.png", "size" => "45 x 70")) => %(<img alt="Error" src="/images/error.png" />),
|
136
|
-
%(image_tag("error.png", "size" => "x")) => %(<img alt="Error" src="/images/error.png" />),
|
137
|
-
%(image_tag("http://www.rubyonrails.com/images/rails.png")) => %(<img alt="Rails" src="http://www.rubyonrails.com/images/rails.png" />),
|
138
|
-
%(image_tag("http://www.rubyonrails.com/images/rails.png")) => %(<img alt="Rails" src="http://www.rubyonrails.com/images/rails.png" />),
|
139
|
-
%(image_tag("mouse.png", :mouseover => "/images/mouse_over.png")) => %(<img alt="Mouse" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" src="/images/mouse.png" />),
|
140
|
-
%(image_tag("mouse.png", :mouseover => image_path("mouse_over.png"))) => %(<img alt="Mouse" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" src="/images/mouse.png" />)
|
141
|
-
}
|
142
|
-
|
143
|
-
|
144
|
-
def test_auto_discovery_link_tag
|
145
|
-
AutoDiscoveryToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
146
|
-
end
|
147
|
-
|
148
|
-
def test_javascript_path
|
149
|
-
JavascriptPathToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_path_to_javascript_alias_for_javascript_path
|
153
|
-
PathToJavascriptToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_javascript_include_tag_with_blank_asset_id
|
157
|
-
ENV["RAILS_ASSET_ID"] = ""
|
158
|
-
JavascriptIncludeToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_javascript_include_tag_with_given_asset_id
|
162
|
-
ENV["RAILS_ASSET_ID"] = "1"
|
163
|
-
assert_dom_equal(%(<script src="/javascripts/prototype.js?1" type="text/javascript"></script>\n<script src="/javascripts/effects.js?1" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js?1" type="text/javascript"></script>\n<script src="/javascripts/controls.js?1" type="text/javascript"></script>\n<script src="/javascripts/application.js?1" type="text/javascript"></script>), javascript_include_tag(:defaults))
|
164
|
-
end
|
165
|
-
|
166
|
-
def test_javascript_include_tag_is_html_safe
|
167
|
-
assert javascript_include_tag(:defaults).html_safe?
|
168
|
-
assert javascript_include_tag("prototype").html_safe?
|
169
|
-
end
|
170
|
-
|
171
|
-
def test_register_javascript_include_default
|
172
|
-
ENV["RAILS_ASSET_ID"] = ""
|
173
|
-
ActionView::Helpers::AssetTagHelper::register_javascript_include_default 'slider'
|
174
|
-
assert_dom_equal %(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/slider.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>), javascript_include_tag(:defaults)
|
175
|
-
end
|
176
|
-
|
177
|
-
def test_register_javascript_include_default_mixed_defaults
|
178
|
-
ENV["RAILS_ASSET_ID"] = ""
|
179
|
-
ActionView::Helpers::AssetTagHelper::register_javascript_include_default 'slider'
|
180
|
-
ActionView::Helpers::AssetTagHelper::register_javascript_include_default 'lib1', '/elsewhere/blub/lib2'
|
181
|
-
assert_dom_equal %(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/slider.js" type="text/javascript"></script>\n<script src="/javascripts/lib1.js" type="text/javascript"></script>\n<script src="/elsewhere/blub/lib2.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>), javascript_include_tag(:defaults)
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_custom_javascript_expansions
|
185
|
-
ActionView::Helpers::AssetTagHelper::register_javascript_expansion :monkey => ["head", "body", "tail"]
|
186
|
-
assert_dom_equal %(<script src="/javascripts/first.js" type="text/javascript"></script>\n<script src="/javascripts/head.js" type="text/javascript"></script>\n<script src="/javascripts/body.js" type="text/javascript"></script>\n<script src="/javascripts/tail.js" type="text/javascript"></script>\n<script src="/javascripts/last.js" type="text/javascript"></script>), javascript_include_tag('first', :monkey, 'last')
|
187
|
-
end
|
188
|
-
|
189
|
-
def test_custom_javascript_expansions_and_defaults_puts_application_js_at_the_end
|
190
|
-
ENV["RAILS_ASSET_ID"] = ""
|
191
|
-
ActionView::Helpers::AssetTagHelper::register_javascript_expansion :monkey => ["head", "body", "tail"]
|
192
|
-
assert_dom_equal %(<script src="/javascripts/first.js" type="text/javascript"></script>\n<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/head.js" type="text/javascript"></script>\n<script src="/javascripts/body.js" type="text/javascript"></script>\n<script src="/javascripts/tail.js" type="text/javascript"></script>\n<script src="/javascripts/last.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>), javascript_include_tag('first', :defaults, :monkey, 'last')
|
193
|
-
end
|
194
|
-
|
195
|
-
def test_custom_javascript_expansions_with_undefined_symbol
|
196
|
-
ActionView::Helpers::AssetTagHelper::register_javascript_expansion :monkey => nil
|
197
|
-
assert_raise(ArgumentError) { javascript_include_tag('first', :monkey, 'last') }
|
198
|
-
end
|
199
|
-
|
200
|
-
def test_stylesheet_path
|
201
|
-
StylePathToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
202
|
-
end
|
203
|
-
|
204
|
-
def test_path_to_stylesheet_alias_for_stylesheet_path
|
205
|
-
PathToStyleToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
206
|
-
end
|
207
|
-
|
208
|
-
def test_stylesheet_link_tag
|
209
|
-
ENV["RAILS_ASSET_ID"] = ""
|
210
|
-
StyleLinkToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
211
|
-
end
|
212
|
-
|
213
|
-
def test_stylesheet_link_tag_is_html_safe
|
214
|
-
ENV["RAILS_ASSET_ID"] = ""
|
215
|
-
assert stylesheet_link_tag('dir/file').html_safe?
|
216
|
-
assert stylesheet_link_tag('dir/other/file', 'dir/file2').html_safe?
|
217
|
-
assert stylesheet_tag('dir/file', {}).html_safe?
|
218
|
-
end
|
219
|
-
|
220
|
-
def test_custom_stylesheet_expansions
|
221
|
-
ActionView::Helpers::AssetTagHelper::register_stylesheet_expansion :monkey => ["head", "body", "tail"]
|
222
|
-
assert_dom_equal %(<link href="/stylesheets/first.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/head.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/body.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/tail.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/last.css" media="screen" rel="stylesheet" type="text/css" />), stylesheet_link_tag('first', :monkey, 'last')
|
223
|
-
end
|
224
|
-
|
225
|
-
def test_custom_stylesheet_expansions_with_undefined_symbol
|
226
|
-
ActionView::Helpers::AssetTagHelper::register_stylesheet_expansion :monkey => nil
|
227
|
-
assert_raise(ArgumentError) { stylesheet_link_tag('first', :monkey, 'last') }
|
228
|
-
end
|
229
|
-
|
230
|
-
def test_image_path
|
231
|
-
ImagePathToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
232
|
-
end
|
233
|
-
|
234
|
-
def test_path_to_image_alias_for_image_path
|
235
|
-
PathToImageToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
236
|
-
end
|
237
|
-
|
238
|
-
def test_image_tag
|
239
|
-
ImageLinkToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
240
|
-
end
|
241
|
-
|
242
|
-
def test_image_tag_windows_behaviour
|
243
|
-
old_asset_id, ENV["RAILS_ASSET_ID"] = ENV["RAILS_ASSET_ID"], "1"
|
244
|
-
# This simulates the behaviour of File#exist? on windows when testing a file ending in "."
|
245
|
-
# If the file "rails.png" exists, windows will return true when asked if "rails.png." exists (notice trailing ".")
|
246
|
-
# OS X, linux etc will return false in this case.
|
247
|
-
File.stubs(:exist?).with('template/../fixtures/public/images/rails.png.').returns(true)
|
248
|
-
assert_equal '<img alt="Rails" src="/images/rails.png?1" />', image_tag('rails.png')
|
249
|
-
ensure
|
250
|
-
if old_asset_id
|
251
|
-
ENV["RAILS_ASSET_ID"] = old_asset_id
|
252
|
-
else
|
253
|
-
ENV.delete("RAILS_ASSET_ID")
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
def test_timebased_asset_id
|
258
|
-
expected_time = File.stat(File.expand_path(File.dirname(__FILE__) + "/../fixtures/public/images/rails.png")).mtime.to_i.to_s
|
259
|
-
assert_equal %(<img alt="Rails" src="/images/rails.png?#{expected_time}" />), image_tag("rails.png")
|
260
|
-
end
|
261
|
-
|
262
|
-
def test_timebased_asset_id_with_relative_url_root
|
263
|
-
ActionController::Base.relative_url_root = "/collaboration/hieraki"
|
264
|
-
expected_time = File.stat(File.expand_path(File.dirname(__FILE__) + "/../fixtures/public/images/rails.png")).mtime.to_i.to_s
|
265
|
-
assert_equal %(<img alt="Rails" src="#{ActionController::Base.relative_url_root}/images/rails.png?#{expected_time}" />), image_tag("rails.png")
|
266
|
-
ensure
|
267
|
-
ActionController::Base.relative_url_root = ""
|
268
|
-
end
|
269
|
-
|
270
|
-
def test_should_skip_asset_id_on_complete_url
|
271
|
-
assert_equal %(<img alt="Rails" src="http://www.example.com/rails.png" />), image_tag("http://www.example.com/rails.png")
|
272
|
-
end
|
273
|
-
|
274
|
-
def test_should_use_preset_asset_id
|
275
|
-
ENV["RAILS_ASSET_ID"] = "4500"
|
276
|
-
assert_equal %(<img alt="Rails" src="/images/rails.png?4500" />), image_tag("rails.png")
|
277
|
-
end
|
278
|
-
|
279
|
-
def test_preset_empty_asset_id
|
280
|
-
ENV["RAILS_ASSET_ID"] = ""
|
281
|
-
assert_equal %(<img alt="Rails" src="/images/rails.png" />), image_tag("rails.png")
|
282
|
-
end
|
283
|
-
|
284
|
-
def test_should_not_modify_source_string
|
285
|
-
source = '/images/rails.png'
|
286
|
-
copy = source.dup
|
287
|
-
image_tag(source)
|
288
|
-
assert_equal copy, source
|
289
|
-
end
|
290
|
-
|
291
|
-
def test_caching_image_path_with_caching_and_proc_asset_host_using_request
|
292
|
-
ENV['RAILS_ASSET_ID'] = ''
|
293
|
-
ActionController::Base.asset_host = Proc.new do |source, request|
|
294
|
-
if request.ssl?
|
295
|
-
"#{request.protocol}#{request.host_with_port}"
|
296
|
-
else
|
297
|
-
"#{request.protocol}assets#{source.length}.example.com"
|
298
|
-
end
|
299
|
-
end
|
300
|
-
|
301
|
-
ActionController::Base.perform_caching = true
|
302
|
-
|
303
|
-
|
304
|
-
@controller.request.stubs(:ssl?).returns(false)
|
305
|
-
assert_equal "http://assets15.example.com/images/xml.png", image_path("xml.png")
|
306
|
-
|
307
|
-
@controller.request.stubs(:ssl?).returns(true)
|
308
|
-
assert_equal "http://localhost/images/xml.png", image_path("xml.png")
|
309
|
-
end
|
310
|
-
|
311
|
-
def test_caching_javascript_include_tag_when_caching_on
|
312
|
-
ENV["RAILS_ASSET_ID"] = ""
|
313
|
-
ActionController::Base.asset_host = 'http://a0.example.com'
|
314
|
-
ActionController::Base.perform_caching = true
|
315
|
-
|
316
|
-
assert_dom_equal(
|
317
|
-
%(<script src="http://a0.example.com/javascripts/all.js" type="text/javascript"></script>),
|
318
|
-
javascript_include_tag(:all, :cache => true)
|
319
|
-
)
|
320
|
-
|
321
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'all.js'))
|
322
|
-
|
323
|
-
assert_dom_equal(
|
324
|
-
%(<script src="http://a0.example.com/javascripts/money.js" type="text/javascript"></script>),
|
325
|
-
javascript_include_tag(:all, :cache => "money")
|
326
|
-
)
|
327
|
-
|
328
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'money.js'))
|
329
|
-
|
330
|
-
assert_dom_equal(
|
331
|
-
%(<script src="http://a0.example.com/absolute/test.js" type="text/javascript"></script>),
|
332
|
-
javascript_include_tag(:all, :cache => "/absolute/test")
|
333
|
-
)
|
334
|
-
|
335
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute', 'test.js'))
|
336
|
-
|
337
|
-
ensure
|
338
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'all.js'))
|
339
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'money.js'))
|
340
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute'))
|
341
|
-
end
|
342
|
-
|
343
|
-
def test_caching_javascript_include_tag_when_caching_on_with_proc_asset_host
|
344
|
-
ENV['RAILS_ASSET_ID'] = ''
|
345
|
-
ActionController::Base.asset_host = Proc.new { |source| "http://a#{source.length}.example.com" }
|
346
|
-
ActionController::Base.perform_caching = true
|
347
|
-
|
348
|
-
assert_equal '/javascripts/scripts.js'.length, 23
|
349
|
-
assert_dom_equal(
|
350
|
-
%(<script src="http://a23.example.com/javascripts/scripts.js" type="text/javascript"></script>),
|
351
|
-
javascript_include_tag(:all, :cache => 'scripts')
|
352
|
-
)
|
353
|
-
|
354
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'scripts.js'))
|
355
|
-
|
356
|
-
ensure
|
357
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'scripts.js'))
|
358
|
-
end
|
359
|
-
|
360
|
-
def test_caching_javascript_include_tag_when_caching_on_with_2_argument_proc_asset_host
|
361
|
-
ENV['RAILS_ASSET_ID'] = ''
|
362
|
-
ActionController::Base.asset_host = Proc.new { |source, request|
|
363
|
-
if request.ssl?
|
364
|
-
"#{request.protocol}#{request.host_with_port}"
|
365
|
-
else
|
366
|
-
"#{request.protocol}assets#{source.length}.example.com"
|
367
|
-
end
|
368
|
-
}
|
369
|
-
ActionController::Base.perform_caching = true
|
370
|
-
|
371
|
-
assert_equal '/javascripts/vanilla.js'.length, 23
|
372
|
-
assert_dom_equal(
|
373
|
-
%(<script src="http://assets23.example.com/javascripts/vanilla.js" type="text/javascript"></script>),
|
374
|
-
javascript_include_tag(:all, :cache => 'vanilla')
|
375
|
-
)
|
376
|
-
|
377
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'vanilla.js'))
|
378
|
-
|
379
|
-
class << @controller.request
|
380
|
-
def protocol() 'https://' end
|
381
|
-
def ssl?() true end
|
382
|
-
end
|
383
|
-
|
384
|
-
assert_equal '/javascripts/secure.js'.length, 22
|
385
|
-
assert_dom_equal(
|
386
|
-
%(<script src="https://localhost/javascripts/secure.js" type="text/javascript"></script>),
|
387
|
-
javascript_include_tag(:all, :cache => 'secure')
|
388
|
-
)
|
389
|
-
|
390
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'secure.js'))
|
391
|
-
|
392
|
-
ensure
|
393
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'vanilla.js'))
|
394
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'secure.js'))
|
395
|
-
end
|
396
|
-
|
397
|
-
def test_caching_javascript_include_tag_when_caching_on_with_2_argument_object_asset_host
|
398
|
-
ENV['RAILS_ASSET_ID'] = ''
|
399
|
-
ActionController::Base.asset_host = Class.new do
|
400
|
-
def call(source, request)
|
401
|
-
if request.ssl?
|
402
|
-
"#{request.protocol}#{request.host_with_port}"
|
403
|
-
else
|
404
|
-
"#{request.protocol}assets#{source.length}.example.com"
|
405
|
-
end
|
406
|
-
end
|
407
|
-
end.new
|
408
|
-
|
409
|
-
ActionController::Base.perform_caching = true
|
410
|
-
|
411
|
-
assert_equal '/javascripts/vanilla.js'.length, 23
|
412
|
-
assert_dom_equal(
|
413
|
-
%(<script src="http://assets23.example.com/javascripts/vanilla.js" type="text/javascript"></script>),
|
414
|
-
javascript_include_tag(:all, :cache => 'vanilla')
|
415
|
-
)
|
416
|
-
|
417
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'vanilla.js'))
|
418
|
-
|
419
|
-
class << @controller.request
|
420
|
-
def protocol() 'https://' end
|
421
|
-
def ssl?() true end
|
422
|
-
end
|
423
|
-
|
424
|
-
assert_equal '/javascripts/secure.js'.length, 22
|
425
|
-
assert_dom_equal(
|
426
|
-
%(<script src="https://localhost/javascripts/secure.js" type="text/javascript"></script>),
|
427
|
-
javascript_include_tag(:all, :cache => 'secure')
|
428
|
-
)
|
429
|
-
|
430
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'secure.js'))
|
431
|
-
|
432
|
-
ensure
|
433
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'vanilla.js'))
|
434
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'secure.js'))
|
435
|
-
end
|
436
|
-
|
437
|
-
def test_caching_javascript_include_tag_when_caching_on_and_using_subdirectory
|
438
|
-
ENV["RAILS_ASSET_ID"] = ""
|
439
|
-
ActionController::Base.asset_host = 'http://a%d.example.com'
|
440
|
-
ActionController::Base.perform_caching = true
|
441
|
-
|
442
|
-
hash = '/javascripts/cache/money.js'.hash % 4
|
443
|
-
assert_dom_equal(
|
444
|
-
%(<script src="http://a#{hash}.example.com/javascripts/cache/money.js" type="text/javascript"></script>),
|
445
|
-
javascript_include_tag(:all, :cache => "cache/money")
|
446
|
-
)
|
447
|
-
|
448
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'cache', 'money.js'))
|
449
|
-
ensure
|
450
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'cache', 'money.js'))
|
451
|
-
end
|
452
|
-
|
453
|
-
def test_caching_javascript_include_tag_with_all_and_recursive_puts_defaults_at_the_start_of_the_file
|
454
|
-
ENV["RAILS_ASSET_ID"] = ""
|
455
|
-
ActionController::Base.asset_host = 'http://a0.example.com'
|
456
|
-
ActionController::Base.perform_caching = true
|
457
|
-
|
458
|
-
assert_dom_equal(
|
459
|
-
%(<script src="http://a0.example.com/javascripts/combined.js" type="text/javascript"></script>),
|
460
|
-
javascript_include_tag(:all, :cache => "combined", :recursive => true)
|
461
|
-
)
|
462
|
-
|
463
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'combined.js'))
|
464
|
-
|
465
|
-
assert_equal(
|
466
|
-
%(// prototype js\n\n// effects js\n\n// dragdrop js\n\n// controls js\n\n// application js\n\n// bank js\n\n// robber js\n\n// subdir js\n\n\n// version.1.0 js),
|
467
|
-
IO.read(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'combined.js'))
|
468
|
-
)
|
469
|
-
|
470
|
-
ensure
|
471
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'combined.js'))
|
472
|
-
end
|
473
|
-
|
474
|
-
def test_caching_javascript_include_tag_with_all_puts_defaults_at_the_start_of_the_file
|
475
|
-
ENV["RAILS_ASSET_ID"] = ""
|
476
|
-
ActionController::Base.asset_host = 'http://a0.example.com'
|
477
|
-
ActionController::Base.perform_caching = true
|
478
|
-
|
479
|
-
assert_dom_equal(
|
480
|
-
%(<script src="http://a0.example.com/javascripts/combined.js" type="text/javascript"></script>),
|
481
|
-
javascript_include_tag(:all, :cache => "combined")
|
482
|
-
)
|
483
|
-
|
484
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'combined.js'))
|
485
|
-
|
486
|
-
assert_equal(
|
487
|
-
%(// prototype js\n\n// effects js\n\n// dragdrop js\n\n// controls js\n\n// application js\n\n// bank js\n\n// robber js\n\n// version.1.0 js),
|
488
|
-
IO.read(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'combined.js'))
|
489
|
-
)
|
490
|
-
|
491
|
-
ensure
|
492
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'combined.js'))
|
493
|
-
end
|
494
|
-
|
495
|
-
def test_caching_javascript_include_tag_with_relative_url_root
|
496
|
-
ENV["RAILS_ASSET_ID"] = ""
|
497
|
-
ActionController::Base.relative_url_root = "/collaboration/hieraki"
|
498
|
-
ActionController::Base.perform_caching = true
|
499
|
-
|
500
|
-
assert_dom_equal(
|
501
|
-
%(<script src="/collaboration/hieraki/javascripts/all.js" type="text/javascript"></script>),
|
502
|
-
javascript_include_tag(:all, :cache => true)
|
503
|
-
)
|
504
|
-
|
505
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'all.js'))
|
506
|
-
|
507
|
-
assert_dom_equal(
|
508
|
-
%(<script src="/collaboration/hieraki/javascripts/money.js" type="text/javascript"></script>),
|
509
|
-
javascript_include_tag(:all, :cache => "money")
|
510
|
-
)
|
511
|
-
|
512
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'money.js'))
|
513
|
-
|
514
|
-
ensure
|
515
|
-
ActionController::Base.relative_url_root = nil
|
516
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'all.js'))
|
517
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'money.js'))
|
518
|
-
end
|
519
|
-
|
520
|
-
def test_caching_javascript_include_tag_when_caching_off
|
521
|
-
ENV["RAILS_ASSET_ID"] = ""
|
522
|
-
ActionController::Base.perform_caching = false
|
523
|
-
|
524
|
-
assert_dom_equal(
|
525
|
-
%(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>\n<script src="/javascripts/bank.js" type="text/javascript"></script>\n<script src="/javascripts/robber.js" type="text/javascript"></script>\n<script src="/javascripts/version.1.0.js" type="text/javascript"></script>),
|
526
|
-
javascript_include_tag(:all, :cache => true)
|
527
|
-
)
|
528
|
-
|
529
|
-
assert_dom_equal(
|
530
|
-
%(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>\n<script src="/javascripts/bank.js" type="text/javascript"></script>\n<script src="/javascripts/robber.js" type="text/javascript"></script>\n<script src="/javascripts/subdir/subdir.js" type="text/javascript"></script>\n<script src="/javascripts/version.1.0.js" type="text/javascript"></script>),
|
531
|
-
javascript_include_tag(:all, :cache => true, :recursive => true)
|
532
|
-
)
|
533
|
-
|
534
|
-
assert !File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'all.js'))
|
535
|
-
|
536
|
-
assert_dom_equal(
|
537
|
-
%(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>\n<script src="/javascripts/bank.js" type="text/javascript"></script>\n<script src="/javascripts/robber.js" type="text/javascript"></script>\n<script src="/javascripts/version.1.0.js" type="text/javascript"></script>),
|
538
|
-
javascript_include_tag(:all, :cache => "money")
|
539
|
-
)
|
540
|
-
|
541
|
-
assert_dom_equal(
|
542
|
-
%(<script src="/javascripts/prototype.js" type="text/javascript"></script>\n<script src="/javascripts/effects.js" type="text/javascript"></script>\n<script src="/javascripts/dragdrop.js" type="text/javascript"></script>\n<script src="/javascripts/controls.js" type="text/javascript"></script>\n<script src="/javascripts/application.js" type="text/javascript"></script>\n<script src="/javascripts/bank.js" type="text/javascript"></script>\n<script src="/javascripts/robber.js" type="text/javascript"></script>\n<script src="/javascripts/subdir/subdir.js" type="text/javascript"></script>\n<script src="/javascripts/version.1.0.js" type="text/javascript"></script>),
|
543
|
-
javascript_include_tag(:all, :cache => "money", :recursive => true)
|
544
|
-
)
|
545
|
-
|
546
|
-
assert !File.exist?(File.join(ActionView::Helpers::AssetTagHelper::JAVASCRIPTS_DIR, 'money.js'))
|
547
|
-
end
|
548
|
-
|
549
|
-
def test_caching_stylesheet_link_tag_when_caching_on
|
550
|
-
ENV["RAILS_ASSET_ID"] = ""
|
551
|
-
ActionController::Base.asset_host = 'http://a0.example.com'
|
552
|
-
ActionController::Base.perform_caching = true
|
553
|
-
|
554
|
-
assert_dom_equal(
|
555
|
-
%(<link href="http://a0.example.com/stylesheets/all.css" media="screen" rel="stylesheet" type="text/css" />),
|
556
|
-
stylesheet_link_tag(:all, :cache => true)
|
557
|
-
)
|
558
|
-
|
559
|
-
expected = Dir["#{ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR}/*.css"].map { |p| File.mtime(p) }.max
|
560
|
-
assert_equal expected, File.mtime(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
|
561
|
-
|
562
|
-
assert_dom_equal(
|
563
|
-
%(<link href="http://a0.example.com/stylesheets/money.css" media="screen" rel="stylesheet" type="text/css" />),
|
564
|
-
stylesheet_link_tag(:all, :cache => "money")
|
565
|
-
)
|
566
|
-
|
567
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
|
568
|
-
|
569
|
-
assert_dom_equal(
|
570
|
-
%(<link href="http://a0.example.com/absolute/test.css" media="screen" rel="stylesheet" type="text/css" />),
|
571
|
-
stylesheet_link_tag(:all, :cache => "/absolute/test")
|
572
|
-
)
|
573
|
-
|
574
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute', 'test.css'))
|
575
|
-
ensure
|
576
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
|
577
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
|
578
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute'))
|
579
|
-
end
|
580
|
-
|
581
|
-
def test_concat_stylesheet_link_tag_when_caching_off
|
582
|
-
ENV["RAILS_ASSET_ID"] = ""
|
583
|
-
|
584
|
-
assert_dom_equal(
|
585
|
-
%(<link href="/stylesheets/all.css" media="screen" rel="stylesheet" type="text/css" />),
|
586
|
-
stylesheet_link_tag(:all, :concat => true)
|
587
|
-
)
|
588
|
-
|
589
|
-
expected = Dir["#{ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR}/*.css"].map { |p| File.mtime(p) }.max
|
590
|
-
assert_equal expected, File.mtime(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
|
591
|
-
|
592
|
-
assert_dom_equal(
|
593
|
-
%(<link href="/stylesheets/money.css" media="screen" rel="stylesheet" type="text/css" />),
|
594
|
-
stylesheet_link_tag(:all, :concat => "money")
|
595
|
-
)
|
596
|
-
|
597
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
|
598
|
-
|
599
|
-
assert_dom_equal(
|
600
|
-
%(<link href="/absolute/test.css" media="screen" rel="stylesheet" type="text/css" />),
|
601
|
-
stylesheet_link_tag(:all, :concat => "/absolute/test")
|
602
|
-
)
|
603
|
-
|
604
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute', 'test.css'))
|
605
|
-
ensure
|
606
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
|
607
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
|
608
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute'))
|
609
|
-
end
|
610
|
-
|
611
|
-
def test_caching_stylesheet_link_tag_when_caching_on_with_proc_asset_host
|
612
|
-
ENV["RAILS_ASSET_ID"] = ""
|
613
|
-
ActionController::Base.asset_host = Proc.new { |source| "http://a#{source.length}.example.com" }
|
614
|
-
ActionController::Base.perform_caching = true
|
615
|
-
|
616
|
-
assert_equal '/stylesheets/styles.css'.length, 23
|
617
|
-
assert_dom_equal(
|
618
|
-
%(<link href="http://a23.example.com/stylesheets/styles.css" media="screen" rel="stylesheet" type="text/css" />),
|
619
|
-
stylesheet_link_tag(:all, :cache => 'styles')
|
620
|
-
)
|
621
|
-
|
622
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'styles.css'))
|
623
|
-
|
624
|
-
ensure
|
625
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'styles.css'))
|
626
|
-
end
|
627
|
-
|
628
|
-
def test_caching_stylesheet_link_tag_with_relative_url_root
|
629
|
-
ENV["RAILS_ASSET_ID"] = ""
|
630
|
-
ActionController::Base.relative_url_root = "/collaboration/hieraki"
|
631
|
-
ActionController::Base.perform_caching = true
|
632
|
-
|
633
|
-
assert_dom_equal(
|
634
|
-
%(<link href="/collaboration/hieraki/stylesheets/all.css" media="screen" rel="stylesheet" type="text/css" />),
|
635
|
-
stylesheet_link_tag(:all, :cache => true)
|
636
|
-
)
|
637
|
-
|
638
|
-
expected = Dir["#{ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR}/*.css"].map { |p| File.mtime(p) }.max
|
639
|
-
assert_equal expected, File.mtime(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
|
640
|
-
|
641
|
-
assert_dom_equal(
|
642
|
-
%(<link href="/collaboration/hieraki/stylesheets/money.css" media="screen" rel="stylesheet" type="text/css" />),
|
643
|
-
stylesheet_link_tag(:all, :cache => "money")
|
644
|
-
)
|
645
|
-
|
646
|
-
assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
|
647
|
-
ensure
|
648
|
-
ActionController::Base.relative_url_root = nil
|
649
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
|
650
|
-
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
|
651
|
-
end
|
652
|
-
|
653
|
-
def test_caching_stylesheet_include_tag_when_caching_off
|
654
|
-
ENV["RAILS_ASSET_ID"] = ""
|
655
|
-
ActionController::Base.perform_caching = false
|
656
|
-
|
657
|
-
assert_dom_equal(
|
658
|
-
%(<link href="/stylesheets/bank.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/robber.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/version.1.0.css" media="screen" rel="stylesheet" type="text/css" />),
|
659
|
-
stylesheet_link_tag(:all, :cache => true)
|
660
|
-
)
|
661
|
-
|
662
|
-
assert_dom_equal(
|
663
|
-
%(<link href="/stylesheets/bank.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/robber.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/subdir/subdir.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/version.1.0.css" media="screen" rel="stylesheet" type="text/css" />),
|
664
|
-
stylesheet_link_tag(:all, :cache => true, :recursive => true)
|
665
|
-
)
|
666
|
-
|
667
|
-
assert !File.exist?(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
|
668
|
-
|
669
|
-
assert_dom_equal(
|
670
|
-
%(<link href="/stylesheets/bank.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/robber.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/version.1.0.css" media="screen" rel="stylesheet" type="text/css" />),
|
671
|
-
stylesheet_link_tag(:all, :cache => "money")
|
672
|
-
)
|
673
|
-
|
674
|
-
assert_dom_equal(
|
675
|
-
%(<link href="/stylesheets/bank.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/robber.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/subdir/subdir.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/stylesheets/version.1.0.css" media="screen" rel="stylesheet" type="text/css" />),
|
676
|
-
stylesheet_link_tag(:all, :cache => "money", :recursive => true)
|
677
|
-
)
|
678
|
-
|
679
|
-
assert !File.exist?(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
|
680
|
-
end
|
681
|
-
end
|
682
|
-
|
683
|
-
class AssetTagHelperNonVhostTest < ActionView::TestCase
|
684
|
-
tests ActionView::Helpers::AssetTagHelper
|
685
|
-
|
686
|
-
def setup
|
687
|
-
ActionController::Base.relative_url_root = "/collaboration/hieraki"
|
688
|
-
|
689
|
-
@controller = Class.new do
|
690
|
-
attr_accessor :request
|
691
|
-
|
692
|
-
def url_for(options)
|
693
|
-
"http://www.example.com/collaboration/hieraki"
|
694
|
-
end
|
695
|
-
end.new
|
696
|
-
|
697
|
-
@request = Class.new do
|
698
|
-
def protocol
|
699
|
-
'gopher://'
|
700
|
-
end
|
701
|
-
end.new
|
702
|
-
|
703
|
-
@controller.request = @request
|
704
|
-
|
705
|
-
ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
|
706
|
-
end
|
707
|
-
|
708
|
-
def teardown
|
709
|
-
ActionController::Base.relative_url_root = nil
|
710
|
-
end
|
711
|
-
|
712
|
-
def test_should_compute_proper_path
|
713
|
-
assert_dom_equal(%(<link href="http://www.example.com/collaboration/hieraki" rel="alternate" title="RSS" type="application/rss+xml" />), auto_discovery_link_tag)
|
714
|
-
assert_dom_equal(%(/collaboration/hieraki/javascripts/xmlhr.js), javascript_path("xmlhr"))
|
715
|
-
assert_dom_equal(%(/collaboration/hieraki/stylesheets/style.css), stylesheet_path("style"))
|
716
|
-
assert_dom_equal(%(/collaboration/hieraki/images/xml.png), image_path("xml.png"))
|
717
|
-
assert_dom_equal(%(<img alt="Mouse" onmouseover="this.src='/collaboration/hieraki/images/mouse_over.png'" onmouseout="this.src='/collaboration/hieraki/images/mouse.png'" src="/collaboration/hieraki/images/mouse.png" />), image_tag("mouse.png", :mouseover => "/images/mouse_over.png"))
|
718
|
-
assert_dom_equal(%(<img alt="Mouse2" onmouseover="this.src='/collaboration/hieraki/images/mouse_over2.png'" onmouseout="this.src='/collaboration/hieraki/images/mouse2.png'" src="/collaboration/hieraki/images/mouse2.png" />), image_tag("mouse2.png", :mouseover => image_path("mouse_over2.png")))
|
719
|
-
end
|
720
|
-
|
721
|
-
def test_should_ignore_relative_root_path_on_complete_url
|
722
|
-
assert_dom_equal(%(http://www.example.com/images/xml.png), image_path("http://www.example.com/images/xml.png"))
|
723
|
-
end
|
724
|
-
|
725
|
-
def test_should_compute_proper_path_with_asset_host
|
726
|
-
ActionController::Base.asset_host = "http://assets.example.com"
|
727
|
-
assert_dom_equal(%(<link href="http://www.example.com/collaboration/hieraki" rel="alternate" title="RSS" type="application/rss+xml" />), auto_discovery_link_tag)
|
728
|
-
assert_dom_equal(%(http://assets.example.com/collaboration/hieraki/javascripts/xmlhr.js), javascript_path("xmlhr"))
|
729
|
-
assert_dom_equal(%(http://assets.example.com/collaboration/hieraki/stylesheets/style.css), stylesheet_path("style"))
|
730
|
-
assert_dom_equal(%(http://assets.example.com/collaboration/hieraki/images/xml.png), image_path("xml.png"))
|
731
|
-
assert_dom_equal(%(<img alt="Mouse" onmouseover="this.src='http://assets.example.com/collaboration/hieraki/images/mouse_over.png'" onmouseout="this.src='http://assets.example.com/collaboration/hieraki/images/mouse.png'" src="http://assets.example.com/collaboration/hieraki/images/mouse.png" />), image_tag("mouse.png", :mouseover => "/images/mouse_over.png"))
|
732
|
-
assert_dom_equal(%(<img alt="Mouse2" onmouseover="this.src='http://assets.example.com/collaboration/hieraki/images/mouse_over2.png'" onmouseout="this.src='http://assets.example.com/collaboration/hieraki/images/mouse2.png'" src="http://assets.example.com/collaboration/hieraki/images/mouse2.png" />), image_tag("mouse2.png", :mouseover => image_path("mouse_over2.png")))
|
733
|
-
ensure
|
734
|
-
ActionController::Base.asset_host = ""
|
735
|
-
end
|
736
|
-
|
737
|
-
def test_should_ignore_asset_host_on_complete_url
|
738
|
-
ActionController::Base.asset_host = "http://assets.example.com"
|
739
|
-
assert_dom_equal(%(<link href="http://bar.example.com/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" />), stylesheet_link_tag("http://bar.example.com/stylesheets/style.css"))
|
740
|
-
ensure
|
741
|
-
ActionController::Base.asset_host = ""
|
742
|
-
end
|
743
|
-
|
744
|
-
def test_should_wildcard_asset_host_between_zero_and_four
|
745
|
-
ActionController::Base.asset_host = 'http://a%d.example.com'
|
746
|
-
assert_match %r(http://a[0123].example.com/collaboration/hieraki/images/xml.png), image_path('xml.png')
|
747
|
-
ensure
|
748
|
-
ActionController::Base.asset_host = nil
|
749
|
-
end
|
750
|
-
|
751
|
-
def test_asset_host_without_protocol_should_use_request_protocol
|
752
|
-
ActionController::Base.asset_host = 'a.example.com'
|
753
|
-
assert_equal 'gopher://a.example.com/collaboration/hieraki/images/xml.png', image_path('xml.png')
|
754
|
-
ensure
|
755
|
-
ActionController::Base.asset_host = nil
|
756
|
-
end
|
757
|
-
|
758
|
-
def test_asset_host_without_protocol_should_use_request_protocol_even_if_path_present
|
759
|
-
ActionController::Base.asset_host = 'a.example.com/files/go/here'
|
760
|
-
assert_equal 'gopher://a.example.com/files/go/here/collaboration/hieraki/images/xml.png', image_path('xml.png')
|
761
|
-
ensure
|
762
|
-
ActionController::Base.asset_host = nil
|
763
|
-
end
|
764
|
-
|
765
|
-
def test_assert_css_and_js_of_the_same_name_return_correct_extension
|
766
|
-
assert_dom_equal(%(/collaboration/hieraki/javascripts/foo.js), javascript_path("foo"))
|
767
|
-
assert_dom_equal(%(/collaboration/hieraki/stylesheets/foo.css), stylesheet_path("foo"))
|
768
|
-
|
769
|
-
end
|
770
|
-
end
|