diff --git a/lib/sprockets/asset.rb b/lib/sprockets/asset.rb index 43fbe4012..bb204b854 100644 --- a/lib/sprockets/asset.rb +++ b/lib/sprockets/asset.rb @@ -135,7 +135,7 @@ def hexdigest # Pubic: ETag String of Asset. def etag - DigestUtils.pack_hexdigest(environment_version + digest) + DigestUtils.hexdigest(environment_version.to_s + digest) end # Public: Returns String base64 digest of source. diff --git a/test/test_environment.rb b/test/test_environment.rb index aef040884..0ae8611c0 100644 --- a/test/test_environment.rb +++ b/test/test_environment.rb @@ -735,7 +735,17 @@ def setup test "changing version changes the etag of the asset" do old_asset_etag = @env["gallery.js"].etag @env.version = 'v2' - refute_equal old_asset_etag, @env["gallery.js"].etag + new_asset_etag = @env["gallery.js"].etag + refute_equal old_asset_etag, new_asset_etag + assert_equal old_asset_etag.size, new_asset_etag.size + end + + test "changing version to nil does not break etag" do + old_asset_etag = @env["gallery.js"].etag + @env.version = nil + new_asset_etag = @env["gallery.js"].etag + assert_equal old_asset_etag, new_asset_etag + assert_equal old_asset_etag.size, new_asset_etag.size end test "changing version does not changes the digest of the asset" do