Skip to content

Commit 1143584

Browse files
committed
Merge pull request #199 from rails/test-debug-digest-behavior
Testing debug + digest behavior on 2.x
2 parents 3bd4470 + c26b0f6 commit 1143584

File tree

2 files changed

+123
-4
lines changed

2 files changed

+123
-4
lines changed

test/gemfiles/Gemfile.sprockets-3.0.x

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
source 'https://rubygems.org'
22
gemspec :path => "./../.."
33

4-
gem 'sprockets', '3.0.0.beta.4'
4+
gem 'sprockets', '3.0.0.beta.6'
55

66
gem 'actionpack'
77
gem 'railties'

test/test_helper.rb

Lines changed: 122 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class HelperTest < Minitest::Test
1010
FIXTURES_PATH = File.expand_path("../fixtures", __FILE__)
1111

1212
def setup
13-
assets = @assets = Sprockets::Environment.new
13+
@assets = Sprockets::Environment.new
1414
@assets.append_path FIXTURES_PATH
1515
@assets.context_class.class_eval do
1616
include ::Sprockets::Rails::Helper
@@ -32,13 +32,34 @@ def setup
3232

3333
@foo_js_digest = @assets['foo.js'].digest
3434
@foo_css_digest = @assets['foo.css'].digest
35-
@logo_digest = @assets["logo.png"].digest
35+
@bar_js_digest = @assets['bar.js'].digest
36+
@bar_css_digest = @assets['bar.css'].digest
37+
@logo_digest = @assets['logo.png'].digest
38+
39+
@dependency_js_digest = @assets['dependency.js'].digest
40+
@dependency_css_digest = @assets['dependency.css'].digest
41+
@file1_js_digest = @assets['file1.js'].digest
42+
@file1_css_digest = @assets['file1.css'].digest
43+
@file2_js_digest = @assets['file2.js'].digest
44+
@file2_css_digest = @assets['file2.css'].digest
3645

3746
Sprockets::Rails::Helper.raise_runtime_errors = false
3847
end
3948

4049
def test_truth
4150
end
51+
52+
def assert_servable_asset_url(url)
53+
path, query = url.split("?", 2)
54+
path = path.sub(@view.assets_prefix, "")
55+
56+
status = @assets.call({
57+
'REQUEST_METHOD' => 'GET',
58+
'PATH_INFO' => path,
59+
'QUERY_STRING' => query
60+
})[0]
61+
assert_equal 200, status, "#{url} responded with #{status}"
62+
end
4263
end
4364

4465
class NoHostHelperTest < HelperTest
@@ -191,6 +212,8 @@ def test_javascript_include_tag
191212
@view.javascript_include_tag("foo.js")
192213
assert_equal %(<script src="/assets/foo.js"></script>),
193214
@view.javascript_include_tag(:foo)
215+
216+
assert_servable_asset_url "/assets/foo.js"
194217
end
195218

196219
def test_stylesheet_link_tag
@@ -202,18 +225,22 @@ def test_stylesheet_link_tag
202225
@view.stylesheet_link_tag("foo.css")
203226
assert_equal %(<link href="/assets/foo.css" media="screen" rel="stylesheet" />),
204227
@view.stylesheet_link_tag(:foo)
228+
229+
assert_servable_asset_url "/assets/foo.css"
205230
end
206231

207232
def test_javascript_path
208233
super
209234

210235
assert_equal "/assets/foo.js", @view.javascript_path("foo")
236+
assert_servable_asset_url "/assets/foo.js"
211237
end
212238

213239
def test_stylesheet_path
214240
super
215241

216242
assert_equal "/assets/foo.css", @view.stylesheet_path("foo")
243+
assert_servable_asset_url "/assets/foo.css"
217244
end
218245

219246
def test_asset_digest
@@ -243,6 +270,8 @@ def test_javascript_include_tag
243270
@view.javascript_include_tag("foo.js")
244271
assert_equal %(<script src="/assets/foo-#{@foo_js_digest}.js"></script>),
245272
@view.javascript_include_tag(:foo)
273+
274+
assert_servable_asset_url "/assets/foo-#{@foo_js_digest}.js"
246275
end
247276

248277
def test_stylesheet_link_tag
@@ -254,18 +283,22 @@ def test_stylesheet_link_tag
254283
@view.stylesheet_link_tag("foo.css")
255284
assert_equal %(<link href="/assets/foo-#{@foo_css_digest}.css" media="screen" rel="stylesheet" />),
256285
@view.stylesheet_link_tag(:foo)
286+
287+
assert_servable_asset_url "/assets/foo-#{@foo_css_digest}.css"
257288
end
258289

259290
def test_javascript_path
260291
super
261292

262293
assert_equal "/assets/foo-#{@foo_js_digest}.js", @view.javascript_path("foo")
294+
assert_servable_asset_url "/assets/foo-#{@foo_js_digest}.js"
263295
end
264296

265297
def test_stylesheet_path
266298
super
267299

268300
assert_equal "/assets/foo-#{@foo_css_digest}.css", @view.stylesheet_path("foo")
301+
assert_servable_asset_url "/assets/foo-#{@foo_css_digest}.css"
269302
end
270303

271304
def test_asset_digest
@@ -299,6 +332,12 @@ def test_javascript_include_tag
299332
@view.javascript_include_tag(:bar)
300333
assert_equal %(<script src="/assets/dependency.js?body=1"></script>\n<script src="/assets/file1.js?body=1"></script>\n<script src="/assets/file2.js?body=1"></script>),
301334
@view.javascript_include_tag(:file1, :file2)
335+
336+
assert_servable_asset_url "/assets/foo.js?body=1"
337+
assert_servable_asset_url "/assets/bar.js?body=1"
338+
assert_servable_asset_url "/assets/dependency.js?body=1"
339+
assert_servable_asset_url "/assets/file1.js?body=1"
340+
assert_servable_asset_url "/assets/file2.js?body=1"
302341
end
303342

304343
def test_stylesheet_link_tag
@@ -310,18 +349,98 @@ def test_stylesheet_link_tag
310349
@view.stylesheet_link_tag(:bar)
311350
assert_equal %(<link href="/assets/dependency.css?body=1" media="screen" rel="stylesheet" />\n<link href="/assets/file1.css?body=1" media="screen" rel="stylesheet" />\n<link href="/assets/file2.css?body=1" media="screen" rel="stylesheet" />),
312351
@view.stylesheet_link_tag(:file1, :file2)
352+
353+
assert_servable_asset_url "/assets/foo.css?body=1"
354+
assert_servable_asset_url "/assets/bar.css?body=1"
355+
assert_servable_asset_url "/assets/dependency.css?body=1"
356+
assert_servable_asset_url "/assets/file1.css?body=1"
357+
assert_servable_asset_url "/assets/file2.css?body=1"
313358
end
314359

315360
def test_javascript_path
316361
super
317362

318363
assert_equal "/assets/foo.js", @view.javascript_path("foo")
364+
assert_servable_asset_url "/assets/foo.js"
319365
end
320366

321367
def test_stylesheet_path
322368
super
323369

324370
assert_equal "/assets/foo.css", @view.stylesheet_path("foo")
371+
assert_servable_asset_url "/assets/foo.css"
372+
end
373+
end
374+
375+
class DebugDigestHelperTest < NoHostHelperTest
376+
def setup
377+
super
378+
@view.debug_assets = true
379+
@view.digest_assets = true
380+
@assets.context_class.digest_assets = true
381+
end
382+
383+
def test_javascript_include_tag
384+
super
385+
386+
assert_equal %(<script src="/assets/foo-#{@foo_js_digest}.js?body=1"></script>),
387+
@view.javascript_include_tag(:foo)
388+
assert_equal %(<script src="/assets/foo-#{@foo_js_digest}.js?body=1"></script>\n<script src="/assets/bar-#{@bar_js_digest}.js?body=1"></script>),
389+
@view.javascript_include_tag(:bar)
390+
assert_equal %(<script src="/assets/dependency-#{@dependency_js_digest}.js?body=1"></script>\n<script src="/assets/file1-#{@file1_js_digest}.js?body=1"></script>\n<script src="/assets/file2-#{@file1_js_digest}.js?body=1"></script>),
391+
@view.javascript_include_tag(:file1, :file2)
392+
393+
assert_servable_asset_url "/assets/foo-#{@foo_js_digest}.js?body=1"
394+
assert_servable_asset_url "/assets/bar-#{@bar_js_digest}.js?body=1"
395+
assert_servable_asset_url "/assets/dependency-#{@dependency_js_digest}.js?body=1"
396+
assert_servable_asset_url "/assets/file1-#{@file1_js_digest}.js?body=1"
397+
assert_servable_asset_url "/assets/file2-#{@file2_js_digest}.js?body=1"
398+
end
399+
400+
def test_stylesheet_link_tag
401+
super
402+
403+
assert_equal %(<link href="/assets/foo-#{@foo_css_digest}.css?body=1" media="screen" rel="stylesheet" />),
404+
@view.stylesheet_link_tag(:foo)
405+
assert_equal %(<link href="/assets/foo-#{@foo_css_digest}.css?body=1" media="screen" rel="stylesheet" />\n<link href="/assets/bar-#{@bar_css_digest}.css?body=1" media="screen" rel="stylesheet" />),
406+
@view.stylesheet_link_tag(:bar)
407+
assert_equal %(<link href="/assets/dependency-#{@dependency_css_digest}.css?body=1" media="screen" rel="stylesheet" />\n<link href="/assets/file1-#{@file1_css_digest}.css?body=1" media="screen" rel="stylesheet" />\n<link href="/assets/file2-#{@file2_css_digest}.css?body=1" media="screen" rel="stylesheet" />),
408+
@view.stylesheet_link_tag(:file1, :file2)
409+
410+
assert_servable_asset_url "/assets/foo-#{@foo_css_digest}.css?body=1"
411+
assert_servable_asset_url "/assets/bar-#{@bar_css_digest}.css?body=1"
412+
assert_servable_asset_url "/assets/dependency-#{@dependency_css_digest}.css?body=1"
413+
assert_servable_asset_url "/assets/file1-#{@file1_css_digest}.css?body=1"
414+
assert_servable_asset_url "/assets/file2-#{@file2_css_digest}.css?body=1"
415+
end
416+
417+
def test_javascript_path
418+
super
419+
420+
assert_equal "/assets/foo-#{@foo_js_digest}.js", @view.javascript_path("foo")
421+
assert_servable_asset_url "/assets/foo-#{@foo_js_digest}.js"
422+
end
423+
424+
def test_stylesheet_path
425+
super
426+
427+
assert_equal "/assets/foo-#{@foo_css_digest}.css", @view.stylesheet_path("foo")
428+
assert_servable_asset_url "/assets/foo-#{@foo_css_digest}.css"
429+
end
430+
431+
def test_asset_digest
432+
assert_equal @foo_js_digest, @view.asset_digest("foo.js")
433+
assert_equal @foo_css_digest, @view.asset_digest("foo.css")
434+
end
435+
436+
def test_asset_digest_path
437+
assert_equal "foo-#{@foo_js_digest}.js", @view.asset_digest_path("foo.js")
438+
assert_equal "foo-#{@foo_css_digest}.css", @view.asset_digest_path("foo.css")
439+
end
440+
441+
def test_asset_url
442+
assert_equal "var url = '/assets/foo-#{@foo_js_digest}.js';\n", @assets["url.js"].to_s
443+
assert_equal "p { background: url(/assets/logo-#{@logo_digest}.png); }\n", @assets["url.css"].to_s
325444
end
326445
end
327446

@@ -447,7 +566,7 @@ def test_asset_not_precompiled_error
447566
@view.javascript_include_tag("foo")
448567
end
449568

450-
error = assert_raises(Sprockets::Rails::Helper::AssetFilteredError) do
569+
assert_raises(Sprockets::Rails::Helper::AssetFilteredError) do
451570
@view.javascript_include_tag(:foo)
452571
end
453572

0 commit comments

Comments
 (0)