You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.5 KiB
85 lines
2.5 KiB
require 'test_helper'
|
|
|
|
class CaskMissingUrl < Cask
|
|
version '1.2.3'
|
|
homepage 'http://example.com'
|
|
end
|
|
|
|
class CaskMissingVersion < Cask
|
|
url 'http://localhost/something.dmg'
|
|
homepage 'http://example.com'
|
|
end
|
|
|
|
class CaskMissingHomepage < Cask
|
|
url 'http://localhost/something.dmg'
|
|
version '1.2.3'
|
|
end
|
|
|
|
class CaskSourceForgeIncorrectURLFormat < Cask
|
|
version '1.2.3'
|
|
homepage 'http://sourceforge.net/projects/something/'
|
|
url 'http://sourceforge.net/projects/something/files/Something-1.2.3.dmg/download'
|
|
end
|
|
|
|
class CaskSourceForgeCorrectURLFormat < Cask
|
|
version '1.2.3'
|
|
homepage 'http://sourceforge.net/projects/something/'
|
|
url 'http://downloads.sourceforge.net/project/something/Something-1.2.3.dmg'
|
|
end
|
|
|
|
describe Cask::Audit do
|
|
describe "result" do
|
|
it "is 'failed' if there are have been any errors added" do
|
|
audit = Cask::Audit.new(TestHelper.test_cask)
|
|
audit.add_error 'bad'
|
|
audit.add_warning 'eh'
|
|
audit.result.must_match /failed/
|
|
end
|
|
|
|
it "is 'warning' if there are no errors, but there are warnings" do
|
|
audit = Cask::Audit.new(TestHelper.test_cask)
|
|
audit.add_warning 'eh'
|
|
audit.result.must_match /warning/
|
|
end
|
|
|
|
it "is 'passed' if there are no errors or warning" do
|
|
audit = Cask::Audit.new(TestHelper.test_cask)
|
|
audit.result.must_match /passed/
|
|
end
|
|
end
|
|
|
|
describe "run!" do
|
|
describe "required fields" do
|
|
it "adds an error if url is missing" do
|
|
audit = Cask::Audit.new(CaskMissingUrl.new)
|
|
audit.run!
|
|
audit.errors.must_include 'url is required'
|
|
end
|
|
|
|
it "adds an error if version is missing" do
|
|
audit = Cask::Audit.new(CaskMissingVersion.new)
|
|
audit.run!
|
|
audit.errors.must_include 'version is required'
|
|
end
|
|
|
|
it "adds an error if homepage is missing" do
|
|
audit = Cask::Audit.new(CaskMissingHomepage.new)
|
|
audit.run!
|
|
audit.errors.must_include 'homepage is required'
|
|
end
|
|
end
|
|
describe "preferred download URL formats" do
|
|
it "adds a warning if SourceForge doesn't use download subdomain" do
|
|
warning_msg = 'SourceForge URL format incorrect. See https://github.com/phinze/homebrew-cask/pull/225#issuecomment-16536889 for details'
|
|
|
|
audit = Cask::Audit.new(CaskSourceForgeIncorrectURLFormat.new)
|
|
audit.run!
|
|
audit.warnings.must_include warning_msg
|
|
|
|
audit = Cask::Audit.new(CaskSourceForgeCorrectURLFormat.new)
|
|
audit.run!
|
|
audit.warnings.wont_include warning_msg
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|