juicer 1.0.16 → 1.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/Gemfile.lock +27 -11
  2. data/History.txt +3 -0
  3. data/Rakefile +1 -1
  4. data/VERSION +1 -1
  5. data/lib/juicer.rb +1 -1
  6. data/lib/juicer/install/yui_compressor_installer.rb +2 -2
  7. metadata +29 -113
  8. data/GPATH +0 -0
  9. data/GRTAGS +0 -0
  10. data/GSYMS +0 -0
  11. data/GTAGS +0 -0
  12. data/test/bin/jslint-1.0.js +0 -523
  13. data/test/bin/jslint.js +0 -523
  14. data/test/bin/rhino1_7R1.zip +0 -0
  15. data/test/bin/rhino1_7R2-RC1.jar +0 -0
  16. data/test/bin/rhino1_7R2-RC1.zip +0 -0
  17. data/test/bin/rhino1_7R3.jar +0 -0
  18. data/test/bin/rhino1_7R3.zip +0 -0
  19. data/test/bin/yuicompressor +0 -0
  20. data/test/bin/yuicompressor-2.3.5.zip +0 -0
  21. data/test/bin/yuicompressor-2.4.2.jar +0 -0
  22. data/test/bin/yuicompressor-2.4.2.zip +0 -0
  23. data/test/data/Changelog.txt +0 -10
  24. data/test/data/a.css +0 -3
  25. data/test/data/a.js +0 -5
  26. data/test/data/a1.css +0 -5
  27. data/test/data/b.css +0 -1
  28. data/test/data/b.js +0 -5
  29. data/test/data/b1.css +0 -5
  30. data/test/data/b2.css +0 -5
  31. data/test/data/c1.css +0 -3
  32. data/test/data/css/2.gif +0 -1
  33. data/test/data/css/test.css +0 -15
  34. data/test/data/css/test2.css +0 -1
  35. data/test/data/css/test3.css +0 -12
  36. data/test/data/d1.css +0 -3
  37. data/test/data/images/1.png +0 -1
  38. data/test/data/my_app.js +0 -2
  39. data/test/data/not-ok.js +0 -2
  40. data/test/data/ok.js +0 -3
  41. data/test/data/path_test.css +0 -5
  42. data/test/data/path_test2.css +0 -14
  43. data/test/data/pkg/module/moda.js +0 -2
  44. data/test/data/pkg/module/modb.js +0 -3
  45. data/test/data/pkg/pkg.js +0 -1
  46. data/test/fixtures/rhino-download.html +0 -42
  47. data/test/fixtures/yui-download.html +0 -375
  48. data/test/test_helper.rb +0 -204
  49. data/test/unit/juicer/asset/path_resolver_test.rb +0 -76
  50. data/test/unit/juicer/asset/path_test.rb +0 -376
  51. data/test/unit/juicer/cache_buster_test.rb +0 -128
  52. data/test/unit/juicer/chainable_test.rb +0 -94
  53. data/test/unit/juicer/command/install_test.rb +0 -58
  54. data/test/unit/juicer/command/list_test.rb +0 -81
  55. data/test/unit/juicer/command/merge_test.rb +0 -162
  56. data/test/unit/juicer/command/util_test.rb +0 -58
  57. data/test/unit/juicer/command/verify_test.rb +0 -48
  58. data/test/unit/juicer/css_cache_buster_test.rb +0 -122
  59. data/test/unit/juicer/datafy_test.rb +0 -37
  60. data/test/unit/juicer/dependency_resolver/css_dependency_resolver_test.rb +0 -36
  61. data/test/unit/juicer/dependency_resolver/javascript_dependency_resolver_test.rb +0 -50
  62. data/test/unit/juicer/ext/string_test.rb +0 -59
  63. data/test/unit/juicer/ext/symbol_test.rb +0 -27
  64. data/test/unit/juicer/image_embed_test.rb +0 -339
  65. data/test/unit/juicer/install/installer_base_test.rb +0 -214
  66. data/test/unit/juicer/install/jslint_installer_test.rb +0 -54
  67. data/test/unit/juicer/install/rhino_installer_test.rb +0 -57
  68. data/test/unit/juicer/install/yui_compressor_test.rb +0 -56
  69. data/test/unit/juicer/jslint_test.rb +0 -60
  70. data/test/unit/juicer/merger/base_test.rb +0 -122
  71. data/test/unit/juicer/merger/javascript_merger_test.rb +0 -74
  72. data/test/unit/juicer/merger/stylesheet_merger_test.rb +0 -262
  73. data/test/unit/juicer/minifyer/closure_compressor_test.rb +0 -107
  74. data/test/unit/juicer/minifyer/yui_compressor_test.rb +0 -133
  75. data/test/unit/juicer_test.rb +0 -1
@@ -1,74 +0,0 @@
1
- require "test_helper"
2
-
3
- class TestJavaScriptMerger < Test::Unit::TestCase
4
-
5
- def setup
6
- @file_merger = Juicer::Merger::JavaScriptMerger.new
7
- Juicer::Test::FileSetup.new.create
8
- end
9
-
10
- def teardown
11
- file = path('test_out.js')
12
- File.delete(file) if File.exists?(file)
13
- end
14
-
15
- def test_init
16
- Juicer::Merger::JavaScriptMerger.publicize_methods do
17
- assert_equal Juicer::JavaScriptDependencyResolver, @file_merger.dependency_resolver.class
18
- end
19
- end
20
-
21
- def test_merge
22
- Juicer::Merger::JavaScriptMerger.publicize_methods do
23
- a_content = <<EOF
24
- /**
25
- * @depend b.js
26
- */
27
-
28
- /* Dette er a.js */
29
-
30
- EOF
31
- content = @file_merger.merge(path('a.js'))
32
- assert_equal a_content, content
33
- end
34
- end
35
-
36
- def test_constructor
37
- file_merger = Juicer::Merger::JavaScriptMerger.new(path('a.js'))
38
- assert_equal 2, file_merger.files.length
39
- end
40
-
41
- def test_append
42
- @file_merger << path('a.js')
43
- assert_equal 2, @file_merger.files.length
44
- end
45
-
46
- def test_save
47
- a_js = path('a.js')
48
- b_js = path('b.js')
49
- merged = <<EOF
50
- /**
51
- * @depends a.js
52
- */
53
-
54
- /* Dette er b.css */
55
-
56
- /**
57
- * @depend b.js
58
- */
59
-
60
- /* Dette er a.js */
61
-
62
- EOF
63
-
64
- @file_merger << a_js
65
- ios = StringIO.new
66
- @file_merger.save(ios)
67
- assert_equal merged, ios.string
68
-
69
- output_file = path('test_out.js')
70
- @file_merger.save(output_file)
71
-
72
- assert_equal merged, IO.read(output_file)
73
- end
74
- end
@@ -1,262 +0,0 @@
1
- require "test_helper"
2
-
3
- class TestStylesheetMerger < Test::Unit::TestCase
4
- def setup
5
- @file_merger = Juicer::Merger::StylesheetMerger.new
6
- Juicer::Test::FileSetup.new.create
7
- @cwd = Dir.pwd
8
- Dir.chdir path("")
9
- end
10
-
11
- def teardown
12
- file = path('test_out.css')
13
- File.delete(file) if File.exists?(file)
14
- Dir.chdir(@cwd)
15
- end
16
-
17
- context "stylesheet merger" do
18
- should "keep reference to css dependency resolver" do
19
- Juicer::Merger::StylesheetMerger.publicize_methods do
20
- resolver = @file_merger.dependency_resolver
21
-
22
- assert_equal Juicer::CssDependencyResolver, resolver.class
23
- end
24
- end
25
-
26
- should "merge single file" do
27
- Juicer::Merger::StylesheetMerger.publicize_methods do
28
- a_content = "\n\n/* Dette er a.css */\n"
29
- content = @file_merger.merge(path('a.css'))
30
-
31
- assert_equal a_content + "\n", content
32
- end
33
- end
34
-
35
- should "recognize all files" do
36
- file_merger = Juicer::Merger::StylesheetMerger.new(path('a.css'))
37
-
38
- assert_equal 2, file_merger.files.length
39
- end
40
-
41
- should "not append existing file" do
42
- @file_merger << path('a.css')
43
- assert_equal 2, @file_merger.files.length
44
- end
45
- end
46
-
47
- context "saving files" do
48
- should "merge files and strip @includes" do
49
- a_css = path('a.css')
50
- b_css = path('b.css')
51
- merged = <<EOF
52
- /* Dette er b.css */
53
-
54
-
55
-
56
- /* Dette er a.css */
57
-
58
- EOF
59
-
60
- @file_merger << a_css
61
- ios = StringIO.new
62
- @file_merger.save(ios)
63
- assert_equal merged, ios.string
64
-
65
- output_file = path('test_out.css')
66
- @file_merger.save(output_file)
67
-
68
- assert_equal merged, IO.read(output_file)
69
- end
70
-
71
- should "strip @includes for quoted urls" do
72
- css = path('b2.css')
73
-
74
- merged = <<EOF
75
- h2 {
76
- font-size: 10px;
77
- }
78
-
79
-
80
-
81
- html {
82
- background: red;
83
- }
84
-
85
- EOF
86
-
87
- @file_merger << css
88
- ios = StringIO.new
89
- @file_merger.save(ios)
90
- assert_equal merged, ios.string
91
- end
92
- end
93
-
94
- context "resolving paths" do
95
- should "re-reference relative paths" do
96
- @file_merger << path("path_test.css")
97
- ios = StringIO.new
98
- @file_merger.save(ios)
99
- files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }.uniq.sort
100
-
101
- assert_equal "a1.css::css/2.gif::images/1.png", files.join("::")
102
- end
103
-
104
- should "not touch absolute urls" do
105
- merger = Juicer::Merger::StylesheetMerger.new
106
- url = "/some/url"
107
-
108
- Juicer::Merger::StylesheetMerger.publicize_methods do
109
- assert_equal url, merger.resolve_path(url, nil)
110
- end
111
- end
112
-
113
- should "raise when mapping absolute to relative path without document root" do
114
- merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
115
-
116
- Juicer::Merger::StylesheetMerger.publicize_methods do
117
- assert_raise ArgumentError do
118
- merger.resolve_path("/some/url", nil)
119
- end
120
- end
121
- end
122
-
123
- should "make absolute urls relative" do
124
- merger = Juicer::Merger::StylesheetMerger.new([],
125
- :relative_urls => true,
126
- :document_root => "/home/usr")
127
-
128
- Juicer::Merger::StylesheetMerger.publicize_methods do
129
- merger.instance_eval { @root = Pathname.new "/home/usr/design" }
130
-
131
- assert_equal "../some/url", merger.resolve_path("/some/url", nil)
132
- end
133
- end
134
-
135
- should "should leave full urls" do
136
- merger = Juicer::Merger::StylesheetMerger.new []
137
- url = "http://test.com"
138
-
139
- Juicer::Merger::StylesheetMerger.publicize_methods do
140
- merger.instance_eval { @root = Pathname.new "/home/usr/design" }
141
-
142
- assert_equal url, merger.resolve_path(url, nil)
143
- end
144
- end
145
-
146
- should "error when missing document root for absolute urls" do
147
- merger = Juicer::Merger::StylesheetMerger.new [], :absolute_urls => true
148
-
149
- Juicer::Merger::StylesheetMerger.publicize_methods do
150
- assert_raise ArgumentError do
151
- merger.resolve_path("../some/url", nil)
152
- end
153
- end
154
- end
155
-
156
- should "make relative urls absolute" do
157
- merger = Juicer::Merger::StylesheetMerger.new([],
158
- :absolute_urls => true,
159
- :document_root => "/home/usr")
160
-
161
- Juicer::Merger::StylesheetMerger.publicize_methods do
162
- merger.instance_eval { @root = Pathname.new "/home/usr/design" }
163
- assert_equal "/design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
164
- end
165
- end
166
-
167
- should "redefine relative urls" do
168
- merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
169
-
170
- Juicer::Merger::StylesheetMerger.publicize_methods do
171
- merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
172
- assert_equal "../../design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
173
- end
174
- end
175
-
176
- should "redefine absolute urls" do
177
- merger = Juicer::Merger::StylesheetMerger.new([],
178
- :relative_urls => true,
179
- :document_root => "/home/usr")
180
-
181
- Juicer::Merger::StylesheetMerger.publicize_methods do
182
- merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
183
- result = merger.resolve_path("/images/1.png", "/home/usr/design/css")
184
-
185
- assert_equal "../../images/1.png", result
186
- end
187
- end
188
-
189
- should "cycle asset hosts" do
190
- hosts = ["http://assets1", "http://assets2", "http://assets3"]
191
- merger = Juicer::Merger::StylesheetMerger.new([], :hosts => hosts)
192
-
193
- Juicer::Merger::StylesheetMerger.publicize_methods do
194
- merger.instance_eval do
195
- @root = Pathname.new "/home/usr/design2/css"
196
- end
197
-
198
- assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
199
- assert_equal "http://assets2/images/1.png", merger.resolve_path("/images/1.png", nil)
200
- assert_equal "http://assets3/images/1.png", merger.resolve_path("/images/1.png", nil)
201
- assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
202
- end
203
- end
204
-
205
- should "handle relative document roots" do
206
- merger = Juicer::Merger::StylesheetMerger.new([],
207
- :document_root => "test/data",
208
- :relative_urls => true)
209
- merger << File.expand_path("css/test2.css")
210
-
211
- Juicer::Merger::StylesheetMerger.publicize_methods do
212
- merger.instance_eval do
213
- @root = Pathname.new File.expand_path("test/data/css")
214
- end
215
-
216
- assert_equal "../images/1.png", merger.resolve_path("/images/1.png", nil)
217
- end
218
- end
219
-
220
- should "leave data URLs untouched" do
221
- merger = Juicer::Merger::StylesheetMerger.new([],
222
- :document_root => "test/data",
223
- :hosts => ["http://assets1/"])
224
- merger << File.expand_path("path_test2.css")
225
-
226
- Juicer::Merger::StylesheetMerger.publicize_methods do
227
- merger.instance_eval do
228
- @root = Pathname.new(File.expand_path("test/data/css"))
229
- end
230
-
231
- expected = "data:image/png;base64,ERJW"
232
- assert_equal expected, merger.resolve_path("data:image/png;base64,ERJW", "test/data/css")
233
- end
234
- end
235
-
236
- should "cycle hosts for relative urls" do
237
- merger = Juicer::Merger::StylesheetMerger.new([],
238
- :document_root => "test/data",
239
- :hosts => ["http://assets1/"])
240
- merger << File.expand_path("path_test2.css")
241
-
242
- Juicer::Merger::StylesheetMerger.publicize_methods do
243
- merger.instance_eval do
244
- @root = Pathname.new(File.expand_path("test/data/css"))
245
- end
246
-
247
- expected = "http://assets1/images/1.png"
248
- assert_equal expected, merger.resolve_path("../images/1.png", "test/data/css")
249
- end
250
- end
251
-
252
- should "use same host for same url when cycling asset hosts" do
253
- @file_merger = Juicer::Merger::StylesheetMerger.new nil, :hosts => ["http://assets1", "http://assets2", "http://assets3"]
254
- @file_merger << path("path_test2.css")
255
- ios = StringIO.new
256
- @file_merger.save(ios)
257
- files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }
258
-
259
- assert_equal "1/images/1.png::2/css/2.gif::3/a1.css::2/css/2.gif::1/a2.css".gsub(/(\d\/)/, 'http://assets\1'), files.join("::")
260
- end
261
- end
262
- end
@@ -1,107 +0,0 @@
1
- require "test_helper"
2
- require "juicer/minifyer/closure_compiler"
3
-
4
- class ClosureCompilerTest < Test::Unit::TestCase
5
- def setup
6
- @jar = "compiler.jar"
7
- @input = "in-file.css"
8
- @output = "out-file.css"
9
- @cmd = %Q{-jar "#@jar"}
10
- @closure = Juicer::Minifyer::ClosureCompiler.new
11
- @closure.stubs(:locate_jar).returns(@jar)
12
- end
13
-
14
- context "#save" do
15
- should "overwrite existing file" do
16
- @closure.expects(:execute).with(%Q{#@cmd --js_output_file "#@output" --js "#@output"})
17
- @closure.save(@output, @output)
18
- end
19
-
20
- should "write compressed input to output" do
21
- @closure.expects(:execute).with(%Q{#@cmd --js_output_file "#@output" --js "#@input"})
22
- @closure.save(@input, @output)
23
- end
24
-
25
- should "create non-existant path" do
26
- output = "some/nested/directory"
27
- @closure.expects(:execute).with(%Q{#@cmd --js_output_file "#{output}/file.css" --js "#@input"})
28
- FileUtils.expects(:mkdir_p).with(output)
29
- @closure.save(@input, "#{output}/file.css")
30
- end
31
- end
32
-
33
- context "locating jar" do
34
- setup do
35
- # Avoid developer env settings
36
- @closure_home = ENV['CLOSUREC_HOME']
37
- ENV.delete('CLOSUREC_HOME')
38
- end
39
-
40
- teardown do
41
- ENV['CLOSUREC_HOME'] = @closure_home
42
- File.delete('compiler-2.3.4.jar') if File.exists?('compiler-2.3.4.jar')
43
- File.delete('compiler-2.3.5.jar') if File.exists?('compiler-2.3.5.jar')
44
- File.delete('compiler.jar') if File.exists?('compiler.jar')
45
- FileUtils.rm_rf("another") if File.exists?("another")
46
- end
47
-
48
- should "not find jar when no jars on path" do
49
- Juicer::Minifyer::ClosureCompiler.publicize_methods do
50
- closure = Juicer::Minifyer::ClosureCompiler.new
51
-
52
- assert_nil closure.locate_jar
53
- end
54
- end
55
-
56
- should "find only jar in path" do
57
- Juicer::Minifyer::ClosureCompiler.publicize_methods do
58
- File.open('compiler-2.3.4.jar', 'w') { |f| f.puts '' }
59
- closure = Juicer::Minifyer::ClosureCompiler.new
60
-
61
- assert_equal File.expand_path('compiler-2.3.4.jar'), closure.locate_jar
62
- end
63
- end
64
-
65
- should "find most recent of two jars on path" do
66
- Juicer::Minifyer::ClosureCompiler.publicize_methods do
67
- # Create files
68
- File.open('compiler-2.3.4.jar', 'w') { |f| f.puts '' }
69
- File.open('compiler-2.3.5.jar', 'w') { |f| f.puts '' }
70
-
71
- closure = Juicer::Minifyer::ClosureCompiler.new
72
-
73
- # Test
74
- assert_equal File.expand_path('compiler-2.3.5.jar'), closure.locate_jar
75
- end
76
- end
77
-
78
- should "find most recent of three jar files on path" do
79
- Juicer::Minifyer::ClosureCompiler.publicize_methods do
80
- # Create files
81
- File.open('compiler-2.3.4.jar', 'w') { |f| f.puts '' }
82
- File.open('compiler-2.3.5.jar', 'w') { |f| f.puts '' }
83
- File.open('compiler.jar', 'w') { |f| f.puts '' }
84
-
85
- closure = Juicer::Minifyer::ClosureCompiler.new
86
-
87
- # Test
88
- assert_equal File.expand_path('compiler.jar'), closure.locate_jar
89
- end
90
- end
91
-
92
- should "find jar in custom directory" do
93
- Juicer::Minifyer::ClosureCompiler.publicize_methods do
94
- # Prepare
95
- Dir.mkdir('another')
96
- File.open('another/compiler-2.3.4.jar', 'w') { |f| f.puts "" }
97
-
98
- closure = Juicer::Minifyer::ClosureCompiler.new
99
-
100
- # Test
101
- assert_nil closure.locate_jar
102
- closure = Juicer::Minifyer::ClosureCompiler.new({ :bin_path => 'another' })
103
- assert_equal File.expand_path('another/compiler-2.3.4.jar'), closure.locate_jar
104
- end
105
- end
106
- end
107
- end
@@ -1,133 +0,0 @@
1
- require "test_helper"
2
-
3
- class TestYuiCompressor < Test::Unit::TestCase
4
- def setup
5
- @jar = "yuicompressor-2.4.2.jar"
6
- @input = "in-file.css"
7
- @output = "out-file.css"
8
- @cmd = %Q{-jar "#@jar"}
9
- @yui_compressor = Juicer::Minifyer::YuiCompressor.new
10
- @yui_compressor.stubs(:locate_jar).returns(@jar)
11
- end
12
-
13
- context "#save" do
14
- should "overwrite existing file" do
15
- @yui_compressor.expects(:execute).with(%Q{#@cmd -o "#@output" "#@output"})
16
- @yui_compressor.save(@output)
17
- end
18
-
19
- should "use provided symbol type" do
20
- @yui_compressor.expects(:execute).with(%Q{#@cmd -o "#@output" "#@input"})
21
- @yui_compressor.save(@input, @output, :css)
22
- end
23
-
24
- should "use provided string type" do
25
- @yui_compressor.expects(:execute).with(%Q{#@cmd -o "#@output" "#@input"})
26
- @yui_compressor.save(@input, @output, "css")
27
- end
28
-
29
- should "write compressed input to output" do
30
- @yui_compressor.expects(:execute).with(%Q{#@cmd -o "#@output" "#@input"})
31
- @yui_compressor.save(@input, @output)
32
- end
33
-
34
- should "create non-existant path" do
35
- output = "some/nested/directory"
36
- @yui_compressor.expects(:execute).with(%Q{#@cmd -o "#{output}/file.css" "#@input"})
37
- FileUtils.expects(:mkdir_p).with(output)
38
- @yui_compressor.save(@input, "#{output}/file.css")
39
- end
40
- end
41
-
42
- context "locating jar" do
43
- setup do
44
- # Avoid developer env settings
45
- @yuic_home = ENV['YUIC_HOME']
46
- ENV.delete('YUIC_HOME')
47
- end
48
-
49
- teardown do
50
- ENV['YUIC_HOME'] = @yuic_home
51
- File.delete('yuicompressor-2.3.4.jar') if File.exists?('yuicompressor-2.3.4.jar')
52
- File.delete('yuicompressor-2.3.5.jar') if File.exists?('yuicompressor-2.3.5.jar')
53
- File.delete('yuicompressor.jar') if File.exists?('yuicompressor.jar')
54
- FileUtils.rm_rf("another") if File.exists?("another")
55
- FileUtils.rm_rf("athird") if File.exists?("athird")
56
- end
57
-
58
- should "not find jar when no jars on path" do
59
- Juicer::Minifyer::YuiCompressor.publicize_methods do
60
- yui_compressor = Juicer::Minifyer::YuiCompressor.new
61
-
62
- assert_nil yui_compressor.locate_jar
63
- end
64
- end
65
-
66
- should "find only jar in path" do
67
- Juicer::Minifyer::YuiCompressor.publicize_methods do
68
- File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
69
- yui_compressor = Juicer::Minifyer::YuiCompressor.new
70
-
71
- assert_equal File.expand_path('yuicompressor-2.3.4.jar'), yui_compressor.locate_jar
72
- end
73
- end
74
-
75
- should "find most recent of two jars on path" do
76
- Juicer::Minifyer::YuiCompressor.publicize_methods do
77
- # Create files
78
- File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
79
- File.open('yuicompressor-2.3.5.jar', 'w') { |f| f.puts '' }
80
-
81
- yui_compressor = Juicer::Minifyer::YuiCompressor.new
82
-
83
- # Test
84
- assert_equal File.expand_path('yuicompressor-2.3.5.jar'), yui_compressor.locate_jar
85
- end
86
- end
87
-
88
- should "find most recent of three jar files on path" do
89
- Juicer::Minifyer::YuiCompressor.publicize_methods do
90
- # Create files
91
- File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
92
- File.open('yuicompressor-2.3.5.jar', 'w') { |f| f.puts '' }
93
- File.open('yuicompressor.jar', 'w') { |f| f.puts '' }
94
-
95
- yui_compressor = Juicer::Minifyer::YuiCompressor.new
96
-
97
- # Test
98
- assert_equal File.expand_path('yuicompressor.jar'), yui_compressor.locate_jar
99
- end
100
- end
101
-
102
- should "find jar in custom directory" do
103
- Juicer::Minifyer::YuiCompressor.publicize_methods do
104
- # Prepare
105
- Dir.mkdir('another')
106
- File.open('another/yuicompressor-2.3.4.jar', 'w') { |f| f.puts "" }
107
-
108
- yui_compressor = Juicer::Minifyer::YuiCompressor.new
109
-
110
- # Test
111
- assert_nil yui_compressor.locate_jar
112
- yui_compressor = Juicer::Minifyer::YuiCompressor.new({ :bin_path => 'another' })
113
- assert_equal File.expand_path('another/yuicompressor-2.3.4.jar'), yui_compressor.locate_jar
114
- end
115
- end
116
-
117
- should "find jar in one of several custom directories" do
118
- Juicer::Minifyer::YuiCompressor.publicize_methods do
119
- # Prepare
120
- Dir.mkdir('another')
121
- Dir.mkdir('athird')
122
- File.open('athird/yuicompressor-2.3.4.jar', 'w') { |f| f.puts "" }
123
-
124
- yui_compressor = Juicer::Minifyer::YuiCompressor.new
125
-
126
- # Test
127
- assert_nil yui_compressor.locate_jar
128
- yui_compressor = Juicer::Minifyer::YuiCompressor.new({ :bin_path => ['another', 'athird'] })
129
- assert_equal File.expand_path('athird/yuicompressor-2.3.4.jar'), yui_compressor.locate_jar
130
- end
131
- end
132
- end
133
- end