|
4 | 4 |
|
5 | 5 | Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
|
6 | 6 | class TestAssetUrlProcessor < Minitest::Test
|
| 7 | + FIXTURES_PATH = File.expand_path("../fixtures", __FILE__) |
| 8 | + |
7 | 9 | def setup
|
8 | 10 | @env = Sprockets::Environment.new
|
| 11 | + @env.append_path FIXTURES_PATH |
9 | 12 | @env.context_class.class_eval do
|
10 |
| - def asset_path(path, options = {}) |
11 |
| - 'image-hexcodegoeshere.png' |
12 |
| - end |
| 13 | + include ::Sprockets::Rails::Context |
13 | 14 | end
|
| 15 | + @env.context_class.digest_assets = true |
| 16 | + |
| 17 | + @logo_digest = @env["logo.png"].etag |
| 18 | + @logo_uri = @env["logo.png"].uri |
14 | 19 | end
|
15 | 20 |
|
16 | 21 | def test_basic
|
17 |
| - input = { environment: @env, data: 'background: url(image.png);', filename: 'url2.css', metadata: {} } |
| 22 | + input = { environment: @env, data: 'background: url(logo.png);', filename: 'url2.css', metadata: {} } |
18 | 23 | output = Sprockets::Rails::AssetUrlProcessor.call(input)
|
19 |
| - assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output) |
| 24 | + assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data]) |
20 | 25 | end
|
21 | 26 |
|
22 | 27 | def test_spaces
|
23 |
| - input = { environment: @env, data: 'background: url( image.png );', filename: 'url2.css', metadata: {} } |
| 28 | + input = { environment: @env, data: 'background: url( logo.png );', filename: 'url2.css', metadata: {} } |
24 | 29 | output = Sprockets::Rails::AssetUrlProcessor.call(input)
|
25 |
| - assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output) |
| 30 | + assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data]) |
26 | 31 | end
|
27 | 32 |
|
28 | 33 | def test_single_quote
|
29 |
| - input = { environment: @env, data: "background: url('image.png');", filename: 'url2.css', metadata: {} } |
| 34 | + input = { environment: @env, data: "background: url('logo.png');", filename: 'url2.css', metadata: {} } |
30 | 35 | output = Sprockets::Rails::AssetUrlProcessor.call(input)
|
31 |
| - assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output) |
| 36 | + assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data]) |
32 | 37 | end
|
33 | 38 |
|
34 | 39 | def test_double_quote
|
35 |
| - input = { environment: @env, data: 'background: url("image.png");', filename: 'url2.css', metadata: {} } |
| 40 | + input = { environment: @env, data: 'background: url("logo.png");', filename: 'url2.css', metadata: {} } |
| 41 | + output = Sprockets::Rails::AssetUrlProcessor.call(input) |
| 42 | + assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data]) |
| 43 | + end |
| 44 | + |
| 45 | + def test_dependencies_are_tracked |
| 46 | + input = { environment: @env, data: 'background: url(logo.png);', filename: 'url2.css', metadata: {} } |
36 | 47 | output = Sprockets::Rails::AssetUrlProcessor.call(input)
|
37 |
| - assert_equal({ data: "background: url(image-hexcodegoeshere.png);" }, output) |
| 48 | + assert_equal(1, output[:links].size) |
| 49 | + assert_equal(@logo_uri, output[:links].first) |
38 | 50 | end
|
39 | 51 | end
|
0 commit comments