summaryrefslogtreecommitdiff
path: root/spec/unit/knife/cookbook_site_download_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/knife/cookbook_site_download_spec.rb')
-rw-r--r--spec/unit/knife/cookbook_site_download_spec.rb151
1 files changed, 0 insertions, 151 deletions
diff --git a/spec/unit/knife/cookbook_site_download_spec.rb b/spec/unit/knife/cookbook_site_download_spec.rb
deleted file mode 100644
index 76ce6508d7..0000000000
--- a/spec/unit/knife/cookbook_site_download_spec.rb
+++ /dev/null
@@ -1,151 +0,0 @@
-#
-# Author:: Thomas Bishop (<bishop.thomas@gmail.com>)
-# Copyright:: Copyright (c) 2012 Thomas Bishop
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
-
-describe Chef::Knife::CookbookSiteDownload do
-
- describe 'run' do
- before do
- @knife = Chef::Knife::CookbookSiteDownload.new
- @knife.name_args = ['apache2']
- @noauth_rest = double('no auth rest')
- @stderr = StringIO.new
- @cookbook_api_url = 'https://supermarket.getchef.com/api/v1/cookbooks'
- @version = '1.0.2'
- @version_us = @version.gsub '.', '_'
- @current_data = { 'deprecated' => false,
- 'latest_version' => "#{@cookbook_api_url}/apache2/versions/#{@version_us}",
- 'replacement' => 'other_apache2' }
-
- @knife.ui.stub(:stderr).and_return(@stderr)
- @knife.stub(:noauth_rest).and_return(@noauth_rest)
- @noauth_rest.should_receive(:get_rest).
- with("#{@cookbook_api_url}/apache2").
- and_return(@current_data)
- end
-
- context 'when the cookbook is deprecated and not forced' do
- before do
- @current_data['deprecated'] = true
- end
-
- it 'should warn with info about the replacement' do
- @knife.ui.should_receive(:warn).
- with(/.+deprecated.+replaced by other_apache2.+/i)
- @knife.ui.should_receive(:warn).
- with(/use --force.+download.+/i)
- @knife.run
- end
- end
-
- context 'when' do
- before do
- @cookbook_data = { 'version' => @version,
- 'file' => "http://example.com/apache2_#{@version_us}.tgz" }
- @temp_file = double( :path => "/tmp/apache2_#{@version_us}.tgz" )
- @file = File.join(Dir.pwd, "apache2-#{@version}.tar.gz")
-
- @noauth_rest.should_receive(:sign_on_redirect=).with(false)
- end
-
- context 'downloading the latest version' do
- before do
- @noauth_rest.should_receive(:get_rest).
- with(@current_data['latest_version']).
- and_return(@cookbook_data)
- @noauth_rest.should_receive(:get_rest).
- with(@cookbook_data['file'], true).
- and_return(@temp_file)
- end
-
- context 'and it is deprecated and with --force' do
- before do
- @current_data['deprecated'] = true
- @knife.config[:force] = true
- end
-
- it 'should download the latest version' do
- @knife.ui.should_receive(:warn).
- with(/.+deprecated.+replaced by other_apache2.+/i)
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
- @knife.run
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
- end
-
- end
-
- it 'should download the latest version' do
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
- @knife.run
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
- end
-
- context 'with -f or --file' do
- before do
- @file = '/opt/chef/cookbooks/apache2.tar.gz'
- @knife.config[:file] = @file
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
- end
-
- it 'should download the cookbook to the desired file' do
- @knife.run
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
- end
- end
-
- it 'should provide an accessor to the version' do
- FileUtils.stub(:cp).and_return(true)
- @knife.version.should == @version
- @knife.run
- end
- end
-
- context 'downloading a cookbook of a specific version' do
- before do
- @version = '1.0.1'
- @version_us = @version.gsub '.', '_'
- @cookbook_data = { 'version' => @version,
- 'file' => "http://example.com/apache2_#{@version_us}.tgz" }
- @temp_file = double(:path => "/tmp/apache2_#{@version_us}.tgz")
- @file = File.join(Dir.pwd, "apache2-#{@version}.tar.gz")
- @knife.name_args << @version
- end
-
- it 'should download the desired version' do
- @noauth_rest.should_receive(:get_rest).
- with("#{@cookbook_api_url}/apache2/versions/#{@version_us}").
- and_return(@cookbook_data)
- @noauth_rest.should_receive(:get_rest).
- with(@cookbook_data['file'], true).
- and_return(@temp_file)
- FileUtils.should_receive(:cp).with(@temp_file.path, @file)
- @knife.run
- @stderr.string.should match /downloading apache2.+version.+#{Regexp.escape(@version)}/i
- @stderr.string.should match /cookbook save.+#{Regexp.escape(@file)}/i
- end
- end
-
- end
-
- end
-
-end