diff --git a/lib/cask/cli/linkapps.rb b/lib/cask/cli/linkapps.rb index b7dda4430..0fcc402ee 100644 --- a/lib/cask/cli/linkapps.rb +++ b/lib/cask/cli/linkapps.rb @@ -1,8 +1,9 @@ class Cask::CLI::Linkapps def self.run(*arguments) - Cask.installed.map { |app| + casks_to_link = arguments.empty? ? Cask.installed : arguments + casks_to_link.each do |app| Cask.load(app).linkapps - } + end end def self.help diff --git a/test/cli/linkapps_test.rb b/test/cli/linkapps_test.rb new file mode 100644 index 000000000..3e2cf1569 --- /dev/null +++ b/test/cli/linkapps_test.rb @@ -0,0 +1,24 @@ +require 'test_helper' + +describe Cask::CLI::Linkapps do + it "only links casks provided in arguments" do + mock_cask = mock() + mock_cask.expects(:linkapps).twice + Cask.expects(:load).with('adium').returns(mock_cask) + + Cask.expects(:load).with('google-chrome').returns(mock_cask) + Cask::CLI::Linkapps.run('adium', 'google-chrome') + end + + it "links all installed casks when no arguments supplied" do + mock_cask = mock() + mock_cask.expects(:linkapps).times(3) + + Cask.expects(:installed).returns(['foo', 'bar', 'baz']) + Cask.expects(:load).with('foo').returns(mock_cask) + Cask.expects(:load).with('bar').returns(mock_cask) + Cask.expects(:load).with('baz').returns(mock_cask) + + Cask::CLI::Linkapps.run + end +end