diff --git a/test/cask/dsl_test.rb b/test/cask/dsl_test.rb index 12fcb13342..f0b3e3f382 100644 --- a/test/cask/dsl_test.rb +++ b/test/cask/dsl_test.rb @@ -33,11 +33,26 @@ describe Cask::DSL do end describe "header line" do + it "requires a valid header format" do + err = lambda { + invalid_cask = Cask.load('invalid/invalid-header-format') + }.must_raise(CaskInvalidError) + err.message.must_include 'Bad header line: parse failed' + end + + it "requires the header name to match the file name" do + err = lambda { + invalid_cask = Cask.load('invalid/invalid-header-name-mismatch') + }.must_raise(CaskInvalidError) + err.message.must_include 'Bad header line:' + err.message.must_include 'does not match file name' + end + it "requires a valid minimum DSL version in the header" do err = lambda { invalid_cask = Cask.load('invalid/invalid-header-version') }.must_raise(CaskInvalidError) - err.message.must_include 'Bad header line' + err.message.must_include 'Bad header line:' err.message.must_include 'is less than required minimum version' end end diff --git a/test/support/Casks/invalid/invalid-header-format.rb b/test/support/Casks/invalid/invalid-header-format.rb new file mode 100644 index 0000000000..ee0aeb9251 --- /dev/null +++ b/test/support/Casks/invalid/invalid-header-format.rb @@ -0,0 +1,9 @@ +cask :v1test => => 'invalid-header-format' do + version '1.2.3' + sha256 '9203c30951f9aab41ac294bbeb1dcef7bed401ff0b353dcb34d68af32ea51853' + + url TestHelper.local_binary_url('caffeine.zip') + homepage 'http://example.com/local-caffeine' + + app 'Caffeine.app' +end diff --git a/test/support/Casks/invalid/invalid-header-name-mismatch.rb b/test/support/Casks/invalid/invalid-header-name-mismatch.rb new file mode 100644 index 0000000000..375eb2110f --- /dev/null +++ b/test/support/Casks/invalid/invalid-header-name-mismatch.rb @@ -0,0 +1,9 @@ +cask :v1test => 'invalid-header-name-mismatch-this-text-does-not-belong' do + version '1.2.3' + sha256 '9203c30951f9aab41ac294bbeb1dcef7bed401ff0b353dcb34d68af32ea51853' + + url TestHelper.local_binary_url('caffeine.zip') + homepage 'http://example.com/local-caffeine' + + app 'Caffeine.app' +end