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.
Files changed (122) hide show
  1. data/History.txt +28 -0
  2. data/Rakefile +84 -36
  3. data/Readme.rdoc +192 -23
  4. data/VERSION +1 -0
  5. data/bin/juicer +2 -4
  6. data/lib/juicer.rb +9 -10
  7. data/lib/juicer/asset/path.rb +275 -0
  8. data/lib/juicer/asset/path_resolver.rb +79 -0
  9. data/lib/juicer/binary.rb +3 -5
  10. data/lib/juicer/cache_buster.rb +112 -27
  11. data/lib/juicer/command/install.rb +4 -2
  12. data/lib/juicer/command/list.rb +16 -9
  13. data/lib/juicer/command/merge.rb +30 -14
  14. data/lib/juicer/command/verify.rb +1 -1
  15. data/lib/juicer/css_cache_buster.rb +31 -47
  16. data/lib/juicer/datafy/datafy.rb +20 -0
  17. data/lib/juicer/dependency_resolver/css_dependency_resolver.rb +29 -0
  18. data/lib/juicer/dependency_resolver/dependency_resolver.rb +101 -0
  19. data/lib/juicer/dependency_resolver/javascript_dependency_resolver.rb +23 -0
  20. data/lib/juicer/ext/logger.rb +5 -0
  21. data/lib/juicer/ext/string.rb +47 -0
  22. data/lib/juicer/ext/symbol.rb +15 -0
  23. data/lib/juicer/image_embed.rb +129 -0
  24. data/lib/juicer/install/base.rb +2 -2
  25. data/lib/juicer/install/closure_compiler_installer.rb +69 -0
  26. data/lib/juicer/install/jslint_installer.rb +3 -3
  27. data/lib/juicer/install/rhino_installer.rb +3 -2
  28. data/lib/juicer/install/yui_compressor_installer.rb +3 -2
  29. data/lib/juicer/jslint.rb +1 -1
  30. data/lib/juicer/merger/base.rb +1 -1
  31. data/lib/juicer/merger/javascript_merger.rb +3 -4
  32. data/lib/juicer/merger/stylesheet_merger.rb +13 -15
  33. data/lib/juicer/minifyer/closure_compiler.rb +90 -0
  34. data/lib/juicer/minifyer/java_base.rb +77 -0
  35. data/lib/juicer/minifyer/yui_compressor.rb +15 -48
  36. data/test/bin/jslint-1.0.js +523 -0
  37. data/test/bin/jslint.js +523 -0
  38. data/test/bin/rhino1_7R1.zip +0 -0
  39. data/test/bin/rhino1_7R2-RC1.jar +0 -0
  40. data/test/bin/rhino1_7R2-RC1.zip +0 -0
  41. data/test/bin/yuicompressor +0 -0
  42. data/test/bin/yuicompressor-2.3.5.zip +0 -0
  43. data/test/bin/yuicompressor-2.4.2.jar +0 -0
  44. data/test/bin/yuicompressor-2.4.2.zip +0 -0
  45. data/test/data/Changelog.txt +10 -0
  46. data/test/data/a.css +3 -0
  47. data/test/data/a.js +5 -0
  48. data/test/data/a1.css +5 -0
  49. data/test/data/b.css +1 -0
  50. data/test/data/b.js +5 -0
  51. data/test/data/b1.css +5 -0
  52. data/test/data/c1.css +3 -0
  53. data/test/data/css/2.gif +1 -0
  54. data/test/data/css/test.css +11 -0
  55. data/test/data/css/test2.css +1 -0
  56. data/test/data/d1.css +3 -0
  57. data/test/data/images/1.png +1 -0
  58. data/test/data/my_app.js +2 -0
  59. data/test/data/not-ok.js +2 -0
  60. data/test/data/ok.js +3 -0
  61. data/test/data/path_test.css +5 -0
  62. data/test/data/path_test2.css +14 -0
  63. data/test/data/pkg/module/moda.js +2 -0
  64. data/test/data/pkg/module/modb.js +3 -0
  65. data/test/data/pkg/pkg.js +1 -0
  66. data/test/fixtures/yui-download.html +425 -0
  67. data/test/test_helper.rb +36 -7
  68. data/test/unit/juicer/asset/path_resolver_test.rb +76 -0
  69. data/test/unit/juicer/asset/path_test.rb +370 -0
  70. data/test/unit/juicer/cache_buster_test.rb +104 -0
  71. data/test/{juicer/test_chainable.rb → unit/juicer/chainable_test.rb} +1 -1
  72. data/test/unit/juicer/command/install_test.rb +58 -0
  73. data/test/{juicer/command/test_list.rb → unit/juicer/command/list_test.rb} +26 -14
  74. data/test/unit/juicer/command/merge_test.rb +162 -0
  75. data/test/{juicer/command/test_util.rb → unit/juicer/command/util_test.rb} +10 -6
  76. data/test/unit/juicer/command/verify_test.rb +48 -0
  77. data/test/{juicer/test_css_cache_buster.rb → unit/juicer/css_cache_buster_test.rb} +10 -30
  78. data/test/unit/juicer/datafy_test.rb +37 -0
  79. data/test/{juicer/merger/test_css_dependency_resolver.rb → unit/juicer/dependency_resolver/css_dependency_resolver_test.rb} +2 -2
  80. data/test/{juicer/merger/test_javascript_dependency_resolver.rb → unit/juicer/dependency_resolver/javascript_dependency_resolver_test.rb} +13 -2
  81. data/test/unit/juicer/ext/{#string_test.rb# → string_test.rb} +0 -7
  82. data/test/unit/juicer/ext/symbol_test.rb +27 -0
  83. data/test/unit/juicer/image_embed_test.rb +271 -0
  84. data/test/unit/juicer/install/installer_base_test.rb +214 -0
  85. data/test/{juicer/install/test_jslint_installer.rb → unit/juicer/install/jslint_installer_test.rb} +1 -1
  86. data/test/{juicer/install/test_rhino_installer.rb → unit/juicer/install/rhino_installer_test.rb} +1 -1
  87. data/test/{juicer/install/test_yui_compressor_installer.rb → unit/juicer/install/yui_compressor_test.rb} +16 -16
  88. data/test/unit/juicer/jslint_test.rb +60 -0
  89. data/test/{juicer/merger/test_base.rb → unit/juicer/merger/base_test.rb} +1 -1
  90. data/test/{juicer/merger/test_javascript_merger.rb → unit/juicer/merger/javascript_merger_test.rb} +2 -2
  91. data/test/{juicer/merger/test_stylesheet_merger.rb → unit/juicer/merger/stylesheet_merger_test.rb} +15 -13
  92. data/test/unit/juicer/minifyer/closure_compressor_test.rb +107 -0
  93. data/test/{integration → unit}/juicer/minifyer/yui_compressor_test.rb +30 -47
  94. data/test/unit/juicer_test.rb +1 -0
  95. metadata +207 -113
  96. data/lib/juicer/core.rb +0 -61
  97. data/lib/juicer/merger/css_dependency_resolver.rb +0 -25
  98. data/lib/juicer/merger/dependency_resolver.rb +0 -82
  99. data/lib/juicer/merger/javascript_dependency_resolver.rb +0 -21
  100. data/tasks/ann.rake +0 -80
  101. data/tasks/bones.rake +0 -20
  102. data/tasks/gem.rake +0 -201
  103. data/tasks/git.rake +0 -40
  104. data/tasks/notes.rake +0 -27
  105. data/tasks/post_load.rake +0 -34
  106. data/tasks/rdoc.rake +0 -51
  107. data/tasks/rubyforge.rake +0 -55
  108. data/tasks/setup.rb +0 -292
  109. data/tasks/spec.rake +0 -54
  110. data/tasks/svn.rake +0 -47
  111. data/tasks/test.rake +0 -40
  112. data/tasks/test/setup.rake +0 -35
  113. data/tasks/zentest.rake +0 -36
  114. data/test/juicer/command/test_install.rb +0 -53
  115. data/test/juicer/command/test_merge.rb +0 -160
  116. data/test/juicer/command/test_verify.rb +0 -33
  117. data/test/juicer/install/test_installer_base.rb +0 -195
  118. data/test/juicer/minifyer/test_yui_compressor.rb +0 -159
  119. data/test/juicer/test_cache_buster.rb +0 -58
  120. data/test/juicer/test_core.rb +0 -47
  121. data/test/juicer/test_jslint.rb +0 -33
  122. 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
@@ -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