mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Merge RubyGems 3.0.0 from upstream.
https://blog.rubygems.org/2018/12/19/3.0.0-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b0f6781e2f
commit
92e726628e
6 changed files with 28 additions and 7 deletions
|
@ -9,7 +9,7 @@
|
||||||
require 'rbconfig'
|
require 'rbconfig'
|
||||||
|
|
||||||
module Gem
|
module Gem
|
||||||
VERSION = "3.0.0.beta3".freeze
|
VERSION = "3.0.0".freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
# Must be first since it unloads the prelude from 1.9.2
|
# Must be first since it unloads the prelude from 1.9.2
|
||||||
|
|
|
@ -45,6 +45,7 @@ class Gem::Request
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.configure_connection_for_https(connection, cert_files)
|
def self.configure_connection_for_https(connection, cert_files)
|
||||||
|
require 'net/https'
|
||||||
connection.use_ssl = true
|
connection.use_ssl = true
|
||||||
connection.verify_mode =
|
connection.verify_mode =
|
||||||
Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
|
Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
require 'rubygems/test_case'
|
require 'rubygems/test_case'
|
||||||
require 'net/http'
|
require 'net/https'
|
||||||
require 'rubygems/request'
|
require 'rubygems/request'
|
||||||
|
|
||||||
# = Testing Bundled CA
|
# = Testing Bundled CA
|
||||||
|
|
|
@ -5,6 +5,7 @@ require 'rubygems/command'
|
||||||
require 'rubygems/installer'
|
require 'rubygems/installer'
|
||||||
require 'pathname'
|
require 'pathname'
|
||||||
require 'tmpdir'
|
require 'tmpdir'
|
||||||
|
require 'rbconfig'
|
||||||
|
|
||||||
# TODO: push this up to test_case.rb once battle tested
|
# TODO: push this up to test_case.rb once battle tested
|
||||||
|
|
||||||
|
@ -13,6 +14,7 @@ $LOAD_PATH.map! do |path|
|
||||||
end
|
end
|
||||||
|
|
||||||
class TestGem < Gem::TestCase
|
class TestGem < Gem::TestCase
|
||||||
|
RUBY_INSTALL_NAME = RbConfig::CONFIG['RUBY_INSTALL_NAME']
|
||||||
|
|
||||||
PLUGINS_LOADED = [] # rubocop:disable Style/MutableConstant
|
PLUGINS_LOADED = [] # rubocop:disable Style/MutableConstant
|
||||||
|
|
||||||
|
@ -181,7 +183,7 @@ class TestGem < Gem::TestCase
|
||||||
dir_mode = (options[:dir_mode] & mask).to_s(8)
|
dir_mode = (options[:dir_mode] & mask).to_s(8)
|
||||||
data_mode = (options[:data_mode] & mask).to_s(8)
|
data_mode = (options[:data_mode] & mask).to_s(8)
|
||||||
expected = {
|
expected = {
|
||||||
'bin/foo.cmd' => prog_mode,
|
"bin/#{RUBY_INSTALL_NAME.sub('ruby', 'foo.cmd')}" => prog_mode,
|
||||||
'gems/foo-1' => dir_mode,
|
'gems/foo-1' => dir_mode,
|
||||||
'gems/foo-1/bin' => dir_mode,
|
'gems/foo-1/bin' => dir_mode,
|
||||||
'gems/foo-1/data' => dir_mode,
|
'gems/foo-1/data' => dir_mode,
|
||||||
|
|
|
@ -113,9 +113,11 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
||||||
@cmd.options[:env_shebang] = true
|
@cmd.options[:env_shebang] = true
|
||||||
@cmd.execute
|
@cmd.execute
|
||||||
|
|
||||||
default_gem_bin_path = File.join @install_dir, 'bin', 'gem'
|
gem_exec = sprintf Gem.default_exec_format, 'gem'
|
||||||
|
default_gem_bin_path = File.join @install_dir, 'bin', gem_exec
|
||||||
if Gem::USE_BUNDLER_FOR_GEMDEPS
|
if Gem::USE_BUNDLER_FOR_GEMDEPS
|
||||||
default_bundle_bin_path = File.join @install_dir, 'bin', 'bundle'
|
bundle_exec = sprintf Gem.default_exec_format, 'bundle'
|
||||||
|
default_bundle_bin_path = File.join @install_dir, 'bin', bundle_exec
|
||||||
end
|
end
|
||||||
|
|
||||||
ruby_exec = sprintf Gem.default_exec_format, 'ruby'
|
ruby_exec = sprintf Gem.default_exec_format, 'ruby'
|
||||||
|
|
|
@ -835,10 +835,26 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg==
|
||||||
|
|
||||||
def test_do_not_follow_insecure_redirect
|
def test_do_not_follow_insecure_redirect
|
||||||
ssl_server = self.class.start_ssl_server
|
ssl_server = self.class.start_ssl_server
|
||||||
temp_ca_cert = File.join(DIR, 'ca_cert.pem'),
|
temp_ca_cert = File.join(DIR, 'ca_cert.pem')
|
||||||
|
expected_error_message =
|
||||||
|
"redirecting to non-https resource: #{@server_uri} (https://localhost:#{ssl_server.config[:Port]}/insecure_redirect?to=#{@server_uri})"
|
||||||
|
|
||||||
|
with_configured_fetcher(":ssl_ca_cert: #{temp_ca_cert}") do |fetcher|
|
||||||
|
err = assert_raises Gem::RemoteFetcher::FetchError do
|
||||||
|
fetcher.fetch_path("https://localhost:#{ssl_server.config[:Port]}/insecure_redirect?to=#{@server_uri}")
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_equal(err.message, expected_error_message)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_nil_ca_cert
|
||||||
|
ssl_server = self.class.start_ssl_server
|
||||||
|
temp_ca_cert = nil
|
||||||
|
|
||||||
with_configured_fetcher(":ssl_ca_cert: #{temp_ca_cert}") do |fetcher|
|
with_configured_fetcher(":ssl_ca_cert: #{temp_ca_cert}") do |fetcher|
|
||||||
assert_raises Gem::RemoteFetcher::FetchError do
|
assert_raises Gem::RemoteFetcher::FetchError do
|
||||||
fetcher.fetch_path("https://localhost:#{ssl_server.config[:Port]}/insecure_redirect?to=#{@server_uri}")
|
fetcher.fetch_path("https://localhost:#{ssl_server.config[:Port]}")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue