diff options
Diffstat (limited to 'Library/Homebrew/test/cask')
| -rw-r--r-- | Library/Homebrew/test/cask/audit_spec.rb | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/Library/Homebrew/test/cask/audit_spec.rb b/Library/Homebrew/test/cask/audit_spec.rb index 7e140acb2..ec051c138 100644 --- a/Library/Homebrew/test/cask/audit_spec.rb +++ b/Library/Homebrew/test/cask/audit_spec.rb @@ -91,6 +91,120 @@ describe Hbc::Audit, :cask do end end + describe "preflight stanza checks" do + let(:error_msg) { "only a single preflight stanza is allowed" } + + context "when the cask has no preflight stanza" do + let(:cask_token) { "with-zap-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has only one preflight stanza" do + let(:cask_token) { "with-preflight" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has multiple preflight stanzas" do + let(:cask_token) { "with-preflight-multi" } + it { is_expected.to warn_with(error_msg) } + end + end + + describe "uninstall_postflight stanza checks" do + let(:error_msg) { "only a single postflight stanza is allowed" } + + context "when the cask has no postflight stanza" do + let(:cask_token) { "with-zap-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has only one postflight stanza" do + let(:cask_token) { "with-postflight" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has multiple postflight stanzas" do + let(:cask_token) { "with-postflight-multi" } + it { is_expected.to warn_with(error_msg) } + end + end + + describe "uninstall stanza checks" do + let(:error_msg) { "only a single uninstall stanza is allowed" } + + context "when the cask has no uninstall stanza" do + let(:cask_token) { "with-zap-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has only one uninstall stanza" do + let(:cask_token) { "with-uninstall-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has multiple uninstall stanzas" do + let(:cask_token) { "with-uninstall-multi" } + it { is_expected.to warn_with(error_msg) } + end + end + + describe "uninstall_preflight stanza checks" do + let(:error_msg) { "only a single uninstall_preflight stanza is allowed" } + + context "when the cask has no uninstall_preflight stanza" do + let(:cask_token) { "with-zap-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has only one uninstall_preflight stanza" do + let(:cask_token) { "with-uninstall-preflight" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has multiple uninstall_preflight stanzas" do + let(:cask_token) { "with-uninstall-preflight-multi" } + it { is_expected.to warn_with(error_msg) } + end + end + + describe "uninstall_postflight stanza checks" do + let(:error_msg) { "only a single uninstall_postflight stanza is allowed" } + + context "when the cask has no uninstall_postflight stanza" do + let(:cask_token) { "with-zap-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has only one uninstall_postflight stanza" do + let(:cask_token) { "with-uninstall-postflight" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has multiple uninstall_postflight stanzas" do + let(:cask_token) { "with-uninstall-postflight-multi" } + it { is_expected.to warn_with(error_msg) } + end + end + + describe "zap stanza checks" do + let(:error_msg) { "only a single zap stanza is allowed" } + + context "when the cask has no zap stanza" do + let(:cask_token) { "with-uninstall-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has only one zap stanza" do + let(:cask_token) { "with-zap-rmdir" } + it { should_not warn_with(error_msg) } + end + + context "when the cask has multiple zap stanzas" do + let(:cask_token) { "with-zap-multi" } + it { is_expected.to warn_with(error_msg) } + end + end + describe "version checks" do let(:error_msg) { "you should use version :latest instead of version 'latest'" } |
