summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-01-07 01:19:28 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-01-07 01:19:28 +0000
commitd5e810dbd24cb92dc86d2d5b048f239315b15ba8 (patch)
tree0656ac1f6abe26dd1f1349f25ece23a534b1a0dc /test
parent738b8872ef871cbfd78730142049cd1fe94a95fa (diff)
* ChangeLog:
* lib/rubygems/basic_specification.rb (class Gem): * lib/rubygems/commands/contents_command.rb (prefix or only the files that are requir): * lib/rubygems/commands/install_command.rb (to write the specification by hand): * lib/rubygems/commands/setup_command.rb (class Gem): * lib/rubygems/commands/setup_command.rb (TEXT): * lib/rubygems/compatibility.rb (module Gem): * lib/rubygems/defaults.rb (module Gem): * lib/rubygems/deprecate.rb (module Gem): * lib/rubygems/installer.rb (class Gem): * lib/rubygems/platform.rb (class Gem): * lib/rubygems/rdoc.rb (class Gem): * lib/rubygems/request_set/lockfile.rb (class Gem): * lib/rubygems/resolver/installer_set.rb (class Gem): * lib/rubygems/resolver.rb (class Gem): * lib/rubygems/specification.rb (class Gem): * lib/rubygems/test_case.rb (class Gem): * lib/rubygems/test_case.rb (Also): * lib/rubygems/uninstaller.rb (class Gem): * lib/rubygems.rb (module Gem): * test/rubygems/test_gem.rb (class TestGem): * test/rubygems/test_gem_commands_contents_command.rb (lib): * test/rubygems/test_gem_commands_environment_command.rb (class TestGemCommandsEnvironmentCommand): * test/rubygems/test_gem_commands_install_command.rb (ERROR): * test/rubygems/test_gem_commands_update_command.rb (class TestGemCommandsUpdateCommand): * test/rubygems/test_gem_dependency_installer.rb (class TestGemDependencyInstaller): * test/rubygems/test_gem_installer.rb (load Gem): * test/rubygems/test_gem_installer.rb (gem): * test/rubygems/test_gem_request_set_lockfile.rb (GEM): * test/rubygems/test_gem_request_set_lockfile.rb (DEPENDENCIES): * test/rubygems/test_gem_specification.rb (dependencies): * test/rubygems/test_gem_specification.rb (duplicate dependency on b): * test/rubygems/test_gem_uninstaller.rb (class TestGemUninstaller): git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/rubygems/test_gem.rb102
-rw-r--r--test/rubygems/test_gem_commands_contents_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_environment_command.rb2
-rw-r--r--test/rubygems/test_gem_commands_install_command.rb15
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb2
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb2
-rw-r--r--test/rubygems/test_gem_installer.rb8
-rw-r--r--test/rubygems/test_gem_request_set_lockfile.rb10
-rw-r--r--test/rubygems/test_gem_specification.rb50
-rw-r--r--test/rubygems/test_gem_uninstaller.rb17
10 files changed, 158 insertions, 56 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 759c2fe907..513f2d4e58 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -199,30 +199,30 @@ class TestGem < Gem::TestCase
end
def test_self_default_exec_format
- orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:ruby_install_name]
- Gem::ConfigMap[:ruby_install_name] = 'ruby'
+ orig_RUBY_INSTALL_NAME = RbConfig::CONFIG['ruby_install_name']
+ RbConfig::CONFIG['ruby_install_name'] = 'ruby'
assert_equal '%s', Gem.default_exec_format
ensure
- Gem::ConfigMap[:ruby_install_name] = orig_RUBY_INSTALL_NAME
+ RbConfig::CONFIG['ruby_install_name'] = orig_RUBY_INSTALL_NAME
end
def test_self_default_exec_format_18
- orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:ruby_install_name]
- Gem::ConfigMap[:ruby_install_name] = 'ruby18'
+ orig_RUBY_INSTALL_NAME = RbConfig::CONFIG['ruby_install_name']
+ RbConfig::CONFIG['ruby_install_name'] = 'ruby18'
assert_equal '%s18', Gem.default_exec_format
ensure
- Gem::ConfigMap[:ruby_install_name] = orig_RUBY_INSTALL_NAME
+ RbConfig::CONFIG['ruby_install_name'] = orig_RUBY_INSTALL_NAME
end
def test_self_default_exec_format_jruby
- orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:ruby_install_name]
- Gem::ConfigMap[:ruby_install_name] = 'jruby'
+ orig_RUBY_INSTALL_NAME = RbConfig::CONFIG['ruby_install_name']
+ RbConfig::CONFIG['ruby_install_name'] = 'jruby'
assert_equal 'j%s', Gem.default_exec_format
ensure
- Gem::ConfigMap[:ruby_install_name] = orig_RUBY_INSTALL_NAME
+ RbConfig::CONFIG['ruby_install_name'] = orig_RUBY_INSTALL_NAME
end
def test_self_default_sources
@@ -230,6 +230,7 @@ class TestGem < Gem::TestCase
end
def test_self_detect_gemdeps
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
FileUtils.mkdir_p 'detect/a/b'
@@ -565,24 +566,43 @@ class TestGem < Gem::TestCase
end
def test_self_prefix_libdir
- orig_libdir = Gem::ConfigMap[:libdir]
- Gem::ConfigMap[:libdir] = @@project_dir
+ orig_libdir = RbConfig::CONFIG['libdir']
+ RbConfig::CONFIG['libdir'] = @@project_dir
assert_nil Gem.prefix
ensure
- Gem::ConfigMap[:libdir] = orig_libdir
+ RbConfig::CONFIG['libdir'] = orig_libdir
end
def test_self_prefix_sitelibdir
- orig_sitelibdir = Gem::ConfigMap[:sitelibdir]
- Gem::ConfigMap[:sitelibdir] = @@project_dir
+ orig_sitelibdir = RbConfig::CONFIG['sitelibdir']
+ RbConfig::CONFIG['sitelibdir'] = @@project_dir
assert_nil Gem.prefix
ensure
- Gem::ConfigMap[:sitelibdir] = orig_sitelibdir
+ RbConfig::CONFIG['sitelibdir'] = orig_sitelibdir
+ end
+
+ def test_self_read_binary
+ open 'test', 'w' do |io|
+ io.write "\xCF\x80"
+ end
+
+ assert_equal ["\xCF", "\x80"], Gem.read_binary('test').chars.to_a
+
+ skip 'chmod not supported' if Gem.win_platform?
+
+ begin
+ File.chmod 0444, 'test'
+
+ assert_equal ["\xCF", "\x80"], Gem.read_binary('test').chars.to_a
+ ensure
+ File.chmod 0644, 'test'
+ end
end
def test_self_refresh
+ skip 'Insecure operation - mkdir' if RUBY_VERSION <= "1.8.7"
util_make_gems
a1_spec = @a1.spec_file
@@ -602,6 +622,7 @@ class TestGem < Gem::TestCase
end
def test_self_refresh_keeps_loaded_specs_activated
+ skip 'Insecure operation - mkdir' if RUBY_VERSION <= "1.8.7"
util_make_gems
a1_spec = @a1.spec_file
@@ -624,46 +645,44 @@ class TestGem < Gem::TestCase
def test_self_ruby_escaping_spaces_in_path
orig_ruby = Gem.ruby
- orig_bindir = Gem::ConfigMap[:bindir]
- orig_ruby_install_name = Gem::ConfigMap[:ruby_install_name]
- orig_exe_ext = Gem::ConfigMap[:EXEEXT]
+ orig_bindir = RbConfig::CONFIG['bindir']
+ orig_ruby_install_name = RbConfig::CONFIG['ruby_install_name']
+ orig_exe_ext = RbConfig::CONFIG['EXEEXT']
- Gem::ConfigMap[:bindir] = "C:/Ruby 1.8/bin"
- Gem::ConfigMap[:ruby_install_name] = "ruby"
- Gem::ConfigMap[:EXEEXT] = ".exe"
+ RbConfig::CONFIG['bindir'] = "C:/Ruby 1.8/bin"
+ RbConfig::CONFIG['ruby_install_name'] = "ruby"
+ RbConfig::CONFIG['EXEEXT'] = ".exe"
Gem.instance_variable_set("@ruby", nil)
assert_equal "\"C:/Ruby 1.8/bin/ruby.exe\"", Gem.ruby
ensure
Gem.instance_variable_set("@ruby", orig_ruby)
- Gem::ConfigMap[:bindir] = orig_bindir
- Gem::ConfigMap[:ruby_install_name] = orig_ruby_install_name
- Gem::ConfigMap[:EXEEXT] = orig_exe_ext
+ RbConfig::CONFIG['bindir'] = orig_bindir
+ RbConfig::CONFIG['ruby_install_name'] = orig_ruby_install_name
+ RbConfig::CONFIG['EXEEXT'] = orig_exe_ext
end
def test_self_ruby_path_without_spaces
orig_ruby = Gem.ruby
- orig_bindir = Gem::ConfigMap[:bindir]
- orig_ruby_install_name = Gem::ConfigMap[:ruby_install_name]
- orig_exe_ext = Gem::ConfigMap[:EXEEXT]
+ orig_bindir = RbConfig::CONFIG['bindir']
+ orig_ruby_install_name = RbConfig::CONFIG['ruby_install_name']
+ orig_exe_ext = RbConfig::CONFIG['EXEEXT']
- Gem::ConfigMap[:bindir] = "C:/Ruby18/bin"
- Gem::ConfigMap[:ruby_install_name] = "ruby"
- Gem::ConfigMap[:EXEEXT] = ".exe"
+ RbConfig::CONFIG['bindir'] = "C:/Ruby18/bin"
+ RbConfig::CONFIG['ruby_install_name'] = "ruby"
+ RbConfig::CONFIG['EXEEXT'] = ".exe"
Gem.instance_variable_set("@ruby", nil)
assert_equal "C:/Ruby18/bin/ruby.exe", Gem.ruby
ensure
Gem.instance_variable_set("@ruby", orig_ruby)
- Gem::ConfigMap[:bindir] = orig_bindir
- Gem::ConfigMap[:ruby_install_name] = orig_ruby_install_name
- Gem::ConfigMap[:EXEEXT] = orig_exe_ext
+ RbConfig::CONFIG['bindir'] = orig_bindir
+ RbConfig::CONFIG['ruby_install_name'] = orig_ruby_install_name
+ RbConfig::CONFIG['EXEEXT'] = orig_exe_ext
end
def test_self_ruby_api_version
- orig_MAJOR, Gem::ConfigMap[:MAJOR] = Gem::ConfigMap[:MAJOR], '1'
- orig_MINOR, Gem::ConfigMap[:MINOR] = Gem::ConfigMap[:MINOR], '2'
- orig_TEENY, Gem::ConfigMap[:TEENY] = Gem::ConfigMap[:TEENY], '3'
+ orig_ruby_version, RbConfig::CONFIG['ruby_version'] = RbConfig::CONFIG['ruby_version'], '1.2.3'
Gem.instance_variable_set :@ruby_api_version, nil
@@ -671,9 +690,7 @@ class TestGem < Gem::TestCase
ensure
Gem.instance_variable_set :@ruby_api_version, nil
- Gem::ConfigMap[:MAJOR] = orig_MAJOR
- Gem::ConfigMap[:MINOR] = orig_MINOR
- Gem::ConfigMap[:TEENY] = orig_TEENY
+ RbConfig::CONFIG['ruby_version'] = orig_ruby_version
end
def test_self_ruby_version_1_8_5
@@ -825,7 +842,7 @@ class TestGem < Gem::TestCase
def test_self_user_dir
parts = [@userhome, '.gem', Gem.ruby_engine]
- parts << Gem::ConfigMap[:ruby_version] unless Gem::ConfigMap[:ruby_version].empty?
+ parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty?
assert_equal File.join(parts), Gem.user_dir
end
@@ -857,6 +874,7 @@ class TestGem < Gem::TestCase
end
def test_self_needs_picks_up_unresolved_deps
+ skip 'loading from unsafe file' if RUBY_VERSION <= "1.8.7"
save_loaded_features do
util_clear_gems
a = util_spec "a", "1"
@@ -949,6 +967,7 @@ class TestGem < Gem::TestCase
end
def test_load_plugins
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
plugin_path = File.join "lib", "rubygems_plugin.rb"
Dir.chdir @tempdir do
@@ -1102,6 +1121,7 @@ class TestGem < Gem::TestCase
end
def test_auto_activation_of_detected_gemdeps_file
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
util_clear_gems
a = new_spec "a", "1", nil, "lib/a.rb"
@@ -1264,6 +1284,7 @@ class TestGem < Gem::TestCase
end
def test_use_gemdeps_automatic
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
spec = util_spec 'a', 1
@@ -1300,6 +1321,7 @@ class TestGem < Gem::TestCase
end
def test_use_gemdeps_specific
+ skip 'Insecure operation - read' if RUBY_VERSION <= "1.8.7"
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], 'x'
spec = util_spec 'a', 1
diff --git a/test/rubygems/test_gem_commands_contents_command.rb b/test/rubygems/test_gem_commands_contents_command.rb
index d87e84fc82..7f5cf22223 100644
--- a/test/rubygems/test_gem_commands_contents_command.rb
+++ b/test/rubygems/test_gem_commands_contents_command.rb
@@ -169,9 +169,9 @@ lib/foo.rb
end
expected = [
- File.join(Gem::ConfigMap[:bindir], 'default_command'),
- File.join(Gem::ConfigMap[:rubylibdir], 'default/gem.rb'),
- File.join(Gem::ConfigMap[:archdir], 'default_gem.so')
+ File.join(RbConfig::CONFIG['bindir'], 'default_command'),
+ File.join(RbConfig::CONFIG['rubylibdir'], 'default/gem.rb'),
+ File.join(RbConfig::CONFIG['archdir'], 'default_gem.so')
].sort.join "\n"
assert_equal expected, @ui.output.chomp
diff --git a/test/rubygems/test_gem_commands_environment_command.rb b/test/rubygems/test_gem_commands_environment_command.rb
index 253c459d94..bb7589f50d 100644
--- a/test/rubygems/test_gem_commands_environment_command.rb
+++ b/test/rubygems/test_gem_commands_environment_command.rb
@@ -26,7 +26,7 @@ class TestGemCommandsEnvironmentCommand < Gem::TestCase
assert_match %r|INSTALLATION DIRECTORY: #{Regexp.escape @gemhome}|,
@ui.output
assert_match %r|RUBYGEMS PREFIX: |, @ui.output
- assert_match %r|RUBY EXECUTABLE:.*#{Gem::ConfigMap[:ruby_install_name]}|,
+ assert_match %r|RUBY EXECUTABLE:.*#{RbConfig::CONFIG['ruby_install_name']}|,
@ui.output
assert_match %r|EXECUTABLE DIRECTORY:|, @ui.output
assert_match %r|RUBYGEMS PLATFORMS:|, @ui.output
diff --git a/test/rubygems/test_gem_commands_install_command.rb b/test/rubygems/test_gem_commands_install_command.rb
index 00bbf7bae7..6315cb5d95 100644
--- a/test/rubygems/test_gem_commands_install_command.rb
+++ b/test/rubygems/test_gem_commands_install_command.rb
@@ -316,6 +316,7 @@ ERROR: Possible alternatives: non_existent_with_hint
end
def test_execute_rdoc
+ skip if RUBY_VERSION <= "1.8.7"
specs = spec_fetcher do |fetcher|
fetcher.gem 'a', 2
end
@@ -559,6 +560,20 @@ ERROR: Possible alternatives: non_existent_with_hint
assert_equal %w[a-2], @cmd.installed_specs.map { |spec| spec.full_name }
end
+ def test_install_gem_ignore_dependencies_specific_file
+ spec = quick_spec 'a', 2
+
+ util_build_gem spec
+
+ FileUtils.mv spec.cache_file, @tempdir
+
+ @cmd.options[:ignore_dependencies] = true
+
+ @cmd.install_gem File.join(@tempdir, spec.file_name), nil
+
+ assert_equal %w[a-2], @cmd.installed_specs.map { |s| s.full_name }
+ end
+
def test_parses_requirement_from_gemname
spec_fetcher do |fetcher|
fetcher.gem 'a', 2
diff --git a/test/rubygems/test_gem_commands_update_command.rb b/test/rubygems/test_gem_commands_update_command.rb
index 7537c1c9c1..d259383ba2 100644
--- a/test/rubygems/test_gem_commands_update_command.rb
+++ b/test/rubygems/test_gem_commands_update_command.rb
@@ -217,6 +217,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
end
def test_execute_rdoc
+ skip if RUBY_VERSION <= "1.8.7"
spec_fetcher do |fetcher|
fetcher.gem 'a', 2
@@ -239,7 +240,6 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
a2 = @specs['a-2']
- assert_path_exists File.join(a2.doc_dir, 'ri')
assert_path_exists File.join(a2.doc_dir, 'rdoc')
end
diff --git a/test/rubygems/test_gem_dependency_installer.rb b/test/rubygems/test_gem_dependency_installer.rb
index 0a82fa63cb..352ebbb54f 100644
--- a/test/rubygems/test_gem_dependency_installer.rb
+++ b/test/rubygems/test_gem_dependency_installer.rb
@@ -551,7 +551,7 @@ class TestGemDependencyInstaller < Gem::TestCase
env = "/\\S+/env" unless Gem.win_platform?
- assert_match %r|\A#!#{env} #{Gem::ConfigMap[:ruby_install_name]}\n|,
+ assert_match %r|\A#!#{env} #{RbConfig::CONFIG['ruby_install_name']}\n|,
File.read(File.join(@gemhome, 'bin', 'a_bin'))
end
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index 615a9b57ba..54ac853135 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -84,8 +84,8 @@ load Gem.bin_path('a', 'executable', version)
orig_RUBY_FRAMEWORK_VERSION = RUBY_FRAMEWORK_VERSION
Object.send :remove_const, :RUBY_FRAMEWORK_VERSION
end
- orig_bindir = Gem::ConfigMap[:bindir]
- Gem::ConfigMap[:bindir] = Gem.bindir
+ orig_bindir = RbConfig::CONFIG['bindir']
+ RbConfig::CONFIG['bindir'] = Gem.bindir
util_conflict_executable false
@@ -102,7 +102,7 @@ load Gem.bin_path('a', 'executable', version)
ensure
Object.const_set :RUBY_FRAMEWORK_VERSION, orig_RUBY_FRAMEWORK_VERSION if
orig_RUBY_FRAMEWORK_VERSION
- Gem::ConfigMap[:bindir] = orig_bindir
+ RbConfig::CONFIG['bindir'] = orig_bindir
end
def test_check_executable_overwrite_format_executable
@@ -1192,7 +1192,7 @@ gem 'other', version
env_shebang = "/usr/bin/env" unless Gem.win_platform?
- assert_equal("#!#{env_shebang} #{Gem::ConfigMap[:ruby_install_name]}",
+ assert_equal("#!#{env_shebang} #{RbConfig::CONFIG['ruby_install_name']}",
shebang)
end
diff --git a/test/rubygems/test_gem_request_set_lockfile.rb b/test/rubygems/test_gem_request_set_lockfile.rb
index 9e0cab4d1a..0be69bf92b 100644
--- a/test/rubygems/test_gem_request_set_lockfile.rb
+++ b/test/rubygems/test_gem_request_set_lockfile.rb
@@ -218,6 +218,7 @@ GEM
c (~> 4)
d
e (~> 5.0, >= 5.0.1)
+ b (3-x86_64-linux)
PLATFORMS
#{Gem::Platform::RUBY}
@@ -238,7 +239,14 @@ DEPENDENCIES
assert lockfile_set, 'could not find a LockSet'
- assert_equal %w[a-2], lockfile_set.specs.map { |tuple| tuple.full_name }
+ assert_equal %w[a-2 b-3], lockfile_set.specs.map { |tuple| tuple.full_name }
+
+ expected = [
+ Gem::Platform::RUBY,
+ Gem::Platform.new('x86_64-linux'),
+ ]
+
+ assert_equal expected, lockfile_set.specs.map { |tuple| tuple.platform }
spec = lockfile_set.specs.first
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index 7aa9d5aeb1..b72a5d1baf 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -999,8 +999,8 @@ dependencies: []
assert_equal 'summary', spec.summary
assert_same spec.summary, new_spec.summary
- assert_equal %w[lib/file.rb test/file.rb bin/exec README.txt
- ext/extconf.rb].sort,
+ assert_equal %w[README.txt bin/exec ext/extconf.rb lib/file.rb
+ test/file.rb].sort,
spec.files
refute_same spec.files, new_spec.files, 'files'
@@ -1109,7 +1109,31 @@ dependencies: []
@a2.executable = 'app'
assert_equal nil, @a2.bindir
- assert_equal %w[lib/code.rb app].sort, @a2.files
+ assert_equal %w[app lib/code.rb].sort, @a2.files
+ end
+
+ def test_extensions_equals_nil
+ @a2.instance_variable_set(:@extensions, nil)
+ assert_equal nil, @a2.instance_variable_get(:@extensions)
+ assert_equal %w[lib/code.rb], @a2.files
+ end
+
+ def test_test_files_equals_nil
+ @a2.instance_variable_set(:@test_files, nil)
+ assert_equal nil, @a2.instance_variable_get(:@test_files)
+ assert_equal %w[lib/code.rb], @a2.files
+ end
+
+ def test_executables_equals_nil
+ @a2.instance_variable_set(:@executables, nil)
+ assert_equal nil, @a2.instance_variable_get(:@executables)
+ assert_equal %w[lib/code.rb], @a2.files
+ end
+
+ def test_extra_rdoc_files_equals_nil
+ @a2.instance_variable_set(:@extra_rdoc_files, nil)
+ assert_equal nil, @a2.instance_variable_get(:@extra_rdoc_files)
+ assert_equal %w[lib/code.rb], @a2.files
end
def test_build_extensions
@@ -1437,7 +1461,7 @@ dependencies: []
def test_executable_equals
@a2.executable = 'app'
assert_equal 'app', @a2.executable
- assert_equal %w[lib/code.rb bin/app].sort, @a2.files
+ assert_equal %w[bin/app lib/code.rb].sort, @a2.files
end
def test_extensions
@@ -1785,6 +1809,22 @@ dependencies: []
assert_kind_of Gem::Source::Installed, @a1.source
end
+ def test_source_paths
+ ext_spec
+
+ @ext.require_paths = %w[lib ext foo]
+ @ext.extensions << 'bar/baz'
+
+ expected = %w[
+ lib
+ ext
+ foo
+ bar
+ ]
+
+ assert_equal expected, @ext.source_paths
+ end
+
def test_full_require_paths
ext_spec
@@ -2435,7 +2475,7 @@ duplicate dependency on b (>= 1.2.3), (~> 1.2) use:
assert_equal '["lib2"] are not files', e.message
end
- assert_equal %w[lib/code.rb test/suite.rb bin/exec ext/a/extconf.rb lib2].sort,
+ assert_equal %w[bin/exec ext/a/extconf.rb lib/code.rb lib2 test/suite.rb].sort,
@a1.files
end
diff --git a/test/rubygems/test_gem_uninstaller.rb b/test/rubygems/test_gem_uninstaller.rb
index 1eea30fb94..11fdaf68e2 100644
--- a/test/rubygems/test_gem_uninstaller.rb
+++ b/test/rubygems/test_gem_uninstaller.rb
@@ -131,6 +131,23 @@ class TestGemUninstaller < Gem::InstallerTestCase
Gem::Installer.exec_format = nil
end
+ def test_remove_not_in_home
+ uninstaller = Gem::Uninstaller.new nil, :install_dir => "#{@gemhome}2"
+
+ e = assert_raises Gem::GemNotInHomeException do
+ use_ui ui do
+ uninstaller.remove @spec
+ end
+ end
+
+ expected =
+ "Gem '#{@spec.full_name}' is not installed in directory #{@gemhome}2"
+
+ assert_equal expected, e.message
+
+ assert_path_exists @spec.gem_dir
+ end
+
def test_path_ok_eh
uninstaller = Gem::Uninstaller.new nil