mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
new helpers #favicon_link_tag and #apple_touch_icon_link_tag
This commit is contained in:
parent
149d13e1f0
commit
d18ff1b7ef
2 changed files with 57 additions and 0 deletions
|
@ -501,6 +501,44 @@ module ActionView
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Returns a link tag for a favicon.
|
||||||
|
#
|
||||||
|
# <%= favicon_link_tag %>
|
||||||
|
#
|
||||||
|
# generates
|
||||||
|
#
|
||||||
|
# <link href="/favicon.ico?4649789979" rel="shortcut icon" type="image/vnd.microsoft.icon" />
|
||||||
|
#
|
||||||
|
# You can specify a different icon file in the first argument:
|
||||||
|
#
|
||||||
|
# <%= favicon_link_tag 'favicon.ico' %>
|
||||||
|
#
|
||||||
|
# That's passed to +image_path+ as is, so the example above would render
|
||||||
|
#
|
||||||
|
# <link href="/images/favicon.ico?4649789979" rel="shortcut icon" type="image/vnd.microsoft.icon" />
|
||||||
|
#
|
||||||
|
# The helper accepts an additional options hash where you can override "rel" and "type".
|
||||||
|
def favicon_link_tag(source=nil, options={})
|
||||||
|
tag('link', {
|
||||||
|
:rel => 'shortcut icon',
|
||||||
|
:type => 'image/vnd.microsoft.icon',
|
||||||
|
:href => image_path(source || '/favicon.ico')
|
||||||
|
}.merge(options.symbolize_keys))
|
||||||
|
end
|
||||||
|
|
||||||
|
# Returns a link tag for an icon targetted at iPod Touch, iPhone, and iPad.
|
||||||
|
#
|
||||||
|
# <%= apple_touch_icon_link_tag 'my_site.png' %>
|
||||||
|
#
|
||||||
|
# generates
|
||||||
|
#
|
||||||
|
# <link href="/images/my_site.png?4233872383" rel="apple-touch-icon" />
|
||||||
|
#
|
||||||
|
# The source argument is passed to +image_path+ as is.
|
||||||
|
def apple_touch_icon_link_tag(source)
|
||||||
|
tag('link', :rel => 'apple-touch-icon', :href => image_path(source))
|
||||||
|
end
|
||||||
|
|
||||||
# Computes the path to an image asset in the public images directory.
|
# Computes the path to an image asset in the public images directory.
|
||||||
# Full paths from the document root will be passed through.
|
# Full paths from the document root will be passed through.
|
||||||
# Used internally by +image_tag+ to build the image path.
|
# Used internally by +image_tag+ to build the image path.
|
||||||
|
|
|
@ -157,6 +157,17 @@ class AssetTagHelperTest < ActionView::TestCase
|
||||||
%(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" />)
|
%(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" />)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FaviconLinkToTag = {
|
||||||
|
%(favicon_link_tag) => %(<link href="/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />),
|
||||||
|
%(favicon_link_tag 'favicon.ico') => %(<link href="/images/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />),
|
||||||
|
%(favicon_link_tag 'favicon.ico', :rel => 'foo') => %(<link href="/images/favicon.ico" rel="foo" type="image/vnd.microsoft.icon" />),
|
||||||
|
%(favicon_link_tag 'favicon.ico', :rel => 'foo', :type => 'bar') => %(<link href="/images/favicon.ico" rel="foo" type="bar" />)
|
||||||
|
}
|
||||||
|
|
||||||
|
AppleTouchIconLinkToTag = {
|
||||||
|
%(apple_touch_icon_link_tag 'my_site.png') => %(<link href="/images/my_site.png" rel="apple-touch-icon" />)
|
||||||
|
}
|
||||||
|
|
||||||
VideoPathToTag = {
|
VideoPathToTag = {
|
||||||
%(video_path("xml")) => %(/videos/xml),
|
%(video_path("xml")) => %(/videos/xml),
|
||||||
%(video_path("xml.ogg")) => %(/videos/xml.ogg),
|
%(video_path("xml.ogg")) => %(/videos/xml.ogg),
|
||||||
|
@ -331,6 +342,14 @@ class AssetTagHelperTest < ActionView::TestCase
|
||||||
ImageLinkToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
ImageLinkToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_favicon_link_tag
|
||||||
|
FaviconLinkToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_apple_touch_link_tag
|
||||||
|
AppleTouchIconLinkToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) }
|
||||||
|
end
|
||||||
|
|
||||||
def test_image_tag_windows_behaviour
|
def test_image_tag_windows_behaviour
|
||||||
old_asset_id, ENV["RAILS_ASSET_ID"] = ENV["RAILS_ASSET_ID"], "1"
|
old_asset_id, ENV["RAILS_ASSET_ID"] = ENV["RAILS_ASSET_ID"], "1"
|
||||||
# This simulates the behaviour of File#exist? on windows when testing a file ending in "."
|
# This simulates the behaviour of File#exist? on windows when testing a file ending in "."
|
||||||
|
|
Loading…
Reference in a new issue