From 80be26fd8b1c572d80d2c323eec9ce640726a8b0 Mon Sep 17 00:00:00 2001 From: Markus Reiter <me@reitermark.us> Date: Sat, 4 Mar 2017 21:42:09 +0100 Subject: [PATCH] Make Cask tests work without tapping `caskroom/cask`. --- Library/Homebrew/cask/spec/cask/cask_spec.rb | 26 ++++++++--------- .../cask/spec/cask/cli/install_spec.rb | 8 +++--- .../cask/spec/cask/cli/search_spec.rb | 28 +++++++++---------- .../cask/spec/cask/cli/uninstall_spec.rb | 4 +-- Library/Homebrew/cask/spec/spec_helper.rb | 3 -- 5 files changed, 33 insertions(+), 36 deletions(-) diff --git a/Library/Homebrew/cask/spec/cask/cask_spec.rb b/Library/Homebrew/cask/spec/cask/cask_spec.rb index 32f3d82580..b926be6276 100644 --- a/Library/Homebrew/cask/spec/cask/cask_spec.rb +++ b/Library/Homebrew/cask/spec/cask/cask_spec.rb @@ -22,33 +22,33 @@ describe Hbc::Cask do end describe "load" do - let(:hbc_relative_tap_path) { "../../Taps/caskroom/homebrew-cask" } + let(:tap_path) { Hbc.default_tap.path } + let(:file_dirname) { Pathname.new(__FILE__).dirname } + let(:relative_tap_path) { tap_path.relative_path_from(file_dirname) } it "returns an instance of the Cask for the given token" do - c = Hbc.load("adium") + c = Hbc.load("local-caffeine") expect(c).to be_kind_of(Hbc::Cask) - expect(c.token).to eq("adium") + expect(c.token).to eq("local-caffeine") end it "returns an instance of the Cask from a specific file location" do - location = File.expand_path(hbc_relative_tap_path + "/Casks/dia.rb") - c = Hbc.load(location) + c = Hbc.load("#{tap_path}/Casks/local-caffeine.rb") expect(c).to be_kind_of(Hbc::Cask) - expect(c.token).to eq("dia") + expect(c.token).to eq("local-caffeine") end it "returns an instance of the Cask from a url" do - url = "file://" + File.expand_path(hbc_relative_tap_path + "/Casks/dia.rb") c = shutup do - Hbc.load(url) + Hbc.load("file://#{tap_path}/Casks/local-caffeine.rb") end expect(c).to be_kind_of(Hbc::Cask) - expect(c.token).to eq("dia") + expect(c.token).to eq("local-caffeine") end it "raises an error when failing to download a Cask from a url" do expect { - url = "file://" + File.expand_path(hbc_relative_tap_path + "/Casks/notacask.rb") + url = "file://#{tap_path}/Casks/notacask.rb" shutup do Hbc.load(url) end @@ -56,9 +56,9 @@ describe Hbc::Cask do end it "returns an instance of the Cask from a relative file location" do - c = Hbc.load(hbc_relative_tap_path + "/Casks/bbedit.rb") + c = Hbc.load(relative_tap_path/"Casks/local-caffeine.rb") expect(c).to be_kind_of(Hbc::Cask) - expect(c.token).to eq("bbedit") + expect(c.token).to eq("local-caffeine") end it "uses exact match when loading by token" do @@ -83,7 +83,7 @@ describe Hbc::Cask do describe "metadata" do it "proposes a versioned metadata directory name for each instance" do - cask_token = "adium" + cask_token = "local-caffeine" c = Hbc.load(cask_token) metadata_path = Hbc.caskroom.join(cask_token, ".metadata", c.version) expect(c.metadata_versioned_container_path.to_s).to eq(metadata_path.to_s) diff --git a/Library/Homebrew/cask/spec/cask/cli/install_spec.rb b/Library/Homebrew/cask/spec/cask/cli/install_spec.rb index 07aa78aa3f..2544eacc89 100644 --- a/Library/Homebrew/cask/spec/cask/cli/install_spec.rb +++ b/Library/Homebrew/cask/spec/cask/cli/install_spec.rb @@ -64,21 +64,21 @@ describe Hbc::CLI::Install do it "returns a suggestion for a misspelled Cask" do expect { begin - Hbc::CLI::Install.run("googlechrome") + Hbc::CLI::Install.run("localcaffeine") rescue Hbc::CaskError nil end - }.to output(/No available Cask for googlechrome\. Did you mean:\ngoogle-chrome/).to_stderr + }.to output(/No available Cask for localcaffeine\. Did you mean:\nlocal-caffeine/).to_stderr end it "returns multiple suggestions for a Cask fragment" do expect { begin - Hbc::CLI::Install.run("google") + Hbc::CLI::Install.run("local-caf") rescue Hbc::CaskError nil end - }.to output(/No available Cask for google\. Did you mean one of:\ngoogle/).to_stderr + }.to output(/No available Cask for local-caf\. Did you mean one of:\nlocal-caffeine/).to_stderr end describe "when no Cask is specified" do diff --git a/Library/Homebrew/cask/spec/cask/cli/search_spec.rb b/Library/Homebrew/cask/spec/cask/cli/search_spec.rb index fe669dd3e2..b05d3fbde6 100644 --- a/Library/Homebrew/cask/spec/cask/cli/search_spec.rb +++ b/Library/Homebrew/cask/spec/cask/cli/search_spec.rb @@ -3,11 +3,11 @@ require "spec_helper" describe Hbc::CLI::Search do it "lists the available Casks that match the search term" do expect { - Hbc::CLI::Search.run("photoshop") + Hbc::CLI::Search.run("local") }.to output(<<-EOS.undent).to_stdout ==> Partial matches - adobe-photoshop-cc - adobe-photoshop-lightroom + local-caffeine + local-transmission EOS end @@ -20,37 +20,37 @@ describe Hbc::CLI::Search do it "lists all available Casks with no search term" do expect { Hbc::CLI::Search.run - }.to output(/google-chrome/).to_stdout + }.to output(/local-caffeine/).to_stdout end it "ignores hyphens in search terms" do expect { - Hbc::CLI::Search.run("goo-gle-chrome") - }.to output(/google-chrome/).to_stdout + Hbc::CLI::Search.run("lo-cal-caffeine") + }.to output(/local-caffeine/).to_stdout end it "ignores hyphens in Cask tokens" do expect { - Hbc::CLI::Search.run("googlechrome") - }.to output(/google-chrome/).to_stdout + Hbc::CLI::Search.run("localcaffeine") + }.to output(/local-caffeine/).to_stdout end it "accepts multiple arguments" do expect { - Hbc::CLI::Search.run("google chrome") - }.to output(/google-chrome/).to_stdout + Hbc::CLI::Search.run("local caffeine") + }.to output(/local-caffeine/).to_stdout end it "accepts a regexp argument" do expect { - Hbc::CLI::Search.run("/^google-c[a-z]rome$/") - }.to output("==> Regexp matches\ngoogle-chrome\n").to_stdout + Hbc::CLI::Search.run("/^local-c[a-z]ffeine$/") + }.to output("==> Regexp matches\nlocal-caffeine\n").to_stdout end it "Returns both exact and partial matches" do expect { - Hbc::CLI::Search.run("mnemosyne") - }.to output(/^==> Exact match\nmnemosyne\n==> Partial matches\nsubclassed-mnemosyne/).to_stdout + Hbc::CLI::Search.run("test-opera") + }.to output(/^==> Exact match\ntest-opera\n==> Partial matches\ntest-opera-mail/).to_stdout end it "does not search the Tap name" do diff --git a/Library/Homebrew/cask/spec/cask/cli/uninstall_spec.rb b/Library/Homebrew/cask/spec/cask/cli/uninstall_spec.rb index a1b47e823e..f451af2774 100644 --- a/Library/Homebrew/cask/spec/cask/cli/uninstall_spec.rb +++ b/Library/Homebrew/cask/spec/cask/cli/uninstall_spec.rb @@ -9,13 +9,13 @@ describe Hbc::CLI::Uninstall do it "shows an error when a Cask is provided that's not installed" do expect { - Hbc::CLI::Uninstall.run("anvil") + Hbc::CLI::Uninstall.run("local-caffeine") }.to raise_error(Hbc::CaskNotInstalledError) end it "tries anyway on a non-present Cask when --force is given" do expect { - Hbc::CLI::Uninstall.run("anvil", "--force") + Hbc::CLI::Uninstall.run("local-caffeine", "--force") }.not_to raise_error end diff --git a/Library/Homebrew/cask/spec/spec_helper.rb b/Library/Homebrew/cask/spec/spec_helper.rb index f7f3dbf41d..985a5335f6 100644 --- a/Library/Homebrew/cask/spec/spec_helper.rb +++ b/Library/Homebrew/cask/spec/spec_helper.rb @@ -27,9 +27,6 @@ Hbc.default_tap = Tap.fetch("caskroom", "spec").tap do |tap| FileUtils.ln_s TEST_FIXTURE_DIR.join("cask"), tap.path end -# pretend that the caskroom/cask Tap is installed -FileUtils.ln_s Pathname.new(ENV["HOMEBREW_LIBRARY"]).join("Taps", "caskroom", "homebrew-cask"), Tap.fetch("caskroom", "cask").path - HOMEBREW_CASK_DIRS = [ :appdir, :caskroom, -- GitLab