File: test_asset_url_processor.rb

package info (click to toggle)
ruby-sprockets-rails 3.4.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 436 kB
  • sloc: ruby: 2,071; makefile: 4; javascript: 4
file content (64 lines) | stat: -rw-r--r-- 2,605 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
require 'minitest/autorun'
require 'sprockets/railtie'


Minitest::Test = MiniTest::Unit::TestCase unless defined?(Minitest::Test)
class TestAssetUrlProcessor < Minitest::Test
  FIXTURES_PATH = File.expand_path("../fixtures", __FILE__)

  def setup
    @env = Sprockets::Environment.new
    @env.append_path FIXTURES_PATH
    @env.context_class.class_eval do
      include ::Sprockets::Rails::Context
    end
    @env.context_class.digest_assets = true

    @logo_digest = @env["logo.png"].etag
    @logo_uri    = @env["logo.png"].uri
  end

  def test_basic
    input = { environment: @env, data: 'background: url(logo.png);', filename: 'url2.css', metadata: {} }
    output = Sprockets::Rails::AssetUrlProcessor.call(input)
    assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
  end

  def test_spaces
    input = { environment: @env, data: 'background: url( logo.png );', filename: 'url2.css', metadata: {} }
    output = Sprockets::Rails::AssetUrlProcessor.call(input)
    assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
  end

  def test_single_quote
    input = { environment: @env, data: "background: url('logo.png');", filename: 'url2.css', metadata: {} }
    output = Sprockets::Rails::AssetUrlProcessor.call(input)
    assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
  end

  def test_double_quote
    input = { environment: @env, data: 'background: url("logo.png");', filename: 'url2.css', metadata: {} }
    output = Sprockets::Rails::AssetUrlProcessor.call(input)
    assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
  end

  def test_dependencies_are_tracked
    input = { environment: @env, data: 'background: url(logo.png);', filename: 'url2.css', metadata: {} }
    output = Sprockets::Rails::AssetUrlProcessor.call(input)
    assert_equal(1, output[:links].size)
    assert_equal(@logo_uri, output[:links].first)
  end

  def test_relative
    input = { environment: @env, data: 'background: url(./logo.png);', filename: 'url2.css', metadata: {} }
    output = Sprockets::Rails::AssetUrlProcessor.call(input)
    assert_equal("background: url(/logo-#{@logo_digest}.png);", output[:data])
  end

  def test_subdirectory
    input = { environment: @env, data: "background: url('jquery/jquery.js');", filename: 'url2.css', metadata: {} }
    output = Sprockets::Rails::AssetUrlProcessor.call(input)
    jquery_digest = 'c6910e1db4a5ed4905be728ab786471e81565f4a9d544734b199f3790de9f9a3'
    assert_equal("background: url(/jquery/jquery-#{jquery_digest}.js);", output[:data])
  end
end