aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem.rb
diff options
context:
space:
mode:
authorryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-03-09 22:32:29 +0000
committerryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-03-09 22:32:29 +0000
commit6e5f49770c9b9be151e3142a575abe99a69b0d14 (patch)
tree15495cf2652a8a3d2010ace89b0813e8589341bd /test/rubygems/test_gem.rb
parent08c07a215d3d4b5e26293d9d52bc06b486f15844 (diff)
downloadruby-6e5f49770c9b9be151e3142a575abe99a69b0d14.tar.gz
Import rubygems 1.6.2 (release candidate @ 2026fbb5)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem.rb')
-rw-r--r--test/rubygems/test_gem.rb60
1 files changed, 50 insertions, 10 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 98d37a807e..118066b957 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -58,9 +58,9 @@ class TestGem < Gem::TestCase
end
def test_self_activate_via_require
- a1 = new_spec "a", "1", "b" => "= 1"
- b1 = new_spec "b", "1", nil, "lib/b/c.rb"
- b2 = new_spec "b", "2", nil, "lib/b/c.rb"
+ new_spec "a", "1", "b" => "= 1"
+ new_spec "b", "1", nil, "lib/b/c.rb"
+ new_spec "b", "2", nil, "lib/b/c.rb"
Gem.activate "a", "= 1"
require "b/c"
@@ -139,7 +139,7 @@ class TestGem < Gem::TestCase
c2 = new_spec "c", "2"
d1 = new_spec "d", "1", nil, "lib/d.rb"
- install_specs a1, b1, b2, c1, c2
+ install_specs a1, b1, b2, c1, c2, d1
Gem.activate "a", "= 1"
assert_equal %w(a-1), loaded_spec_names
@@ -161,7 +161,7 @@ class TestGem < Gem::TestCase
c1 = new_spec "c", "1", nil, "lib/d.rb"
c2 = new_spec("c", "2", { "a" => "1" }, "lib/d.rb") # conflicts with a-2
- install_specs a1, b1, b2, c1, c2
+ install_specs a1, a2, b1, b2, c1, c2
Gem.activate "a", "= 2"
assert_equal %w(a-2), loaded_spec_names
@@ -174,6 +174,46 @@ class TestGem < Gem::TestCase
end
end
+ def test_require_already_activated
+ save_loaded_features do
+ a1 = new_spec "a", "1", nil, "lib/d.rb"
+
+ install_specs a1 # , a2, b1, b2, c1, c2
+
+ Gem.activate "a", "= 1"
+ assert_equal %w(a-1), loaded_spec_names
+ assert_equal [], unresolved_names
+
+ assert require "d"
+
+ assert_equal %w(a-1), loaded_spec_names
+ assert_equal [], unresolved_names
+ end
+ end
+
+ def test_require_already_activated_indirect_conflict
+ save_loaded_features do
+ a1 = new_spec "a", "1", "b" => "> 0"
+ a2 = new_spec "a", "2", "b" => "> 0"
+ b1 = new_spec "b", "1", "c" => ">= 1"
+ b2 = new_spec "b", "2", "c" => ">= 2"
+ c1 = new_spec "c", "1", nil, "lib/d.rb"
+ c2 = new_spec("c", "2", { "a" => "1" }, "lib/d.rb") # conflicts with a-2
+
+ install_specs a1, a2, b1, b2, c1, c2
+
+ Gem.activate "a", "= 1"
+ Gem.activate "c", "= 1"
+ assert_equal %w(a-1 c-1), loaded_spec_names
+ assert_equal ["b (> 0)"], unresolved_names
+
+ assert require "d"
+
+ assert_equal %w(a-1 c-1), loaded_spec_names
+ assert_equal ["b (> 0)"], unresolved_names
+ end
+ end
+
def test_require_missing
save_loaded_features do
assert_raises ::LoadError do
@@ -211,11 +251,11 @@ class TestGem < Gem::TestCase
# and should resolve using b-1.0
def test_self_activate_over
- a, _ = util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '= 1.0'
- util_spec 'b', '1.0'
- util_spec 'b', '1.1'
- util_spec 'b', '2.0'
- c, _ = util_spec 'c', '1.0', 'b' => '~> 1.0'
+ util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '= 1.0'
+ util_spec 'b', '1.0'
+ util_spec 'b', '1.1'
+ util_spec 'b', '2.0'
+ util_spec 'c', '1.0', 'b' => '~> 1.0'
Gem.activate "a"