Add tests for depends_on :cask

This commit is contained in:
ndr 2014-12-26 21:42:24 +00:00
parent c12365caba
commit 68d7901e44
7 changed files with 83 additions and 4 deletions

View File

@ -12,6 +12,28 @@ describe "Satisfy Dependencies and Requirements" do
# end
#
describe "depends_on :cask" do
it "raises an exception when depends_on :cask is cyclic" do
dep_cask = Cask.load('with-depends-on-cask-cyclic')
lambda {
shutup do
Cask::Installer.new(dep_cask).install
end
}.must_raise(CaskCyclicCaskDependencyError)
end
it "installs the dependency of a Cask and the Cask itself" do
csk = Cask.load('with-depends-on-cask')
dependency = Cask.load(csk.depends_on.cask.first)
shutup do
Cask::Installer.new(csk).install
end
csk.must_be :installed?
dependency.must_be :installed?
end
end
describe "depends_on :macos" do
it "understands depends_on :macos => <array>" do
macos_cask = Cask.load('with-depends-on-macos-array')

View File

@ -303,6 +303,18 @@ describe Cask::DSL do
end
end
describe "depends_on :cask" do
it "allows depends_on :cask to be specified" do
cask = Cask.load('with-depends-on-cask')
cask.depends_on.cask.wont_be_nil
end
it "allows multiple depends_on :cask to be specified" do
cask = Cask.load('with-depends-on-cask-multiple')
cask.depends_on.cask.wont_be_nil
end
end
describe "depends_on :macos" do
it "allows depends_on :macos to be specified" do
cask = Cask.load('with-depends-on-macos-string')

View File

@ -44,7 +44,7 @@ describe Cask::Installer do
it "works with cab-based Casks" do
skip unless HOMEBREW_PREFIX.join('bin/cabextract').exist?
cab_container = Cask.load('cab-container')
empty = stub(:formula => [], :macos => nil, :arch => nil, :x11 => nil)
empty = stub(:formula => [], :cask => [], :macos => nil, :arch => nil, :x11 => nil)
cab_container.stubs(:depends_on).returns(empty)
shutup do
@ -72,7 +72,7 @@ describe Cask::Installer do
it "works with 7z-based Casks" do
skip unless HOMEBREW_PREFIX.join('bin','unar').exist?
sevenzip_container = Cask.load('sevenzip-container')
empty = stub(:formula => [], :macos => nil, :arch => nil, :x11 => nil)
empty = stub(:formula => [], :cask => [], :macos => nil, :arch => nil, :x11 => nil)
sevenzip_container.stubs(:depends_on).returns(empty)
shutup do
@ -101,7 +101,7 @@ describe Cask::Installer do
it "works with Stuffit-based Casks" do
skip unless HOMEBREW_PREFIX.join('bin','unar').exist?
stuffit_container = Cask.load('stuffit-container')
empty = stub(:formula => [], :macos => nil, :arch => nil, :x11 => nil)
empty = stub(:formula => [], :cask => [], :macos => nil, :arch => nil, :x11 => nil)
stuffit_container.stubs(:depends_on).returns(empty)
shutup do
@ -117,7 +117,7 @@ describe Cask::Installer do
it "works with RAR-based Casks" do
skip unless HOMEBREW_PREFIX.join('bin','unar').exist?
rar_container = Cask.load('rar-container')
empty = stub(:formula => [], :macos => nil, :arch => nil, :x11 => nil)
empty = stub(:formula => [], :cask => [], :macos => nil, :arch => nil, :x11 => nil)
rar_container.stubs(:depends_on).returns(empty)
shutup do

View File

@ -0,0 +1,11 @@
cask :v1test => 'with-depends-on-cask-cyclic-helper' do
version '1.2.3'
sha256 '9203c30951f9aab41ac294bbeb1dcef7bed401ff0b353dcb34d68af32ea51853'
url TestHelper.local_binary_url('caffeine.zip')
homepage 'http://example.com/with-depends-on-cask-cyclic-helper'
depends_on :cask => 'with-depends-on-cask-cyclic'
app 'Caffeine.app'
end

View File

@ -0,0 +1,12 @@
cask :v1test => 'with-depends-on-cask-cyclic' do
version '1.2.3'
sha256 '9203c30951f9aab41ac294bbeb1dcef7bed401ff0b353dcb34d68af32ea51853'
url TestHelper.local_binary_url('caffeine.zip')
homepage 'http://example.com/with-depends-on-cask-cyclic'
depends_on :cask => 'local-caffeine'
depends_on :cask => 'with-depends-on-cask-cyclic-helper'
app 'Caffeine.app'
end

View File

@ -0,0 +1,12 @@
cask :v1test => 'with-depends-on-cask-multiple' do
version '1.2.3'
sha256 '9203c30951f9aab41ac294bbeb1dcef7bed401ff0b353dcb34d68af32ea51853'
url TestHelper.local_binary_url('caffeine.zip')
homepage 'http://example.com/with-depends-on-cask-multiple'
depends_on :cask => 'local-caffeine'
depends_on :cask => 'local-transmission'
app 'Caffeine.app'
end

View File

@ -0,0 +1,10 @@
cask :v1test => 'with-depends-on-cask' do
version '1.2.3'
sha256 '9203c30951f9aab41ac294bbeb1dcef7bed401ff0b353dcb34d68af32ea51853'
url TestHelper.local_binary_url('caffeine.zip')
homepage 'http://example.com/with-depends-on-cask'
depends_on :cask => 'local-transmission'
app 'Caffeine.app'
end