summaryrefslogtreecommitdiff
path: root/test/rubygems
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-25 00:53:19 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-25 00:53:19 +0000
commit8eb39185810a59ad8d3aa874ba8f6c9a7b0949ac (patch)
tree790b26abda56b06c1d25a7a0036d882c32df7609 /test/rubygems
parent61f3a787f6f12c794299871d5739cfdfa01ec617 (diff)
* lib/rubygems: Fix CVE-2013-4363. Miscellaneous minor improvements.
* test/rubygems: Tests for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems')
-rw-r--r--test/rubygems/test_gem_requirement.rb20
-rw-r--r--test/rubygems/test_gem_specification.rb20
-rw-r--r--test/rubygems/test_gem_version.rb11
3 files changed, 36 insertions, 15 deletions
diff --git a/test/rubygems/test_gem_requirement.rb b/test/rubygems/test_gem_requirement.rb
index 1de0f41f20..01db08e84f 100644
--- a/test/rubygems/test_gem_requirement.rb
+++ b/test/rubygems/test_gem_requirement.rb
@@ -47,18 +47,20 @@ class TestGemRequirement < Gem::TestCase
end
def test_parse_bad
- e = assert_raises Gem::Requirement::BadRequirementError do
- Gem::Requirement.parse nil
- end
-
- assert_equal 'Illformed requirement [nil]', e.message
+ [
+ nil,
+ '',
+ '! 1',
+ '= junk',
+ '1..2',
+ ].each do |bad|
+ e = assert_raises Gem::Requirement::BadRequirementError do
+ Gem::Requirement.parse bad
+ end
- e = assert_raises Gem::Requirement::BadRequirementError do
- Gem::Requirement.parse ""
+ assert_equal "Illformed requirement [#{bad.inspect}]", e.message
end
- assert_equal 'Illformed requirement [""]', e.message
-
assert_equal Gem::Requirement::BadRequirementError.superclass, ArgumentError
end
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index 51c7be813f..2e2074fb29 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -1112,6 +1112,20 @@ dependencies: []
assert_equal [@bonobo, @monkey], @gem.dependencies
end
+ def test_dependent_gems
+ util_setup_deps
+
+ assert_empty @gem.dependent_gems
+
+ bonobo = quick_spec 'bonobo'
+
+ expected = [
+ [@gem, @bonobo, [bonobo]],
+ ]
+
+ assert_equal expected, bonobo.dependent_gems
+ end
+
def test_doc_dir
assert_equal File.join(@gemhome, 'doc', 'a-1'), @a1.doc_dir
end
@@ -1550,13 +1564,13 @@ dependencies: []
@a2.add_runtime_dependency 'b', '1'
@a2.dependencies.first.instance_variable_set :@type, nil
@a2.required_rubygems_version = Gem::Requirement.new '> 0'
- @a2.require_paths << "lib/a/ext"
+ @a2.require_paths << 'other'
ruby_code = @a2.to_ruby
expected = <<-SPEC
# -*- encoding: utf-8 -*-
-# stub: a 2 ruby lib\0lib/a/ext
+# stub: a 2 ruby lib\0other
Gem::Specification.new do |s|
s.name = "a"
@@ -1569,7 +1583,7 @@ Gem::Specification.new do |s|
s.email = "example@example.com"
s.files = ["lib/code.rb"]
s.homepage = "http://example.com"
- s.require_paths = ["lib", "lib/a/ext"]
+ s.require_paths = ["lib", "other"]
s.rubygems_version = "#{Gem::VERSION}"
s.summary = "this is a summary"
diff --git a/test/rubygems/test_gem_version.rb b/test/rubygems/test_gem_version.rb
index 2ba196e48d..2136034d1f 100644
--- a/test/rubygems/test_gem_version.rb
+++ b/test/rubygems/test_gem_version.rb
@@ -67,12 +67,17 @@ class TestGemVersion < Gem::TestCase
end
def test_initialize_bad
- ["junk", "1.0\n2.0"].each do |bad|
- e = assert_raises ArgumentError do
+ %W[
+ junk
+ 1.0\n2.0
+ 1..2
+ 1.2\ 3.4
+ ].each do |bad|
+ e = assert_raises ArgumentError, bad do
Gem::Version.new bad
end
- assert_equal "Malformed version number string #{bad}", e.message
+ assert_equal "Malformed version number string #{bad}", e.message, bad
end
end