From 6e5f49770c9b9be151e3142a575abe99a69b0d14 Mon Sep 17 00:00:00 2001 From: ryan Date: Wed, 9 Mar 2011 22:32:29 +0000 Subject: 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 --- test/rubygems/test_gem.rb | 60 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 10 deletions(-) (limited to 'test/rubygems/test_gem.rb') 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" -- cgit v1.2.3