aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem_package.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-13 19:58:57 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-13 19:58:57 +0000
commit1daa0b113d853bfa57b776cc569939b61ca14292 (patch)
treef8c4acb08a551820299dff2b13966d6ac38d31e4 /test/rubygems/test_gem_package.rb
parent85995e88d49c442b5b113c2676456133e79f5c02 (diff)
downloadruby-1daa0b113d853bfa57b776cc569939b61ca14292.tar.gz
* lib/rubygems: Update to RubyGems 2.1.3
Fixed installing platform gems Restored concurrent requires Fixed installing gems with extensions with --install-dir Fixed `gem fetch -v` to install the latest version Fixed installing gems with "./" in their files entries * test/rubygems/test_gem_package.rb: Tests for the above. * NEWS: Updated for RubyGems 2.1.3 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_package.rb')
-rw-r--r--test/rubygems/test_gem_package.rb134
1 files changed, 6 insertions, 128 deletions
diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb
index af5319a150..c77fc47ada 100644
--- a/test/rubygems/test_gem_package.rb
+++ b/test/rubygems/test_gem_package.rb
@@ -87,19 +87,16 @@ class TestGemPackage < Gem::Package::TarTestCase
metadata_sha512 = Digest::SHA512.hexdigest s.string
expected = {
+ 'SHA1' => {
+ 'metadata.gz' => metadata_sha1,
+ 'data.tar.gz' => Digest::SHA1.hexdigest(tar),
+ },
'SHA512' => {
'metadata.gz' => metadata_sha512,
'data.tar.gz' => Digest::SHA512.hexdigest(tar),
}
}
- if defined?(OpenSSL::Digest) then
- expected['SHA1'] = {
- 'metadata.gz' => metadata_sha1,
- 'data.tar.gz' => Digest::SHA1.hexdigest(tar),
- }
- end
-
assert_equal expected, YAML.load(checksums)
end
@@ -163,57 +160,12 @@ class TestGemPackage < Gem::Package::TarTestCase
end
def test_build_auto_signed
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
-
FileUtils.mkdir_p File.join(Gem.user_home, '.gem')
private_key_path = File.join Gem.user_home, '.gem', 'gem-private_key.pem'
Gem::Security.write PRIVATE_KEY, private_key_path
public_cert_path = File.join Gem.user_home, '.gem', 'gem-public_cert.pem'
- FileUtils.cp PUBLIC_CERT_PATH, public_cert_path
-
- spec = Gem::Specification.new 'build', '1'
- spec.summary = 'build'
- spec.authors = 'build'
- spec.files = ['lib/code.rb']
-
- FileUtils.mkdir 'lib'
-
- open 'lib/code.rb', 'w' do |io|
- io.write '# lib/code.rb'
- end
-
- package = Gem::Package.new spec.file_name
- package.spec = spec
-
- package.build
-
- assert_equal Gem::VERSION, spec.rubygems_version
- assert_path_exists spec.file_name
-
- reader = Gem::Package.new spec.file_name
- assert reader.verify
-
- assert_equal [PUBLIC_CERT.to_pem], reader.spec.cert_chain
-
- assert_equal %w[metadata.gz metadata.gz.sig
- data.tar.gz data.tar.gz.sig
- checksums.yaml.gz checksums.yaml.gz.sig],
- reader.files
-
- assert_equal %w[lib/code.rb], reader.contents
- end
-
- def test_build_auto_signed_encrypted_key
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
-
- FileUtils.mkdir_p File.join(Gem.user_home, '.gem')
-
- private_key_path = File.join Gem.user_home, '.gem', 'gem-private_key.pem'
- FileUtils.cp ENCRYPTED_PRIVATE_KEY_PATH, private_key_path
-
- public_cert_path = File.join Gem.user_home, '.gem', 'gem-public_cert.pem'
Gem::Security.write PUBLIC_CERT, public_cert_path
spec = Gem::Specification.new 'build', '1'
@@ -262,8 +214,6 @@ class TestGemPackage < Gem::Package::TarTestCase
end
def test_build_signed
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
-
spec = Gem::Specification.new 'build', '1'
spec.summary = 'build'
spec.authors = 'build'
@@ -298,43 +248,6 @@ class TestGemPackage < Gem::Package::TarTestCase
assert_equal %w[lib/code.rb], reader.contents
end
- def test_build_signed_encryped_key
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
-
- spec = Gem::Specification.new 'build', '1'
- spec.summary = 'build'
- spec.authors = 'build'
- spec.files = ['lib/code.rb']
- spec.cert_chain = [PUBLIC_CERT.to_pem]
- spec.signing_key = ENCRYPTED_PRIVATE_KEY
-
- FileUtils.mkdir 'lib'
-
- open 'lib/code.rb', 'w' do |io|
- io.write '# lib/code.rb'
- end
-
- package = Gem::Package.new spec.file_name
- package.spec = spec
-
- package.build
-
- assert_equal Gem::VERSION, spec.rubygems_version
- assert_path_exists spec.file_name
-
- reader = Gem::Package.new spec.file_name
- assert reader.verify
-
- assert_equal spec, reader.spec
-
- assert_equal %w[metadata.gz metadata.gz.sig
- data.tar.gz data.tar.gz.sig
- checksums.yaml.gz checksums.yaml.gz.sig],
- reader.files
-
- assert_equal %w[lib/code.rb], reader.contents
- end
-
def test_contents
package = Gem::Package.new @gem
@@ -396,19 +309,6 @@ class TestGemPackage < Gem::Package::TarTestCase
"#{@destination} is not allowed", e.message)
end
- def test_extract_tar_gz_dot_slash
- package = Gem::Package.new @gem
-
- tgz_io = util_tar_gz do |tar|
- tar.add_file './dot_slash.rb', 0644 do |io| io.write 'hi' end
- end
-
- package.extract_tar_gz tgz_io, @destination
-
- extracted = File.join @destination, 'dot_slash.rb'
- assert_path_exists extracted
- end
-
def test_install_location
package = Gem::Package.new @gem
@@ -544,7 +444,7 @@ class TestGemPackage < Gem::Package::TarTestCase
io.write metadata_gz
end
- digest = Digest::SHA1.new
+ digest = OpenSSL::Digest::SHA1.new
digest << metadata_gz
checksums = {
@@ -576,8 +476,7 @@ class TestGemPackage < Gem::Package::TarTestCase
def test_verify_corrupt
Tempfile.open 'corrupt' do |io|
data = Gem.gzip 'a' * 10
- io.write \
- tar_file_header('metadata.gz', "\000x", 0644, data.length, Time.now)
+ io.write tar_file_header('metadata.gz', "\000x", 0644, data.length)
io.write data
io.rewind
@@ -616,8 +515,6 @@ class TestGemPackage < Gem::Package::TarTestCase
end
def test_verify_security_policy
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
-
package = Gem::Package.new @gem
package.security_policy = Gem::Security::HighSecurity
@@ -633,8 +530,6 @@ class TestGemPackage < Gem::Package::TarTestCase
end
def test_verify_security_policy_low_security
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
-
@spec.cert_chain = [PUBLIC_CERT.to_pem]
@spec.signing_key = PRIVATE_KEY
@@ -653,8 +548,6 @@ class TestGemPackage < Gem::Package::TarTestCase
end
def test_verify_security_policy_checksum_missing
- skip 'openssl is missing' unless defined?(OpenSSL::SSL)
-
@spec.cert_chain = [PUBLIC_CERT.to_pem]
@spec.signing_key = PRIVATE_KEY
@@ -710,21 +603,6 @@ class TestGemPackage < Gem::Package::TarTestCase
e.message
end
- # end #verify tests
-
- def test_verify_entry
- entry = Object.new
- def entry.full_name() raise ArgumentError, 'whatever' end
-
- package = Gem::Package.new @gem
-
- e = assert_raises Gem::Package::FormatError do
- package.verify_entry entry
- end
-
- assert_equal "package is corrupt, exception while verifying: whatever (ArgumentError) in #{@gem}", e.message
- end
-
def test_spec
package = Gem::Package.new @gem