diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-07 22:48:35 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-07 22:48:35 +0000 |
commit | a75922010fe38f48c08c744456dd92cb755e1119 (patch) | |
tree | 36ee742632d66f25f7a5bd84d76a4ed3a875f2b7 /test | |
parent | 45bcf5d46f19a8b5c26a89eef91e875eb6d05062 (diff) | |
download | ruby-a75922010fe38f48c08c744456dd92cb755e1119.tar.gz |
* lib/rubygems/package/old.rb: Disallow installation of old-format
gems when a security policy is active.
* test/rubygems/test_gem_package_old.rb: Test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/rubygems/test_gem_package_old.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_package_old.rb b/test/rubygems/test_gem_package_old.rb index 20d9837a83..e0884348e5 100644 --- a/test/rubygems/test_gem_package_old.rb +++ b/test/rubygems/test_gem_package_old.rb @@ -18,6 +18,14 @@ class TestGemPackageOld < Gem::TestCase assert_equal %w[lib/foo.rb lib/test.rb lib/test/wow.rb], @package.contents end + def test_contents_security_policy + @package.security_policy = Gem::Security::AlmostNoSecurity + + assert_raises Gem::Security::Exception do + @package.contents + end + end + def test_extract_files @package.extract_files @destination @@ -29,9 +37,43 @@ class TestGemPackageOld < Gem::TestCase assert_equal mask, File.stat(extracted).mode unless win_platform? end + def test_extract_files_security_policy + @package.security_policy = Gem::Security::AlmostNoSecurity + + assert_raises Gem::Security::Exception do + @package.extract_files @destination + end + end + def test_spec assert_equal 'testing', @package.spec.name end + def test_spec_security_policy + @package.security_policy = Gem::Security::AlmostNoSecurity + + assert_raises Gem::Security::Exception do + @package.spec + end + end + + def test_verify + assert @package.verify + + @package.security_policy = Gem::Security::NoSecurity + + assert @package.verify + + @package.security_policy = Gem::Security::AlmostNoSecurity + + e = assert_raises Gem::Security::Exception do + @package.verify + end + + assert_equal 'old format gems do not contain signatures ' + + 'and cannot be verified', + e.message + end + end |