juicer 0.2.6 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +28 -0
- data/Rakefile +84 -36
- data/Readme.rdoc +192 -23
- data/VERSION +1 -0
- data/bin/juicer +2 -4
- data/lib/juicer.rb +9 -10
- data/lib/juicer/asset/path.rb +275 -0
- data/lib/juicer/asset/path_resolver.rb +79 -0
- data/lib/juicer/binary.rb +3 -5
- data/lib/juicer/cache_buster.rb +112 -27
- data/lib/juicer/command/install.rb +4 -2
- data/lib/juicer/command/list.rb +16 -9
- data/lib/juicer/command/merge.rb +30 -14
- data/lib/juicer/command/verify.rb +1 -1
- data/lib/juicer/css_cache_buster.rb +31 -47
- data/lib/juicer/datafy/datafy.rb +20 -0
- data/lib/juicer/dependency_resolver/css_dependency_resolver.rb +29 -0
- data/lib/juicer/dependency_resolver/dependency_resolver.rb +101 -0
- data/lib/juicer/dependency_resolver/javascript_dependency_resolver.rb +23 -0
- data/lib/juicer/ext/logger.rb +5 -0
- data/lib/juicer/ext/string.rb +47 -0
- data/lib/juicer/ext/symbol.rb +15 -0
- data/lib/juicer/image_embed.rb +129 -0
- data/lib/juicer/install/base.rb +2 -2
- data/lib/juicer/install/closure_compiler_installer.rb +69 -0
- data/lib/juicer/install/jslint_installer.rb +3 -3
- data/lib/juicer/install/rhino_installer.rb +3 -2
- data/lib/juicer/install/yui_compressor_installer.rb +3 -2
- data/lib/juicer/jslint.rb +1 -1
- data/lib/juicer/merger/base.rb +1 -1
- data/lib/juicer/merger/javascript_merger.rb +3 -4
- data/lib/juicer/merger/stylesheet_merger.rb +13 -15
- data/lib/juicer/minifyer/closure_compiler.rb +90 -0
- data/lib/juicer/minifyer/java_base.rb +77 -0
- data/lib/juicer/minifyer/yui_compressor.rb +15 -48
- data/test/bin/jslint-1.0.js +523 -0
- data/test/bin/jslint.js +523 -0
- data/test/bin/rhino1_7R1.zip +0 -0
- data/test/bin/rhino1_7R2-RC1.jar +0 -0
- data/test/bin/rhino1_7R2-RC1.zip +0 -0
- data/test/bin/yuicompressor +0 -0
- data/test/bin/yuicompressor-2.3.5.zip +0 -0
- data/test/bin/yuicompressor-2.4.2.jar +0 -0
- data/test/bin/yuicompressor-2.4.2.zip +0 -0
- data/test/data/Changelog.txt +10 -0
- data/test/data/a.css +3 -0
- data/test/data/a.js +5 -0
- data/test/data/a1.css +5 -0
- data/test/data/b.css +1 -0
- data/test/data/b.js +5 -0
- data/test/data/b1.css +5 -0
- data/test/data/c1.css +3 -0
- data/test/data/css/2.gif +1 -0
- data/test/data/css/test.css +11 -0
- data/test/data/css/test2.css +1 -0
- data/test/data/d1.css +3 -0
- data/test/data/images/1.png +1 -0
- data/test/data/my_app.js +2 -0
- data/test/data/not-ok.js +2 -0
- data/test/data/ok.js +3 -0
- data/test/data/path_test.css +5 -0
- data/test/data/path_test2.css +14 -0
- data/test/data/pkg/module/moda.js +2 -0
- data/test/data/pkg/module/modb.js +3 -0
- data/test/data/pkg/pkg.js +1 -0
- data/test/fixtures/yui-download.html +425 -0
- data/test/test_helper.rb +36 -7
- data/test/unit/juicer/asset/path_resolver_test.rb +76 -0
- data/test/unit/juicer/asset/path_test.rb +370 -0
- data/test/unit/juicer/cache_buster_test.rb +104 -0
- data/test/{juicer/test_chainable.rb → unit/juicer/chainable_test.rb} +1 -1
- data/test/unit/juicer/command/install_test.rb +58 -0
- data/test/{juicer/command/test_list.rb → unit/juicer/command/list_test.rb} +26 -14
- data/test/unit/juicer/command/merge_test.rb +162 -0
- data/test/{juicer/command/test_util.rb → unit/juicer/command/util_test.rb} +10 -6
- data/test/unit/juicer/command/verify_test.rb +48 -0
- data/test/{juicer/test_css_cache_buster.rb → unit/juicer/css_cache_buster_test.rb} +10 -30
- data/test/unit/juicer/datafy_test.rb +37 -0
- data/test/{juicer/merger/test_css_dependency_resolver.rb → unit/juicer/dependency_resolver/css_dependency_resolver_test.rb} +2 -2
- data/test/{juicer/merger/test_javascript_dependency_resolver.rb → unit/juicer/dependency_resolver/javascript_dependency_resolver_test.rb} +13 -2
- data/test/unit/juicer/ext/{#string_test.rb# → string_test.rb} +0 -7
- data/test/unit/juicer/ext/symbol_test.rb +27 -0
- data/test/unit/juicer/image_embed_test.rb +271 -0
- data/test/unit/juicer/install/installer_base_test.rb +214 -0
- data/test/{juicer/install/test_jslint_installer.rb → unit/juicer/install/jslint_installer_test.rb} +1 -1
- data/test/{juicer/install/test_rhino_installer.rb → unit/juicer/install/rhino_installer_test.rb} +1 -1
- data/test/{juicer/install/test_yui_compressor_installer.rb → unit/juicer/install/yui_compressor_test.rb} +16 -16
- data/test/unit/juicer/jslint_test.rb +60 -0
- data/test/{juicer/merger/test_base.rb → unit/juicer/merger/base_test.rb} +1 -1
- data/test/{juicer/merger/test_javascript_merger.rb → unit/juicer/merger/javascript_merger_test.rb} +2 -2
- data/test/{juicer/merger/test_stylesheet_merger.rb → unit/juicer/merger/stylesheet_merger_test.rb} +15 -13
- data/test/unit/juicer/minifyer/closure_compressor_test.rb +107 -0
- data/test/{integration → unit}/juicer/minifyer/yui_compressor_test.rb +30 -47
- data/test/unit/juicer_test.rb +1 -0
- metadata +207 -113
- data/lib/juicer/core.rb +0 -61
- data/lib/juicer/merger/css_dependency_resolver.rb +0 -25
- data/lib/juicer/merger/dependency_resolver.rb +0 -82
- data/lib/juicer/merger/javascript_dependency_resolver.rb +0 -21
- data/tasks/ann.rake +0 -80
- data/tasks/bones.rake +0 -20
- data/tasks/gem.rake +0 -201
- data/tasks/git.rake +0 -40
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -51
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -292
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/test/setup.rake +0 -35
- data/tasks/zentest.rake +0 -36
- data/test/juicer/command/test_install.rb +0 -53
- data/test/juicer/command/test_merge.rb +0 -160
- data/test/juicer/command/test_verify.rb +0 -33
- data/test/juicer/install/test_installer_base.rb +0 -195
- data/test/juicer/minifyer/test_yui_compressor.rb +0 -159
- data/test/juicer/test_cache_buster.rb +0 -58
- data/test/juicer/test_core.rb +0 -47
- data/test/juicer/test_jslint.rb +0 -33
- data/test/test_juicer.rb +0 -4
@@ -1,195 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. test_helper])) unless defined?(Juicer)
|
2
|
-
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. .. lib juicer install base]))
|
3
|
-
|
4
|
-
module Juicer
|
5
|
-
module Install
|
6
|
-
class SomeMagicInstaller < Juicer::Install::Base
|
7
|
-
def install(version = nil)
|
8
|
-
version ||= "1.0.0"
|
9
|
-
ver = super(version)
|
10
|
-
File.open(File.join(@install_dir, path, "bin", ver + ".app"), "w") do |file|
|
11
|
-
file.puts version
|
12
|
-
end
|
13
|
-
|
14
|
-
version
|
15
|
-
end
|
16
|
-
|
17
|
-
def uninstall(version = "1.0.0")
|
18
|
-
super(version) do |path, version|
|
19
|
-
File.delete(File.join(path, "bin", version + ".app"))
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
class SomeOtherInstaller < Juicer::Install::SomeMagicInstaller
|
25
|
-
def install(version = nil)
|
26
|
-
version ||= "1.0.0"
|
27
|
-
super(version)
|
28
|
-
end
|
29
|
-
|
30
|
-
def latest
|
31
|
-
"1.0.0"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
class TestInstallerBase < Test::Unit::TestCase
|
38
|
-
|
39
|
-
def initialize(*args)
|
40
|
-
super
|
41
|
-
@juicer_home = File.expand_path(File.join("test", "data", ".juicer"))
|
42
|
-
end
|
43
|
-
|
44
|
-
def setup
|
45
|
-
FileUtils.rm_rf @juicer_home
|
46
|
-
@installer = Juicer::Install::SomeMagicInstaller.new(@juicer_home)
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_default_installation_directory_should_be_juicer_home
|
50
|
-
installer = Juicer::Install::SomeMagicInstaller.new
|
51
|
-
assert_equal Juicer.home, installer.install_dir
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_override_installation_directory
|
55
|
-
installer = Juicer::Install::SomeMagicInstaller.new("/home/baluba")
|
56
|
-
assert_equal "/home/baluba", installer.install_dir
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_latest_method_should_raise_NotImplementedError
|
60
|
-
assert_raise NotImplementedError do
|
61
|
-
@installer.latest
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_path
|
66
|
-
assert_equal "lib/some_magic", @installer.path
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_bin_path
|
70
|
-
assert_equal "lib/some_magic/bin", @installer.bin_path
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_name
|
74
|
-
assert_equal "Some Magic", @installer.name
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_installed
|
78
|
-
assert !@installer.installed?("x.y.z")
|
79
|
-
@installer.install("x.y.z")
|
80
|
-
assert @installer.installed?("x.y.z")
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_installation_should_fail_when_already_installed
|
84
|
-
@installer.install("1.0.0")
|
85
|
-
|
86
|
-
assert_raise RuntimeError do
|
87
|
-
@installer.install("1.0.0")
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_installation_should_create_bin_and_release_folders
|
92
|
-
assert_equal "1.0.0", @installer.install("1.0.0")
|
93
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_magic/bin"))
|
94
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_magic/1.0.0"))
|
95
|
-
end
|
96
|
-
|
97
|
-
def test_uninstall_should_remove_library_path_when_only_version_is_uninstalled
|
98
|
-
@installer.install("1.0.0")
|
99
|
-
@installer.uninstall("1.0.0")
|
100
|
-
assert !File.exists?(File.join(@juicer_home, "lib/some_magic"))
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_uninstall_should_keep_other_versions
|
104
|
-
@installer.install("1.0.0")
|
105
|
-
@installer.install("1.0.1")
|
106
|
-
@installer.uninstall("1.0.0")
|
107
|
-
assert !File.exists?(File.join(@juicer_home, "lib/some_magic/1.0.0"))
|
108
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_magic"))
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_download_should_cache_files_and_only_redownload_when_forced_to_do_so
|
112
|
-
@installer.download("http://www.julienlecomte.net/yuicompressor/")
|
113
|
-
filename = File.join(@juicer_home, "download/some_magic/yuicompressor")
|
114
|
-
assert File.exists?(filename)
|
115
|
-
sleep(0.5)
|
116
|
-
|
117
|
-
mtime = File.stat(filename).mtime
|
118
|
-
@installer.download("http://www.julienlecomte.net/yuicompressor/")
|
119
|
-
assert_equal mtime, File.stat(filename).mtime
|
120
|
-
sleep(0.5)
|
121
|
-
|
122
|
-
@installer.download("http://www.julienlecomte.net/yuicompressor/", true)
|
123
|
-
assert_not_equal mtime, File.stat(filename).mtime
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_installer_should_not_report_true_when_missing_dependencies
|
127
|
-
@installer.install
|
128
|
-
|
129
|
-
installer = Juicer::Install::SomeMagicInstaller.new(@juicer_home)
|
130
|
-
assert !installer.installed?("1.0.1"), "Installer should be installed"
|
131
|
-
|
132
|
-
installer.dependency Juicer::Install::SomeOtherInstaller
|
133
|
-
assert !installer.installed?("1.0.1"), "Installer should not report as being installed when missing dependencies"
|
134
|
-
end
|
135
|
-
|
136
|
-
def installer_with_single_dependency_should_have_it_installed_on_install
|
137
|
-
installer = Juicer::Install::SomeMagicInstaller.new(@juicer_home)
|
138
|
-
installer.dependency Juicer::Install::SomeOtherInstaller
|
139
|
-
installer.install "1.0.0"
|
140
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_magic/1.0.0"))
|
141
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_other/1.0.0"))
|
142
|
-
end
|
143
|
-
|
144
|
-
def test_installed_dependency_should_not_cause_error
|
145
|
-
installer = Juicer::Install::SomeMagicInstaller.new(@juicer_home)
|
146
|
-
installer.dependency Juicer::Install::SomeOtherInstaller
|
147
|
-
|
148
|
-
dep = Juicer::Install::SomeOtherInstaller.new
|
149
|
-
dep.install unless dep.installed?
|
150
|
-
|
151
|
-
assert_nothing_raised do
|
152
|
-
installer.install "1.0.0"
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_single_dependency_symbol
|
157
|
-
installer = Juicer::Install::SomeMagicInstaller.new(@juicer_home)
|
158
|
-
installer.dependency :some_other
|
159
|
-
installer.install "1.0.0"
|
160
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_magic/1.0.0"))
|
161
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_other/1.0.0"))
|
162
|
-
end
|
163
|
-
|
164
|
-
def test_single_dependency_string
|
165
|
-
installer = Juicer::Install::SomeMagicInstaller.new(@juicer_home)
|
166
|
-
installer.dependency "some_other"
|
167
|
-
installer.install "1.0.0"
|
168
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_magic/1.0.0"))
|
169
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_other/1.0.0"))
|
170
|
-
end
|
171
|
-
|
172
|
-
def test_multiple_dependencies
|
173
|
-
installer = Juicer::Install::SomeMagicInstaller.new(@juicer_home)
|
174
|
-
installer.dependency :some_other
|
175
|
-
installer.dependency :some_other, "2.0.4"
|
176
|
-
installer.dependency :some_other, "3.0.5"
|
177
|
-
installer.install "1.0.0"
|
178
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_magic/1.0.0"))
|
179
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_other/1.0.0"))
|
180
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_other/2.0.4"))
|
181
|
-
assert File.exists?(File.join(@juicer_home, "lib/some_other/3.0.5"))
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_get_class
|
185
|
-
assert_equal Juicer::Install::SomeMagicInstaller, Juicer::Install.get(Juicer::Install::SomeMagicInstaller)
|
186
|
-
end
|
187
|
-
|
188
|
-
def test_get_class_from_symbol
|
189
|
-
assert_equal Juicer::Install::SomeMagicInstaller, Juicer::Install.get(:some_magic)
|
190
|
-
end
|
191
|
-
|
192
|
-
def test_get_class_from_string
|
193
|
-
assert_equal Juicer::Install::SomeMagicInstaller, Juicer::Install.get("some_magic")
|
194
|
-
end
|
195
|
-
end
|
@@ -1,159 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. test_helper])) unless defined?(Juicer)
|
2
|
-
|
3
|
-
class TestYuiCompressor < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@path = ENV.key?('YUI_HOME') ? ENV['YUI_HOME'] : File.expand_path('~/sources/yuicompressor-2.3.5/build')
|
7
|
-
|
8
|
-
@yui_compressor = Juicer::Minifyer::YuiCompressor.new({ :bin_path => @path })
|
9
|
-
Juicer::Test::FileSetup.new.create
|
10
|
-
@file = path('out.min.css')
|
11
|
-
end
|
12
|
-
|
13
|
-
def teardown
|
14
|
-
File.delete(@file) if @file && File.exists?(@file)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_save_overwrite
|
18
|
-
FileUtils.cp(path('a.css'), path('a-1.css'))
|
19
|
-
@yui_compressor.save(path('a-1.css'))
|
20
|
-
assert_equal "@import 'b.css';", IO.read(path('a-1.css'))
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_save_with_symbol_type
|
24
|
-
@yui_compressor.save(path('a.css'), path('a-1.css'), :css)
|
25
|
-
assert_equal "@import 'b.css';", IO.read(path('a-1.css'))
|
26
|
-
File.delete(path('a-1.css'))
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_save_with_string_type
|
30
|
-
@yui_compressor.save(path('a.css'), path('a-1.css'), "css")
|
31
|
-
assert_equal "@import 'b.css';", IO.read(path('a-1.css'))
|
32
|
-
File.delete(path('a-1.css'))
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_save_other_file
|
36
|
-
@yui_compressor.save(path('a.css'), path('a-1.css'))
|
37
|
-
assert_equal "@import 'b.css';", IO.read(path('a-1.css'))
|
38
|
-
assert_not_equal IO.read(path('a-1.css')), IO.read(path('a.css'))
|
39
|
-
File.delete(path('a-1.css'))
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_save_should_create_non_existant_path
|
43
|
-
@yui_compressor.save(path('a.css'), path('bleh/blah/a-1.css'))
|
44
|
-
assert File.exists? path('bleh/blah/a-1.css')
|
45
|
-
FileUtils.rm_rf(path('bleh'))
|
46
|
-
end
|
47
|
-
|
48
|
-
# def test_command
|
49
|
-
# Juicer::Minifyer::YuiCompressor.publicize_methods do
|
50
|
-
# cmd = /java -jar #{@path.sub('2.3.5', '\d\.\d\.\d')}\/yuicompressor-\d\.\d\.\d\.jar --type css/
|
51
|
-
# assert_match cmd, @yui_compressor.command('css')
|
52
|
-
|
53
|
-
# @yui_compressor.no_munge = true
|
54
|
-
# cmd = /#{cmd} --no-munge/
|
55
|
-
# assert_match cmd, @yui_compressor.command('css')
|
56
|
-
# end
|
57
|
-
# end
|
58
|
-
|
59
|
-
def test_locate_jar_no_existing_jar
|
60
|
-
Juicer::Minifyer::YuiCompressor.publicize_methods do
|
61
|
-
# Avoid developer env settings
|
62
|
-
yuic_home = ENV['YUIC_HOME']
|
63
|
-
ENV.delete('YUIC_HOME')
|
64
|
-
|
65
|
-
assert_nil @yui_compressor.locate_jar
|
66
|
-
|
67
|
-
# Reset developer env settings
|
68
|
-
ENV['YUIC_HOME'] = yuic_home
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_locate_jar_one_file_in_cwd
|
73
|
-
Juicer::Minifyer::YuiCompressor.publicize_methods do
|
74
|
-
# Avoid developer env settings
|
75
|
-
yuic_home = ENV['YUIC_HOME']
|
76
|
-
ENV.delete('YUIC_HOME')
|
77
|
-
|
78
|
-
File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
|
79
|
-
assert_equal File.expand_path('yuicompressor-2.3.4.jar'), @yui_compressor.locate_jar
|
80
|
-
|
81
|
-
# Cleanup
|
82
|
-
File.delete('yuicompressor-2.3.4.jar')
|
83
|
-
|
84
|
-
# Reset developer env settings
|
85
|
-
ENV['YUIC_HOME'] = yuic_home
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_locate_jar_two_files_in_cwd
|
90
|
-
Juicer::Minifyer::YuiCompressor.publicize_methods do
|
91
|
-
# Avoid developer env settings
|
92
|
-
yuic_home = ENV['YUIC_HOME']
|
93
|
-
ENV.delete('YUIC_HOME')
|
94
|
-
|
95
|
-
# Create files
|
96
|
-
File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
|
97
|
-
File.open('yuicompressor-2.3.5.jar', 'w') { |f| f.puts '' }
|
98
|
-
|
99
|
-
# Test
|
100
|
-
assert_equal File.expand_path('yuicompressor-2.3.5.jar'), @yui_compressor.locate_jar
|
101
|
-
|
102
|
-
# Cleanup
|
103
|
-
File.delete('yuicompressor-2.3.4.jar')
|
104
|
-
File.delete('yuicompressor-2.3.5.jar')
|
105
|
-
|
106
|
-
# Reset developer env settings
|
107
|
-
ENV['YUIC_HOME'] = yuic_home
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_locate_jar_three_files_in_cwd
|
112
|
-
Juicer::Minifyer::YuiCompressor.publicize_methods do
|
113
|
-
# Avoid developer env settings
|
114
|
-
yuic_home = ENV['YUIC_HOME']
|
115
|
-
ENV.delete('YUIC_HOME')
|
116
|
-
|
117
|
-
# Create files
|
118
|
-
File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
|
119
|
-
File.open('yuicompressor-2.3.5.jar', 'w') { |f| f.puts '' }
|
120
|
-
File.open('yuicompressor.jar', 'w') { |f| f.puts '' }
|
121
|
-
|
122
|
-
# Test
|
123
|
-
assert_equal File.expand_path('yuicompressor.jar'), @yui_compressor.locate_jar
|
124
|
-
|
125
|
-
# Cleanup
|
126
|
-
File.delete('yuicompressor-2.3.4.jar')
|
127
|
-
File.delete('yuicompressor-2.3.5.jar')
|
128
|
-
File.delete('yuicompressor.jar')
|
129
|
-
|
130
|
-
# Reset developer env settings
|
131
|
-
ENV['YUIC_HOME'] = yuic_home
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_locate_jar_custom_directory
|
136
|
-
Juicer::Minifyer::YuiCompressor.publicize_methods do
|
137
|
-
# Avoid developer env settings
|
138
|
-
yuic_home = ENV['YUIC_HOME']
|
139
|
-
ENV.delete('YUIC_HOME')
|
140
|
-
|
141
|
-
# Prepare
|
142
|
-
Dir.mkdir('another')
|
143
|
-
Dir.chdir('another')
|
144
|
-
File.open('yuicompressor-2.3.4.jar', 'w')
|
145
|
-
Dir.chdir('..')
|
146
|
-
|
147
|
-
# Test
|
148
|
-
assert_nil @yui_compressor.locate_jar
|
149
|
-
@yui_compressor = Juicer::Minifyer::YuiCompressor.new({ :bin_path => 'another' })
|
150
|
-
assert_equal File.expand_path('another/yuicompressor-2.3.4.jar'), @yui_compressor.locate_jar
|
151
|
-
|
152
|
-
# Clean up
|
153
|
-
FileUtils.rm_rf("another")
|
154
|
-
|
155
|
-
# Reset developer env settings
|
156
|
-
ENV['YUIC_HOME'] = yuic_home
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. test_helper])) unless defined?(Juicer)
|
2
|
-
|
3
|
-
class TestCacheBuster < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
Juicer::Test::FileSetup.new.create
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_default_type_and_param_name
|
9
|
-
file = path("a.js")
|
10
|
-
mtime = File.new(file).mtime.to_i
|
11
|
-
assert_equal "#{file}?jcb=#{mtime}", Juicer::CacheBuster.path(file)
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_soft_path_default_param_name
|
15
|
-
file = path("a.js")
|
16
|
-
mtime = File.new(file).mtime.to_i
|
17
|
-
assert_equal "#{file}?jcb=#{mtime}", Juicer::CacheBuster.path(file, :soft)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_soft_path
|
21
|
-
file = path("a.js")
|
22
|
-
mtime = File.new(file).mtime.to_i
|
23
|
-
assert_equal "#{file}?mtime=#{mtime}", Juicer::CacheBuster.path(file, :soft, "mtime")
|
24
|
-
assert_equal "#{file}?mtime=#{mtime}", Juicer::CacheBuster.path(file, :soft, :mtime)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_soft_path_with_empty_param_name
|
28
|
-
file = path("a.js")
|
29
|
-
mtime = File.new(file).mtime.to_i
|
30
|
-
assert_equal "#{file}?#{mtime}", Juicer::CacheBuster.path(file, :soft, nil)
|
31
|
-
assert_equal "#{file}?#{mtime}", Juicer::CacheBuster.path(file, :soft, "")
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_hard_path_default_param_name
|
35
|
-
file = path("a.js")
|
36
|
-
mtime = File.new(file).mtime.to_i
|
37
|
-
assert_equal "#{File.dirname(file)}/a-#{mtime}.js", Juicer::CacheBuster.path(file, :hard)
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_hard_path_with_empty_param_name
|
41
|
-
file = path("a.js")
|
42
|
-
mtime = File.new(file).mtime.to_i
|
43
|
-
assert_equal "#{File.dirname(file)}/a-#{mtime}.js", Juicer::CacheBuster.path(file, :hard, "")
|
44
|
-
assert_equal "#{File.dirname(file)}/a-#{mtime}.js", Juicer::CacheBuster.path(file, :hard, nil)
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_hard_path
|
48
|
-
file = path("a.js")
|
49
|
-
mtime = File.new(file).mtime.to_i
|
50
|
-
assert_equal "#{File.dirname(file)}/a-cb#{mtime}.js", Juicer::CacheBuster.path(file, :hard, "cb")
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_cached_path_should_be_updated_soft
|
54
|
-
file = path("a.js")
|
55
|
-
mtime = File.new(file).mtime.to_i
|
56
|
-
assert_equal "#{File.dirname(file)}/a.js?cb=#{mtime}", Juicer::CacheBuster.path("#{file}?cb=1234", :soft, "cb")
|
57
|
-
end
|
58
|
-
end
|
data/test/juicer/test_core.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. test_helper])) unless defined?(Juicer)
|
2
|
-
|
3
|
-
class TestStringExtensions < Test::Unit::TestCase
|
4
|
-
def test_camel_case
|
5
|
-
assert_equal "CamelCase", "camel_case".camel_case
|
6
|
-
assert_equal "Camel case", "camel case".camel_case
|
7
|
-
assert_equal "CamelCase", "CAMEL_CASE".camel_case
|
8
|
-
assert_equal "CamelCase", "Camel_Case".camel_case
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_to_class
|
12
|
-
assert_equal String, "String".to_class
|
13
|
-
|
14
|
-
assert_raise RuntimeError do
|
15
|
-
"String".to_class(Array)
|
16
|
-
end
|
17
|
-
|
18
|
-
assert_equal String, "String".to_class(Object)
|
19
|
-
assert_equal Juicer::Merger, "Juicer::Merger".to_class
|
20
|
-
assert_equal Juicer::Merger, "Merger".to_class(Juicer)
|
21
|
-
assert_equal Juicer::Merger::StylesheetMerger, "Juicer::Merger::StylesheetMerger".to_class
|
22
|
-
assert_equal Juicer::Merger::StylesheetMerger, "StylesheetMerger".to_class(Juicer::Merger)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_classify
|
26
|
-
assert_equal Juicer::Merger, "merger".classify(Juicer)
|
27
|
-
assert_equal FileUtils, "file_utils".classify
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_underscore
|
31
|
-
assert_equal "stylesheet_merger", "StylesheetMerger".underscore
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
class TestSymbolExtensions < Test::Unit::TestCase
|
36
|
-
def test_camel_case
|
37
|
-
assert_equal "CamelCase", :camel_case.camel_case
|
38
|
-
assert_equal "CamelCase", :camel_case.camel_case
|
39
|
-
assert_equal "CamelCase", :CAMEL_CASE.camel_case
|
40
|
-
assert_equal "CamelCase", :Camel_Case.camel_case
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_classify
|
44
|
-
assert_equal Juicer::Merger, :merger.classify(Juicer)
|
45
|
-
assert_equal FileUtils, :file_utils.classify
|
46
|
-
end
|
47
|
-
end
|