psyho_juicer 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 +58 -0
 - data/Manifest.txt +58 -0
 - data/Rakefile +96 -0
 - data/Readme.rdoc +313 -0
 - data/VERSION +1 -0
 - data/bin/juicer +6 -0
 - data/lib/juicer.rb +69 -0
 - data/lib/juicer/asset/path.rb +275 -0
 - data/lib/juicer/asset/path_resolver.rb +79 -0
 - data/lib/juicer/binary.rb +171 -0
 - data/lib/juicer/cache_buster.rb +131 -0
 - data/lib/juicer/chainable.rb +106 -0
 - data/lib/juicer/cli.rb +56 -0
 - data/lib/juicer/command/install.rb +61 -0
 - data/lib/juicer/command/list.rb +57 -0
 - data/lib/juicer/command/merge.rb +205 -0
 - data/lib/juicer/command/util.rb +32 -0
 - data/lib/juicer/command/verify.rb +60 -0
 - data/lib/juicer/css_cache_buster.rb +90 -0
 - 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 +186 -0
 - data/lib/juicer/install/closure_compiler_installer.rb +69 -0
 - data/lib/juicer/install/jslint_installer.rb +51 -0
 - data/lib/juicer/install/rhino_installer.rb +53 -0
 - data/lib/juicer/install/yui_compressor_installer.rb +67 -0
 - data/lib/juicer/jslint.rb +90 -0
 - data/lib/juicer/merger/base.rb +74 -0
 - data/lib/juicer/merger/javascript_merger.rb +29 -0
 - data/lib/juicer/merger/stylesheet_merger.rb +110 -0
 - 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 +96 -0
 - 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/fixtures/yui-download.html +425 -0
 - data/test/test_helper.rb +175 -0
 - 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/unit/juicer/chainable_test.rb +94 -0
 - data/test/unit/juicer/command/install_test.rb +58 -0
 - data/test/unit/juicer/command/list_test.rb +81 -0
 - data/test/unit/juicer/command/merge_test.rb +162 -0
 - data/test/unit/juicer/command/util_test.rb +58 -0
 - data/test/unit/juicer/command/verify_test.rb +48 -0
 - data/test/unit/juicer/css_cache_buster_test.rb +71 -0
 - data/test/unit/juicer/datafy_test.rb +37 -0
 - data/test/unit/juicer/dependency_resolver/css_dependency_resolver_test.rb +36 -0
 - data/test/unit/juicer/dependency_resolver/javascript_dependency_resolver_test.rb +50 -0
 - data/test/unit/juicer/ext/string_test.rb +59 -0
 - 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/unit/juicer/install/jslint_installer_test.rb +54 -0
 - data/test/unit/juicer/install/rhino_installer_test.rb +57 -0
 - data/test/unit/juicer/install/yui_compressor_test.rb +56 -0
 - data/test/unit/juicer/jslint_test.rb +60 -0
 - data/test/unit/juicer/merger/base_test.rb +122 -0
 - data/test/unit/juicer/merger/javascript_merger_test.rb +74 -0
 - data/test/unit/juicer/merger/stylesheet_merger_test.rb +180 -0
 - data/test/unit/juicer/minifyer/closure_compressor_test.rb +107 -0
 - data/test/unit/juicer/minifyer/yui_compressor_test.rb +116 -0
 - data/test/unit/juicer_test.rb +1 -0
 - metadata +278 -0
 
| 
         @@ -0,0 +1,74 @@ 
     | 
|
| 
      
 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
         
     | 
| 
         @@ -0,0 +1,180 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "test_helper"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class TestStylesheetMerger < Test::Unit::TestCase
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 6 
     | 
    
         
            +
                @file_merger = Juicer::Merger::StylesheetMerger.new
         
     | 
| 
      
 7 
     | 
    
         
            +
                Juicer::Test::FileSetup.new.create
         
     | 
| 
      
 8 
     | 
    
         
            +
                @cwd = Dir.pwd
         
     | 
| 
      
 9 
     | 
    
         
            +
                Dir.chdir path("")
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              def teardown
         
     | 
| 
      
 13 
     | 
    
         
            +
                file = path('test_out.css')
         
     | 
| 
      
 14 
     | 
    
         
            +
                File.delete(file) if File.exists?(file)
         
     | 
| 
      
 15 
     | 
    
         
            +
                Dir.chdir(@cwd)
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
             def test_init
         
     | 
| 
      
 19 
     | 
    
         
            +
               Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 20 
     | 
    
         
            +
                 assert_equal Juicer::CssDependencyResolver, @file_merger.dependency_resolver.class
         
     | 
| 
      
 21 
     | 
    
         
            +
               end
         
     | 
| 
      
 22 
     | 
    
         
            +
             end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              def test_merge
         
     | 
| 
      
 25 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 26 
     | 
    
         
            +
                  a_content = "\n\n/* Dette er a.css */\n"
         
     | 
| 
      
 27 
     | 
    
         
            +
                  content = @file_merger.merge(path('a.css'))
         
     | 
| 
      
 28 
     | 
    
         
            +
                  assert_equal a_content + "\n", content
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
              def test_constructor
         
     | 
| 
      
 33 
     | 
    
         
            +
                file_merger = Juicer::Merger::StylesheetMerger.new(path('a.css'))
         
     | 
| 
      
 34 
     | 
    
         
            +
                assert_equal 2, file_merger.files.length
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
              def test_append
         
     | 
| 
      
 38 
     | 
    
         
            +
                @file_merger << path('a.css')
         
     | 
| 
      
 39 
     | 
    
         
            +
                assert_equal 2, @file_merger.files.length
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              def test_save
         
     | 
| 
      
 43 
     | 
    
         
            +
                a_css = path('a.css')
         
     | 
| 
      
 44 
     | 
    
         
            +
                b_css = path('b.css')
         
     | 
| 
      
 45 
     | 
    
         
            +
                merged = <<EOF
         
     | 
| 
      
 46 
     | 
    
         
            +
            /* Dette er b.css */
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            /* Dette er a.css */
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                @file_merger << a_css
         
     | 
| 
      
 55 
     | 
    
         
            +
                ios = StringIO.new
         
     | 
| 
      
 56 
     | 
    
         
            +
                @file_merger.save(ios)
         
     | 
| 
      
 57 
     | 
    
         
            +
                assert_equal merged, ios.string
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                output_file = path('test_out.css')
         
     | 
| 
      
 60 
     | 
    
         
            +
                @file_merger.save(output_file)
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                assert_equal merged, IO.read(output_file)
         
     | 
| 
      
 63 
     | 
    
         
            +
              end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
              def test_included_files_should_have_referenced_relative_urls_rereferenced
         
     | 
| 
      
 66 
     | 
    
         
            +
                @file_merger << path("path_test.css")
         
     | 
| 
      
 67 
     | 
    
         
            +
                ios = StringIO.new
         
     | 
| 
      
 68 
     | 
    
         
            +
                @file_merger.save(ios)
         
     | 
| 
      
 69 
     | 
    
         
            +
                files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }.uniq.sort
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                assert_equal "a1.css::css/2.gif::images/1.png", files.join("::")
         
     | 
| 
      
 72 
     | 
    
         
            +
              end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
              def test_resolve_path_should_leave_absolute_urls
         
     | 
| 
      
 75 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new
         
     | 
| 
      
 76 
     | 
    
         
            +
                url = "/some/url"
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 79 
     | 
    
         
            +
                  assert_equal url, merger.resolve_path(url, nil)
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
              end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
              def test_resolve_path_error_when_relative_missing_document_root
         
     | 
| 
      
 84 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 87 
     | 
    
         
            +
                  assert_raise ArgumentError do
         
     | 
| 
      
 88 
     | 
    
         
            +
                    merger.resolve_path("/some/url", nil)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
      
 91 
     | 
    
         
            +
              end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
              def test_resolve_path_should_make_absolute_urls_relative
         
     | 
| 
      
 94 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true, :document_root => "/home/usr"
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 97 
     | 
    
         
            +
                  merger.instance_eval { @root = Pathname.new "/home/usr/design" }
         
     | 
| 
      
 98 
     | 
    
         
            +
                  assert_equal "../some/url", merger.resolve_path("/some/url", nil)
         
     | 
| 
      
 99 
     | 
    
         
            +
                end
         
     | 
| 
      
 100 
     | 
    
         
            +
              end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
              def test_resolve_path_should_leave_full_urls
         
     | 
| 
      
 103 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new []
         
     | 
| 
      
 104 
     | 
    
         
            +
                url = "http://test.com"
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 107 
     | 
    
         
            +
                  merger.instance_eval { @root = Pathname.new "/home/usr/design" }
         
     | 
| 
      
 108 
     | 
    
         
            +
                  assert_equal url, merger.resolve_path(url, nil)
         
     | 
| 
      
 109 
     | 
    
         
            +
                end
         
     | 
| 
      
 110 
     | 
    
         
            +
              end
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
              def test_resolve_path_error_when_missing_absolute_document_root
         
     | 
| 
      
 113 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :absolute_urls => true
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 116 
     | 
    
         
            +
                  assert_raise ArgumentError do
         
     | 
| 
      
 117 
     | 
    
         
            +
                    merger.resolve_path("../some/url", nil)
         
     | 
| 
      
 118 
     | 
    
         
            +
                  end
         
     | 
| 
      
 119 
     | 
    
         
            +
                end
         
     | 
| 
      
 120 
     | 
    
         
            +
              end
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
              def test_resolve_path_should_make_relative_urls_absolute
         
     | 
| 
      
 123 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :absolute_urls => true, :document_root => "/home/usr"
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 126 
     | 
    
         
            +
                  merger.instance_eval { @root = Pathname.new "/home/usr/design" }
         
     | 
| 
      
 127 
     | 
    
         
            +
                  assert_equal "/design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
         
     | 
| 
      
 128 
     | 
    
         
            +
                end
         
     | 
| 
      
 129 
     | 
    
         
            +
              end
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
              def test_resolve_path_should_redefine_relative_urls
         
     | 
| 
      
 132 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 135 
     | 
    
         
            +
                  merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
         
     | 
| 
      
 136 
     | 
    
         
            +
                  assert_equal "../../design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
         
     | 
| 
      
 137 
     | 
    
         
            +
                end
         
     | 
| 
      
 138 
     | 
    
         
            +
              end
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
              def test_resolve_path_should_redefine_absolute_urls
         
     | 
| 
      
 141 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true, :document_root => "/home/usr"
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 144 
     | 
    
         
            +
                  merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
         
     | 
| 
      
 145 
     | 
    
         
            +
                  assert_equal "../../images/1.png", merger.resolve_path("/images/1.png", "/home/usr/design/css")
         
     | 
| 
      
 146 
     | 
    
         
            +
                end
         
     | 
| 
      
 147 
     | 
    
         
            +
              end
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
              def test_resolve_path_with_hosts_should_cycle_asset_hosts
         
     | 
| 
      
 150 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :hosts => ["http://assets1", "http://assets2", "http://assets3"]
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 153 
     | 
    
         
            +
                  merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
         
     | 
| 
      
 154 
     | 
    
         
            +
                  assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
         
     | 
| 
      
 155 
     | 
    
         
            +
                  assert_equal "http://assets2/images/1.png", merger.resolve_path("/images/1.png", nil)
         
     | 
| 
      
 156 
     | 
    
         
            +
                  assert_equal "http://assets3/images/1.png", merger.resolve_path("/images/1.png", nil)
         
     | 
| 
      
 157 
     | 
    
         
            +
                  assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
         
     | 
| 
      
 158 
     | 
    
         
            +
                end
         
     | 
| 
      
 159 
     | 
    
         
            +
              end
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
              def test_resolve_paths_should_handle_relative_document_roots
         
     | 
| 
      
 162 
     | 
    
         
            +
                merger = Juicer::Merger::StylesheetMerger.new [], :document_root => "test/data", :relative_urls => true
         
     | 
| 
      
 163 
     | 
    
         
            +
                merger << File.expand_path("css/test2.css")
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
                Juicer::Merger::StylesheetMerger.publicize_methods do
         
     | 
| 
      
 166 
     | 
    
         
            +
                  merger.instance_eval { @root = Pathname.new File.expand_path("test/data/css") }
         
     | 
| 
      
 167 
     | 
    
         
            +
                  assert_equal "../images/1.png", merger.resolve_path("/images/1.png", nil)
         
     | 
| 
      
 168 
     | 
    
         
            +
                end
         
     | 
| 
      
 169 
     | 
    
         
            +
              end
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
              def test_cycle_asset_hosts_should_use_same_host_for_same_url
         
     | 
| 
      
 172 
     | 
    
         
            +
                @file_merger = Juicer::Merger::StylesheetMerger.new nil, :hosts => ["http://assets1", "http://assets2", "http://assets3"]
         
     | 
| 
      
 173 
     | 
    
         
            +
                @file_merger << path("path_test2.css")
         
     | 
| 
      
 174 
     | 
    
         
            +
                ios = StringIO.new
         
     | 
| 
      
 175 
     | 
    
         
            +
                @file_merger.save(ios)
         
     | 
| 
      
 176 
     | 
    
         
            +
                files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
                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("::")
         
     | 
| 
      
 179 
     | 
    
         
            +
              end
         
     | 
| 
      
 180 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,107 @@ 
     | 
|
| 
      
 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
         
     | 
| 
         @@ -0,0 +1,116 @@ 
     | 
|
| 
      
 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 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
                
         
     | 
| 
      
 57 
     | 
    
         
            +
                should "not find jar when no jars on path" do
         
     | 
| 
      
 58 
     | 
    
         
            +
                  Juicer::Minifyer::YuiCompressor.publicize_methods do
         
     | 
| 
      
 59 
     | 
    
         
            +
                    yui_compressor = Juicer::Minifyer::YuiCompressor.new
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                    assert_nil yui_compressor.locate_jar
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                should "find only jar in path" do
         
     | 
| 
      
 66 
     | 
    
         
            +
                  Juicer::Minifyer::YuiCompressor.publicize_methods do
         
     | 
| 
      
 67 
     | 
    
         
            +
                    File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
         
     | 
| 
      
 68 
     | 
    
         
            +
                    yui_compressor = Juicer::Minifyer::YuiCompressor.new
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                    assert_equal File.expand_path('yuicompressor-2.3.4.jar'), yui_compressor.locate_jar
         
     | 
| 
      
 71 
     | 
    
         
            +
                  end
         
     | 
| 
      
 72 
     | 
    
         
            +
                end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                should "find most recent of two jars on path" do
         
     | 
| 
      
 75 
     | 
    
         
            +
                  Juicer::Minifyer::YuiCompressor.publicize_methods do
         
     | 
| 
      
 76 
     | 
    
         
            +
                    # Create files
         
     | 
| 
      
 77 
     | 
    
         
            +
                    File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
         
     | 
| 
      
 78 
     | 
    
         
            +
                    File.open('yuicompressor-2.3.5.jar', 'w') { |f| f.puts '' }
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                    yui_compressor = Juicer::Minifyer::YuiCompressor.new
         
     | 
| 
      
 81 
     | 
    
         
            +
                    
         
     | 
| 
      
 82 
     | 
    
         
            +
                    # Test
         
     | 
| 
      
 83 
     | 
    
         
            +
                    assert_equal File.expand_path('yuicompressor-2.3.5.jar'), yui_compressor.locate_jar
         
     | 
| 
      
 84 
     | 
    
         
            +
                  end
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                should "find most recent of three jar files on path" do
         
     | 
| 
      
 88 
     | 
    
         
            +
                  Juicer::Minifyer::YuiCompressor.publicize_methods do
         
     | 
| 
      
 89 
     | 
    
         
            +
                    # Create files
         
     | 
| 
      
 90 
     | 
    
         
            +
                    File.open('yuicompressor-2.3.4.jar', 'w') { |f| f.puts '' }
         
     | 
| 
      
 91 
     | 
    
         
            +
                    File.open('yuicompressor-2.3.5.jar', 'w') { |f| f.puts '' }
         
     | 
| 
      
 92 
     | 
    
         
            +
                    File.open('yuicompressor.jar', 'w') { |f| f.puts '' }
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                    yui_compressor = Juicer::Minifyer::YuiCompressor.new
         
     | 
| 
      
 95 
     | 
    
         
            +
                    
         
     | 
| 
      
 96 
     | 
    
         
            +
                    # Test
         
     | 
| 
      
 97 
     | 
    
         
            +
                    assert_equal File.expand_path('yuicompressor.jar'), yui_compressor.locate_jar
         
     | 
| 
      
 98 
     | 
    
         
            +
                  end
         
     | 
| 
      
 99 
     | 
    
         
            +
                end
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                should "find jar in custom directory" do
         
     | 
| 
      
 102 
     | 
    
         
            +
                  Juicer::Minifyer::YuiCompressor.publicize_methods do
         
     | 
| 
      
 103 
     | 
    
         
            +
                    # Prepare
         
     | 
| 
      
 104 
     | 
    
         
            +
                    Dir.mkdir('another')
         
     | 
| 
      
 105 
     | 
    
         
            +
                    File.open('another/yuicompressor-2.3.4.jar', 'w') { |f| f.puts "" }
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
                    yui_compressor = Juicer::Minifyer::YuiCompressor.new
         
     | 
| 
      
 108 
     | 
    
         
            +
                    
         
     | 
| 
      
 109 
     | 
    
         
            +
                    # Test
         
     | 
| 
      
 110 
     | 
    
         
            +
                    assert_nil yui_compressor.locate_jar
         
     | 
| 
      
 111 
     | 
    
         
            +
                    yui_compressor = Juicer::Minifyer::YuiCompressor.new({ :bin_path => 'another' })
         
     | 
| 
      
 112 
     | 
    
         
            +
                    assert_equal File.expand_path('another/yuicompressor-2.3.4.jar'), yui_compressor.locate_jar
         
     | 
| 
      
 113 
     | 
    
         
            +
                  end
         
     | 
| 
      
 114 
     | 
    
         
            +
                end
         
     | 
| 
      
 115 
     | 
    
         
            +
              end
         
     | 
| 
      
 116 
     | 
    
         
            +
            end
         
     |