juicer 0.2.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|