diff options
| author | Markus Reiter | 2017-02-27 17:01:22 +0100 | 
|---|---|---|
| committer | Markus Reiter | 2017-02-27 17:04:40 +0100 | 
| commit | e84e7bd591fc19357d143289ea69f320d178ae4d (patch) | |
| tree | ed299f0edbf1094c1ab8b5568c61f143ddbff7a1 /Library/Homebrew/test/cleanup_spec.rb | |
| parent | f06898a4f014fa179728bcb16bb279b84341df9a (diff) | |
| download | brew-e84e7bd591fc19357d143289ea69f320d178ae4d.tar.bz2 | |
Convert Homebrew::Cleanup test to spec.
Diffstat (limited to 'Library/Homebrew/test/cleanup_spec.rb')
| -rw-r--r-- | Library/Homebrew/test/cleanup_spec.rb | 130 | 
1 files changed, 130 insertions, 0 deletions
diff --git a/Library/Homebrew/test/cleanup_spec.rb b/Library/Homebrew/test/cleanup_spec.rb new file mode 100644 index 000000000..b0e824767 --- /dev/null +++ b/Library/Homebrew/test/cleanup_spec.rb @@ -0,0 +1,130 @@ +require "test/support/fixtures/testball" +require "cleanup" +require "fileutils" +require "pathname" + +describe Homebrew::Cleanup do +  let(:ds_store) { Pathname.new("#{HOMEBREW_PREFIX}/Library/.DS_Store") } + +  around(:each) do |example| +    begin +      FileUtils.touch ds_store + +      example.run +    ensure +      FileUtils.rm_f ds_store +    end +  end + +  describe "::cleanup" do +    it "removes .DS_Store files" do +      shutup do +        described_class.cleanup +      end + +      expect(ds_store).not_to exist +    end + +    it "doesn't remove anything if `--dry-run` is specified" do +      ARGV << "--dry-run" + +      shutup do +        described_class.cleanup +      end + +      expect(ds_store).to exist +    end +  end + +  specify "::cleanup_formula" do +    f1 = Class.new(Testball) do +      version "1.0" +    end.new + +    f2 = Class.new(Testball) do +      version "0.2" +      version_scheme 1 +    end.new + +    f3 = Class.new(Testball) do +      version "0.3" +      version_scheme 1 +    end.new + +    f4 = Class.new(Testball) do +      version "0.1" +      version_scheme 2 +    end.new + +    shutup do +      [f1, f2, f3, f4].each do |f| +        f.brew do +          f.install +        end + +        Tab.create(f, DevelopmentTools.default_compiler, :libcxx).write +      end +    end + +    expect(f1).to be_installed +    expect(f2).to be_installed +    expect(f3).to be_installed +    expect(f4).to be_installed + +    shutup do +      described_class.cleanup_formula f3 +    end + +    expect(f1).not_to be_installed +    expect(f2).not_to be_installed +    expect(f3).to be_installed +    expect(f4).to be_installed +  end + +  specify "::cleanup_logs" do +    path = (HOMEBREW_LOGS/"delete_me") +    path.mkpath +    ARGV << "--prune=all" + +    shutup do +      described_class.cleanup_logs +    end + +    expect(path).not_to exist +  end + +  describe "::cleanup_cache" do +    it "cleans up incomplete downloads" do +      incomplete = (HOMEBREW_CACHE/"something.incomplete") +      incomplete.mkpath + +      shutup do +        described_class.cleanup_cache +      end + +      expect(incomplete).not_to exist +    end + +    it "cleans up 'java_cache'" do +      java_cache = (HOMEBREW_CACHE/"java_cache") +      java_cache.mkpath + +      shutup do +        described_class.cleanup_cache +      end + +      expect(java_cache).not_to exist +    end + +    it "cleans up 'npm_cache'" do +      npm_cache = (HOMEBREW_CACHE/"npm_cache") +      npm_cache.mkpath + +      shutup do +        described_class.cleanup_cache +      end + +      expect(npm_cache).not_to exist +    end +  end +end  | 
