Browse Source

brew cask audit will now throw a warning for any formula hosted on SourceForge that doesn't use desired URL format

Vince Cima 12 years ago
parent
commit
3f35ac095e
  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!
_check_required_fields
_check_checksums
_check_sourceforge_download_url_format
return if errors?
end
@ -29,4 +30,12 @@ class Cask::Audit
return if cask.sums == 0
add_error "could not find checksum or no_checksum" unless cask.sums.is_a?(Array) && cask.sums.length > 0
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

24
test/cask/audit_test.rb

@ -15,6 +15,18 @@ class CaskMissingHomepage < Cask
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
@ -56,6 +68,18 @@ describe Cask::Audit do
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

Loading…
Cancel
Save