cask: audit locales

This commit is contained in:
Sean Molenaar 2020-06-04 23:37:54 +02:00
parent d64afece81
commit 523c24684d
No known key found for this signature in database
GPG Key ID: 6BF5D8DF0D34FAAE
2 changed files with 58 additions and 0 deletions

View File

@ -41,6 +41,7 @@ module Cask
check_token_valid
check_token_bad_words
check_token_conflicts
check_languages
check_download
check_https_availability
check_single_pre_postflight
@ -277,6 +278,17 @@ module Cask
end
end
def check_languages
invalid = []
@cask.languages.each do |language|
invalid << language.to_s unless language.match?(/^[a-z]{2}$/) || language.match?(/^[a-z]{2}-[A-Z]{2}$/)
end
return if invalid.empty?
add_error "locale #{invalid.join(", ")} are invalid"
end
def check_token_conflicts
return unless @token_conflicts
return unless core_formula_names.include?(cask.token)

View File

@ -275,6 +275,52 @@ describe Cask::Audit, :cask do
end
end
describe "locale validation" do
let(:strict) { true }
let(:cask) do
tmp_cask "locale-cask-test", <<~RUBY
cask 'locale-cask-test' do
version '1.0'
url "https://brew.sh/"
name 'Audit'
homepage 'https://brew.sh/'
app 'Audit.app'
language 'en', default: true do
sha256 '96574251b885c12b48a3495e843e434f9174e02bb83121b578e17d9dbebf1ffb'
'zh-CN'
end
language 'zh-CN' do
sha256 '96574251b885c12b48a3495e843e434f9174e02bb83121b578e17d9dbebf1ffb'
'zh-CN'
end
language 'ZH-CN' do
sha256 '96574251b885c12b48a3495e843e434f9174e02bb83121b578e17d9dbebf1ffb'
'zh-CN'
end
language 'zh-' do
sha256 '96574251b885c12b48a3495e843e434f9174e02bb83121b578e17d9dbebf1ffb'
'zh-CN'
end
language 'zh-cn' do
sha256 '96574251b885c12b48a3495e843e434f9174e02bb83121b578e17d9dbebf1ffb'
'zh-CN'
end
end
RUBY
end
context "when cask locale is invalid" do
it "error with invalid locale" do
expect(subject).to fail_with(/locale ZH-CN, zh-, zh-cn are invalid/)
end
end
end
describe "pkg allow_untrusted checks" do
let(:warning_msg) { "allow_untrusted is not permitted in official Homebrew Cask taps" }