summaryrefslogtreecommitdiff
path: root/spec/functional/http/simple_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/functional/http/simple_spec.rb')
-rw-r--r--spec/functional/http/simple_spec.rb140
1 files changed, 0 insertions, 140 deletions
diff --git a/spec/functional/http/simple_spec.rb b/spec/functional/http/simple_spec.rb
deleted file mode 100644
index fec71351df..0000000000
--- a/spec/functional/http/simple_spec.rb
+++ /dev/null
@@ -1,140 +0,0 @@
-#
-# Author:: Lamont Granquist (<lamont@getchef.com>)
-# Copyright:: Copyright (c) 2014 Chef Software, Inc.
-# 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 'spec_helper'
-require 'tiny_server'
-require 'support/shared/functional/http'
-
-describe Chef::HTTP::Simple do
- include ChefHTTPShared
-
- let(:http_client) { described_class.new(source) }
- let(:http_client_disable_gzip) { described_class.new(source, { :disable_gzip => true } ) }
-
- before(:all) do
- start_tiny_server
- end
-
- after(:all) do
- stop_tiny_server
- end
-
- shared_examples_for "downloads requests correctly" do
- it "successfully downloads a streaming request" do
- tempfile = http_client.streaming_request(source, {})
- tempfile.close
- expect(Digest::MD5.hexdigest(binread(tempfile.path))).to eq(Digest::MD5.hexdigest(expected_content))
- end
- it "successfully does a non-streaming GET request" do
- expect(Digest::MD5.hexdigest(http_client.get(source))).to eq(Digest::MD5.hexdigest(expected_content))
- end
- end
-
- shared_examples_for "validates content length and throws an exception" do
- it "successfully downloads a streaming request" do
- expect { http_client.streaming_request(source) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
- end
- it "successfully does a non-streaming GET request" do
- expect { http_client.get(source) }.to raise_error(Chef::Exceptions::ContentLengthMismatch)
- end
- end
-
- shared_examples_for "an endpoint that 403s" do
- it "fails with a Net::HTTPServerException for a streaming request" do
- expect { http_client.streaming_request(source) }.to raise_error(Net::HTTPServerException)
- end
-
- it "fails with a Net::HTTPServerException for a GET request" do
- expect { http_client.get(source) }.to raise_error(Net::HTTPServerException)
- end
- end
-
- # see CHEF-5100
- shared_examples_for "a 403 after a successful request when reusing the request object" do
- it "fails with a Net::HTTPServerException for a streaming request" do
- tempfile = http_client.streaming_request(source)
- tempfile.close
- expect(Digest::MD5.hexdigest(binread(tempfile.path))).to eq(Digest::MD5.hexdigest(expected_content))
- expect { http_client.streaming_request(source2) }.to raise_error(Net::HTTPServerException)
- end
-
- it "fails with a Net::HTTPServerException for a GET request" do
- expect(Digest::MD5.hexdigest(http_client.get(source))).to eq(Digest::MD5.hexdigest(expected_content))
- expect { http_client.get(source2) }.to raise_error(Net::HTTPServerException)
- end
- end
-
- it_behaves_like "downloading all the things"
-
- context "when Chef::Log.level = :debug" do
- before do
- Chef::Log.level = :debug
- @debug_log = ''
- Chef::Log.stub(:debug) { |str| @debug_log << str }
- end
-
- let(:source) { 'http://localhost:9000' }
-
- it "Logs the request and response for 200's but not the body" do
- http_client.get('http://localhost:9000/nyan_cat.png')
- expect(@debug_log).to match(/200/)
- expect(@debug_log).to match(/HTTP Request Header Data/)
- expect(@debug_log).to match(/HTTP Status and Header Data/)
- expect(@debug_log).not_to match(/HTTP Request Body/)
- expect(@debug_log).not_to match(/HTTP Response Body/)
- expect(@debug_log).not_to match(/Your request is just terrible./)
- end
-
- it "Logs the request and response for 200 POST, but not the body" do
- http_client.post('http://localhost:9000/posty', 'hithere')
- expect(@debug_log).to match(/200/)
- expect(@debug_log).to match(/HTTP Request Header Data/)
- expect(@debug_log).to match(/HTTP Status and Header Data/)
- expect(@debug_log).not_to match(/HTTP Request Body/)
- expect(@debug_log).not_to match(/hithere/)
- expect(@debug_log).not_to match(/HTTP Response Body/)
- expect(@debug_log).not_to match(/Your request is just terrible./)
- end
-
- it "Logs the request and response and bodies for 400 response" do
- expect do
- http_client.get('http://localhost:9000/bad_request')
- end.to raise_error(Net::HTTPServerException)
- expect(@debug_log).to match(/400/)
- expect(@debug_log).to match(/HTTP Request Header Data/)
- expect(@debug_log).to match(/HTTP Status and Header Data/)
- expect(@debug_log).not_to match(/HTTP Request Body/)
- expect(@debug_log).not_to match(/hithere/)
- expect(@debug_log).to match(/HTTP Response Body/)
- expect(@debug_log).to match(/Your request is just terrible./)
- end
-
- it "Logs the request and response and bodies for 400 POST response" do
- expect do
- http_client.post('http://localhost:9000/bad_request', 'hithere')
- end.to raise_error(Net::HTTPServerException)
- expect(@debug_log).to match(/400/)
- expect(@debug_log).to match(/HTTP Request Header Data/)
- expect(@debug_log).to match(/HTTP Status and Header Data/)
- expect(@debug_log).to match(/HTTP Request Body/)
- expect(@debug_log).to match(/hithere/)
- expect(@debug_log).to match(/HTTP Response Body/)
- expect(@debug_log).to match(/Your request is just terrible./)
- end
- end
-end