From 42a1b0c7c31400c762e2f8d1aff16338bbe8d63d Mon Sep 17 00:00:00 2001 From: Anton Kolomiychuk Date: Tue, 23 Jun 2015 00:36:19 +0600 Subject: Add nil check in asset_path --- actionview/lib/action_view/helpers/asset_url_helper.rb | 2 ++ actionview/test/template/asset_tag_helper_test.rb | 5 +++++ 2 files changed, 7 insertions(+) (limited to 'actionview') diff --git a/actionview/lib/action_view/helpers/asset_url_helper.rb b/actionview/lib/action_view/helpers/asset_url_helper.rb index ef4a6c98c0..f36e9a108f 100644 --- a/actionview/lib/action_view/helpers/asset_url_helper.rb +++ b/actionview/lib/action_view/helpers/asset_url_helper.rb @@ -121,6 +121,8 @@ module ActionView # asset_path "application", type: :stylesheet # => /assets/application.css # asset_path "http://www.example.com/js/xmlhr.js" # => http://www.example.com/js/xmlhr.js def asset_path(source, options = {}) + raise ArgumentError, "Cannot pass nil as asset source" if source.nil? + source = source.to_s return "" unless source.present? return source if source =~ URI_REGEXP diff --git a/actionview/test/template/asset_tag_helper_test.rb b/actionview/test/template/asset_tag_helper_test.rb index 6e6ce20924..d8a2a8bad0 100644 --- a/actionview/test/template/asset_tag_helper_test.rb +++ b/actionview/test/template/asset_tag_helper_test.rb @@ -310,6 +310,11 @@ class AssetTagHelperTest < ActionView::TestCase AssetPathToTag.each { |method, tag| assert_dom_equal(tag, eval(method)) } end + def test_asset_path_tag_raises_an_error_for_nil_source + exception = assert_raise(ArgumentError) { asset_path(nil) } + assert_equal("Cannot pass nil as asset source", exception.message) + end + def test_asset_path_tag_to_not_create_duplicate_slashes @controller.config.asset_host = "host/" assert_dom_equal('http://host/foo', asset_path("foo")) -- cgit v1.2.3