actionpack 2.3.18 → 3.0.0.beta
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of actionpack might be problematic. Click here for more details.
- data/CHANGELOG +15 -64
- data/README +39 -48
- data/lib/abstract_controller.rb +22 -0
- data/lib/abstract_controller/base.rb +191 -0
- data/lib/abstract_controller/callbacks.rb +113 -0
- data/lib/abstract_controller/collector.rb +30 -0
- data/lib/abstract_controller/compatibility.rb +18 -0
- data/lib/abstract_controller/helpers.rb +163 -0
- data/lib/abstract_controller/layouts.rb +413 -0
- data/lib/abstract_controller/localized_cache.rb +49 -0
- data/lib/abstract_controller/logger.rb +13 -0
- data/lib/abstract_controller/rendering.rb +238 -0
- data/lib/{action_controller → abstract_controller}/translation.rb +1 -1
- data/lib/action_controller.rb +68 -102
- data/lib/action_controller/base.rb +77 -1409
- data/lib/action_controller/caching.rb +58 -45
- data/lib/action_controller/caching/actions.rb +100 -114
- data/lib/action_controller/caching/fragments.rb +17 -19
- data/lib/action_controller/caching/pages.rb +12 -6
- data/lib/action_controller/caching/sweeping.rb +42 -0
- data/lib/action_controller/deprecated.rb +5 -0
- data/lib/action_controller/deprecated/dispatcher.rb +28 -0
- data/lib/action_controller/deprecated/integration_test.rb +2 -0
- data/lib/action_controller/deprecated/performance_test.rb +1 -0
- data/lib/action_controller/metal.rb +125 -0
- data/lib/action_controller/metal/compatibility.rb +141 -0
- data/lib/action_controller/metal/conditional_get.rb +86 -0
- data/lib/action_controller/metal/configuration.rb +28 -0
- data/lib/action_controller/metal/cookies.rb +17 -0
- data/lib/action_controller/metal/exceptions.rb +46 -0
- data/lib/action_controller/metal/flash.rb +28 -0
- data/lib/action_controller/metal/head.rb +33 -0
- data/lib/action_controller/metal/helpers.rb +116 -0
- data/lib/action_controller/metal/hide_actions.rb +50 -0
- data/lib/action_controller/{http_authentication.rb → metal/http_authentication.rb} +18 -15
- data/lib/action_controller/metal/instrumentation.rb +99 -0
- data/lib/action_controller/metal/mime_responds.rb +300 -0
- data/lib/action_controller/metal/rack_delegation.rb +35 -0
- data/lib/action_controller/metal/redirecting.rb +90 -0
- data/lib/action_controller/metal/renderers.rb +95 -0
- data/lib/action_controller/metal/rendering.rb +69 -0
- data/lib/action_controller/metal/request_forgery_protection.rb +115 -0
- data/lib/action_controller/metal/rescue.rb +13 -0
- data/lib/action_controller/metal/responder.rb +220 -0
- data/lib/action_controller/{session_management.rb → metal/session_management.rb} +5 -14
- data/lib/action_controller/{streaming.rb → metal/streaming.rb} +13 -12
- data/lib/action_controller/metal/testing.rb +42 -0
- data/lib/action_controller/metal/url_for.rb +157 -0
- data/lib/action_controller/{verification.rb → metal/verification.rb} +41 -41
- data/lib/action_controller/middleware.rb +38 -0
- data/lib/action_controller/polymorphic_routes.rb +20 -26
- data/lib/action_controller/railtie.rb +30 -0
- data/lib/action_controller/railties/subscriber.rb +63 -0
- data/lib/action_controller/record_identifier.rb +3 -16
- data/lib/action_controller/test_case.rb +156 -18
- data/lib/action_controller/url_rewriter.rb +47 -200
- data/lib/action_controller/vendor/html-scanner.rb +16 -12
- data/lib/action_controller/vendor/html-scanner/html/node.rb +1 -1
- data/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +12 -9
- data/lib/action_dispatch.rb +88 -0
- data/lib/action_dispatch/http/cache.rb +123 -0
- data/lib/action_dispatch/http/filter_parameters.rb +98 -0
- data/lib/{action_controller → action_dispatch/http}/headers.rb +8 -8
- data/lib/action_dispatch/http/mime_negotiation.rb +101 -0
- data/lib/{action_controller → action_dispatch/http}/mime_type.rb +30 -11
- data/lib/{action_controller → action_dispatch/http}/mime_types.rb +5 -3
- data/lib/action_dispatch/http/parameters.rb +49 -0
- data/lib/action_dispatch/http/request.rb +223 -0
- data/lib/action_dispatch/http/response.rb +209 -0
- data/lib/action_dispatch/http/upload.rb +48 -0
- data/lib/action_dispatch/http/url.rb +129 -0
- data/lib/action_dispatch/middleware/callbacks.rb +50 -0
- data/lib/action_dispatch/middleware/cascade.rb +29 -0
- data/lib/action_dispatch/middleware/cookies.rb +216 -0
- data/lib/{action_controller → action_dispatch/middleware}/flash.rb +51 -90
- data/lib/action_dispatch/middleware/head.rb +18 -0
- data/lib/action_dispatch/middleware/params_parser.rb +78 -0
- data/lib/action_dispatch/middleware/rescue.rb +26 -0
- data/lib/action_dispatch/middleware/session/abstract_store.rb +209 -0
- data/lib/{action_controller → action_dispatch/middleware}/session/cookie_store.rb +56 -60
- data/lib/action_dispatch/middleware/session/mem_cache_store.rb +47 -0
- data/lib/action_dispatch/middleware/show_exceptions.rb +173 -0
- data/lib/{action_controller/middleware_stack.rb → action_dispatch/middleware/stack.rb} +23 -13
- data/lib/action_dispatch/middleware/static.rb +44 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_request_and_response.erb +10 -3
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/_trace.erb +4 -4
- data/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb +10 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/layout.erb +2 -2
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/missing_template.erb +0 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/routing_error.erb +0 -0
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/template_error.erb +3 -3
- data/lib/{action_controller → action_dispatch/middleware}/templates/rescues/unknown_action.erb +0 -0
- data/lib/action_dispatch/railtie.rb +15 -0
- data/lib/action_dispatch/routing.rb +217 -0
- data/lib/action_dispatch/routing/deprecated_mapper.rb +877 -0
- data/lib/action_dispatch/routing/mapper.rb +649 -0
- data/lib/action_dispatch/routing/route.rb +55 -0
- data/lib/action_dispatch/routing/route_set.rb +445 -0
- data/lib/action_dispatch/testing/assertions.rb +21 -0
- data/lib/action_dispatch/testing/assertions/dom.rb +37 -0
- data/lib/{action_controller/assertions/model_assertions.rb → action_dispatch/testing/assertions/model.rb} +2 -4
- data/lib/action_dispatch/testing/assertions/response.rb +154 -0
- data/lib/{action_controller/assertions/routing_assertions.rb → action_dispatch/testing/assertions/routing.rb} +72 -34
- data/lib/{action_controller/assertions/selector_assertions.rb → action_dispatch/testing/assertions/selector.rb} +14 -11
- data/lib/{action_controller/assertions/tag_assertions.rb → action_dispatch/testing/assertions/tag.rb} +25 -14
- data/lib/{action_controller → action_dispatch/testing}/integration.rb +173 -406
- data/lib/action_dispatch/testing/performance_test.rb +17 -0
- data/lib/action_dispatch/testing/test_process.rb +42 -0
- data/lib/action_dispatch/testing/test_request.rb +83 -0
- data/lib/action_dispatch/testing/test_response.rb +136 -0
- data/lib/action_pack/version.rb +3 -3
- data/lib/action_view.rb +29 -26
- data/lib/action_view/base.rb +101 -148
- data/lib/action_view/context.rb +44 -0
- data/lib/action_view/helpers.rb +6 -4
- data/lib/action_view/helpers/{active_record_helper.rb → active_model_helper.rb} +63 -63
- data/lib/action_view/helpers/asset_tag_helper.rb +166 -31
- data/lib/action_view/helpers/cache_helper.rb +1 -1
- data/lib/action_view/helpers/capture_helper.rb +40 -8
- data/lib/action_view/helpers/csrf_helper.rb +2 -4
- data/lib/action_view/helpers/date_helper.rb +14 -15
- data/lib/action_view/helpers/form_helper.rb +121 -24
- data/lib/action_view/helpers/form_options_helper.rb +26 -25
- data/lib/action_view/helpers/form_tag_helper.rb +42 -33
- data/lib/action_view/helpers/javascript_helper.rb +1 -109
- data/lib/action_view/helpers/number_helper.rb +4 -1
- data/lib/action_view/helpers/prototype_helper.rb +75 -499
- data/lib/action_view/helpers/raw_output_helper.rb +1 -1
- data/lib/action_view/helpers/record_tag_helper.rb +3 -3
- data/lib/action_view/helpers/sanitize_helper.rb +3 -2
- data/lib/action_view/helpers/scriptaculous_helper.rb +89 -53
- data/lib/action_view/helpers/tag_helper.rb +12 -13
- data/lib/action_view/helpers/text_helper.rb +33 -38
- data/lib/action_view/helpers/translation_helper.rb +11 -35
- data/lib/action_view/helpers/url_helper.rb +140 -134
- data/lib/action_view/locale/en.yml +34 -28
- data/lib/action_view/paths.rb +27 -24
- data/lib/action_view/railtie.rb +17 -0
- data/lib/action_view/railties/subscriber.rb +24 -0
- data/lib/action_view/{partials.rb → render/partials.rb} +161 -51
- data/lib/action_view/render/rendering.rb +117 -0
- data/lib/action_view/template.rb +88 -217
- data/lib/action_view/template/error.rb +105 -0
- data/lib/action_view/template/handler.rb +41 -0
- data/lib/action_view/template/handlers.rb +54 -0
- data/lib/action_view/{template_handlers → template/handlers}/builder.rb +6 -6
- data/lib/action_view/template/handlers/erb.rb +58 -0
- data/lib/action_view/{template_handlers → template/handlers}/rjs.rb +8 -3
- data/lib/action_view/template/resolver.rb +164 -0
- data/lib/action_view/template/text.rb +40 -0
- data/lib/action_view/test_case.rb +18 -18
- metadata +165 -420
- data/RUNNING_UNIT_TESTS +0 -24
- data/Rakefile +0 -158
- data/install.rb +0 -30
- data/lib/action_controller/assertions/dom_assertions.rb +0 -55
- data/lib/action_controller/assertions/response_assertions.rb +0 -169
- data/lib/action_controller/benchmarking.rb +0 -107
- data/lib/action_controller/caching/sweeper.rb +0 -45
- data/lib/action_controller/cgi_ext.rb +0 -15
- data/lib/action_controller/cgi_ext/cookie.rb +0 -112
- data/lib/action_controller/cgi_ext/query_extension.rb +0 -22
- data/lib/action_controller/cgi_ext/stdinput.rb +0 -24
- data/lib/action_controller/cgi_process.rb +0 -77
- data/lib/action_controller/cookies.rb +0 -197
- data/lib/action_controller/dispatcher.rb +0 -133
- data/lib/action_controller/failsafe.rb +0 -87
- data/lib/action_controller/filters.rb +0 -680
- data/lib/action_controller/helpers.rb +0 -225
- data/lib/action_controller/layout.rb +0 -286
- data/lib/action_controller/middlewares.rb +0 -14
- data/lib/action_controller/mime_responds.rb +0 -193
- data/lib/action_controller/params_parser.rb +0 -77
- data/lib/action_controller/performance_test.rb +0 -15
- data/lib/action_controller/rack_lint_patch.rb +0 -36
- data/lib/action_controller/reloader.rb +0 -54
- data/lib/action_controller/request.rb +0 -518
- data/lib/action_controller/request_forgery_protection.rb +0 -116
- data/lib/action_controller/rescue.rb +0 -183
- data/lib/action_controller/resources.rb +0 -682
- data/lib/action_controller/response.rb +0 -237
- data/lib/action_controller/routing.rb +0 -388
- data/lib/action_controller/routing/builder.rb +0 -197
- data/lib/action_controller/routing/optimisations.rb +0 -130
- data/lib/action_controller/routing/recognition_optimisation.rb +0 -167
- data/lib/action_controller/routing/route.rb +0 -265
- data/lib/action_controller/routing/route_set.rb +0 -503
- data/lib/action_controller/routing/routing_ext.rb +0 -49
- data/lib/action_controller/routing/segments.rb +0 -343
- data/lib/action_controller/session/abstract_store.rb +0 -276
- data/lib/action_controller/session/mem_cache_store.rb +0 -60
- data/lib/action_controller/status_codes.rb +0 -88
- data/lib/action_controller/string_coercion.rb +0 -29
- data/lib/action_controller/templates/rescues/diagnostics.erb +0 -11
- data/lib/action_controller/test_process.rb +0 -580
- data/lib/action_controller/uploaded_file.rb +0 -44
- data/lib/action_view/helpers/benchmark_helper.rb +0 -54
- data/lib/action_view/inline_template.rb +0 -19
- data/lib/action_view/reloadable_template.rb +0 -117
- data/lib/action_view/renderable.rb +0 -109
- data/lib/action_view/renderable_partial.rb +0 -53
- data/lib/action_view/template_error.rb +0 -99
- data/lib/action_view/template_handler.rb +0 -34
- data/lib/action_view/template_handlers.rb +0 -48
- data/lib/action_view/template_handlers/erb.rb +0 -25
- data/lib/actionpack.rb +0 -2
- data/test/abstract_unit.rb +0 -78
- data/test/active_record_unit.rb +0 -104
- data/test/activerecord/active_record_store_test.rb +0 -221
- data/test/activerecord/render_partial_with_record_identification_test.rb +0 -188
- data/test/adv_attr_test.rb +0 -20
- data/test/controller/action_pack_assertions_test.rb +0 -545
- data/test/controller/addresses_render_test.rb +0 -37
- data/test/controller/assert_select_test.rb +0 -735
- data/test/controller/base_test.rb +0 -217
- data/test/controller/benchmark_test.rb +0 -32
- data/test/controller/caching_test.rb +0 -743
- data/test/controller/capture_test.rb +0 -66
- data/test/controller/content_type_test.rb +0 -178
- data/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
- data/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
- data/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
- data/test/controller/cookie_test.rb +0 -208
- data/test/controller/deprecation/deprecated_base_methods_test.rb +0 -32
- data/test/controller/dispatcher_test.rb +0 -144
- data/test/controller/dom_assertions_test.rb +0 -53
- data/test/controller/failsafe_test.rb +0 -60
- data/test/controller/fake_controllers.rb +0 -33
- data/test/controller/fake_models.rb +0 -19
- data/test/controller/filter_params_test.rb +0 -52
- data/test/controller/filters_test.rb +0 -885
- data/test/controller/flash_test.rb +0 -174
- data/test/controller/header_test.rb +0 -14
- data/test/controller/helper_test.rb +0 -224
- data/test/controller/html-scanner/cdata_node_test.rb +0 -15
- data/test/controller/html-scanner/document_test.rb +0 -148
- data/test/controller/html-scanner/node_test.rb +0 -89
- data/test/controller/html-scanner/sanitizer_test.rb +0 -300
- data/test/controller/html-scanner/tag_node_test.rb +0 -238
- data/test/controller/html-scanner/text_node_test.rb +0 -50
- data/test/controller/html-scanner/tokenizer_test.rb +0 -131
- data/test/controller/http_basic_authentication_test.rb +0 -113
- data/test/controller/http_digest_authentication_test.rb +0 -254
- data/test/controller/integration_test.rb +0 -526
- data/test/controller/layout_test.rb +0 -215
- data/test/controller/localized_templates_test.rb +0 -24
- data/test/controller/logging_test.rb +0 -46
- data/test/controller/middleware_stack_test.rb +0 -90
- data/test/controller/mime_responds_test.rb +0 -536
- data/test/controller/mime_type_test.rb +0 -93
- data/test/controller/output_escaping_test.rb +0 -19
- data/test/controller/polymorphic_routes_test.rb +0 -297
- data/test/controller/rack_test.rb +0 -308
- data/test/controller/record_identifier_test.rb +0 -139
- data/test/controller/redirect_test.rb +0 -285
- data/test/controller/reloader_test.rb +0 -125
- data/test/controller/render_test.rb +0 -1783
- data/test/controller/request/json_params_parsing_test.rb +0 -65
- data/test/controller/request/multipart_params_parsing_test.rb +0 -177
- data/test/controller/request/query_string_parsing_test.rb +0 -129
- data/test/controller/request/test_request_test.rb +0 -35
- data/test/controller/request/url_encoded_params_parsing_test.rb +0 -146
- data/test/controller/request/xml_params_parsing_test.rb +0 -103
- data/test/controller/request_forgery_protection_test.rb +0 -233
- data/test/controller/request_test.rb +0 -398
- data/test/controller/rescue_test.rb +0 -541
- data/test/controller/resources_test.rb +0 -1393
- data/test/controller/routing_test.rb +0 -2592
- data/test/controller/selector_test.rb +0 -628
- data/test/controller/send_file_test.rb +0 -171
- data/test/controller/session/abstract_store_test.rb +0 -64
- data/test/controller/session/cookie_store_test.rb +0 -354
- data/test/controller/session/mem_cache_store_test.rb +0 -187
- data/test/controller/session/test_session_test.rb +0 -58
- data/test/controller/test_test.rb +0 -700
- data/test/controller/translation_test.rb +0 -26
- data/test/controller/url_rewriter_test.rb +0 -395
- data/test/controller/verification_test.rb +0 -270
- data/test/controller/view_paths_test.rb +0 -141
- data/test/controller/webservice_test.rb +0 -273
- data/test/fixtures/_top_level_partial.html.erb +0 -1
- data/test/fixtures/_top_level_partial_only.erb +0 -1
- data/test/fixtures/addresses/list.erb +0 -1
- data/test/fixtures/alternate_helpers/foo_helper.rb +0 -3
- data/test/fixtures/bad_customers/_bad_customer.html.erb +0 -1
- data/test/fixtures/companies.yml +0 -24
- data/test/fixtures/company.rb +0 -10
- data/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +0 -1
- data/test/fixtures/content_type/render_default_for_rhtml.rhtml +0 -1
- data/test/fixtures/content_type/render_default_for_rjs.rjs +0 -1
- data/test/fixtures/content_type/render_default_for_rxml.rxml +0 -1
- data/test/fixtures/customers/_customer.html.erb +0 -1
- data/test/fixtures/db_definitions/sqlite.sql +0 -49
- data/test/fixtures/developer.rb +0 -9
- data/test/fixtures/developers.yml +0 -21
- data/test/fixtures/developers/_developer.erb +0 -1
- data/test/fixtures/developers_projects.yml +0 -13
- data/test/fixtures/failsafe/500.html +0 -1
- data/test/fixtures/fun/games/_game.erb +0 -1
- data/test/fixtures/fun/games/hello_world.erb +0 -1
- data/test/fixtures/fun/serious/games/_game.erb +0 -1
- data/test/fixtures/functional_caching/_partial.erb +0 -3
- data/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +0 -3
- data/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +0 -6
- data/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +0 -5
- data/test/fixtures/functional_caching/fragment_cached.html.erb +0 -2
- data/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +0 -1
- data/test/fixtures/functional_caching/inline_fragment_cached.html.erb +0 -2
- data/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +0 -1
- data/test/fixtures/good_customers/_good_customer.html.erb +0 -1
- data/test/fixtures/helpers/abc_helper.rb +0 -5
- data/test/fixtures/helpers/fun/games_helper.rb +0 -3
- data/test/fixtures/helpers/fun/pdf_helper.rb +0 -3
- data/test/fixtures/layout_tests/abs_path_layout.rhtml +0 -1
- data/test/fixtures/layout_tests/alt/hello.rhtml +0 -1
- data/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
- data/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +0 -1
- data/test/fixtures/layout_tests/layouts/item.rhtml +0 -1
- data/test/fixtures/layout_tests/layouts/layout_test.rhtml +0 -1
- data/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +0 -1
- data/test/fixtures/layout_tests/layouts/third_party_template_library.mab +0 -1
- data/test/fixtures/layout_tests/views/hello.rhtml +0 -1
- data/test/fixtures/layouts/_column.html.erb +0 -2
- data/test/fixtures/layouts/block_with_layout.erb +0 -3
- data/test/fixtures/layouts/builder.builder +0 -3
- data/test/fixtures/layouts/default_html.html.erb +0 -1
- data/test/fixtures/layouts/partial_with_layout.erb +0 -3
- data/test/fixtures/layouts/standard.erb +0 -1
- data/test/fixtures/layouts/talk_from_action.erb +0 -2
- data/test/fixtures/layouts/xhr.html.erb +0 -2
- data/test/fixtures/layouts/yield.erb +0 -2
- data/test/fixtures/localized/hello_world.de.html +0 -1
- data/test/fixtures/localized/hello_world.en.html +0 -1
- data/test/fixtures/mascot.rb +0 -3
- data/test/fixtures/mascots.yml +0 -4
- data/test/fixtures/mascots/_mascot.html.erb +0 -1
- data/test/fixtures/multipart/binary_file +0 -0
- data/test/fixtures/multipart/boundary_problem_file +0 -10
- data/test/fixtures/multipart/bracketed_param +0 -5
- data/test/fixtures/multipart/empty +0 -10
- data/test/fixtures/multipart/hello.txt +0 -1
- data/test/fixtures/multipart/large_text_file +0 -10
- data/test/fixtures/multipart/mixed_files +0 -0
- data/test/fixtures/multipart/mona_lisa.jpg +0 -0
- data/test/fixtures/multipart/none +0 -9
- data/test/fixtures/multipart/single_parameter +0 -5
- data/test/fixtures/multipart/text_file +0 -10
- data/test/fixtures/override/test/hello_world.erb +0 -1
- data/test/fixtures/override2/layouts/test/sub.erb +0 -1
- data/test/fixtures/post_test/layouts/post.html.erb +0 -1
- data/test/fixtures/post_test/layouts/super_post.iphone.erb +0 -1
- data/test/fixtures/post_test/post/index.html.erb +0 -1
- data/test/fixtures/post_test/post/index.iphone.erb +0 -1
- data/test/fixtures/post_test/super_post/index.html.erb +0 -1
- data/test/fixtures/post_test/super_post/index.iphone.erb +0 -1
- data/test/fixtures/project.rb +0 -3
- data/test/fixtures/projects.yml +0 -7
- data/test/fixtures/projects/_project.erb +0 -1
- data/test/fixtures/public/404.html +0 -1
- data/test/fixtures/public/500.da.html +0 -1
- data/test/fixtures/public/500.html +0 -1
- data/test/fixtures/public/absolute/test.css +0 -23
- data/test/fixtures/public/absolute/test.js +0 -63
- data/test/fixtures/public/images/rails.png +0 -0
- data/test/fixtures/public/javascripts/application.js +0 -1
- data/test/fixtures/public/javascripts/bank.js +0 -1
- data/test/fixtures/public/javascripts/controls.js +0 -1
- data/test/fixtures/public/javascripts/dragdrop.js +0 -1
- data/test/fixtures/public/javascripts/effects.js +0 -1
- data/test/fixtures/public/javascripts/prototype.js +0 -1
- data/test/fixtures/public/javascripts/robber.js +0 -1
- data/test/fixtures/public/javascripts/subdir/subdir.js +0 -1
- data/test/fixtures/public/javascripts/version.1.0.js +0 -1
- data/test/fixtures/public/stylesheets/bank.css +0 -1
- data/test/fixtures/public/stylesheets/robber.css +0 -1
- data/test/fixtures/public/stylesheets/subdir/subdir.css +0 -1
- data/test/fixtures/public/stylesheets/version.1.0.css +0 -1
- data/test/fixtures/quiz/questions/_question.html.erb +0 -1
- data/test/fixtures/replies.yml +0 -15
- data/test/fixtures/replies/_reply.erb +0 -1
- data/test/fixtures/reply.rb +0 -7
- data/test/fixtures/respond_to/all_types_with_layout.html.erb +0 -1
- data/test/fixtures/respond_to/all_types_with_layout.js.rjs +0 -1
- data/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +0 -1
- data/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +0 -1
- data/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +0 -1
- data/test/fixtures/respond_to/layouts/missing.html.erb +0 -1
- data/test/fixtures/respond_to/layouts/standard.html.erb +0 -1
- data/test/fixtures/respond_to/layouts/standard.iphone.erb +0 -1
- data/test/fixtures/respond_to/using_defaults.html.erb +0 -1
- data/test/fixtures/respond_to/using_defaults.js.rjs +0 -1
- data/test/fixtures/respond_to/using_defaults.xml.builder +0 -1
- data/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +0 -1
- data/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +0 -1
- data/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +0 -1
- data/test/fixtures/scope/test/modgreet.erb +0 -1
- data/test/fixtures/session_autoload_test/session_autoload_test/foo.rb +0 -10
- data/test/fixtures/shared.html.erb +0 -1
- data/test/fixtures/symlink_parent/symlinked_layout.erb +0 -5
- data/test/fixtures/test/_counter.html.erb +0 -1
- data/test/fixtures/test/_customer.erb +0 -1
- data/test/fixtures/test/_customer_counter.erb +0 -1
- data/test/fixtures/test/_customer_counter_with_as.erb +0 -1
- data/test/fixtures/test/_customer_greeting.erb +0 -1
- data/test/fixtures/test/_customer_with_var.erb +0 -1
- data/test/fixtures/test/_form.erb +0 -1
- data/test/fixtures/test/_from_helper.erb +0 -1
- data/test/fixtures/test/_hash_greeting.erb +0 -1
- data/test/fixtures/test/_hash_object.erb +0 -2
- data/test/fixtures/test/_hello.builder +0 -1
- data/test/fixtures/test/_labelling_form.erb +0 -1
- data/test/fixtures/test/_layout_for_block_with_args.html.erb +0 -3
- data/test/fixtures/test/_layout_for_partial.html.erb +0 -3
- data/test/fixtures/test/_local_inspector.html.erb +0 -1
- data/test/fixtures/test/_one.html.erb +0 -1
- data/test/fixtures/test/_partial.erb +0 -1
- data/test/fixtures/test/_partial.html.erb +0 -1
- data/test/fixtures/test/_partial.js.erb +0 -1
- data/test/fixtures/test/_partial_for_use_in_layout.html.erb +0 -1
- data/test/fixtures/test/_partial_only.erb +0 -1
- data/test/fixtures/test/_partial_with_only_html_version.html.erb +0 -1
- data/test/fixtures/test/_person.erb +0 -2
- data/test/fixtures/test/_raise.html.erb +0 -1
- data/test/fixtures/test/_two.html.erb +0 -1
- data/test/fixtures/test/_utf8_partial.html.erb +0 -1
- data/test/fixtures/test/_utf8_partial_magic.html.erb +0 -2
- data/test/fixtures/test/action_talk_to_layout.erb +0 -2
- data/test/fixtures/test/array_translation.erb +0 -1
- data/test/fixtures/test/calling_partial_with_layout.html.erb +0 -1
- data/test/fixtures/test/capturing.erb +0 -4
- data/test/fixtures/test/content_for.erb +0 -2
- data/test/fixtures/test/content_for_concatenated.erb +0 -3
- data/test/fixtures/test/content_for_with_parameter.erb +0 -2
- data/test/fixtures/test/delete_with_js.rjs +0 -2
- data/test/fixtures/test/dont_pick_me +0 -1
- data/test/fixtures/test/dot.directory/render_file_with_ivar.erb +0 -1
- data/test/fixtures/test/enum_rjs_test.rjs +0 -6
- data/test/fixtures/test/formatted_html_erb.html.erb +0 -1
- data/test/fixtures/test/formatted_xml_erb.builder +0 -1
- data/test/fixtures/test/formatted_xml_erb.html.erb +0 -1
- data/test/fixtures/test/formatted_xml_erb.xml.erb +0 -1
- data/test/fixtures/test/greeting.erb +0 -1
- data/test/fixtures/test/greeting.js.rjs +0 -1
- data/test/fixtures/test/hello.builder +0 -4
- data/test/fixtures/test/hello_world.da.html.erb +0 -1
- data/test/fixtures/test/hello_world.erb +0 -1
- data/test/fixtures/test/hello_world.erb~ +0 -1
- data/test/fixtures/test/hello_world.pt-BR.html.erb +0 -1
- data/test/fixtures/test/hello_world_container.builder +0 -3
- data/test/fixtures/test/hello_world_from_rxml.builder +0 -4
- data/test/fixtures/test/hello_world_with_layout_false.erb +0 -1
- data/test/fixtures/test/hello_xml_world.builder +0 -11
- data/test/fixtures/test/hyphen-ated.erb +0 -1
- data/test/fixtures/test/implicit_content_type.atom.builder +0 -2
- data/test/fixtures/test/list.erb +0 -1
- data/test/fixtures/test/malformed/malformed.en.html.erb~ +0 -1
- data/test/fixtures/test/malformed/malformed.erb~ +0 -1
- data/test/fixtures/test/malformed/malformed.html.erb~ +0 -1
- data/test/fixtures/test/nested_layout.erb +0 -3
- data/test/fixtures/test/non_erb_block_content_for.builder +0 -4
- data/test/fixtures/test/potential_conflicts.erb +0 -4
- data/test/fixtures/test/render_explicit_html_template.js.rjs +0 -1
- data/test/fixtures/test/render_file_from_template.html.erb +0 -1
- data/test/fixtures/test/render_file_with_ivar.erb +0 -1
- data/test/fixtures/test/render_file_with_locals.erb +0 -1
- data/test/fixtures/test/render_implicit_html_template.js.rjs +0 -1
- data/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +0 -1
- data/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +0 -1
- data/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +0 -1
- data/test/fixtures/test/render_to_string_test.erb +0 -1
- data/test/fixtures/test/scoped_array_translation.erb +0 -1
- data/test/fixtures/test/sub_template_raise.html.erb +0 -1
- data/test/fixtures/test/template.erb +0 -1
- data/test/fixtures/test/translation.erb +0 -1
- data/test/fixtures/test/update_element_with_capture.erb +0 -9
- data/test/fixtures/test/using_layout_around_block.html.erb +0 -1
- data/test/fixtures/test/using_layout_around_block_with_args.html.erb +0 -1
- data/test/fixtures/test/utf8.html.erb +0 -4
- data/test/fixtures/test/utf8_magic.html.erb +0 -5
- data/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +0 -5
- data/test/fixtures/topic.rb +0 -3
- data/test/fixtures/topics.yml +0 -22
- data/test/fixtures/topics/_topic.html.erb +0 -1
- data/test/template/active_record_helper_i18n_test.rb +0 -51
- data/test/template/active_record_helper_test.rb +0 -302
- data/test/template/asset_tag_helper_test.rb +0 -770
- data/test/template/atom_feed_helper_test.rb +0 -315
- data/test/template/benchmark_helper_test.rb +0 -86
- data/test/template/compiled_templates_test.rb +0 -204
- data/test/template/date_helper_i18n_test.rb +0 -121
- data/test/template/date_helper_test.rb +0 -2603
- data/test/template/erb_util_test.rb +0 -36
- data/test/template/form_helper_test.rb +0 -1447
- data/test/template/form_options_helper_i18n_test.rb +0 -27
- data/test/template/form_options_helper_test.rb +0 -811
- data/test/template/form_tag_helper_test.rb +0 -356
- data/test/template/javascript_helper_test.rb +0 -106
- data/test/template/number_helper_i18n_test.rb +0 -69
- data/test/template/number_helper_test.rb +0 -132
- data/test/template/prototype_helper_test.rb +0 -639
- data/test/template/raw_output_helper_test.rb +0 -21
- data/test/template/record_tag_helper_test.rb +0 -58
- data/test/template/render_test.rb +0 -329
- data/test/template/sanitize_helper_test.rb +0 -57
- data/test/template/scriptaculous_helper_test.rb +0 -90
- data/test/template/tag_helper_test.rb +0 -98
- data/test/template/template_test.rb +0 -32
- data/test/template/test_test.rb +0 -54
- data/test/template/text_helper_test.rb +0 -601
- data/test/template/translation_helper_test.rb +0 -95
- data/test/template/url_helper_test.rb +0 -641
- data/test/testing_sandbox.rb +0 -15
- data/test/view/test_case_test.rb +0 -176
@@ -1,90 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class ScriptaculousHelperTest < ActionView::TestCase
|
4
|
-
tests ActionView::Helpers::ScriptaculousHelper
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@controller = Class.new do
|
8
|
-
def url_for(options)
|
9
|
-
url = "http://www.example.com/"
|
10
|
-
url << options[:action].to_s if options and options[:action]
|
11
|
-
url
|
12
|
-
end
|
13
|
-
end.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_effect
|
17
|
-
assert_equal "new Effect.Highlight(\"posts\",{});", visual_effect(:highlight, "posts")
|
18
|
-
assert_equal "new Effect.Highlight(\"posts\",{});", visual_effect("highlight", :posts)
|
19
|
-
assert_equal "new Effect.Highlight(\"posts\",{});", visual_effect(:highlight, :posts)
|
20
|
-
assert_equal "new Effect.Fade(\"fademe\",{duration:4.0});", visual_effect(:fade, "fademe", :duration => 4.0)
|
21
|
-
assert_equal "new Effect.Shake(element,{});", visual_effect(:shake)
|
22
|
-
assert_equal "new Effect.DropOut(\"dropme\",{queue:'end'});", visual_effect(:drop_out, 'dropme', :queue => :end)
|
23
|
-
assert_equal "new Effect.Highlight(\"status\",{endcolor:'#EEEEEE'});", visual_effect(:highlight, 'status', :endcolor => '#EEEEEE')
|
24
|
-
assert_equal "new Effect.Highlight(\"status\",{restorecolor:'#500000', startcolor:'#FEFEFE'});", visual_effect(:highlight, 'status', :restorecolor => '#500000', :startcolor => '#FEFEFE')
|
25
|
-
|
26
|
-
# chop the queue params into a comma separated list
|
27
|
-
beginning, ending = 'new Effect.DropOut("dropme",{queue:{', '}});'
|
28
|
-
ve = [
|
29
|
-
visual_effect(:drop_out, 'dropme', :queue => {:position => "end", :scope => "test", :limit => 2}),
|
30
|
-
visual_effect(:drop_out, 'dropme', :queue => {:scope => :list, :limit => 2}),
|
31
|
-
visual_effect(:drop_out, 'dropme', :queue => {:position => :end, :scope => :test, :limit => 2})
|
32
|
-
].collect { |v| v[beginning.length..-ending.length-1].split(',') }
|
33
|
-
|
34
|
-
assert ve[0].include?("limit:2")
|
35
|
-
assert ve[0].include?("scope:'test'")
|
36
|
-
assert ve[0].include?("position:'end'")
|
37
|
-
|
38
|
-
assert ve[1].include?("limit:2")
|
39
|
-
assert ve[1].include?("scope:'list'")
|
40
|
-
|
41
|
-
assert ve[2].include?("limit:2")
|
42
|
-
assert ve[2].include?("scope:'test'")
|
43
|
-
assert ve[2].include?("position:'end'")
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_toggle_effects
|
47
|
-
assert_equal "Effect.toggle(\"posts\",'appear',{});", visual_effect(:toggle_appear, "posts")
|
48
|
-
assert_equal "Effect.toggle(\"posts\",'slide',{});", visual_effect(:toggle_slide, "posts")
|
49
|
-
assert_equal "Effect.toggle(\"posts\",'blind',{});", visual_effect(:toggle_blind, "posts")
|
50
|
-
assert_equal "Effect.toggle(\"posts\",'appear',{});", visual_effect("toggle_appear", "posts")
|
51
|
-
assert_equal "Effect.toggle(\"posts\",'slide',{});", visual_effect("toggle_slide", "posts")
|
52
|
-
assert_equal "Effect.toggle(\"posts\",'blind',{});", visual_effect("toggle_blind", "posts")
|
53
|
-
end
|
54
|
-
|
55
|
-
|
56
|
-
def test_sortable_element
|
57
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>),
|
58
|
-
sortable_element("mylist", :url => { :action => "order" })
|
59
|
-
assert_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}, tag:'div'})\n//]]>\n</script>),
|
60
|
-
sortable_element("mylist", :tag => "div", :constraint => "horizontal", :url => { :action => "order" })
|
61
|
-
assert_dom_equal %|<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', containment:['list1','list2'], onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>|,
|
62
|
-
sortable_element("mylist", :containment => ['list1','list2'], :constraint => "horizontal", :url => { :action => "order" })
|
63
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create(\"mylist\", {constraint:'horizontal', containment:'list1', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize(\"mylist\")})}})\n//]]>\n</script>),
|
64
|
-
sortable_element("mylist", :containment => 'list1', :constraint => "horizontal", :url => { :action => "order" })
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_draggable_element
|
68
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Draggable(\"product_13\", {})\n//]]>\n</script>),
|
69
|
-
draggable_element("product_13")
|
70
|
-
assert_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Draggable(\"product_13\", {revert:true})\n//]]>\n</script>),
|
71
|
-
draggable_element("product_13", :revert => true)
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_drop_receiving_element
|
75
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
|
76
|
-
drop_receiving_element("droptarget1")
|
77
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:'products', onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
|
78
|
-
drop_receiving_element("droptarget1", :accept => 'products')
|
79
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:'products', onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
|
80
|
-
drop_receiving_element("droptarget1", :accept => 'products', :update => 'infobox')
|
81
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add(\"droptarget1\", {accept:['tshirts','mugs'], onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
|
82
|
-
drop_receiving_element("droptarget1", :accept => ['tshirts','mugs'], :update => 'infobox')
|
83
|
-
assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add("droptarget1", {hoverclass:'dropready', onDrop:function(element){if (confirm('Are you sure?')) { new Ajax.Request('http://www.example.com/update_drop', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)}); }}})\n//]]>\n</script>),
|
84
|
-
drop_receiving_element('droptarget1', :hoverclass=>'dropready', :url=>{:action=>'update_drop'}, :confirm => 'Are you sure?')
|
85
|
-
|
86
|
-
end
|
87
|
-
def protect_against_forgery?
|
88
|
-
false
|
89
|
-
end
|
90
|
-
end
|
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class TagHelperTest < ActionView::TestCase
|
4
|
-
tests ActionView::Helpers::TagHelper
|
5
|
-
|
6
|
-
def test_tag
|
7
|
-
assert_equal "<br />", tag("br")
|
8
|
-
assert_equal "<br clear=\"left\" />", tag(:br, :clear => "left")
|
9
|
-
assert_equal "<br>", tag("br", nil, true)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_tag_options
|
13
|
-
str = tag("p", "class" => "show", :class => "elsewhere")
|
14
|
-
assert_match /class="show"/, str
|
15
|
-
assert_match /class="elsewhere"/, str
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_tag_options_rejects_nil_option
|
19
|
-
assert_equal "<p />", tag("p", :ignored => nil)
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_tag_options_accepts_false_option
|
23
|
-
assert_equal "<p value=\"false\" />", tag("p", :value => false)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_tag_options_accepts_blank_option
|
27
|
-
assert_equal "<p included=\"\" />", tag("p", :included => '')
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_tag_options_converts_boolean_option
|
31
|
-
assert_equal '<p disabled="disabled" multiple="multiple" readonly="readonly" />',
|
32
|
-
tag("p", :disabled => true, :multiple => true, :readonly => true)
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_content_tag
|
36
|
-
assert_equal "<a href=\"create\">Create</a>", content_tag("a", "Create", "href" => "create")
|
37
|
-
assert content_tag("a", "Create", "href" => "create").html_safe?
|
38
|
-
assert_equal content_tag("a", "Create", "href" => "create"),
|
39
|
-
content_tag("a", "Create", :href => "create")
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_content_tag_with_block_in_erb
|
43
|
-
__in_erb_template = ''
|
44
|
-
content_tag(:div) { concat "Hello world!" }
|
45
|
-
assert_dom_equal "<div>Hello world!</div>", output_buffer
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_content_tag_with_block_and_options_in_erb
|
49
|
-
__in_erb_template = ''
|
50
|
-
content_tag(:div, :class => "green") { concat "Hello world!" }
|
51
|
-
assert_dom_equal %(<div class="green">Hello world!</div>), output_buffer
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_content_tag_with_block_and_options_out_of_erb
|
55
|
-
assert_dom_equal %(<div class="green">Hello world!</div>), content_tag(:div, :class => "green") { "Hello world!" }
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_content_tag_with_block_and_options_outside_out_of_erb
|
59
|
-
assert_equal content_tag("a", "Create", :href => "create"),
|
60
|
-
content_tag("a", "href" => "create") { "Create" }
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_content_tag_nested_in_content_tag_out_of_erb
|
64
|
-
assert_equal content_tag("p", content_tag("b", "Hello")),
|
65
|
-
content_tag("p") { content_tag("b", "Hello") },
|
66
|
-
output_buffer
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_content_tag_nested_in_content_tag_in_erb
|
70
|
-
__in_erb_template = true
|
71
|
-
content_tag("p") { concat content_tag("b", "Hello") }
|
72
|
-
assert_equal '<p><b>Hello</b></p>', output_buffer
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_cdata_section
|
76
|
-
assert_equal "<![CDATA[<hello world>]]>", cdata_section("<hello world>")
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_escape_once
|
80
|
-
assert_equal '1 < 2 & 3', escape_once('1 < 2 & 3')
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_double_escaping_attributes
|
84
|
-
['1&2', '1 < 2', '“test“'].each do |escaped|
|
85
|
-
assert_equal %(<a href="#{escaped}" />), tag('a', :href => escaped)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_skip_invalid_escaped_attributes
|
90
|
-
['&1;', 'dfa3;', '& #123;'].each do |escaped|
|
91
|
-
assert_equal %(<a href="#{escaped.gsub /&/, '&'}" />), tag('a', :href => escaped)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_disable_escaping
|
96
|
-
assert_equal '<a href="&" />', tag('a', { :href => '&' }, false, false)
|
97
|
-
end
|
98
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class TemplateTest < Test::Unit::TestCase
|
4
|
-
def test_template_path_parsing
|
5
|
-
with_options :base_path => nil, :name => 'abc', :locale => nil, :format => 'html', :extension => 'erb' do |t|
|
6
|
-
t.assert_parses_template_path 'abc.en.html.erb', :locale => 'en'
|
7
|
-
t.assert_parses_template_path 'abc.en.plain.html.erb', :locale => 'en', :format => 'plain.html'
|
8
|
-
t.assert_parses_template_path 'abc.html.erb'
|
9
|
-
t.assert_parses_template_path 'abc.plain.html.erb', :format => 'plain.html'
|
10
|
-
t.assert_parses_template_path 'abc.erb', :format => nil
|
11
|
-
t.assert_parses_template_path 'abc.html', :extension => nil
|
12
|
-
|
13
|
-
t.assert_parses_template_path '_abc.html.erb', :name => '_abc'
|
14
|
-
|
15
|
-
t.assert_parses_template_path 'test/abc.html.erb', :base_path => 'test'
|
16
|
-
t.assert_parses_template_path './test/abc.html.erb', :base_path => './test'
|
17
|
-
t.assert_parses_template_path '../test/abc.html.erb', :base_path => '../test'
|
18
|
-
|
19
|
-
t.assert_parses_template_path 'abc', :extension => nil, :format => nil, :name => nil
|
20
|
-
t.assert_parses_template_path 'abc.xxx', :extension => nil, :format => 'xxx', :name => 'abc'
|
21
|
-
t.assert_parses_template_path 'abc.html.xxx', :extension => nil, :format => 'xxx', :name => 'abc'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
def assert_parses_template_path(path, parse_results)
|
27
|
-
template = ActionView::Template.new(path, '')
|
28
|
-
parse_results.each_pair do |k, v|
|
29
|
-
assert_block(%Q{Expected template to parse #{k.inspect} from "#{path}" as #{v.inspect}, but got #{template.send(k).inspect}}) { v == template.send(k) }
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
data/test/template/test_test.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
module PeopleHelper
|
4
|
-
def title(text)
|
5
|
-
content_tag(:h1, text)
|
6
|
-
end
|
7
|
-
|
8
|
-
def homepage_path
|
9
|
-
people_path
|
10
|
-
end
|
11
|
-
|
12
|
-
def homepage_url
|
13
|
-
people_url
|
14
|
-
end
|
15
|
-
|
16
|
-
def link_to_person(person)
|
17
|
-
link_to person.name, person
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
class PeopleHelperTest < ActionView::TestCase
|
22
|
-
def setup
|
23
|
-
ActionController::Routing::Routes.draw do |map|
|
24
|
-
map.people 'people', :controller => 'people', :action => 'index'
|
25
|
-
map.connect ':controller/:action/:id'
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_title
|
30
|
-
assert_equal "<h1>Ruby on Rails</h1>", title("Ruby on Rails")
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_homepage_path
|
34
|
-
assert_equal "/people", homepage_path
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_homepage_url
|
38
|
-
assert_equal "http://test.host/people", homepage_url
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_link_to_person
|
42
|
-
person = mock(:name => "David")
|
43
|
-
expects(:mocha_mock_path).with(person).returns("/people/1")
|
44
|
-
assert_equal '<a href="/people/1">David</a>', link_to_person(person)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
class CrazyHelperTest < ActionView::TestCase
|
49
|
-
tests PeopleHelper
|
50
|
-
|
51
|
-
def test_helper_class_can_be_set_manually_not_just_inferred
|
52
|
-
assert_equal PeopleHelper, self.class.helper_class
|
53
|
-
end
|
54
|
-
end
|
@@ -1,601 +0,0 @@
|
|
1
|
-
# encoding: us-ascii
|
2
|
-
require 'abstract_unit'
|
3
|
-
require 'testing_sandbox'
|
4
|
-
begin
|
5
|
-
require 'redcloth'
|
6
|
-
rescue LoadError
|
7
|
-
$stderr.puts "Skipping textilize tests. `gem install RedCloth` to enable."
|
8
|
-
end
|
9
|
-
|
10
|
-
class TextHelperTest < ActionView::TestCase
|
11
|
-
tests ActionView::Helpers::TextHelper
|
12
|
-
include TestingSandbox
|
13
|
-
|
14
|
-
def setup
|
15
|
-
# This simulates the fact that instance variables are reset every time
|
16
|
-
# a view is rendered. The cycle helper depends on this behavior.
|
17
|
-
@_cycles = nil if (defined? @_cycles)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_concat
|
21
|
-
self.output_buffer = ActiveSupport::SafeBuffer.new('foo')
|
22
|
-
assert_equal 'foobar', concat('bar')
|
23
|
-
assert_equal 'foobar', output_buffer
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_simple_format
|
27
|
-
assert_equal "<p></p>", simple_format(nil)
|
28
|
-
|
29
|
-
assert_equal "<p>crazy\n<br /> cross\n<br /> platform linebreaks</p>", simple_format("crazy\r\n cross\r platform linebreaks")
|
30
|
-
assert_equal "<p>A paragraph</p>\n\n<p>and another one!</p>", simple_format("A paragraph\n\nand another one!")
|
31
|
-
assert_equal "<p>A paragraph\n<br /> With a newline</p>", simple_format("A paragraph\n With a newline")
|
32
|
-
|
33
|
-
text = "A\nB\nC\nD".freeze
|
34
|
-
assert_equal "<p>A\n<br />B\n<br />C\n<br />D</p>", simple_format(text)
|
35
|
-
|
36
|
-
text = "A\r\n \nB\n\n\r\n\t\nC\nD".freeze
|
37
|
-
assert_equal "<p>A\n<br /> \n<br />B</p>\n\n<p>\t\n<br />C\n<br />D</p>", simple_format(text)
|
38
|
-
|
39
|
-
assert_equal %q(<p class="test">This is a classy test</p>), simple_format("This is a classy test", :class => 'test')
|
40
|
-
assert_equal %Q(<p class="test">para 1</p>\n\n<p class="test">para 2</p>), simple_format("para 1\n\npara 2", :class => 'test')
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_simple_format_should_be_html_safe
|
44
|
-
assert simple_format("<b> test with html tags </b>").html_safe?
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_simple_format_should_not_escape_safe_input
|
48
|
-
assert_equal "<p><b> test with safe string </b></p>", simple_format("<b> test with safe string </b>".html_safe)
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_truncate
|
52
|
-
assert_equal "Hello World!", truncate("Hello World!", :length => 12)
|
53
|
-
assert_equal "Hello Wor...", truncate("Hello World!!", :length => 12)
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_truncate_should_use_default_length_of_30
|
57
|
-
str = "This is a string that will go longer then the default truncate length of 30"
|
58
|
-
assert_equal str[0...27] + "...", truncate(str)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_truncate_with_options_hash
|
62
|
-
assert_equal "This is a string that wil[...]", truncate("This is a string that will go longer then the default truncate length of 30", :omission => "[...]")
|
63
|
-
assert_equal "Hello W...", truncate("Hello World!", :length => 10)
|
64
|
-
assert_equal "Hello[...]", truncate("Hello World!", :omission => "[...]", :length => 10)
|
65
|
-
end
|
66
|
-
|
67
|
-
if RUBY_VERSION < '1.9.0'
|
68
|
-
def test_truncate_multibyte
|
69
|
-
with_kcode 'none' do
|
70
|
-
assert_equal "\354\225\210\353\205\225\355...", truncate("\354\225\210\353\205\225\355\225\230\354\204\270\354\232\224", :length => 10)
|
71
|
-
end
|
72
|
-
with_kcode 'u' do
|
73
|
-
assert_equal "\354\225\204\353\246\254\353\236\221 \354\225\204\353\246\254 ...",
|
74
|
-
truncate("\354\225\204\353\246\254\353\236\221 \354\225\204\353\246\254 \354\225\204\353\235\274\353\246\254\354\230\244", :length => 10)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
else
|
78
|
-
def test_truncate_multibyte
|
79
|
-
assert_equal "\354\225\210\353\205\225\355...",
|
80
|
-
truncate("\354\225\210\353\205\225\355\225\230\354\204\270\354\232\224", :length => 10)
|
81
|
-
|
82
|
-
assert_equal "\354\225\204\353\246\254\353\236\221 \354\225\204\353\246\254 ...".force_encoding('UTF-8'),
|
83
|
-
truncate("\354\225\204\353\246\254\353\236\221 \354\225\204\353\246\254 \354\225\204\353\235\274\353\246\254\354\230\244".force_encoding('UTF-8'), :length => 10)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_highlighter
|
88
|
-
assert_equal(
|
89
|
-
"This is a <strong class=\"highlight\">beautiful</strong> morning",
|
90
|
-
highlight("This is a beautiful morning", "beautiful")
|
91
|
-
)
|
92
|
-
|
93
|
-
assert_equal(
|
94
|
-
"This is a <strong class=\"highlight\">beautiful</strong> morning, but also a <strong class=\"highlight\">beautiful</strong> day",
|
95
|
-
highlight("This is a beautiful morning, but also a beautiful day", "beautiful")
|
96
|
-
)
|
97
|
-
|
98
|
-
assert_equal(
|
99
|
-
"This is a <b>beautiful</b> morning, but also a <b>beautiful</b> day",
|
100
|
-
highlight("This is a beautiful morning, but also a beautiful day", "beautiful", '<b>\1</b>')
|
101
|
-
)
|
102
|
-
|
103
|
-
assert_equal(
|
104
|
-
"This text is not changed because we supplied an empty phrase",
|
105
|
-
highlight("This text is not changed because we supplied an empty phrase", nil)
|
106
|
-
)
|
107
|
-
|
108
|
-
assert_equal ' ', highlight(' ', 'blank text is returned verbatim')
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_highlight_with_regexp
|
112
|
-
assert_equal(
|
113
|
-
"This is a <strong class=\"highlight\">beautiful!</strong> morning",
|
114
|
-
highlight("This is a beautiful! morning", "beautiful!")
|
115
|
-
)
|
116
|
-
|
117
|
-
assert_equal(
|
118
|
-
"This is a <strong class=\"highlight\">beautiful! morning</strong>",
|
119
|
-
highlight("This is a beautiful! morning", "beautiful! morning")
|
120
|
-
)
|
121
|
-
|
122
|
-
assert_equal(
|
123
|
-
"This is a <strong class=\"highlight\">beautiful? morning</strong>",
|
124
|
-
highlight("This is a beautiful? morning", "beautiful? morning")
|
125
|
-
)
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_highlight_with_multiple_phrases_in_one_pass
|
129
|
-
assert_equal %(<em>wow</em> <em>em</em>), highlight('wow em', %w(wow em), '<em>\1</em>')
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_highlight_with_options_hash
|
133
|
-
assert_equal(
|
134
|
-
"This is a <b>beautiful</b> morning, but also a <b>beautiful</b> day",
|
135
|
-
highlight("This is a beautiful morning, but also a beautiful day", "beautiful", :highlighter => '<b>\1</b>')
|
136
|
-
)
|
137
|
-
end
|
138
|
-
|
139
|
-
def test_highlight_with_html
|
140
|
-
assert_equal(
|
141
|
-
"<p>This is a <strong class=\"highlight\">beautiful</strong> morning, but also a <strong class=\"highlight\">beautiful</strong> day</p>",
|
142
|
-
highlight("<p>This is a beautiful morning, but also a beautiful day</p>", "beautiful")
|
143
|
-
)
|
144
|
-
assert_equal(
|
145
|
-
"<p>This is a <em><strong class=\"highlight\">beautiful</strong></em> morning, but also a <strong class=\"highlight\">beautiful</strong> day</p>",
|
146
|
-
highlight("<p>This is a <em>beautiful</em> morning, but also a beautiful day</p>", "beautiful")
|
147
|
-
)
|
148
|
-
assert_equal(
|
149
|
-
"<p>This is a <em class=\"error\"><strong class=\"highlight\">beautiful</strong></em> morning, but also a <strong class=\"highlight\">beautiful</strong> <span class=\"last\">day</span></p>",
|
150
|
-
highlight("<p>This is a <em class=\"error\">beautiful</em> morning, but also a beautiful <span class=\"last\">day</span></p>", "beautiful")
|
151
|
-
)
|
152
|
-
assert_equal(
|
153
|
-
"<p class=\"beautiful\">This is a <strong class=\"highlight\">beautiful</strong> morning, but also a <strong class=\"highlight\">beautiful</strong> day</p>",
|
154
|
-
highlight("<p class=\"beautiful\">This is a beautiful morning, but also a beautiful day</p>", "beautiful")
|
155
|
-
)
|
156
|
-
assert_equal(
|
157
|
-
"<p>This is a <strong class=\"highlight\">beautiful</strong> <a href=\"http://example.com/beautiful\#top?what=beautiful%20morning&when=now+then\">morning</a>, but also a <strong class=\"highlight\">beautiful</strong> day</p>",
|
158
|
-
highlight("<p>This is a beautiful <a href=\"http://example.com/beautiful\#top?what=beautiful%20morning&when=now+then\">morning</a>, but also a beautiful day</p>", "beautiful")
|
159
|
-
)
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_excerpt
|
163
|
-
assert_equal("...is a beautiful morn...", excerpt("This is a beautiful morning", "beautiful", 5))
|
164
|
-
assert_equal("This is a...", excerpt("This is a beautiful morning", "this", 5))
|
165
|
-
assert_equal("...iful morning", excerpt("This is a beautiful morning", "morning", 5))
|
166
|
-
assert_nil excerpt("This is a beautiful morning", "day")
|
167
|
-
end
|
168
|
-
|
169
|
-
def test_excerpt_in_borderline_cases
|
170
|
-
assert_equal("", excerpt("", "", 0))
|
171
|
-
assert_equal("a", excerpt("a", "a", 0))
|
172
|
-
assert_equal("...b...", excerpt("abc", "b", 0))
|
173
|
-
assert_equal("abc", excerpt("abc", "b", 1))
|
174
|
-
assert_equal("abc...", excerpt("abcd", "b", 1))
|
175
|
-
assert_equal("...abc", excerpt("zabc", "b", 1))
|
176
|
-
assert_equal("...abc...", excerpt("zabcd", "b", 1))
|
177
|
-
assert_equal("zabcd", excerpt("zabcd", "b", 2))
|
178
|
-
|
179
|
-
# excerpt strips the resulting string before ap-/prepending excerpt_string.
|
180
|
-
# whether this behavior is meaningful when excerpt_string is not to be
|
181
|
-
# appended is questionable.
|
182
|
-
assert_equal("zabcd", excerpt(" zabcd ", "b", 4))
|
183
|
-
assert_equal("...abc...", excerpt("z abc d", "b", 1))
|
184
|
-
end
|
185
|
-
|
186
|
-
def test_excerpt_with_regex
|
187
|
-
assert_equal('...is a beautiful! mor...', excerpt('This is a beautiful! morning', 'beautiful', 5))
|
188
|
-
assert_equal('...is a beautiful? mor...', excerpt('This is a beautiful? morning', 'beautiful', 5))
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_excerpt_with_options_hash
|
192
|
-
assert_equal("...is a beautiful morn...", excerpt("This is a beautiful morning", "beautiful", :radius => 5))
|
193
|
-
assert_equal("[...]is a beautiful morn[...]", excerpt("This is a beautiful morning", "beautiful", :omission => "[...]",:radius => 5))
|
194
|
-
assert_equal(
|
195
|
-
"This is the ultimate supercalifragilisticexpialidoceous very looooooooooooooooooong looooooooooooong beautiful morning with amazing sunshine and awesome tempera[...]",
|
196
|
-
excerpt("This is the ultimate supercalifragilisticexpialidoceous very looooooooooooooooooong looooooooooooong beautiful morning with amazing sunshine and awesome temperatures. So what are you gonna do about it?", "very",
|
197
|
-
:omission => "[...]")
|
198
|
-
)
|
199
|
-
end
|
200
|
-
|
201
|
-
if RUBY_VERSION < '1.9'
|
202
|
-
def test_excerpt_with_utf8
|
203
|
-
with_kcode('u') do
|
204
|
-
assert_equal("...\357\254\203ciency could not be...", excerpt("That's why e\357\254\203ciency could not be helped", 'could', 8))
|
205
|
-
end
|
206
|
-
with_kcode('none') do
|
207
|
-
assert_equal("...\203ciency could not be...", excerpt("That's why e\357\254\203ciency could not be helped", 'could', 8))
|
208
|
-
end
|
209
|
-
end
|
210
|
-
else
|
211
|
-
def test_excerpt_with_utf8
|
212
|
-
assert_equal("...\357\254\203ciency could not be...".force_encoding('UTF-8'), excerpt("That's why e\357\254\203ciency could not be helped".force_encoding('UTF-8'), 'could', 8))
|
213
|
-
assert_equal("...\203ciency could not be...", excerpt("That's why e\357\254\203ciency could not be helped", 'could', 8))
|
214
|
-
end
|
215
|
-
end
|
216
|
-
|
217
|
-
def test_word_wrap
|
218
|
-
assert_equal("my very very\nvery long\nstring", word_wrap("my very very very long string", 15))
|
219
|
-
end
|
220
|
-
|
221
|
-
def test_word_wrap_with_extra_newlines
|
222
|
-
assert_equal("my very very\nvery long\nstring\n\nwith another\nline", word_wrap("my very very very long string\n\nwith another line", 15))
|
223
|
-
end
|
224
|
-
|
225
|
-
def test_word_wrap_with_options_hash
|
226
|
-
assert_equal("my very very\nvery long\nstring", word_wrap("my very very very long string", :line_width => 15))
|
227
|
-
end
|
228
|
-
|
229
|
-
def test_pluralization
|
230
|
-
assert_equal("1 count", pluralize(1, "count"))
|
231
|
-
assert_equal("2 counts", pluralize(2, "count"))
|
232
|
-
assert_equal("1 count", pluralize('1', "count"))
|
233
|
-
assert_equal("2 counts", pluralize('2', "count"))
|
234
|
-
assert_equal("1,066 counts", pluralize('1,066', "count"))
|
235
|
-
assert_equal("1.25 counts", pluralize('1.25', "count"))
|
236
|
-
assert_equal("1.0 count", pluralize('1.0', "count"))
|
237
|
-
assert_equal("1.00 count", pluralize('1.00', "count"))
|
238
|
-
assert_equal("2 counters", pluralize(2, "count", "counters"))
|
239
|
-
assert_equal("0 counters", pluralize(nil, "count", "counters"))
|
240
|
-
assert_equal("2 people", pluralize(2, "person"))
|
241
|
-
assert_equal("10 buffaloes", pluralize(10, "buffalo"))
|
242
|
-
assert_equal("1 berry", pluralize(1, "berry"))
|
243
|
-
assert_equal("12 berries", pluralize(12, "berry"))
|
244
|
-
end
|
245
|
-
|
246
|
-
def test_auto_link_parsing
|
247
|
-
urls = %w(
|
248
|
-
http://www.rubyonrails.com
|
249
|
-
http://www.rubyonrails.com:80
|
250
|
-
http://www.rubyonrails.com/~minam
|
251
|
-
https://www.rubyonrails.com/~minam
|
252
|
-
http://www.rubyonrails.com/~minam/url%20with%20spaces
|
253
|
-
http://www.rubyonrails.com/foo.cgi?something=here
|
254
|
-
http://www.rubyonrails.com/foo.cgi?something=here&and=here
|
255
|
-
http://www.rubyonrails.com/contact;new
|
256
|
-
http://www.rubyonrails.com/contact;new%20with%20spaces
|
257
|
-
http://www.rubyonrails.com/contact;new?with=query&string=params
|
258
|
-
http://www.rubyonrails.com/~minam/contact;new?with=query&string=params
|
259
|
-
http://en.wikipedia.org/wiki/Wikipedia:Today%27s_featured_picture_%28animation%29/January_20%2C_2007
|
260
|
-
http://www.mail-archive.com/rails@lists.rubyonrails.org/
|
261
|
-
http://www.amazon.com/Testing-Equal-Sign-In-Path/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1198861734&sr=8-1
|
262
|
-
https://www.google.com/doku.php?id=gps:resource:scs:start
|
263
|
-
http://connect.oraclecorp.com/search?search[q]=green+france&search[type]=Group
|
264
|
-
http://of.openfoundry.org/projects/492/download#4th.Release.3
|
265
|
-
http://maps.google.co.uk/maps?f=q&q=the+london+eye&ie=UTF8&ll=51.503373,-0.11939&spn=0.007052,0.012767&z=16&iwloc=A
|
266
|
-
)
|
267
|
-
|
268
|
-
urls.each do |url|
|
269
|
-
assert_equal generate_result(url), auto_link(url)
|
270
|
-
end
|
271
|
-
|
272
|
-
assert_equal(
|
273
|
-
%{<a href="http://en.wikipedia.org/wiki/Texas_hold'em">http://en.wikipedia.org/wiki/Texas_hold'em</a>},
|
274
|
-
auto_link("http://en.wikipedia.org/wiki/Texas_hold'em")
|
275
|
-
)
|
276
|
-
end
|
277
|
-
|
278
|
-
def generate_result(link_text, href = nil)
|
279
|
-
href ||= link_text
|
280
|
-
%{<a href="#{CGI::escapeHTML href}">#{CGI::escapeHTML link_text}</a>}
|
281
|
-
end
|
282
|
-
|
283
|
-
def test_auto_linking
|
284
|
-
email_raw = 'david@loudthinking.com'
|
285
|
-
email_result = %{<a href="mailto:#{email_raw}">#{email_raw}</a>}
|
286
|
-
link_raw = 'http://www.rubyonrails.com'
|
287
|
-
link_result = generate_result(link_raw)
|
288
|
-
link_result_with_options = %{<a href="#{link_raw}" target="_blank">#{link_raw}</a>}
|
289
|
-
|
290
|
-
assert_equal '', auto_link(nil)
|
291
|
-
assert_equal '', auto_link('')
|
292
|
-
assert_equal "#{link_result} #{link_result} #{link_result}", auto_link("#{link_raw} #{link_raw} #{link_raw}")
|
293
|
-
|
294
|
-
assert_equal %(hello #{email_result}), auto_link("hello #{email_raw}", :email_addresses)
|
295
|
-
assert_equal %(Go to #{link_result}), auto_link("Go to #{link_raw}", :urls)
|
296
|
-
assert_equal %(Go to #{link_raw}), auto_link("Go to #{link_raw}", :email_addresses)
|
297
|
-
assert_equal %(Go to #{link_result} and say hello to #{email_result}), auto_link("Go to #{link_raw} and say hello to #{email_raw}")
|
298
|
-
assert_equal %(<p>Link #{link_result}</p>), auto_link("<p>Link #{link_raw}</p>")
|
299
|
-
assert_equal %(<p>#{link_result} Link</p>), auto_link("<p>#{link_raw} Link</p>")
|
300
|
-
assert_equal %(<p>Link #{link_result_with_options}</p>), auto_link("<p>Link #{link_raw}</p>", :all, {:target => "_blank"})
|
301
|
-
assert_equal %(Go to #{link_result}.), auto_link(%(Go to #{link_raw}.))
|
302
|
-
assert_equal %(<p>Go to #{link_result}, then say hello to #{email_result}.</p>), auto_link(%(<p>Go to #{link_raw}, then say hello to #{email_raw}.</p>))
|
303
|
-
assert_equal %(#{link_result} #{link_result}), auto_link(%(#{link_result} #{link_raw}))
|
304
|
-
|
305
|
-
email2_raw = '+david@loudthinking.com'
|
306
|
-
email2_result = %{<a href="mailto:#{email2_raw}">#{email2_raw}</a>}
|
307
|
-
assert_equal email2_result, auto_link(email2_raw)
|
308
|
-
|
309
|
-
email3_raw = '+david@loudthinking.com'
|
310
|
-
email3_result = %{<a href="mailto:+%64%61%76%69%64@%6c%6f%75%64%74%68%69%6e%6b%69%6e%67.%63%6f%6d">#{email3_raw}</a>}
|
311
|
-
assert_equal email3_result, auto_link(email3_raw, :all, :encode => :hex)
|
312
|
-
assert_equal email3_result, auto_link(email3_raw, :email_addresses, :encode => :hex)
|
313
|
-
|
314
|
-
link2_raw = 'www.rubyonrails.com'
|
315
|
-
link2_result = generate_result(link2_raw, "http://#{link2_raw}")
|
316
|
-
assert_equal %(Go to #{link2_result}), auto_link("Go to #{link2_raw}", :urls)
|
317
|
-
assert_equal %(Go to #{link2_raw}), auto_link("Go to #{link2_raw}", :email_addresses)
|
318
|
-
assert_equal %(<p>Link #{link2_result}</p>), auto_link("<p>Link #{link2_raw}</p>")
|
319
|
-
assert_equal %(<p>#{link2_result} Link</p>), auto_link("<p>#{link2_raw} Link</p>")
|
320
|
-
assert_equal %(Go to #{link2_result}.), auto_link(%(Go to #{link2_raw}.))
|
321
|
-
assert_equal %(<p>Say hello to #{email_result}, then go to #{link2_result}.</p>), auto_link(%(<p>Say hello to #{email_raw}, then go to #{link2_raw}.</p>))
|
322
|
-
|
323
|
-
link3_raw = 'http://manuals.ruby-on-rails.com/read/chapter.need_a-period/103#page281'
|
324
|
-
link3_result = generate_result(link3_raw)
|
325
|
-
assert_equal %(Go to #{link3_result}), auto_link("Go to #{link3_raw}", :urls)
|
326
|
-
assert_equal %(Go to #{link3_raw}), auto_link("Go to #{link3_raw}", :email_addresses)
|
327
|
-
assert_equal %(<p>Link #{link3_result}</p>), auto_link("<p>Link #{link3_raw}</p>")
|
328
|
-
assert_equal %(<p>#{link3_result} Link</p>), auto_link("<p>#{link3_raw} Link</p>")
|
329
|
-
assert_equal %(Go to #{link3_result}.), auto_link(%(Go to #{link3_raw}.))
|
330
|
-
assert_equal %(<p>Go to #{link3_result}. Seriously, #{link3_result}? I think I'll say hello to #{email_result}. Instead.</p>),
|
331
|
-
auto_link(%(<p>Go to #{link3_raw}. Seriously, #{link3_raw}? I think I'll say hello to #{email_raw}. Instead.</p>))
|
332
|
-
|
333
|
-
link4_raw = 'http://foo.example.com/controller/action?parm=value&p2=v2#anchor123'
|
334
|
-
link4_result = generate_result(link4_raw)
|
335
|
-
assert_equal %(<p>Link #{link4_result}</p>), auto_link("<p>Link #{link4_raw}</p>")
|
336
|
-
assert_equal %(<p>#{link4_result} Link</p>), auto_link("<p>#{link4_raw} Link</p>")
|
337
|
-
|
338
|
-
link5_raw = 'http://foo.example.com:3000/controller/action'
|
339
|
-
link5_result = generate_result(link5_raw)
|
340
|
-
assert_equal %(<p>#{link5_result} Link</p>), auto_link("<p>#{link5_raw} Link</p>")
|
341
|
-
|
342
|
-
link6_raw = 'http://foo.example.com:3000/controller/action+pack'
|
343
|
-
link6_result = generate_result(link6_raw)
|
344
|
-
assert_equal %(<p>#{link6_result} Link</p>), auto_link("<p>#{link6_raw} Link</p>")
|
345
|
-
|
346
|
-
link7_raw = 'http://foo.example.com/controller/action?parm=value&p2=v2#anchor-123'
|
347
|
-
link7_result = generate_result(link7_raw)
|
348
|
-
assert_equal %(<p>#{link7_result} Link</p>), auto_link("<p>#{link7_raw} Link</p>")
|
349
|
-
|
350
|
-
link8_raw = 'http://foo.example.com:3000/controller/action.html'
|
351
|
-
link8_result = generate_result(link8_raw)
|
352
|
-
assert_equal %(Go to #{link8_result}), auto_link("Go to #{link8_raw}", :urls)
|
353
|
-
assert_equal %(Go to #{link8_raw}), auto_link("Go to #{link8_raw}", :email_addresses)
|
354
|
-
assert_equal %(<p>Link #{link8_result}</p>), auto_link("<p>Link #{link8_raw}</p>")
|
355
|
-
assert_equal %(<p>#{link8_result} Link</p>), auto_link("<p>#{link8_raw} Link</p>")
|
356
|
-
assert_equal %(Go to #{link8_result}.), auto_link(%(Go to #{link8_raw}.))
|
357
|
-
assert_equal %(<p>Go to #{link8_result}. Seriously, #{link8_result}? I think I'll say hello to #{email_result}. Instead.</p>),
|
358
|
-
auto_link(%(<p>Go to #{link8_raw}. Seriously, #{link8_raw}? I think I'll say hello to #{email_raw}. Instead.</p>))
|
359
|
-
|
360
|
-
link9_raw = 'http://business.timesonline.co.uk/article/0,,9065-2473189,00.html'
|
361
|
-
link9_result = generate_result(link9_raw)
|
362
|
-
assert_equal %(Go to #{link9_result}), auto_link("Go to #{link9_raw}", :urls)
|
363
|
-
assert_equal %(Go to #{link9_raw}), auto_link("Go to #{link9_raw}", :email_addresses)
|
364
|
-
assert_equal %(<p>Link #{link9_result}</p>), auto_link("<p>Link #{link9_raw}</p>")
|
365
|
-
assert_equal %(<p>#{link9_result} Link</p>), auto_link("<p>#{link9_raw} Link</p>")
|
366
|
-
assert_equal %(Go to #{link9_result}.), auto_link(%(Go to #{link9_raw}.))
|
367
|
-
assert_equal %(<p>Go to #{link9_result}. Seriously, #{link9_result}? I think I'll say hello to #{email_result}. Instead.</p>),
|
368
|
-
auto_link(%(<p>Go to #{link9_raw}. Seriously, #{link9_raw}? I think I'll say hello to #{email_raw}. Instead.</p>))
|
369
|
-
|
370
|
-
link10_raw = 'http://www.mail-archive.com/ruby-talk@ruby-lang.org/'
|
371
|
-
link10_result = generate_result(link10_raw)
|
372
|
-
assert_equal %(<p>#{link10_result} Link</p>), auto_link("<p>#{link10_raw} Link</p>")
|
373
|
-
end
|
374
|
-
|
375
|
-
def test_auto_link_other_protocols
|
376
|
-
ftp_raw = 'ftp://example.com/file.txt'
|
377
|
-
assert_equal %(Download #{generate_result(ftp_raw)}), auto_link("Download #{ftp_raw}")
|
378
|
-
|
379
|
-
file_scheme = 'file:///home/username/RomeoAndJuliet.pdf'
|
380
|
-
z39_scheme = 'z39.50r://host:696/db'
|
381
|
-
chrome_scheme = 'chrome://package/section/path'
|
382
|
-
view_source = 'view-source:http://en.wikipedia.org/wiki/URI_scheme'
|
383
|
-
assert_equal generate_result(z39_scheme), auto_link(z39_scheme)
|
384
|
-
assert_equal generate_result(chrome_scheme), auto_link(chrome_scheme)
|
385
|
-
assert_equal generate_result(view_source), auto_link(view_source)
|
386
|
-
end
|
387
|
-
|
388
|
-
def test_auto_link_already_linked
|
389
|
-
linked1 = generate_result('Ruby On Rails', 'http://www.rubyonrails.com')
|
390
|
-
linked2 = %('<a href="http://www.example.com">www.example.com</a>')
|
391
|
-
linked3 = %('<a href="http://www.example.com" rel="nofollow">www.example.com</a>')
|
392
|
-
linked4 = %('<a href="http://www.example.com"><b>www.example.com</b></a>')
|
393
|
-
linked5 = %('<a href="#close">close</a> <a href="http://www.example.com"><b>www.example.com</b></a>')
|
394
|
-
assert_equal linked1, auto_link(linked1)
|
395
|
-
assert_equal linked2, auto_link(linked2)
|
396
|
-
assert_equal linked3, auto_link(linked3)
|
397
|
-
assert_equal linked4, auto_link(linked4)
|
398
|
-
assert_equal linked5, auto_link(linked5)
|
399
|
-
|
400
|
-
linked_email = %Q(<a href="mailto:david@loudthinking.com">Mail me</a>)
|
401
|
-
assert_equal linked_email, auto_link(linked_email)
|
402
|
-
end
|
403
|
-
|
404
|
-
def test_auto_link_within_tags
|
405
|
-
link_raw = 'http://www.rubyonrails.org/images/rails.png'
|
406
|
-
link_result = %Q(<img src="#{link_raw}" />)
|
407
|
-
assert_equal link_result, auto_link(link_result)
|
408
|
-
end
|
409
|
-
|
410
|
-
def test_auto_link_with_brackets
|
411
|
-
link1_raw = 'http://en.wikipedia.org/wiki/Sprite_(computer_graphics)'
|
412
|
-
link1_result = generate_result(link1_raw)
|
413
|
-
assert_equal link1_result, auto_link(link1_raw)
|
414
|
-
assert_equal "(link: #{link1_result})", auto_link("(link: #{link1_raw})")
|
415
|
-
|
416
|
-
link2_raw = 'http://en.wikipedia.org/wiki/Sprite_[computer_graphics]'
|
417
|
-
link2_result = generate_result(link2_raw)
|
418
|
-
assert_equal link2_result, auto_link(link2_raw)
|
419
|
-
assert_equal "[link: #{link2_result}]", auto_link("[link: #{link2_raw}]")
|
420
|
-
|
421
|
-
link3_raw = 'http://en.wikipedia.org/wiki/Sprite_{computer_graphics}'
|
422
|
-
link3_result = generate_result(link3_raw)
|
423
|
-
assert_equal link3_result, auto_link(link3_raw)
|
424
|
-
assert_equal "{link: #{link3_result}}", auto_link("{link: #{link3_raw}}")
|
425
|
-
end
|
426
|
-
|
427
|
-
def test_auto_link_at_eol
|
428
|
-
url1 = "http://api.rubyonrails.com/Foo.html"
|
429
|
-
url2 = "http://www.ruby-doc.org/core/Bar.html"
|
430
|
-
|
431
|
-
assert_equal %(<p><a href="#{url1}">#{url1}</a><br /><a href="#{url2}">#{url2}</a><br /></p>), auto_link("<p>#{url1}<br />#{url2}<br /></p>")
|
432
|
-
end
|
433
|
-
|
434
|
-
def test_auto_link_with_block
|
435
|
-
url = "http://api.rubyonrails.com/Foo.html"
|
436
|
-
email = "fantabulous@shiznadel.ic"
|
437
|
-
|
438
|
-
assert_equal %(<p><a href="#{url}">#{url[0...7]}...</a><br /><a href="mailto:#{email}">#{email[0...7]}...</a><br /></p>), auto_link("<p>#{url}<br />#{email}<br /></p>") { |url| truncate(url, :length => 10) }
|
439
|
-
end
|
440
|
-
|
441
|
-
def test_auto_link_with_block_with_html
|
442
|
-
pic = "http://example.com/pic.png"
|
443
|
-
url = "http://example.com/album?a&b=c"
|
444
|
-
|
445
|
-
assert_equal %(My pic: <a href="#{pic}"><img src="#{pic}" width="160px"></a> -- full album here #{generate_result(url)}), auto_link("My pic: #{pic} -- full album here #{url}") { |link|
|
446
|
-
if link =~ /\.(jpg|gif|png|bmp|tif)$/i
|
447
|
-
raw %(<img src="#{link}" width="160px">)
|
448
|
-
else
|
449
|
-
link
|
450
|
-
end
|
451
|
-
}
|
452
|
-
end
|
453
|
-
|
454
|
-
def test_auto_link_with_options_hash
|
455
|
-
assert_dom_equal 'Welcome to my new blog at <a href="http://www.myblog.com/" class="menu" target="_blank">http://www.myblog.com/</a>. Please e-mail me at <a href="mailto:me@email.com" class="menu" target="_blank">me@email.com</a>.',
|
456
|
-
auto_link("Welcome to my new blog at http://www.myblog.com/. Please e-mail me at me@email.com.",
|
457
|
-
:link => :all, :html => { :class => "menu", :target => "_blank" })
|
458
|
-
end
|
459
|
-
|
460
|
-
def test_auto_link_with_multiple_trailing_punctuations
|
461
|
-
url = "http://youtube.com"
|
462
|
-
url_result = generate_result(url)
|
463
|
-
assert_equal url_result, auto_link(url)
|
464
|
-
assert_equal "(link: #{url_result}).", auto_link("(link: #{url}).")
|
465
|
-
end
|
466
|
-
|
467
|
-
def test_cycle_class
|
468
|
-
value = Cycle.new("one", 2, "3")
|
469
|
-
assert_equal("one", value.to_s)
|
470
|
-
assert_equal("2", value.to_s)
|
471
|
-
assert_equal("3", value.to_s)
|
472
|
-
assert_equal("one", value.to_s)
|
473
|
-
value.reset
|
474
|
-
assert_equal("one", value.to_s)
|
475
|
-
assert_equal("2", value.to_s)
|
476
|
-
assert_equal("3", value.to_s)
|
477
|
-
end
|
478
|
-
|
479
|
-
def test_cycle_class_with_no_arguments
|
480
|
-
assert_raise(ArgumentError) { value = Cycle.new() }
|
481
|
-
end
|
482
|
-
|
483
|
-
def test_cycle
|
484
|
-
assert_equal("one", cycle("one", 2, "3"))
|
485
|
-
assert_equal("2", cycle("one", 2, "3"))
|
486
|
-
assert_equal("3", cycle("one", 2, "3"))
|
487
|
-
assert_equal("one", cycle("one", 2, "3"))
|
488
|
-
assert_equal("2", cycle("one", 2, "3"))
|
489
|
-
assert_equal("3", cycle("one", 2, "3"))
|
490
|
-
end
|
491
|
-
|
492
|
-
def test_cycle_with_no_arguments
|
493
|
-
assert_raise(ArgumentError) { value = cycle() }
|
494
|
-
end
|
495
|
-
|
496
|
-
def test_cycle_resets_with_new_values
|
497
|
-
assert_equal("even", cycle("even", "odd"))
|
498
|
-
assert_equal("odd", cycle("even", "odd"))
|
499
|
-
assert_equal("even", cycle("even", "odd"))
|
500
|
-
assert_equal("1", cycle(1, 2, 3))
|
501
|
-
assert_equal("2", cycle(1, 2, 3))
|
502
|
-
assert_equal("3", cycle(1, 2, 3))
|
503
|
-
assert_equal("1", cycle(1, 2, 3))
|
504
|
-
end
|
505
|
-
|
506
|
-
def test_named_cycles
|
507
|
-
assert_equal("1", cycle(1, 2, 3, :name => "numbers"))
|
508
|
-
assert_equal("red", cycle("red", "blue", :name => "colors"))
|
509
|
-
assert_equal("2", cycle(1, 2, 3, :name => "numbers"))
|
510
|
-
assert_equal("blue", cycle("red", "blue", :name => "colors"))
|
511
|
-
assert_equal("3", cycle(1, 2, 3, :name => "numbers"))
|
512
|
-
assert_equal("red", cycle("red", "blue", :name => "colors"))
|
513
|
-
end
|
514
|
-
|
515
|
-
def test_current_cycle_with_default_name
|
516
|
-
cycle("even","odd")
|
517
|
-
assert_equal "even", current_cycle
|
518
|
-
cycle("even","odd")
|
519
|
-
assert_equal "odd", current_cycle
|
520
|
-
cycle("even","odd")
|
521
|
-
assert_equal "even", current_cycle
|
522
|
-
end
|
523
|
-
|
524
|
-
def test_current_cycle_with_named_cycles
|
525
|
-
cycle("red", "blue", :name => "colors")
|
526
|
-
assert_equal "red", current_cycle("colors")
|
527
|
-
cycle("red", "blue", :name => "colors")
|
528
|
-
assert_equal "blue", current_cycle("colors")
|
529
|
-
cycle("red", "blue", :name => "colors")
|
530
|
-
assert_equal "red", current_cycle("colors")
|
531
|
-
end
|
532
|
-
|
533
|
-
def test_current_cycle_safe_call
|
534
|
-
assert_nothing_raised { current_cycle }
|
535
|
-
assert_nothing_raised { current_cycle("colors") }
|
536
|
-
end
|
537
|
-
|
538
|
-
def test_current_cycle_with_more_than_two_names
|
539
|
-
cycle(1,2,3)
|
540
|
-
assert_equal "1", current_cycle
|
541
|
-
cycle(1,2,3)
|
542
|
-
assert_equal "2", current_cycle
|
543
|
-
cycle(1,2,3)
|
544
|
-
assert_equal "3", current_cycle
|
545
|
-
cycle(1,2,3)
|
546
|
-
assert_equal "1", current_cycle
|
547
|
-
end
|
548
|
-
|
549
|
-
def test_default_named_cycle
|
550
|
-
assert_equal("1", cycle(1, 2, 3))
|
551
|
-
assert_equal("2", cycle(1, 2, 3, :name => "default"))
|
552
|
-
assert_equal("3", cycle(1, 2, 3))
|
553
|
-
end
|
554
|
-
|
555
|
-
def test_reset_cycle
|
556
|
-
assert_equal("1", cycle(1, 2, 3))
|
557
|
-
assert_equal("2", cycle(1, 2, 3))
|
558
|
-
reset_cycle
|
559
|
-
assert_equal("1", cycle(1, 2, 3))
|
560
|
-
end
|
561
|
-
|
562
|
-
def test_reset_unknown_cycle
|
563
|
-
reset_cycle("colors")
|
564
|
-
end
|
565
|
-
|
566
|
-
def test_recet_named_cycle
|
567
|
-
assert_equal("1", cycle(1, 2, 3, :name => "numbers"))
|
568
|
-
assert_equal("red", cycle("red", "blue", :name => "colors"))
|
569
|
-
reset_cycle("numbers")
|
570
|
-
assert_equal("1", cycle(1, 2, 3, :name => "numbers"))
|
571
|
-
assert_equal("blue", cycle("red", "blue", :name => "colors"))
|
572
|
-
assert_equal("2", cycle(1, 2, 3, :name => "numbers"))
|
573
|
-
assert_equal("red", cycle("red", "blue", :name => "colors"))
|
574
|
-
end
|
575
|
-
|
576
|
-
def test_cycle_no_instance_variable_clashes
|
577
|
-
@cycles = %w{Specialized Fuji Giant}
|
578
|
-
assert_equal("red", cycle("red", "blue"))
|
579
|
-
assert_equal("blue", cycle("red", "blue"))
|
580
|
-
assert_equal("red", cycle("red", "blue"))
|
581
|
-
assert_equal(%w{Specialized Fuji Giant}, @cycles)
|
582
|
-
end
|
583
|
-
|
584
|
-
if defined? RedCloth
|
585
|
-
def test_textilize
|
586
|
-
assert_equal("<p><strong>This is Textile!</strong> Rejoice!</p>", textilize("*This is Textile!* Rejoice!"))
|
587
|
-
end
|
588
|
-
|
589
|
-
def test_textilize_with_blank
|
590
|
-
assert_equal("", textilize(""))
|
591
|
-
end
|
592
|
-
|
593
|
-
def test_textilize_with_options
|
594
|
-
assert_equal("<p>This is worded <strong>strongly</strong></p>", textilize("This is worded <strong>strongly</strong>", :filter_html))
|
595
|
-
end
|
596
|
-
|
597
|
-
def test_textilize_with_hard_breaks
|
598
|
-
assert_equal("<p>This is one scary world.<br />\n True.</p>", textilize("This is one scary world.\n True."))
|
599
|
-
end
|
600
|
-
end
|
601
|
-
end
|