Tests for SprocketsHelper
This commit is contained in:
parent
3b4e1a9159
commit
1af295fc9a
@ -9,7 +9,7 @@ def sprockets_javascript_path(source)
|
||||
|
||||
def sprockets_javascript_include_tag(source, options = {})
|
||||
options = {
|
||||
'type' => "application/javascript",
|
||||
'type' => "text/javascript",
|
||||
'src' => sprockets_javascript_path(source)
|
||||
}.merge(options.stringify_keys)
|
||||
|
||||
@ -33,6 +33,8 @@ def sprockets_stylesheet_link_tag(source, options = {})
|
||||
|
||||
private
|
||||
def compute_sprockets_path(source, dir, default_ext)
|
||||
source = source.to_s
|
||||
|
||||
return source if URI.parse(source).host
|
||||
|
||||
# Add /javscripts to relative paths
|
||||
@ -46,15 +48,15 @@ def compute_sprockets_path(source, dir, default_ext)
|
||||
end
|
||||
|
||||
# Fingerprint url
|
||||
source = Rails.application.assets.path(source)
|
||||
source = assets.path(source)
|
||||
|
||||
host = compute_asset_host(source)
|
||||
|
||||
if controller.respond_to?(:request) && host && URI.parse(host).host.nil?
|
||||
host = "#{controller.request.protocol}#{host}"
|
||||
if controller.respond_to?(:request) && host && URI.parse(host).host
|
||||
source = "#{controller.request.protocol}#{host}#{source}"
|
||||
end
|
||||
|
||||
"#{host}#{source}"
|
||||
source
|
||||
end
|
||||
|
||||
def compute_asset_host(source)
|
||||
@ -72,6 +74,10 @@ def compute_asset_host(source)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def assets
|
||||
Rails.application.assets
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
0
actionpack/test/fixtures/sprockets/app/assets/javascripts/application.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/javascripts/application.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/javascripts/dir/xmlhr.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/javascripts/dir/xmlhr.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/javascripts/xmlhr.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/javascripts/xmlhr.js
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/stylesheets/application.css
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/stylesheets/application.css
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/stylesheets/dir/style.css
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/stylesheets/dir/style.css
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/stylesheets/style.css
vendored
Normal file
0
actionpack/test/fixtures/sprockets/app/assets/stylesheets/style.css
vendored
Normal file
93
actionpack/test/template/sprockets_helper_test.rb
Normal file
93
actionpack/test/template/sprockets_helper_test.rb
Normal file
@ -0,0 +1,93 @@
|
||||
require 'abstract_unit'
|
||||
require 'sprockets'
|
||||
|
||||
class SprocketsHelperTest < ActionView::TestCase
|
||||
tests ActionView::Helpers::SprocketsHelper
|
||||
|
||||
attr_accessor :assets
|
||||
|
||||
def setup
|
||||
super
|
||||
|
||||
@controller = BasicController.new
|
||||
|
||||
@request = Class.new do
|
||||
def protocol() 'http://' end
|
||||
def ssl?() false end
|
||||
def host_with_port() 'localhost' end
|
||||
end.new
|
||||
|
||||
@controller.request = @request
|
||||
|
||||
@assets = Sprockets::Environment.new
|
||||
@assets.paths << FIXTURES.join("sprockets/app/assets")
|
||||
end
|
||||
|
||||
def url_for(*args)
|
||||
"http://www.example.com"
|
||||
end
|
||||
|
||||
test "javascript path" do
|
||||
assert_equal "/javascripts/application-d41d8cd98f00b204e9800998ecf8427e.js",
|
||||
sprockets_javascript_path(:application)
|
||||
|
||||
assert_equal "/javascripts/xmlhr-d41d8cd98f00b204e9800998ecf8427e.js",
|
||||
sprockets_javascript_path("xmlhr")
|
||||
assert_equal "/javascripts/dir/xmlhr-d41d8cd98f00b204e9800998ecf8427e.js",
|
||||
sprockets_javascript_path("dir/xmlhr.js")
|
||||
|
||||
assert_equal "/dir/xmlhr.js",
|
||||
sprockets_javascript_path("/dir/xmlhr")
|
||||
|
||||
assert_equal "http://www.railsapplication.com/js/xmlhr",
|
||||
sprockets_javascript_path("http://www.railsapplication.com/js/xmlhr")
|
||||
assert_equal "http://www.railsapplication.com/js/xmlhr.js",
|
||||
sprockets_javascript_path("http://www.railsapplication.com/js/xmlhr.js")
|
||||
end
|
||||
|
||||
test "javascript include tag" do
|
||||
assert_equal '<script src="/javascripts/application-d41d8cd98f00b204e9800998ecf8427e.js" type="text/javascript"></script>',
|
||||
sprockets_javascript_include_tag(:application)
|
||||
|
||||
assert_equal '<script src="/javascripts/xmlhr-d41d8cd98f00b204e9800998ecf8427e.js" type="text/javascript"></script>',
|
||||
sprockets_javascript_include_tag("xmlhr")
|
||||
assert_equal '<script src="/javascripts/xmlhr-d41d8cd98f00b204e9800998ecf8427e.js" type="text/javascript"></script>',
|
||||
sprockets_javascript_include_tag("xmlhr.js")
|
||||
assert_equal '<script src="http://www.railsapplication.com/xmlhr" type="text/javascript"></script>',
|
||||
sprockets_javascript_include_tag("http://www.railsapplication.com/xmlhr")
|
||||
end
|
||||
|
||||
test "stylesheet path" do
|
||||
assert_equal "/stylesheets/application-d41d8cd98f00b204e9800998ecf8427e.css",
|
||||
sprockets_stylesheet_path(:application)
|
||||
|
||||
assert_equal "/stylesheets/style-d41d8cd98f00b204e9800998ecf8427e.css",
|
||||
sprockets_stylesheet_path("style")
|
||||
assert_equal "/stylesheets/dir/style-d41d8cd98f00b204e9800998ecf8427e.css",
|
||||
sprockets_stylesheet_path("dir/style.css")
|
||||
assert_equal "/dir/style.css",
|
||||
sprockets_stylesheet_path("/dir/style.css")
|
||||
|
||||
assert_equal "http://www.railsapplication.com/css/style",
|
||||
sprockets_stylesheet_path("http://www.railsapplication.com/css/style")
|
||||
assert_equal "http://www.railsapplication.com/css/style.css",
|
||||
sprockets_stylesheet_path("http://www.railsapplication.com/css/style.css")
|
||||
end
|
||||
|
||||
test "stylesheet link tag" do
|
||||
assert_equal '<link href="/stylesheets/application-d41d8cd98f00b204e9800998ecf8427e.css" media="screen" rel="stylesheet" type="text/css" />',
|
||||
sprockets_stylesheet_link_tag(:application)
|
||||
|
||||
assert_equal '<link href="/stylesheets/style-d41d8cd98f00b204e9800998ecf8427e.css" media="screen" rel="stylesheet" type="text/css" />',
|
||||
sprockets_stylesheet_link_tag("style")
|
||||
assert_equal '<link href="/stylesheets/style-d41d8cd98f00b204e9800998ecf8427e.css" media="screen" rel="stylesheet" type="text/css" />',
|
||||
sprockets_stylesheet_link_tag("style.css")
|
||||
|
||||
assert_equal '<link href="http://www.railsapplication.com/style.css" media="screen" rel="stylesheet" type="text/css" />',
|
||||
sprockets_stylesheet_link_tag("http://www.railsapplication.com/style.css")
|
||||
assert_equal '<link href="/stylesheets/style-d41d8cd98f00b204e9800998ecf8427e.css" media="all" rel="stylesheet" type="text/css" />',
|
||||
sprockets_stylesheet_link_tag("style", :media => "all")
|
||||
assert_equal '<link href="/stylesheets/style-d41d8cd98f00b204e9800998ecf8427e.css" media="print" rel="stylesheet" type="text/css" />',
|
||||
sprockets_stylesheet_link_tag("style", :media => "print")
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user