diff options
Diffstat (limited to 'test/rubygems/test_gem.rb')
-rw-r--r-- | test/rubygems/test_gem.rb | 122 |
1 files changed, 46 insertions, 76 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index 4fe5e8661c..c5ed86a489 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb @@ -2,6 +2,7 @@ require 'test/unit' require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities') require 'rubygems' require 'rubygems/gem_openssl' +require 'rubygems/installer' require 'pathname' class TestGem < RubyGemTestCase @@ -17,9 +18,9 @@ class TestGem < RubyGemTestCase util_make_gems expected = [ - File.join(@gemhome, *%W[gems #{@a0_0_1.full_name} lib]), - File.join(@gemhome, *%W[gems #{@a0_0_2.full_name} lib]), - File.join(@gemhome, *%W[gems #{@b0_0_2.full_name} lib]), + File.join(@gemhome, *%W[gems #{@a1.full_name} lib]), + File.join(@gemhome, *%W[gems #{@a2.full_name} lib]), + File.join(@gemhome, *%W[gems #{@b2.full_name} lib]), File.join(@gemhome, *%W[gems #{@c1_2.full_name} lib]), File.join(@gemhome, *%W[gems #{@pl1.full_name} lib]), ] @@ -89,6 +90,42 @@ class TestGem < RubyGemTestCase assert_match @default_dir_re, Gem.default_dir end + def test_self_default_exec_format + orig_BASERUBY = Gem::ConfigMap[:BASERUBY] + orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:RUBY_INSTALL_NAME] + Gem::ConfigMap[:BASERUBY] = 'ruby' + Gem::ConfigMap[:RUBY_INSTALL_NAME] = 'ruby' + + assert_equal '%s', Gem.default_exec_format + ensure + Gem::ConfigMap[:BASERUBY] = orig_BASERUBY + Gem::ConfigMap[:RUBY_INSTALL_NAME] = orig_RUBY_INSTALL_NAME + end + + def test_self_default_exec_format_18 + orig_BASERUBY = Gem::ConfigMap[:BASERUBY] + orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:RUBY_INSTALL_NAME] + Gem::ConfigMap[:BASERUBY] = 'ruby' + Gem::ConfigMap[:RUBY_INSTALL_NAME] = 'ruby18' + + assert_equal '%s18', Gem.default_exec_format + ensure + Gem::ConfigMap[:BASERUBY] = orig_BASERUBY + Gem::ConfigMap[:RUBY_INSTALL_NAME] = orig_RUBY_INSTALL_NAME + end + + def test_self_default_exec_format_jruby + orig_BASERUBY = Gem::ConfigMap[:BASERUBY] + orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:RUBY_INSTALL_NAME] + Gem::ConfigMap[:BASERUBY] = 'ruby' + Gem::ConfigMap[:RUBY_INSTALL_NAME] = 'jruby' + + assert_equal 'j%s', Gem.default_exec_format + ensure + Gem::ConfigMap[:BASERUBY] = orig_BASERUBY + Gem::ConfigMap[:RUBY_INSTALL_NAME] = orig_RUBY_INSTALL_NAME + end + def test_self_default_sources assert_equal %w[http://gems.rubyforge.org], Gem.default_sources end @@ -174,8 +211,8 @@ class TestGem < RubyGemTestCase util_make_gems expected = [ - File.join(@gemhome, *%W[gems #{@a0_0_2.full_name} lib]), - File.join(@gemhome, *%W[gems #{@b0_0_2.full_name} lib]), + File.join(@gemhome, *%W[gems #{@a2.full_name} lib]), + File.join(@gemhome, *%W[gems #{@b2.full_name} lib]), File.join(@gemhome, *%W[gems #{@c1_2.full_name} lib]), File.join(@gemhome, *%W[gems #{@pl1.full_name} lib]), ] @@ -251,10 +288,10 @@ class TestGem < RubyGemTestCase assert_equal File.join(@tempdir, *%w[gemhome gems c-1.2 lib code.rb]), Gem.required_location("c", "code.rb") - assert_equal File.join(@tempdir, *%w[gemhome gems a-0.0.1 lib code.rb]), - Gem.required_location("a", "code.rb", "<0.0.2") - assert_equal File.join(@tempdir, *%w[gemhome gems a-0.0.2 lib code.rb]), - Gem.required_location("a", "code.rb", "=0.0.2") + assert_equal File.join(@tempdir, *%w[gemhome gems a-1 lib code.rb]), + Gem.required_location("a", "code.rb", "< 2") + assert_equal File.join(@tempdir, *%w[gemhome gems a-2 lib code.rb]), + Gem.required_location("a", "code.rb", "= 2") end def test_self_searcher @@ -298,73 +335,6 @@ class TestGem < RubyGemTestCase end end - def test_require_gem_autorequire - name = "AutorequireArray" - files = %w(a.rb b.rb) - gem = quick_gem(name) do |s| - s.files = files.map { |f| File.join("lib", f) } - s.autorequire = files - end - - fullname = gem.full_name - - write_file "gems/#{fullname}/lib/a.rb" do |io| - io.puts "$LOADED_A = true" - end - - write_file "gems/#{fullname}/lib/b.rb" do |io| - io.puts "$LOADED_B = true" - end - - Gem.source_index = nil - - old_loaded = $".dup - old_verbose = $VERBOSE - $VERBOSE = nil - require_gem name - $VERBOSE = old_verbose - new_loaded = $".dup - - if RUBY_VERSION > "1.9" then - files = files.map do |file| - File.join @gemhome, 'gems', gem.full_name, 'lib', file - end - end - - assert_equal files, (new_loaded - old_loaded) - assert defined?($LOADED_A) - assert defined?($LOADED_B) - end - - def test_require_gem_autorequire_string - name = "AutorequireString" - file = "c.rb" - gem = quick_gem(name) do |s| - s.files = File.join("lib", file) - s.autorequire = file - end - - fullname = gem.full_name - - write_file("gems/#{fullname}/lib/c.rb") do |io| - io.puts "$LOADED_C = true" - end - - old_loaded = $".dup - old_verbose = $VERBOSE - $VERBOSE = nil - require_gem name - $VERBOSE = old_verbose - new_loaded = $".dup - - if RUBY_VERSION > "1.9" then - file = File.join @gemhome, 'gems', gem.full_name, 'lib', file - end - - assert_equal(Array(file), (new_loaded - old_loaded)) - assert(defined? $LOADED_C) - end - def util_ensure_gem_dirs Gem.ensure_gem_subdirectories @gemhome @additional.each do |dir| |