Browse Source

Merge pull request #235 from vincecima/add-sourceforge-url-format-audit

brew cask audit will now throw a warning for any formula hosted on Sourc...
Paul Hinze 12 years ago
parent
commit
fcf2f5fe35
  1. 9
      lib/cask/audit.rb
  2. 24
      test/cask/audit_test.rb

9
lib/cask/audit.rb

@ -12,6 +12,7 @@ class Cask::Audit
def run! def run!
_check_required_fields _check_required_fields
_check_checksums _check_checksums
_check_sourceforge_download_url_format
return if errors? return if errors?
end end
@ -29,4 +30,12 @@ class Cask::Audit
return if cask.sums == 0 return if cask.sums == 0
add_error "could not find checksum or no_checksum" unless cask.sums.is_a?(Array) && cask.sums.length > 0 add_error "could not find checksum or no_checksum" unless cask.sums.is_a?(Array) && cask.sums.length > 0
end end
def _check_sourceforge_download_url_format
if cask.url.to_s.match(/\S*sourceforge\.\S*\/\S*/i)
unless cask.url.to_s.match(/\S*downloads.sourceforge.net\/\S+/i)
add_warning "SourceForge URL format incorrect. See https://github.com/phinze/homebrew-cask/pull/225#issuecomment-16536889 for details"
end
end
end
end end

24
test/cask/audit_test.rb

@ -15,6 +15,18 @@ class CaskMissingHomepage < Cask
version '1.2.3' version '1.2.3'
end 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 Cask::Audit do
describe "result" do describe "result" do
it "is 'failed' if there are have been any errors added" do it "is 'failed' if there are have been any errors added" do
@ -56,6 +68,18 @@ describe Cask::Audit do
audit.errors.must_include 'homepage is required' audit.errors.must_include 'homepage is required'
end end
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
end end

Loading…
Cancel
Save