diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-15 11:48:38 -0700 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-15 11:48:38 -0700 |
commit | 4f4417314c9f1e81bc7a11b569d85ace1f8384f8 (patch) | |
tree | 034e2e8bfe15d9586b002dfba6fc2d8425957d64 | |
parent | dc126cfd6f664f92b5a522bd98fbf39ff474785f (diff) | |
parent | c4276ddf3860128d4f64c795c8b5cf5258aaeab8 (diff) | |
download | rails-4f4417314c9f1e81bc7a11b569d85ace1f8384f8.tar.gz rails-4f4417314c9f1e81bc7a11b569d85ace1f8384f8.tar.bz2 rails-4f4417314c9f1e81bc7a11b569d85ace1f8384f8.zip |
Merge pull request #7956 from josh/ignore-asset-url-query-or-anchor
Ignore asset url query string or anchor when generating path
-rw-r--r-- | actionpack/lib/action_view/helpers/asset_url_helper.rb | 4 | ||||
-rw-r--r-- | actionpack/test/template/asset_tag_helper_test.rb | 19 |
2 files changed, 21 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/helpers/asset_url_helper.rb b/actionpack/lib/action_view/helpers/asset_url_helper.rb index d75e4c0edc..0bb5e739bb 100644 --- a/actionpack/lib/action_view/helpers/asset_url_helper.rb +++ b/actionpack/lib/action_view/helpers/asset_url_helper.rb @@ -122,6 +122,8 @@ module ActionView return "" unless source.present? return source if source =~ URI_REGEXP + tail, source = source[/([\?#].+)$/], source.sub(/([\?#].+)$/, '') + if extname = compute_asset_extname(source, options) source = "#{source}#{extname}" end @@ -140,7 +142,7 @@ module ActionView source = "#{host}#{source}" end - source + "#{source}#{tail}" end alias_method :path_to_asset, :asset_path # aliased to avoid conflicts with a asset_path named route diff --git a/actionpack/test/template/asset_tag_helper_test.rb b/actionpack/test/template/asset_tag_helper_test.rb index 26a229e2ba..eb1a54a81f 100644 --- a/actionpack/test/template/asset_tag_helper_test.rb +++ b/actionpack/test/template/asset_tag_helper_test.rb @@ -73,7 +73,12 @@ class AssetTagHelperTest < ActionView::TestCase %(javascript_path("super/xmlhr")) => %(/javascripts/super/xmlhr.js), %(javascript_path("/super/xmlhr.js")) => %(/super/xmlhr.js), %(javascript_path("xmlhr.min")) => %(/javascripts/xmlhr.min.js), - %(javascript_path("xmlhr.min.js")) => %(/javascripts/xmlhr.min.js) + %(javascript_path("xmlhr.min.js")) => %(/javascripts/xmlhr.min.js), + + %(javascript_path("xmlhr.js?123")) => %(/javascripts/xmlhr.js?123), + %(javascript_path("xmlhr.js?body=1")) => %(/javascripts/xmlhr.js?body=1), + %(javascript_path("xmlhr.js#hash")) => %(/javascripts/xmlhr.js#hash), + %(javascript_path("xmlhr.js?123#hash")) => %(/javascripts/xmlhr.js?123#hash) } PathToJavascriptToTag = { @@ -285,6 +290,14 @@ class AssetTagHelperTest < ActionView::TestCase %(audio_tag(["audio.mp3", "audio.ogg"], :autobuffer => true, :controls => true)) => %(<audio autobuffer="autobuffer" controls="controls"><source src="/audios/audio.mp3" /><source src="/audios/audio.ogg" /></audio>) } + FontPathToTag = { + %(font_path("font.eot")) => %(/fonts/font.eot), + %(font_path("font.eot#iefix")) => %(/fonts/font.eot#iefix), + %(font_path("font.woff")) => %(/fonts/font.woff), + %(font_path("font.ttf")) => %(/fonts/font.ttf), + %(font_path("font.ttf?123")) => %(/fonts/font.ttf?123) + } + def test_autodiscovery_link_tag_deprecated_types result = nil assert_deprecated do @@ -466,6 +479,10 @@ class AssetTagHelperTest < ActionView::TestCase AudioLinkToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) } end + def test_font_path + FontPathToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) } + end + def test_video_audio_tag_does_not_modify_options options = {:autoplay => true} video_tag('video', options) |