diff --git a/Library/Homebrew/test/cask/cask_spec.rb b/Library/Homebrew/test/cask/cask_spec.rb index f9dea17485157..d0cc259949982 100644 --- a/Library/Homebrew/test/cask/cask_spec.rb +++ b/Library/Homebrew/test/cask/cask_spec.rb @@ -217,21 +217,16 @@ 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 a9b3919a42fd2..6af17577f691f 100644 --- a/Library/Homebrew/test/cask/dsl/caveats_spec.rb +++ b/Library/Homebrew/test/cask/dsl/caveats_spec.rb @@ -4,10 +4,32 @@ require "test/cask/dsl/shared_examples/base" describe Cask::DSL::Caveats, :cask do + subject(:caveats) { described_class.new(cask) } + let(:cask) { Cask::CaskLoader.load(cask_path("basic-cask")) } - let(:dsl) { described_class.new(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 6a2c354d44a16..0000000000000 --- 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 f69b490717ae9..6a2c354d44a16 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"