aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/cleanup_spec.rb
diff options
context:
space:
mode:
authorMarkus Reiter2017-02-27 17:01:22 +0100
committerMarkus Reiter2017-02-27 17:04:40 +0100
commite84e7bd591fc19357d143289ea69f320d178ae4d (patch)
treeed299f0edbf1094c1ab8b5568c61f143ddbff7a1 /Library/Homebrew/test/cleanup_spec.rb
parentf06898a4f014fa179728bcb16bb279b84341df9a (diff)
downloadbrew-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.rb130
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