summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_remote_fetcher.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_remote_fetcher.rb')
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb18
1 files changed, 17 insertions, 1 deletions
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb
index cf1b27d547..ca62a8342e 100644
--- a/test/rubygems/test_gem_remote_fetcher.rb
+++ b/test/rubygems/test_gem_remote_fetcher.rb
@@ -687,6 +687,23 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
assert_equal "too many redirects (#{url})", e.message
end
+ def test_fetch_http_redirects_without_location
+ fetcher = Gem::RemoteFetcher.new nil
+ @fetcher = fetcher
+ url = 'http://gems.example.com/redirect'
+
+ def fetcher.request(uri, request_class, last_modified = nil)
+ res = Net::HTTPMovedPermanently.new nil, 301, nil
+ res
+ end
+
+ e = assert_raises Gem::RemoteFetcher::FetchError do
+ fetcher.fetch_http URI.parse(url)
+ end
+
+ assert_equal "redirecting but no redirect location was given (#{url})", e.message
+ end
+
def test_fetch_http_with_additional_headers
ENV["http_proxy"] = @proxy_uri
ENV["no_proxy"] = URI::parse(@server_uri).host
@@ -1036,4 +1053,3 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
end
end
-