From 3275b927b812c67462cb085cd3db539765c10c59 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Tue, 11 Apr 2023 21:02:10 +0200 Subject: [PATCH 1/2] Make test not depend on macOS version. --- Library/Homebrew/test/cask/cask_spec.rb | 13 +-- .../Homebrew/test/cask/dsl/caveats_spec.rb | 25 ++++- .../everything-systemsettings-caveats.json | 100 ------------------ .../support/fixtures/cask/everything.json | 2 +- 4 files changed, 28 insertions(+), 112 deletions(-) delete mode 100644 Library/Homebrew/test/support/fixtures/cask/everything-systemsettings-caveats.json diff --git a/Library/Homebrew/test/cask/cask_spec.rb b/Library/Homebrew/test/cask/cask_spec.rb index f9dea17485..d0cc259949 100644 --- a/Library/Homebrew/test/cask/cask_spec.rb +++ b/Library/Homebrew/test/cask/cask_spec.rb @@ -217,21 +217,16 @@ describe Cask::Cask, :cask do end describe "#to_h" do - let(:expected_json) { File.read("#{TEST_FIXTURE_DIR}/cask/everything.json").strip } - let(:expected_json_after_ventura) do - File.read("#{TEST_FIXTURE_DIR}/cask/everything-systemsettings-caveats.json").strip - end + let(:expected_json) { (TEST_FIXTURE_DIR/"cask/everything.json").read.strip } context "when loaded from cask file" do it "returns expected hash" do + allow(MacOS).to receive(:version).and_return(MacOS::Version.new("13")) + hash = Cask::CaskLoader.load("everything").to_h expect(hash).to be_a(Hash) - if MacOS.version >= :ventura - expect(JSON.pretty_generate(hash)).to eq(expected_json_after_ventura) - else - expect(JSON.pretty_generate(hash)).to eq(expected_json) - end + expect(JSON.pretty_generate(hash)).to eq(expected_json) end end diff --git a/Library/Homebrew/test/cask/dsl/caveats_spec.rb b/Library/Homebrew/test/cask/dsl/caveats_spec.rb index a9b3919a42..9a29283c86 100644 --- a/Library/Homebrew/test/cask/dsl/caveats_spec.rb +++ b/Library/Homebrew/test/cask/dsl/caveats_spec.rb @@ -4,10 +4,31 @@ require "test/cask/dsl/shared_examples/base" describe Cask::DSL::Caveats, :cask do - let(:cask) { Cask::CaskLoader.load(cask_path("basic-cask")) } - let(:dsl) { described_class.new(cask) } + subject(:caveats) { described_class.new(cask) } + let(:cask) { Cask::CaskLoader.load(cask_path("basic-cask")) } + let(:dsl) { caveats } it_behaves_like Cask::DSL::Base # TODO: add tests for Caveats DSL methods + + describe "#kext" do + let(:cask) { instance_double(Cask::Cask) } + + it "points to System Preferences on macOS Monterey and earlier" do + allow(MacOS).to receive(:version).and_return(MacOS::Version.new("12")) + caveats.eval_caveats do + kext + end + expect(caveats.to_s).to include("System Preferences → Security & Privacy → General") + end + + it "points to System Settings on macOS Ventura and later" do + allow(MacOS).to receive(:version).and_return(MacOS::Version.new("13")) + caveats.eval_caveats do + kext + end + expect(caveats.to_s).to include("System Settings → Privacy & Security") + end + end end diff --git a/Library/Homebrew/test/support/fixtures/cask/everything-systemsettings-caveats.json b/Library/Homebrew/test/support/fixtures/cask/everything-systemsettings-caveats.json deleted file mode 100644 index 6a2c354d44..0000000000 --- a/Library/Homebrew/test/support/fixtures/cask/everything-systemsettings-caveats.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "token": "everything", - "full_token": "everything", - "tap": "homebrew/cask", - "name": [ - "Everything" - ], - "desc": "Little bit of everything", - "homepage": "https://www.everything.app/", - "url": "https://cachefly.everything.app/releases/Everything_1.2.3.zip", - "url_specs": { - "cookies": { - "ALL": "1234" - }, - "user_agent": ":fake" - }, - "appcast": null, - "version": "1.2.3", - "versions": { - }, - "installed": null, - "outdated": false, - "sha256": "c64c05bdc0be845505d6e55e69e696a7f50d40846e76155f0c85d5ff5e7bbb84", - "artifacts": [ - { - "uninstall": [ - { - "launchctl": "com.every.thing.agent", - "delete": [ - "/Library/EverythingHelperTools" - ], - "kext": "com.every.thing.driver", - "signal": [ - [ - "TERM", - "com.every.thing.controller1" - ], - [ - "TERM", - "com.every.thing.bin" - ] - ] - } - ] - }, - { - "installer": [ - { - "script": { - "executable": "~/just/another/path/install.sh", - "args": [ - "--mode=silent" - ], - "sudo": true, - "print_stderr": false - } - } - ] - }, - { - "app": [ - "Everything.app" - ] - }, - { - "zap": [ - { - "trash": [ - "~/.everything", - "~/Library/Everything" - ] - } - ] - } - ], - "caveats": "Installing everything might take a while...\n\neverything requires a kernel extension to work.\nIf the installation fails, retry after you enable it in:\n System Settings → Privacy & Security\n\nFor more information, refer to vendor documentation or this Apple Technical Note:\n https://developer.apple.com/library/content/technotes/tn2459/_index.html\n", - "depends_on": { - "cask": [ - "something" - ] - }, - "conflicts_with": { - "formula": [ - "nothing" - ] - }, - "container": { - "type": "naked" - }, - "auto_updates": true, - "tap_git_head": null, - "languages": [ - "en", - "eo" - ], - "ruby_source_path": "Casks/everything.rb", - "ruby_source_checksum": { - "sha256": "b2707d1952f02c3fa566b7ad2a707a847a959d36f51d3dee642dbe5deec12f27" - } -} diff --git a/Library/Homebrew/test/support/fixtures/cask/everything.json b/Library/Homebrew/test/support/fixtures/cask/everything.json index f69b490717..6a2c354d44 100644 --- a/Library/Homebrew/test/support/fixtures/cask/everything.json +++ b/Library/Homebrew/test/support/fixtures/cask/everything.json @@ -73,7 +73,7 @@ ] } ], - "caveats": "Installing everything might take a while...\n\neverything requires a kernel extension to work.\nIf the installation fails, retry after you enable it in:\n System Preferences → Security & Privacy → General\n\nFor more information, refer to vendor documentation or this Apple Technical Note:\n https://developer.apple.com/library/content/technotes/tn2459/_index.html\n", + "caveats": "Installing everything might take a while...\n\neverything requires a kernel extension to work.\nIf the installation fails, retry after you enable it in:\n System Settings → Privacy & Security\n\nFor more information, refer to vendor documentation or this Apple Technical Note:\n https://developer.apple.com/library/content/technotes/tn2459/_index.html\n", "depends_on": { "cask": [ "something" From a085fb4eadc3244b0a15ea5e4d71b001a7ae86a8 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Wed, 12 Apr 2023 00:05:47 +0200 Subject: [PATCH 2/2] Fix code style. Co-authored-by: Issy Long --- Library/Homebrew/test/cask/dsl/caveats_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/Library/Homebrew/test/cask/dsl/caveats_spec.rb b/Library/Homebrew/test/cask/dsl/caveats_spec.rb index 9a29283c86..6af17577f6 100644 --- a/Library/Homebrew/test/cask/dsl/caveats_spec.rb +++ b/Library/Homebrew/test/cask/dsl/caveats_spec.rb @@ -8,6 +8,7 @@ describe Cask::DSL::Caveats, :cask do let(:cask) { Cask::CaskLoader.load(cask_path("basic-cask")) } let(:dsl) { caveats } + it_behaves_like Cask::DSL::Base # TODO: add tests for Caveats DSL methods