-
Notifications
You must be signed in to change notification settings - Fork 797
/
Copy pathtest_loader.rb
67 lines (55 loc) · 3.06 KB
/
test_loader.rb
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
65
66
67
# frozen_string_literal: true
require 'sprockets_test'
require 'pathname'
class TestLoader < Sprockets::TestCase
def setup
@env = Sprockets::Environment.new(".")
@env.append_path(fixture_path('default'))
end
test "load asset by uri" do
assert asset = @env.load("file://#{fixture_path_for_uri('default/gallery.js')}?type=application/javascript")
assert_equal fixture_path('default/gallery.js'), asset.filename
assert_equal 'application/javascript', asset.content_type
assert_equal '828e4be75f8bf69529b5d618dd12a6144d58d47cf4c3a9e3f64b0b8812008dab', asset.etag
assert asset = @env.load(asset.uri)
assert_equal fixture_path('default/gallery.js'), asset.filename
assert_equal 'application/javascript', asset.content_type
assert_equal '828e4be75f8bf69529b5d618dd12a6144d58d47cf4c3a9e3f64b0b8812008dab', asset.etag
assert asset = @env.load("file://#{fixture_path_for_uri('default/gallery.css.erb')}?type=text/css")
assert_equal fixture_path('default/gallery.css.erb'), asset.filename
assert_equal 'text/css', asset.content_type
assert asset = @env.load(Pathname.new("file://#{fixture_path_for_uri('default/gallery.css.erb')}?type=text/css"))
assert_equal fixture_path('default/gallery.css.erb'), asset.filename
assert_equal 'text/css', asset.content_type
bad_id = "0000000000000000000000000000000000000000"
assert asset = @env.load("file://#{fixture_path_for_uri('default/gallery.js')}?type=application/javascript&id=#{bad_id}")
assert_equal fixture_path('default/gallery.js'), asset.filename
assert_equal 'application/javascript', asset.content_type
assert_raises Sprockets::FileNotFound do
@env.load("file://#{fixture_path_for_uri('default/missing.js')}?type=application/javascript")
end
assert_raises Sprockets::ConversionError do
@env.load("file://#{fixture_path_for_uri('default/gallery.js')}?type=text/css")
end
assert asset = @env.load("file://#{fixture_path_for_uri('default/blue_jpg.jpg')}?type=image/jpeg")
assert_equal fixture_path('default/blue_jpg.jpg'), asset.filename
assert_equal 'blue_jpg.jpg', asset.logical_path
assert asset = @env.load("file://#{fixture_path_for_uri('default/blue_jpeg.jpeg')}?type=image/jpeg")
assert_equal fixture_path('default/blue_jpeg.jpeg'), asset.filename
assert_equal 'blue_jpeg.jpeg', asset.logical_path
end
test 'load outside asset' do
assert_raises Sprockets::FileOutsidePaths do
@env.load("file://#{fixture_path_for_uri('asset/one.css')}?type=text%2Fcss")
end
end
test 'load uri with index alias' do
filename = fixture_path('default/coffee/index.js')
index_alias = fixture_path('default/coffee.js')
assert asset = @env.load("file://#{uri_path(filename)}?type=application/javascript&index_alias=#{Rack::Utils.escape(index_alias)}")
assert_equal filename, asset.filename, asset.inspect
assert_equal 'coffee.js', asset.logical_path, asset.inspect
assert_equal fixture_path('default'), asset.to_hash[:load_path], asset.inspect
assert_equal 'application/javascript', asset.content_type
end
end