summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--lib/rubygems.rb30
-rw-r--r--lib/rubygems/commands/environment_command.rb6
-rw-r--r--lib/rubygems/dependency.rb2
-rw-r--r--lib/rubygems/dependency_installer.rb2
-rw-r--r--lib/rubygems/doc_manager.rb4
-rw-r--r--lib/rubygems/ext/builder.rb2
-rw-r--r--lib/rubygems/ext/rake_builder.rb12
-rw-r--r--lib/rubygems/format.rb2
-rw-r--r--lib/rubygems/indexer.rb14
-rw-r--r--lib/rubygems/installer.rb34
-rw-r--r--lib/rubygems/installer_test_case.rb (renamed from test/rubygems/gem_installer_test_case.rb)43
-rw-r--r--lib/rubygems/mock_gem_ui.rb (renamed from test/rubygems/mockgemui.rb)6
-rw-r--r--lib/rubygems/package/tar_test_case.rb (renamed from test/rubygems/gem_package_tar_test_case.rb)7
-rw-r--r--lib/rubygems/require_paths_builder.rb2
-rw-r--r--lib/rubygems/specification.rb2
-rw-r--r--lib/rubygems/test_case.rb (renamed from test/rubygems/gemutilities.rb)252
-rw-r--r--lib/rubygems/uninstaller.rb55
-rw-r--r--lib/rubygems/user_interaction.rb23
-rw-r--r--test/rubygems/simple_gem.rb4
-rw-r--r--test/rubygems/test_config.rb4
-rw-r--r--test/rubygems/test_gem.rb4
-rw-r--r--test/rubygems/test_gem_builder.rb4
-rw-r--r--test/rubygems/test_gem_command.rb6
-rw-r--r--test/rubygems/test_gem_command_manager.rb12
-rw-r--r--test/rubygems/test_gem_commands_build_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_cert_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_check_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_contents_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_dependency_command.rb8
-rw-r--r--test/rubygems/test_gem_commands_environment_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_fetch_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_generate_index_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_install_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_list_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_lock_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_outdated_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_owner_command.rb10
-rw-r--r--test/rubygems/test_gem_commands_pristine_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_push_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_query_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_server_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_sources_command.rb8
-rw-r--r--test/rubygems/test_gem_commands_specification_command.rb6
-rw-r--r--test/rubygems/test_gem_commands_stale_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_uninstall_command.rb26
-rw-r--r--test/rubygems/test_gem_commands_unpack_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_update_command.rb4
-rw-r--r--test/rubygems/test_gem_commands_which_command.rb6
-rw-r--r--test/rubygems/test_gem_config_file.rb4
-rw-r--r--test/rubygems/test_gem_dependency.rb6
-rw-r--r--test/rubygems/test_gem_dependency_installer.rb4
-rw-r--r--test/rubygems/test_gem_dependency_list.rb6
-rw-r--r--test/rubygems/test_gem_doc_manager.rb4
-rw-r--r--test/rubygems/test_gem_ext_configure_builder.rb4
-rw-r--r--test/rubygems/test_gem_ext_ext_conf_builder.rb4
-rw-r--r--test/rubygems/test_gem_ext_rake_builder.rb4
-rw-r--r--test/rubygems/test_gem_format.rb4
-rw-r--r--test/rubygems/test_gem_gem_path_searcher.rb4
-rw-r--r--test/rubygems/test_gem_gem_runner.rb4
-rw-r--r--test/rubygems/test_gem_gemcutter_utilities.rb8
-rw-r--r--test/rubygems/test_gem_indexer.rb8
-rw-r--r--test/rubygems/test_gem_install_update_options.rb4
-rw-r--r--test/rubygems/test_gem_installer.rb11
-rw-r--r--test/rubygems/test_gem_local_remote_options.rb4
-rw-r--r--test/rubygems/test_gem_package_tar_header.rb4
-rw-r--r--test/rubygems/test_gem_package_tar_input.rb4
-rw-r--r--test/rubygems/test_gem_package_tar_output.rb4
-rw-r--r--test/rubygems/test_gem_package_tar_reader.rb4
-rw-r--r--test/rubygems/test_gem_package_tar_reader_entry.rb4
-rw-r--r--test/rubygems/test_gem_package_tar_writer.rb4
-rw-r--r--test/rubygems/test_gem_package_task.rb4
-rw-r--r--test/rubygems/test_gem_platform.rb4
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb6
-rw-r--r--test/rubygems/test_gem_requirement.rb4
-rw-r--r--test/rubygems/test_gem_security.rb4
-rw-r--r--test/rubygems/test_gem_server.rb4
-rw-r--r--test/rubygems/test_gem_source_index.rb4
-rw-r--r--test/rubygems/test_gem_spec_fetcher.rb4
-rw-r--r--test/rubygems/test_gem_specification.rb8
-rw-r--r--test/rubygems/test_gem_stream_ui.rb22
-rw-r--r--test/rubygems/test_gem_text.rb4
-rw-r--r--test/rubygems/test_gem_uninstaller.rb27
-rw-r--r--test/rubygems/test_gem_validator.rb4
-rw-r--r--test/rubygems/test_gem_version.rb4
-rw-r--r--test/rubygems/test_gem_version_option.rb4
-rw-r--r--test/rubygems/test_kernel.rb6
87 files changed, 570 insertions, 331 deletions
diff --git a/ChangeLog b/ChangeLog
index 7cd02bd175..8a6718e9ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jan 29 08:43:23 2011 Ryan Davis <ryand-ruby@zenspider.com>
+
+ * lib/rubygems*: Import rubygems 1.5.0 (release candidate @ 09893d9)
+ * test/rubygems: Ditto
+
Sat Jan 29 02:02:37 2011 Yusuke Endoh <mame@tsg.ne.jp>
* variable.c (rb_mod_const_of, sv_i): Module#constant should exclude
@@ -32,7 +37,7 @@ Sat Jan 29 01:19:17 2011 Yusuke Endoh <mame@tsg.ne.jp>
rb_public_const_get_* and rb_public_const_defined_* are introduced,
which raise an exception when the referring constant is private.
see [ruby-core:32912].
-
+
* vm_insnhelper.c (vm_get_ev_const): use rb_public_const_get_* instead
of rb_const_get_* to follow the constant visibility when user code
refers a constant.
diff --git a/lib/rubygems.rb b/lib/rubygems.rb
index 08c675a86f..ddb4c2aaa4 100644
--- a/lib/rubygems.rb
+++ b/lib/rubygems.rb
@@ -1,3 +1,9 @@
+######################################################################
+# This file is imported from the rubygems project.
+# DO NOT make modifications in this repo. They _will_ be reverted!
+# File a patch instead and assign it to Ryan Davis or Eric Hodel.
+######################################################################
+
# -*- ruby -*-
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
@@ -5,15 +11,20 @@
# See LICENSE.txt for permissions.
#++
-# TODO: remove when 1.9.1 no longer supported
-QUICKLOADER_SUCKAGE = RUBY_VERSION >= "1.9.1" and RUBY_VERSION < "1.9.2"
-# TODO: remove when 1.9.2 no longer supported
-GEM_PRELUDE_SUCKAGE = RUBY_VERSION >= "1.9.2" and RUBY_VERSION < "1.9.3"
+module Gem
+ QUICKLOADER_SUCKAGE = RUBY_VERSION =~ /^1\.9\.1/
+ GEM_PRELUDE_SUCKAGE = RUBY_VERSION =~ /^1\.9\.2/
+end
-gem_preluded = GEM_PRELUDE_SUCKAGE and defined? Gem
+if Gem::GEM_PRELUDE_SUCKAGE and defined?(Gem::QuickLoader) then
+ Gem::QuickLoader.remove
-if GEM_PRELUDE_SUCKAGE and defined?(Gem::QuickLoader) then
- Gem::QuickLoader.load_full_rubygems_library
+ $LOADED_FEATURES.delete Gem::QuickLoader.path_to_full_rubygems_library
+
+ if $LOADED_FEATURES.any? do |path| path.end_with? '/rubygems.rb' end then
+ # TODO path does not exist here
+ raise LoadError, "another rubygems is already loaded from #{path}"
+ end
class << Gem
remove_method :try_activate if Gem.respond_to?(:try_activate, true)
@@ -1165,7 +1176,7 @@ end
module Kernel
- remove_method :gem if respond_to? :gem # defined in gem_prelude.rb on 1.9
+ remove_method :gem if 'method' == defined? gem # from gem_prelude.rb on 1.9
##
# Use Kernel#gem to activate a specific version of +gem_name+.
@@ -1217,6 +1228,7 @@ end
require 'rubygems/exceptions'
+gem_preluded = Gem::GEM_PRELUDE_SUCKAGE and defined? Gem
unless gem_preluded then # TODO: remove guard after 1.9.2 dropped
begin
##
@@ -1240,7 +1252,7 @@ end
##
# Enables the require hook for RubyGems.
-require 'rubygems/custom_require'
+require 'rubygems/custom_require' unless Gem::GEM_PRELUDE_SUCKAGE
Gem.clear_paths
diff --git a/lib/rubygems/commands/environment_command.rb b/lib/rubygems/commands/environment_command.rb
index f8de984547..f6ec301990 100644
--- a/lib/rubygems/commands/environment_command.rb
+++ b/lib/rubygems/commands/environment_command.rb
@@ -19,7 +19,7 @@ class Gem::Commands::EnvironmentCommand < Gem::Command
gempath display path used to search for gems
version display the gem format version
remotesources display the remote gem servers
- platform display the supporte gem platforms
+ platform display the supported gem platforms
<omitted> display everything
EOF
return args.gsub(/^\s+/, '')
@@ -48,7 +48,7 @@ Example:
install: --no-wrappers
update: --no-wrappers
-RubyGems' default local repository can be overriden with the GEM_PATH and
+RubyGems' default local repository can be overridden with the GEM_PATH and
GEM_HOME environment variables. GEM_HOME sets the default repository to
install into. GEM_PATH allows multiple local repositories to be searched for
gems.
@@ -126,7 +126,7 @@ lib/rubygems/defaults/operating_system.rb
end
else
- raise Gem::CommandLineError, "Unknown enviroment option [#{arg}]"
+ raise Gem::CommandLineError, "Unknown environment option [#{arg}]"
end
say out
true
diff --git a/lib/rubygems/dependency.rb b/lib/rubygems/dependency.rb
index d19663e4bd..4c61b6563e 100644
--- a/lib/rubygems/dependency.rb
+++ b/lib/rubygems/dependency.rb
@@ -56,7 +56,7 @@ class Gem::Dependency
@type = type
@prerelease = false
- # This is for Marshal backwards compatability. See the comments in
+ # This is for Marshal backwards compatibility. See the comments in
# +requirement+ for the dirty details.
@version_requirements = @requirement
diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
index 3913f36bc2..23462fbe33 100644
--- a/lib/rubygems/dependency_installer.rb
+++ b/lib/rubygems/dependency_installer.rb
@@ -84,7 +84,7 @@ class Gem::DependencyInstaller
##
# Returns a list of pairs of gemspecs and source_uris that match
# Gem::Dependency +dep+ from both local (Dir.pwd) and remote (Gem.sources)
- # sources. Gems are sorted with newer gems prefered over older gems, and
+ # sources. Gems are sorted with newer gems preferred over older gems, and
# local gems preferred over remote gems.
def find_gems_with_sources(dep)
diff --git a/lib/rubygems/doc_manager.rb b/lib/rubygems/doc_manager.rb
index 055aa22f13..e900396aa4 100644
--- a/lib/rubygems/doc_manager.rb
+++ b/lib/rubygems/doc_manager.rb
@@ -194,7 +194,9 @@ class Gem::DocManager
rescue Errno::EACCES => e
dirname = File.dirname e.message.split("-")[1].strip
raise Gem::FilePermissionError.new(dirname)
- rescue RuntimeError => ex
+ rescue Interrupt => e
+ raise e
+ rescue Exception => ex
alert_error "While generating documentation for #{@spec.full_name}"
ui.errs.puts "... MESSAGE: #{ex}"
ui.errs.puts "... RDOC args: #{args.join(' ')}"
diff --git a/lib/rubygems/ext/builder.rb b/lib/rubygems/ext/builder.rb
index 89242aff08..29d5af5b12 100644
--- a/lib/rubygems/ext/builder.rb
+++ b/lib/rubygems/ext/builder.rb
@@ -28,7 +28,7 @@ class Gem::Ext::Builder
File.open('Makefile', 'wb') {|f| f.print mf}
- # try to find make program from Ruby configue arguments first
+ # try to find make program from Ruby configure arguments first
RbConfig::CONFIG['configure_args'] =~ /with-make-prog\=(\w+)/
make_program = $1 || ENV['make']
unless make_program then
diff --git a/lib/rubygems/ext/rake_builder.rb b/lib/rubygems/ext/rake_builder.rb
index d3b5cba75c..ba9fa8a94c 100644
--- a/lib/rubygems/ext/rake_builder.rb
+++ b/lib/rubygems/ext/rake_builder.rb
@@ -25,8 +25,16 @@ class Gem::Ext::RakeBuilder < Gem::Ext::Builder
# Deal with possible spaces in the path, e.g. C:/Program Files
dest_path = '"' + dest_path + '"' if dest_path.include?(' ')
- cmd = ENV['rake'] || "\"#{Gem.ruby}\" -rubygems #{Gem.bin_path('rake')}" rescue Gem.default_exec_format % 'rake'
- cmd += " RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen
+ rake = ENV['rake']
+
+ rake ||= begin
+ "\"#{Gem.ruby}\" -rubygems #{Gem.bin_path('rake')}"
+ rescue Gem::Exception
+ end
+
+ rake ||= Gem.default_exec_format % 'rake'
+
+ cmd = "#{rake} RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen
run cmd, results
diff --git a/lib/rubygems/format.rb b/lib/rubygems/format.rb
index 9f8e7b8fb9..3b38a3a017 100644
--- a/lib/rubygems/format.rb
+++ b/lib/rubygems/format.rb
@@ -22,8 +22,6 @@ class Gem::Format
attr_accessor :file_entries
attr_accessor :gem_path
- extend Gem::UserInteraction
-
##
# Constructs a Format representing the gem's data which came from +gem_path+
diff --git a/lib/rubygems/indexer.rb b/lib/rubygems/indexer.rb
index e1265c2d34..1a585c3c25 100644
--- a/lib/rubygems/indexer.rb
+++ b/lib/rubygems/indexer.rb
@@ -63,7 +63,7 @@ class Gem::Indexer
require 'tmpdir'
require 'zlib'
- unless ''.respond_to? :to_xs then
+ unless defined?(Builder::XChar) then
raise "Gem::Indexer requires that the XML Builder library be installed:" \
"\n\tgem install builder"
end
@@ -555,10 +555,18 @@ class Gem::Indexer
# Sanitize a single string.
def sanitize_string(string)
+ return string unless string
+
# HACK the #to_s is in here because RSpec has an Array of Arrays of
- # Strings for authors. Need a way to disallow bad values on gempsec
+ # Strings for authors. Need a way to disallow bad values on gemspec
# generation. (Probably won't happen.)
- string ? string.to_s.to_xs : string
+ string = string.to_s
+
+ begin
+ Builder::XChar.encode string
+ rescue NameError, NoMethodError
+ string.to_xs
+ end
end
##
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index 7321d2e2e5..09d260dfb8 100644
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -14,6 +14,7 @@ require 'rubygems/format'
require 'rubygems/exceptions'
require 'rubygems/ext'
require 'rubygems/require_paths_builder'
+require 'rubygems/user_interaction'
##
# The installer class processes RubyGem .gem files and installs the files
@@ -44,7 +45,7 @@ class Gem::Installer
include Gem::UserInteraction
- include Gem::RequirePathsBuilder if QUICKLOADER_SUCKAGE
+ include Gem::RequirePathsBuilder if Gem::QUICKLOADER_SUCKAGE
##
# The directory a gem's executables will be installed into
@@ -176,7 +177,7 @@ class Gem::Installer
generate_bin
write_spec
- write_require_paths_file_if_needed if QUICKLOADER_SUCKAGE
+ write_require_paths_file_if_needed if Gem::QUICKLOADER_SUCKAGE
# HACK remove? Isn't this done in multiple places?
cached_gem = File.join @gem_home, "cache", @gem.split(/\//).pop
@@ -481,7 +482,6 @@ TEXT
def build_extensions
return if @spec.extensions.empty?
say "Building native extensions. This could take a while..."
- start_dir = Dir.pwd
dest_path = File.join @gem_dir, @spec.require_paths.first
ran_rake = false # only run rake once
@@ -502,29 +502,37 @@ TEXT
nil
end
- begin
- Dir.chdir File.join(@gem_dir, File.dirname(extension))
- results = builder.build(extension, @gem_dir, dest_path, results)
- say results.join("\n") if Gem.configuration.really_verbose
+ extension_dir = begin
+ File.join @gem_dir, File.dirname(extension)
+ rescue TypeError # extension == nil
+ @gem_dir
+ end
+
+
+ begin
+ Dir.chdir extension_dir do
+ results = builder.build(extension, @gem_dir, dest_path, results)
+ say results.join("\n") if Gem.configuration.really_verbose
+ end
rescue
results = results.join "\n"
- File.open('gem_make.out', 'wb') { |f| f.puts results }
+ gem_make_out = File.join extension_dir, 'gem_make.out'
+
+ open gem_make_out, 'wb' do |io| io.puts results end
message = <<-EOF
ERROR: Failed to build gem native extension.
-#{results}
+ #{results}
Gem files will remain installed in #{@gem_dir} for inspection.
-Results logged to #{File.join(Dir.pwd, 'gem_make.out')}
- EOF
+Results logged to #{gem_make_out}
+EOF
raise ExtensionBuildError, message
- ensure
- Dir.chdir start_dir
end
end
end
diff --git a/test/rubygems/gem_installer_test_case.rb b/lib/rubygems/installer_test_case.rb
index 6bf9687e86..c1f86d547b 100644
--- a/test/rubygems/gem_installer_test_case.rb
+++ b/lib/rubygems/installer_test_case.rb
@@ -4,28 +4,67 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/installer'
class Gem::Installer
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_accessor :gem_dir
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :format
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :gem_home
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :env_shebang
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :ignore_dependencies
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :format_executable
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :security_policy
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :spec
+
+ ##
+ # Available through requiring rubygems/installer_test_case
+
attr_writer :wrappers
end
-class GemInstallerTestCase < RubyGemTestCase
+##
+# A test case for Gem::Installer.
+
+class Gem::InstallerTestCase < Gem::TestCase
def setup
super
@spec = quick_gem 'a'
+
@gem = File.join @tempdir, @spec.file_name
@installer = util_installer @spec, @gem, @gemhome
diff --git a/test/rubygems/mockgemui.rb b/lib/rubygems/mock_gem_ui.rb
index 52b0e7ffdc..f45f769b38 100644
--- a/test/rubygems/mockgemui.rb
+++ b/lib/rubygems/mock_gem_ui.rb
@@ -7,7 +7,11 @@
require 'stringio'
require 'rubygems/user_interaction'
-class MockGemUi < Gem::StreamUI
+##
+# This Gem::StreamUI subclass records input and output to StringIO for
+# retrieval during tests.
+
+class Gem::MockGemUi < Gem::StreamUI
class TermError < RuntimeError; end
module TTY
diff --git a/test/rubygems/gem_package_tar_test_case.rb b/lib/rubygems/package/tar_test_case.rb
index 572c6b8a02..5970756ac8 100644
--- a/test/rubygems/gem_package_tar_test_case.rb
+++ b/lib/rubygems/package/tar_test_case.rb
@@ -4,10 +4,13 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/package'
-class TarTestCase < RubyGemTestCase
+##
+# A test case for Gem::Package::Tar* classes
+
+class Gem::Package::TarTestCase < Gem::TestCase
def ASCIIZ(str, length)
str + "\0" * (length - str.length)
diff --git a/lib/rubygems/require_paths_builder.rb b/lib/rubygems/require_paths_builder.rb
index 61bc1af920..2ccfb32083 100644
--- a/lib/rubygems/require_paths_builder.rb
+++ b/lib/rubygems/require_paths_builder.rb
@@ -20,5 +20,5 @@ module Gem::RequirePathsBuilder
file.puts spec.bindir if spec.bindir
end
end
-end if QUICKLOADER_SUCKAGE
+end if Gem::QUICKLOADER_SUCKAGE
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
index 56584adc07..f66288498b 100644
--- a/lib/rubygems/specification.rb
+++ b/lib/rubygems/specification.rb
@@ -336,7 +336,7 @@ class Gem::Specification
end
##
- # List of depedencies that will automatically be activated at runtime.
+ # List of dependencies that will automatically be activated at runtime.
def runtime_dependencies
dependencies.select { |d| d.type == :runtime || d.type == nil }
diff --git a/test/rubygems/gemutilities.rb b/lib/rubygems/test_case.rb
index 9c94a128d0..447a30f780 100644
--- a/test/rubygems/gemutilities.rb
+++ b/lib/rubygems/test_case.rb
@@ -6,15 +6,19 @@
at_exit { $SAFE = 1 }
-# $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
-
if defined? Gem::QuickLoader
Gem::QuickLoader.load_full_rubygems_library
else
require 'rubygems'
end
-require 'fileutils'
+
+begin
+ gem 'minitest'
+rescue Gem::LoadError
+end
+
require 'minitest/autorun'
+require 'fileutils'
require 'tmpdir'
require 'uri'
require 'rubygems/package'
@@ -35,44 +39,84 @@ end
require 'rdoc/rdoc'
-require "test/rubygems/mockgemui"
+require 'rubygems/mock_gem_ui'
module Gem
+
+ ##
+ # Allows setting the gem path searcher. This method is available when
+ # requiring 'rubygems/test_case'
+
def self.searcher=(searcher)
@searcher = searcher
end
+ ##
+ # Allows setting the default SourceIndex. This method is available when
+ # requiring 'rubygems/test_case'
+
def self.source_index=(si)
@@source_index = si
end
+ ##
+ # Allows toggling Windows behavior. This method is available when requiring
+ # 'rubygems/test_case'
+
def self.win_platform=(val)
@@win_platform = val
end
+ ##
+ # Allows setting path to ruby. This method is available when requiring
+ # 'rubygems/test_case'
+
def self.ruby= ruby
@ruby = ruby
end
+ ##
+ # When rubygems/test_case is required the default user interaction is a
+ # MockGemUi.
+
module DefaultUserInteraction
- @ui = MockGemUi.new
+ @ui = Gem::MockGemUi.new
end
end
-class RubyGemTestCase < MiniTest::Unit::TestCase
+##
+# RubyGemTestCase provides a variety of methods for testing rubygems and
+# gem-related behavior in a sandbox. Through RubyGemTestCase you can install
+# and uninstall gems, fetch remote gems through a stub fetcher and be assured
+# your normal set of gems is not affected.
+#
+# Tests are always run at a safe level of 1.
+
+class Gem::TestCase < MiniTest::Unit::TestCase
include Gem::DefaultUserInteraction
undef_method :default_test if instance_methods.include? 'default_test' or
instance_methods.include? :default_test
+ ##
+ # #setup prepares a sandboxed location to install gems. All installs are
+ # directed to a temporary directory. All install plugins are removed.
+ #
+ # If the +RUBY+ environment variable is set the given path is used for
+ # Gem::ruby. The local platform is set to <tt>i386-mswin32</tt> for Windows
+ # or <tt>i686-darwin8.10.1</tt> otherwise.
+ #
+ # If the +KEEP_FILES+ environment variable is set the files will not be
+ # removed from <tt>/tmp/test_rubygems_#{$$}.#{Time.now.to_i}</tt>.
+
def setup
super
- @orig_gem_home = ENV['GEM_HOME']
- @orig_gem_path = ENV['GEM_PATH']
+ @orig_gem_home = ENV['GEM_HOME']
+ @orig_gem_path = ENV['GEM_PATH']
- @ui = MockGemUi.new
+ @ui = Gem::MockGemUi.new
tmpdir = nil
Dir.chdir Dir.tmpdir do tmpdir = Dir.pwd end # HACK OSX /private/tmp
if ENV['KEEP_FILES'] then
@@ -125,10 +169,10 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
@marshal_version = "#{Marshal::MAJOR_VERSION}.#{Marshal::MINOR_VERSION}"
- @private_key = File.expand_path File.join(File.dirname(__FILE__),
- 'private_key.pem')
- @public_cert = File.expand_path File.join(File.dirname(__FILE__),
- 'public_cert.pem')
+ @private_key = File.expand_path('../../../test/rubygems/private_key.pem',
+ __FILE__)
+ @public_cert = File.expand_path('../../../test/rubygems/public_cert.pem',
+ __FILE__)
Gem.post_build_hooks.clear
Gem.post_install_hooks.clear
@@ -161,6 +205,10 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
@orig_LOAD_PATH = $LOAD_PATH.dup
end
+ ##
+ # #teardown restores the process to its original state and removes the
+ # tempdir unless the +KEEP_FILES+ environment variable was set.
+
def teardown
$LOAD_PATH.replace @orig_LOAD_PATH
@@ -188,27 +236,36 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
end
end
- def install_gem gem
+ ##
+ # Builds and installs the Gem::Specification +spec+
+
+ def install_gem spec
require 'rubygems/installer'
- use_ui MockGemUi.new do
+ use_ui Gem::MockGemUi.new do
Dir.chdir @tempdir do
- Gem::Builder.new(gem).build
+ Gem::Builder.new(spec).build
end
end
- gem = File.join(@tempdir, gem.file_name).untaint
+ gem = File.join(@tempdir, spec.file_name).untaint
+
Gem::Installer.new(gem, :wrappers => true).install
end
- def uninstall_gem gem
+ ##
+ # Uninstalls the Gem::Specification +spec+
+ def uninstall_gem spec
require 'rubygems/uninstaller'
- uninstaller = Gem::Uninstaller.new gem.name, :executables => true,
+ uninstaller = Gem::Uninstaller.new spec.name, :executables => true,
:user_install => true
uninstaller.uninstall
end
+ ##
+ # Enables pretty-print for all tests
+
def mu_pp(obj)
s = ''
s = PP.pp obj, s
@@ -216,33 +273,8 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
s.chomp
end
- def prep_cache_files(lc)
- @usr_si ||= Gem::SourceIndex.new
- @usr_sice ||= Gem::SourceInfoCacheEntry.new @usr_si, 0
-
- @sys_si ||= Gem::SourceIndex.new
- @sys_sice ||= Gem::SourceInfoCacheEntry.new @sys_si, 0
-
- latest_si = Gem::SourceIndex.new
- latest_si.add_specs(*@sys_si.latest_specs)
- latest_sys_sice = Gem::SourceInfoCacheEntry.new latest_si, 0
-
- latest_si = Gem::SourceIndex.new
- latest_si.add_specs(*@usr_si.latest_specs)
- latest_usr_sice = Gem::SourceInfoCacheEntry.new latest_si, 0
-
- [ [lc.system_cache_file, @sys_sice],
- [lc.latest_system_cache_file, latest_sys_sice],
- [lc.user_cache_file, @usr_sice],
- [lc.latest_user_cache_file, latest_usr_sice],
- ].each do |filename, data|
- FileUtils.mkdir_p File.dirname(filename).untaint
-
- open filename.dup.untaint, 'wb' do |f|
- f.write Marshal.dump({ @gem_repo => data })
- end
- end
- end
+ ##
+ # Reads a Marshal file at +path+
def read_cache(path)
open path.dup.untaint, 'rb' do |io|
@@ -250,28 +282,45 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
end
end
+ ##
+ # Reads a binary file at +path+
+
def read_binary(path)
Gem.read_binary path
end
+ ##
+ # Writes a binary file to +path+ which is relative to +@gemhome+
+
def write_file(path)
- path = File.join(@gemhome, path)
+ path = File.join @gemhome, path
dir = File.dirname path
FileUtils.mkdir_p dir
open path, 'wb' do |io|
- yield io
+ yield io if block_given?
end
path
end
- def quick_gem(gemname, version='2')
+ ##
+ # Creates a Gem::Specification with a minimum of extra work. +name+ and
+ # +version+ are the gem's name and version, platform, author, email,
+ # homepage, summary and description are defaulted. The specification is
+ # yielded for customization.
+ #
+ # The gem is added to the installed gems in +@gemhome+ and to the current
+ # source_index.
+ #
+ # Use this with #write_file to build an installed gem.
+
+ def quick_gem(name, version='2')
require 'rubygems/specification'
spec = Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
- s.name = gemname
+ s.name = name
s.version = version
s.author = 'A User'
s.email = 'example@example.com'
@@ -295,6 +344,10 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
return spec
end
+ ##
+ # Builds a gem from +spec+ and places it in <tt>File.join @gemhome,
+ # 'cache'</tt>. Automatically creates files based on +spec.files+
+
def util_build_gem(spec)
dir = File.join(@gemhome, 'gems', spec.full_name)
FileUtils.mkdir_p dir
@@ -306,7 +359,7 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
File.open file, 'w' do |fp| fp.puts "# #{file}" end
end
- use_ui MockGemUi.new do
+ use_ui Gem::MockGemUi.new do
Gem::Builder.new(spec).build
end
@@ -315,14 +368,23 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
end
end
+ ##
+ # Removes all installed gems from +@gemhome+.
+
def util_clear_gems
FileUtils.rm_r File.join(@gemhome, 'gems')
FileUtils.rm_r File.join(@gemhome, 'specifications')
Gem.source_index.refresh!
end
+ ##
+ # Creates a gem with +name+, +version+ and +deps+. The specification will
+ # be yielded before gem creation for customization. The gem will be placed
+ # in <tt>File.join @tempdir, 'gems'</tt>. The specification and .gem file
+ # location are returned.
+
def util_gem(name, version, deps = nil, &block)
- if deps then # fuck you eric
+ if deps then
block = proc do |s|
deps.each do |n, req|
s.add_dependency n, (req || '>= 0')
@@ -345,6 +407,9 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
[spec, cache_file]
end
+ ##
+ # Gzips +data+.
+
def util_gzip(data)
out = StringIO.new
@@ -355,6 +420,23 @@ class RubyGemTestCase < MiniTest::Unit::TestCase
out.string
end
+ ##
+ # Creates several default gems which all have a lib/code.rb file. The gems
+ # are not installed but are available in the cache dir.
+ #
+ # +@a1+:: gem a version 1, this is the best-described gem.
+ # +@a2+:: gem a version 2
+ # +@a3a:: gem a version 3.a
+ # +@a_evil9+:: gem a_evil version 9, use this to ensure similarly-named gems
+ # don't collide with a.
+ # +@b2+:: gem b version 2
+ # +@c1_2+:: gem c version 1.2
+ # +@pl1+:: gem pl version 1, this gem has a legacy platform of i386-linux.
+ #
+ # Additional +prerelease+ gems may also be created:
+ #
+ # +@a2_pre+:: gem a version 2.a
+
def util_make_gems(prerelease = false)
@a1 = quick_gem 'a', '1' do |s|
s.files = %w[lib/code.rb]
@@ -391,17 +473,16 @@ Also, a list:
if prerelease
@a2_pre = quick_gem('a', '2.a', &init)
- write_file File.join(*%W[gems #{@a2_pre.original_name} lib code.rb]) do
- end
+ write_file File.join(*%W[gems #{@a2_pre.original_name} lib code.rb])
util_build_gem @a2_pre
end
- write_file File.join(*%W[gems #{@a1.original_name} lib code.rb]) do end
- write_file File.join(*%W[gems #{@a2.original_name} lib code.rb]) do end
- write_file File.join(*%W[gems #{@a3a.original_name} lib code.rb]) do end
- write_file File.join(*%W[gems #{@b2.original_name} lib code.rb]) do end
- write_file File.join(*%W[gems #{@c1_2.original_name} lib code.rb]) do end
- write_file File.join(*%W[gems #{@pl1.original_name} lib code.rb]) do end
+ write_file File.join(*%W[gems #{@a1.original_name} lib code.rb])
+ write_file File.join(*%W[gems #{@a2.original_name} lib code.rb])
+ write_file File.join(*%W[gems #{@a3a.original_name} lib code.rb])
+ write_file File.join(*%W[gems #{@b2.original_name} lib code.rb])
+ write_file File.join(*%W[gems #{@c1_2.original_name} lib code.rb])
+ write_file File.join(*%W[gems #{@pl1.original_name} lib code.rb])
[@a1, @a2, @a3a, @a_evil9, @b2, @c1_2, @pl1].each do |spec|
util_build_gem spec
@@ -425,6 +506,12 @@ Also, a list:
platform
end
+ ##
+ # Sets up a fake fetcher using the gems from #util_make_gems. Optionally
+ # additional +prerelease+ gems may be included.
+ #
+ # Gems created by this method may be fetched using Gem::RemoteFetcher.
+
def util_setup_fake_fetcher(prerelease = false)
require 'zlib'
require 'socket'
@@ -451,6 +538,10 @@ Also, a list:
Gem::RemoteFetcher.fetcher = @fetcher
end
+ ##
+ # Sets up Gem::SpecFetcher to return information from the gems in +specs+.
+ # Best used with +@all_gems+ from #util_setup_fake_fetcher.
+
def util_setup_spec_fetcher(*specs)
specs = Hash[*specs.map { |spec| [spec.full_name, spec] }.flatten]
si = Gem::SourceIndex.new specs
@@ -485,65 +576,87 @@ Also, a list:
si
end
+ ##
+ # Deflates +data+
+
def util_zip(data)
Zlib::Deflate.deflate data
end
+ ##
+ # Is this test being run on a Windows platform?
+
def self.win_platform?
Gem.win_platform?
end
+ ##
+ # Is this test being run on a Windows platform?
+
def win_platform?
Gem.win_platform?
end
+ ##
# Returns whether or not we're on a version of Ruby built with VC++ (or
# Borland) versus Cygwin, Mingw, etc.
- #
+
def self.vc_windows?
RUBY_PLATFORM.match('mswin')
end
+ ##
# Returns whether or not we're on a version of Ruby built with VC++ (or
# Borland) versus Cygwin, Mingw, etc.
- #
+
def vc_windows?
RUBY_PLATFORM.match('mswin')
end
+ ##
# Returns the make command for the current platform. For versions of Ruby
# built on MS Windows with VC++ or Borland it will return 'nmake'. On all
# other platforms, including Cygwin, it will return 'make'.
- #
+
def self.make_command
ENV["make"] || (vc_windows? ? 'nmake' : 'make')
end
+ ##
# Returns the make command for the current platform. For versions of Ruby
# built on MS Windows with VC++ or Borland it will return 'nmake'. On all
# other platforms, including Cygwin, it will return 'make'.
- #
+
def make_command
ENV["make"] || (vc_windows? ? 'nmake' : 'make')
end
+ ##
# Returns whether or not the nmake command could be found.
- #
+
def nmake_found?
system('nmake /? 1>NUL 2>&1')
end
- # NOTE Allow tests to use a random (but controlled) port number instead of
+ ##
+ # Allows tests to use a random (but controlled) port number instead of
# a hardcoded one. This helps CI tools when running parallels builds on
# the same builder slave.
+
def self.process_based_port
@@process_based_port ||= 8000 + $$ % 1000
end
+ ##
+ # See ::process_based_port
+
def process_based_port
self.class.process_based_port
end
+ ##
+ # Allows the proper version of +rake+ to be used for the test.
+
def build_rake_in
gem_ruby = Gem.ruby
Gem.ruby = @@ruby
@@ -559,6 +672,9 @@ Also, a list:
end
end
+ ##
+ # Finds the path to the ruby executable
+
def self.rubybin
ruby = ENV["RUBY"]
return ruby if ruby
@@ -604,7 +720,7 @@ Also, a list:
end
##
- # Construct a new Gem::Requirement.
+ # Constructs a new Gem::Requirement.
def req *requirements
return requirements.first if Gem::Requirement === requirements.first
@@ -612,7 +728,7 @@ Also, a list:
end
##
- # Construct a new Gem::Specification.
+ # Constructs a new Gem::Specification.
def spec name, version, &block
Gem::Specification.new name, v(version), &block
diff --git a/lib/rubygems/uninstaller.rb b/lib/rubygems/uninstaller.rb
index 185926e949..df45771846 100644
--- a/lib/rubygems/uninstaller.rb
+++ b/lib/rubygems/uninstaller.rb
@@ -127,43 +127,42 @@ class Gem::Uninstaller
# +gemspec+.
def remove_executables(spec)
- return if spec.nil?
+ return if spec.nil? or spec.executables.empty?
- unless spec.executables.empty? then
- bindir = @bin_dir ? @bin_dir : Gem.bindir(spec.installation_path)
+ bindir = @bin_dir ? @bin_dir : Gem.bindir(spec.installation_path)
- list = @source_index.find_name(spec.name).delete_if { |s|
- s.version == spec.version
- }
+ list = @source_index.find_name(spec.name).delete_if { |s|
+ s.version == spec.version
+ }
- executables = spec.executables.clone
+ executables = spec.executables.clone
- list.each do |s|
- s.executables.each do |exe_name|
- executables.delete exe_name
- end
+ list.each do |s|
+ s.executables.each do |exe_name|
+ executables.delete exe_name
end
+ end
- return if executables.empty?
+ return if executables.empty?
- answer = if @force_executables.nil? then
- ask_yes_no("Remove executables:\n" \
- "\t#{spec.executables.join(", ")}\n\nin addition to the gem?",
- true) # " # appease ruby-mode - don't ask
- else
- @force_executables
- end
+ remove = if @force_executables.nil? then
+ ask_yes_no("Remove executables:\n" \
+ "\t#{spec.executables.join ', '}\n\n" \
+ "in addition to the gem?",
+ true)
+ else
+ @force_executables
+ end
- unless answer then
- say "Executables and scripts will remain installed."
- else
- raise Gem::FilePermissionError, bindir unless File.writable? bindir
+ unless remove then
+ say "Executables and scripts will remain installed."
+ else
+ raise Gem::FilePermissionError, bindir unless File.writable? bindir
- spec.executables.each do |exe_name|
- say "Removing #{exe_name}"
- FileUtils.rm_f File.join(bindir, exe_name)
- FileUtils.rm_f File.join(bindir, "#{exe_name}.bat")
- end
+ spec.executables.each do |exe_name|
+ say "Removing #{exe_name}"
+ FileUtils.rm_f File.join(bindir, exe_name)
+ FileUtils.rm_f File.join(bindir, "#{exe_name}.bat")
end
end
end
diff --git a/lib/rubygems/user_interaction.rb b/lib/rubygems/user_interaction.rb
index 06b847cf41..9822a23c35 100644
--- a/lib/rubygems/user_interaction.rb
+++ b/lib/rubygems/user_interaction.rb
@@ -72,7 +72,7 @@ module Gem::DefaultUserInteraction
end
##
-# Make the default UI accessable without the "ui." prefix. Classes
+# Make the default UI accessible without the "ui." prefix. Classes
# including this module may use the interaction methods on the default UI
# directly. Classes may also reference the ui and ui= methods.
#
@@ -224,7 +224,7 @@ class Gem::StreamUI
result
end
- if RUBY_VERSION >= "1.9" then
+ if RUBY_VERSION > '1.9.2' then
##
# Ask for a password. Does not echo response to terminal.
@@ -477,12 +477,20 @@ class Gem::StreamUI
end
def fetch(file_name, total_bytes)
- @file_name, @total_bytes = file_name, total_bytes
+ @file_name = file_name
+ @total_bytes = total_bytes.to_i
+ @units = @total_bytes.zero? ? 'B' : '%'
+
update_display(false)
end
def update(bytes)
- new_progress = ((bytes.to_f * 100) / total_bytes.to_f).ceil
+ new_progress = if @units == 'B' then
+ bytes
+ else
+ ((bytes.to_f * 100) / total_bytes.to_f).ceil
+ end
+
return if new_progress == @progress
@progress = new_progress
@@ -490,7 +498,7 @@ class Gem::StreamUI
end
def done
- @progress = 100
+ @progress = 100 if @units == '%'
update_display(true, true)
end
@@ -498,8 +506,9 @@ class Gem::StreamUI
def update_display(show_progress = true, new_line = false)
return unless @out.tty?
- if show_progress
- @out.print "\rFetching: %s (%3d%%)" % [@file_name, @progress]
+
+ if show_progress then
+ @out.print "\rFetching: %s (%3d%s)" % [@file_name, @progress, @units]
else
@out.print "Fetching: %s" % @file_name
end
diff --git a/test/rubygems/simple_gem.rb b/test/rubygems/simple_gem.rb
index d2145e6e47..8253e4b2eb 100644
--- a/test/rubygems/simple_gem.rb
+++ b/test/rubygems/simple_gem.rb
@@ -5,7 +5,7 @@
######################################################################
SIMPLE_GEM = <<-GEMDATA
- MD5SUM = "b12a4d48febeb2289c539c2574c4b6f8"
+ MD5SUM = "989bf34a1cbecd52e0ea66b662b3a405"
if $0 == __FILE__
require 'optparse'
@@ -13,7 +13,7 @@ SIMPLE_GEM = <<-GEMDATA
ARGV.options do |opts|
opts.on_tail("--help", "show this message") {puts opts; exit}
opts.on('--dir=DIRNAME', "Installation directory for the Gem") {|options[:directory]|}
- opts.on('--force', "Force Gem to intall, bypassing dependency checks") {|options[:force]|}
+ opts.on('--force', "Force Gem to install, bypassing dependency checks") {|options[:force]|}
opts.on('--gen-rdoc', "Generate RDoc documentation for the Gem") {|options[:gen_rdoc]|}
opts.parse!
end
diff --git a/test/rubygems/test_config.rb b/test/rubygems/test_config.rb
index da1998390b..190b6092f1 100644
--- a/test/rubygems/test_config.rb
+++ b/test/rubygems/test_config.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems'
-class TestConfig < RubyGemTestCase
+class TestConfig < Gem::TestCase
def test_datadir
_, err = capture_io do
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 6d17d65789..06f25d4775 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -4,14 +4,14 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems'
require 'rubygems/gem_openssl'
require 'rubygems/installer'
require 'pathname'
require 'tmpdir'
-class TestGem < RubyGemTestCase
+class TestGem < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_builder.rb b/test/rubygems/test_gem_builder.rb
index c007548ae5..d146c843bb 100644
--- a/test/rubygems/test_gem_builder.rb
+++ b/test/rubygems/test_gem_builder.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/builder'
-class TestGemBuilder < RubyGemTestCase
+class TestGemBuilder < Gem::TestCase
def test_build
builder = Gem::Builder.new quick_gem('a')
diff --git a/test/rubygems/test_gem_command.rb b/test/rubygems/test_gem_command.rb
index e1db011d44..f79b138df2 100644
--- a/test/rubygems/test_gem_command.rb
+++ b/test/rubygems/test_gem_command.rb
@@ -4,14 +4,14 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/command'
class Gem::Command
public :parser
end
-class TestGemCommand < RubyGemTestCase
+class TestGemCommand < Gem::TestCase
def setup
super
@@ -93,7 +93,7 @@ class TestGemCommand < RubyGemTestCase
assert done
end
- def test_invode_with_bad_options
+ def test_invoke_with_bad_options
use_ui @ui do
@cmd.when_invoked do true end
diff --git a/test/rubygems/test_gem_command_manager.rb b/test/rubygems/test_gem_command_manager.rb
index 66168f0fd5..daadf2520e 100644
--- a/test/rubygems/test_gem_command_manager.rb
+++ b/test/rubygems/test_gem_command_manager.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/command_manager'
-class TestGemCommandManager < RubyGemTestCase
+class TestGemCommandManager < Gem::TestCase
def setup
super
@@ -21,7 +21,7 @@ class TestGemCommandManager < RubyGemTestCase
Gem.load_env_plugins
use_ui @ui do
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
@command_manager.run 'interrupt'
end
assert_equal '', ui.output
@@ -37,7 +37,7 @@ class TestGemCommandManager < RubyGemTestCase
@command_manager.register_command :crash
use_ui @ui do
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
@command_manager.run 'crash'
end
assert_equal '', ui.output
@@ -50,9 +50,9 @@ class TestGemCommandManager < RubyGemTestCase
def test_process_args_bad_arg
use_ui @ui do
- assert_raises(MockGemUi::TermError) {
+ assert_raises Gem::MockGemUi::TermError do
@command_manager.process_args("--bad-arg")
- }
+ end
end
assert_match(/invalid option: --bad-arg/i, @ui.error)
diff --git a/test/rubygems/test_gem_commands_build_command.rb b/test/rubygems/test_gem_commands_build_command.rb
index 9064974551..5c9c5eeb6e 100644
--- a/test/rubygems/test_gem_commands_build_command.rb
+++ b/test/rubygems/test_gem_commands_build_command.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/build_command'
require 'rubygems/format'
-class TestGemCommandsBuildCommand < RubyGemTestCase
+class TestGemCommandsBuildCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_cert_command.rb b/test/rubygems/test_gem_commands_cert_command.rb
index 6afd938861..9d5fc1eada 100644
--- a/test/rubygems/test_gem_commands_cert_command.rb
+++ b/test/rubygems/test_gem_commands_cert_command.rb
@@ -4,14 +4,14 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/cert_command'
unless defined? OpenSSL then
warn "`gem cert` tests are being skipped, module OpenSSL not found"
end
-class TestGemCommandsCertCommand < RubyGemTestCase
+class TestGemCommandsCertCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_check_command.rb b/test/rubygems/test_gem_commands_check_command.rb
index 14418148f0..688210d3d1 100644
--- a/test/rubygems/test_gem_commands_check_command.rb
+++ b/test/rubygems/test_gem_commands_check_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/check_command'
-class TestGemCommandsCheckCommand < RubyGemTestCase
+class TestGemCommandsCheckCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_contents_command.rb b/test/rubygems/test_gem_commands_contents_command.rb
index e865e29af0..6b9750e861 100644
--- a/test/rubygems/test_gem_commands_contents_command.rb
+++ b/test/rubygems/test_gem_commands_contents_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/contents_command'
-class TestGemCommandsContentsCommand < RubyGemTestCase
+class TestGemCommandsContentsCommand < Gem::TestCase
def setup
super
@@ -54,7 +54,7 @@ class TestGemCommandsContentsCommand < RubyGemTestCase
def test_execute_bad_gem
@cmd.options[:args] = %w[foo]
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.execute
end
diff --git a/test/rubygems/test_gem_commands_dependency_command.rb b/test/rubygems/test_gem_commands_dependency_command.rb
index 2f044dce16..40d96f729a 100644
--- a/test/rubygems/test_gem_commands_dependency_command.rb
+++ b/test/rubygems/test_gem_commands_dependency_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/dependency_command'
-class TestGemCommandsDependencyCommand < RubyGemTestCase
+class TestGemCommandsDependencyCommand < Gem::TestCase
def setup
super
@@ -72,7 +72,7 @@ Gem pl-1-x86-linux
def test_execute_no_match
@cmd.options[:args] = %w[foo]
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.execute
end
@@ -161,7 +161,7 @@ Gem foo-2
@cmd.options[:reverse_dependencies] = true
@cmd.options[:domain] = :remote
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.execute
end
diff --git a/test/rubygems/test_gem_commands_environment_command.rb b/test/rubygems/test_gem_commands_environment_command.rb
index 809e05327b..504a12239d 100644
--- a/test/rubygems/test_gem_commands_environment_command.rb
+++ b/test/rubygems/test_gem_commands_environment_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/environment_command'
-class TestGemCommandsEnvironmentCommand < RubyGemTestCase
+class TestGemCommandsEnvironmentCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_fetch_command.rb b/test/rubygems/test_gem_commands_fetch_command.rb
index 9a995a0e8e..657e8e9f80 100644
--- a/test/rubygems/test_gem_commands_fetch_command.rb
+++ b/test/rubygems/test_gem_commands_fetch_command.rb
@@ -4,12 +4,12 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/package'
require 'rubygems/security'
require 'rubygems/commands/fetch_command'
-class TestGemCommandsFetchCommand < RubyGemTestCase
+class TestGemCommandsFetchCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_generate_index_command.rb b/test/rubygems/test_gem_commands_generate_index_command.rb
index 21320bd721..b9eb139f6c 100644
--- a/test/rubygems/test_gem_commands_generate_index_command.rb
+++ b/test/rubygems/test_gem_commands_generate_index_command.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/indexer'
require 'rubygems/commands/generate_index_command'
-class TestGemCommandsGenerateIndexCommand < RubyGemTestCase
+class TestGemCommandsGenerateIndexCommand < Gem::TestCase
def setup
super
@@ -35,7 +35,7 @@ class TestGemCommandsGenerateIndexCommand < RubyGemTestCase
@cmd.options[:rss_gems_host] = 'gems.example.com'
use_ui @ui do
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
@cmd.execute
end
end
diff --git a/test/rubygems/test_gem_commands_install_command.rb b/test/rubygems/test_gem_commands_install_command.rb
index 91e5a9ea0e..a3ceb81ab7 100644
--- a/test/rubygems/test_gem_commands_install_command.rb
+++ b/test/rubygems/test_gem_commands_install_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/install_command'
-class TestGemCommandsInstallCommand < RubyGemTestCase
+class TestGemCommandsInstallCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_list_command.rb b/test/rubygems/test_gem_commands_list_command.rb
index d4cfadda49..9a56ebc779 100644
--- a/test/rubygems/test_gem_commands_list_command.rb
+++ b/test/rubygems/test_gem_commands_list_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/list_command'
-class TestGemCommandsListCommand < RubyGemTestCase
+class TestGemCommandsListCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_lock_command.rb b/test/rubygems/test_gem_commands_lock_command.rb
index 7696bd8b0f..25b033af5d 100644
--- a/test/rubygems/test_gem_commands_lock_command.rb
+++ b/test/rubygems/test_gem_commands_lock_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/lock_command'
-class TestGemCommandsLockCommand < RubyGemTestCase
+class TestGemCommandsLockCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_outdated_command.rb b/test/rubygems/test_gem_commands_outdated_command.rb
index 10862dedf7..6f99f33e99 100644
--- a/test/rubygems/test_gem_commands_outdated_command.rb
+++ b/test/rubygems/test_gem_commands_outdated_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/outdated_command'
-class TestGemCommandsOutdatedCommand < RubyGemTestCase
+class TestGemCommandsOutdatedCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_owner_command.rb b/test/rubygems/test_gem_commands_owner_command.rb
index f95061f0eb..38e49ea79d 100644
--- a/test/rubygems/test_gem_commands_owner_command.rb
+++ b/test/rubygems/test_gem_commands_owner_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/owner_command'
-class TestGemCommandsOwnerCommand < RubyGemTestCase
+class TestGemCommandsOwnerCommand < Gem::TestCase
def setup
super
@@ -44,7 +44,7 @@ EOF
response = "You don't have permission to push to this gem"
@fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = [response, 403, 'Forbidden']
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.show_owners("freewill")
end
@@ -72,7 +72,7 @@ EOF
response = "You don't have permission to push to this gem"
@fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 403, 'Forbidden']
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.add_owners("freewill", ["user-new1@example.com"])
end
@@ -100,7 +100,7 @@ EOF
response = "You don't have permission to push to this gem"
@fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners"] = [response, 403, 'Forbidden']
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.remove_owners("freewill", ["user-remove1@example.com"])
end
diff --git a/test/rubygems/test_gem_commands_pristine_command.rb b/test/rubygems/test_gem_commands_pristine_command.rb
index 47df2e4a44..9cab574a1f 100644
--- a/test/rubygems/test_gem_commands_pristine_command.rb
+++ b/test/rubygems/test_gem_commands_pristine_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/pristine_command'
-class TestGemCommandsPristineCommand < RubyGemTestCase
+class TestGemCommandsPristineCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_push_command.rb b/test/rubygems/test_gem_commands_push_command.rb
index 7d7d89166f..b95af2380b 100644
--- a/test/rubygems/test_gem_commands_push_command.rb
+++ b/test/rubygems/test_gem_commands_push_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/push_command'
-class TestGemCommandsPushCommand < RubyGemTestCase
+class TestGemCommandsPushCommand < Gem::TestCase
def setup
super
@@ -74,7 +74,7 @@ class TestGemCommandsPushCommand < RubyGemTestCase
response = "You don't have permission to push to this gem"
@fetcher.data["#{Gem.host}/api/v1/gems"] = [response, 403, 'Forbidden']
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.send_gem(@path)
end
diff --git a/test/rubygems/test_gem_commands_query_command.rb b/test/rubygems/test_gem_commands_query_command.rb
index 1a4a3e0b75..91868b848b 100644
--- a/test/rubygems/test_gem_commands_query_command.rb
+++ b/test/rubygems/test_gem_commands_query_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/query_command'
-class TestGemCommandsQueryCommand < RubyGemTestCase
+class TestGemCommandsQueryCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_server_command.rb b/test/rubygems/test_gem_commands_server_command.rb
index 8cdcb8b24b..e27cc94896 100644
--- a/test/rubygems/test_gem_commands_server_command.rb
+++ b/test/rubygems/test_gem_commands_server_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/server_command'
-class TestGemCommandsServerCommand < RubyGemTestCase
+class TestGemCommandsServerCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_sources_command.rb b/test/rubygems/test_gem_commands_sources_command.rb
index b747d08795..40449bec22 100644
--- a/test/rubygems/test_gem_commands_sources_command.rb
+++ b/test/rubygems/test_gem_commands_sources_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/sources_command'
-class TestGemCommandsSourcesCommand < RubyGemTestCase
+class TestGemCommandsSourcesCommand < Gem::TestCase
def setup
super
@@ -90,7 +90,7 @@ class TestGemCommandsSourcesCommand < RubyGemTestCase
util_setup_spec_fetcher
use_ui @ui do
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
@cmd.execute
end
end
@@ -110,7 +110,7 @@ Error fetching http://beta-gems.example.com:
util_setup_spec_fetcher
use_ui @ui do
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
@cmd.execute
end
end
diff --git a/test/rubygems/test_gem_commands_specification_command.rb b/test/rubygems/test_gem_commands_specification_command.rb
index abdbd733a3..ca210059fd 100644
--- a/test/rubygems/test_gem_commands_specification_command.rb
+++ b/test/rubygems/test_gem_commands_specification_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/specification_command'
-class TestGemCommandsSpecificationCommand < RubyGemTestCase
+class TestGemCommandsSpecificationCommand < Gem::TestCase
def setup
super
@@ -51,7 +51,7 @@ class TestGemCommandsSpecificationCommand < RubyGemTestCase
def test_execute_bad_name
@cmd.options[:args] = %w[foo]
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
use_ui @ui do
@cmd.execute
end
diff --git a/test/rubygems/test_gem_commands_stale_command.rb b/test/rubygems/test_gem_commands_stale_command.rb
index 4f72d13e81..f3876d90db 100644
--- a/test/rubygems/test_gem_commands_stale_command.rb
+++ b/test/rubygems/test_gem_commands_stale_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/stale_command'
-class TestGemCommandsStaleCommand < RubyGemTestCase
+class TestGemCommandsStaleCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_uninstall_command.rb b/test/rubygems/test_gem_commands_uninstall_command.rb
index cb995cd941..c5be3beb90 100644
--- a/test/rubygems/test_gem_commands_uninstall_command.rb
+++ b/test/rubygems/test_gem_commands_uninstall_command.rb
@@ -4,20 +4,16 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
-require "test/rubygems/gem_installer_test_case"
+require 'rubygems/installer_test_case'
require 'rubygems/commands/uninstall_command'
-class TestGemCommandsUninstallCommand < GemInstallerTestCase
+class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
def setup
super
- ui = MockGemUi.new
- util_setup_gem ui
-
build_rake_in do
- use_ui ui do
+ use_ui @ui do
@installer.install
end
end
@@ -28,15 +24,25 @@ class TestGemCommandsUninstallCommand < GemInstallerTestCase
end
def test_execute_removes_executable
+ ui = Gem::MockGemUi.new
+ util_setup_gem ui
+
+ build_rake_in do
+ use_ui ui do
+ @installer.install
+ end
+ end
+
if win_platform?
- assert_equal true, File.exist?(@executable)
+ assert File.exist?(@executable)
else
- assert_equal true, File.symlink?(@executable)
+ assert File.symlink?(@executable)
end
# Evil hack to prevent false removal success
FileUtils.rm_f @executable
- File.open(@executable, "wb+") {|f| f.puts "binary"}
+
+ open(@executable, "wb+") {|f| f.puts "binary"}
@cmd.options[:args] = Array(@spec.name)
use_ui @ui do
diff --git a/test/rubygems/test_gem_commands_unpack_command.rb b/test/rubygems/test_gem_commands_unpack_command.rb
index f8585d1265..e8d7984c65 100644
--- a/test/rubygems/test_gem_commands_unpack_command.rb
+++ b/test/rubygems/test_gem_commands_unpack_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/unpack_command'
-class TestGemCommandsUnpackCommand < RubyGemTestCase
+class TestGemCommandsUnpackCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_update_command.rb b/test/rubygems/test_gem_commands_update_command.rb
index 7da4607151..6c16713130 100644
--- a/test/rubygems/test_gem_commands_update_command.rb
+++ b/test/rubygems/test_gem_commands_update_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/update_command'
-class TestGemCommandsUpdateCommand < RubyGemTestCase
+class TestGemCommandsUpdateCommand < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_commands_which_command.rb b/test/rubygems/test_gem_commands_which_command.rb
index 4a86067079..41cd7cd3f8 100644
--- a/test/rubygems/test_gem_commands_which_command.rb
+++ b/test/rubygems/test_gem_commands_which_command.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/commands/which_command'
-class TestGemCommandsWhichCommand < RubyGemTestCase
+class TestGemCommandsWhichCommand < Gem::TestCase
def setup
super
@@ -45,7 +45,7 @@ class TestGemCommandsWhichCommand < RubyGemTestCase
@cmd.handle_options %w[missing]
use_ui @ui do
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
@cmd.execute
end
end
diff --git a/test/rubygems/test_gem_config_file.rb b/test/rubygems/test_gem_config_file.rb
index ad0d65038f..dc53d21933 100644
--- a/test/rubygems/test_gem_config_file.rb
+++ b/test/rubygems/test_gem_config_file.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/config_file'
-class TestGemConfigFile < RubyGemTestCase
+class TestGemConfigFile < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_dependency.rb b/test/rubygems/test_gem_dependency.rb
index 723364be41..51b746f555 100644
--- a/test/rubygems/test_gem_dependency.rb
+++ b/test/rubygems/test_gem_dependency.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/dependency'
-class TestGemDependency < RubyGemTestCase
+class TestGemDependency < Gem::TestCase
def test_initialize
d = dep "pkg", "> 1.0"
@@ -64,7 +64,7 @@ class TestGemDependency < RubyGemTestCase
def test_equals_tilde
d = dep "a", "0"
- assert_match d, d, "matche self"
+ assert_match d, d, "match self"
assert_match dep("a", ">= 0"), d, "match version exact"
assert_match dep("a", ">= 0"), dep("a", "1"), "match version"
assert_match dep(/a/, ">= 0"), d, "match simple regexp"
diff --git a/test/rubygems/test_gem_dependency_installer.rb b/test/rubygems/test_gem_dependency_installer.rb
index 80f6cd21fd..cdc0428e9f 100644
--- a/test/rubygems/test_gem_dependency_installer.rb
+++ b/test/rubygems/test_gem_dependency_installer.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/dependency_installer'
-class TestGemDependencyInstaller < RubyGemTestCase
+class TestGemDependencyInstaller < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_dependency_list.rb b/test/rubygems/test_gem_dependency_list.rb
index 394676b6ab..92966ace08 100644
--- a/test/rubygems/test_gem_dependency_list.rb
+++ b/test/rubygems/test_gem_dependency_list.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/dependency_list'
-class TestGemDependencyList < RubyGemTestCase
+class TestGemDependencyList < Gem::TestCase
def setup
super
@@ -110,7 +110,7 @@ class TestGemDependencyList < RubyGemTestCase
'deps of trimmed specs not included'
end
- def test_dependency_order_no_dependendencies
+ def test_dependency_order_no_dependencies
@deplist.add @a1, @c2
order = @deplist.dependency_order
diff --git a/test/rubygems/test_gem_doc_manager.rb b/test/rubygems/test_gem_doc_manager.rb
index 7732df2608..be4c12bd5b 100644
--- a/test/rubygems/test_gem_doc_manager.rb
+++ b/test/rubygems/test_gem_doc_manager.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/doc_manager'
-class TestGemDocManager < RubyGemTestCase
+class TestGemDocManager < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_ext_configure_builder.rb b/test/rubygems/test_gem_ext_configure_builder.rb
index 2f2bac351d..b8063f8021 100644
--- a/test/rubygems/test_gem_ext_configure_builder.rb
+++ b/test/rubygems/test_gem_ext_configure_builder.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/ext'
-class TestGemExtConfigureBuilder < RubyGemTestCase
+class TestGemExtConfigureBuilder < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_ext_ext_conf_builder.rb b/test/rubygems/test_gem_ext_ext_conf_builder.rb
index 4b03858a2a..5caae8e973 100644
--- a/test/rubygems/test_gem_ext_ext_conf_builder.rb
+++ b/test/rubygems/test_gem_ext_ext_conf_builder.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/ext'
-class TestGemExtExtConfBuilder < RubyGemTestCase
+class TestGemExtExtConfBuilder < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_ext_rake_builder.rb b/test/rubygems/test_gem_ext_rake_builder.rb
index d2e7de4cda..db0648b2b4 100644
--- a/test/rubygems/test_gem_ext_rake_builder.rb
+++ b/test/rubygems/test_gem_ext_rake_builder.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/ext'
-class TestGemExtRakeBuilder < RubyGemTestCase
+class TestGemExtRakeBuilder < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_format.rb b/test/rubygems/test_gem_format.rb
index 0fa0bba4bf..cbf2bc7788 100644
--- a/test/rubygems/test_gem_format.rb
+++ b/test/rubygems/test_gem_format.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require "test/rubygems/simple_gem"
require 'rubygems/format'
-class TestGemFormat < RubyGemTestCase
+class TestGemFormat < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_gem_path_searcher.rb b/test/rubygems/test_gem_gem_path_searcher.rb
index c9f49681c7..cb4516eaca 100644
--- a/test/rubygems/test_gem_gem_path_searcher.rb
+++ b/test/rubygems/test_gem_gem_path_searcher.rb
@@ -4,7 +4,7 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/gem_path_searcher'
class Gem::GemPathSearcher
@@ -12,7 +12,7 @@ class Gem::GemPathSearcher
attr_accessor :lib_dirs
end
-class TestGemGemPathSearcher < RubyGemTestCase
+class TestGemGemPathSearcher < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_gem_runner.rb b/test/rubygems/test_gem_gem_runner.rb
index 78af8d9a4d..177c71507a 100644
--- a/test/rubygems/test_gem_gem_runner.rb
+++ b/test/rubygems/test_gem_gem_runner.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/gem_runner'
-class TestGemGemRunner < RubyGemTestCase
+class TestGemGemRunner < Gem::TestCase
def test_do_configuration
Gem.clear_paths
diff --git a/test/rubygems/test_gem_gemcutter_utilities.rb b/test/rubygems/test_gem_gemcutter_utilities.rb
index c4d804bd43..79d1e6cdb8 100644
--- a/test/rubygems/test_gem_gemcutter_utilities.rb
+++ b/test/rubygems/test_gem_gemcutter_utilities.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems'
require 'rubygems/gemcutter_utilities'
-class TestGemGemcutterUtilities < RubyGemTestCase
+class TestGemGemcutterUtilities < Gem::TestCase
def setup
super
@@ -74,7 +74,7 @@ class TestGemGemcutterUtilities < RubyGemTestCase
def test_sign_in_with_bad_credentials
skip 'Always uses $stdin on windows' if Gem.win_platform?
- assert_raises MockGemUi::TermError do
+ assert_raises Gem::MockGemUi::TermError do
util_sign_in ['Access Denied.', 403, 'Forbidden']
end
@@ -98,7 +98,7 @@ class TestGemGemcutterUtilities < RubyGemTestCase
@fetcher.data["#{host}/api/v1/api_key"] = response
Gem::RemoteFetcher.fetcher = @fetcher
- @sign_in_ui = MockGemUi.new "#{email}\n#{password}\n"
+ @sign_in_ui = Gem::MockGemUi.new "#{email}\n#{password}\n"
use_ui @sign_in_ui do
@cmd.sign_in
diff --git a/test/rubygems/test_gem_indexer.rb b/test/rubygems/test_gem_indexer.rb
index ebfe9c8105..a7f49506a6 100644
--- a/test/rubygems/test_gem_indexer.rb
+++ b/test/rubygems/test_gem_indexer.rb
@@ -4,14 +4,14 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/indexer'
-unless ''.respond_to? :to_xs then
+unless defined?(Builder::XChar) then
warn "Gem::Indexer tests are being skipped. Install builder gem." if $VERBOSE
end
-class TestGemIndexer < RubyGemTestCase
+class TestGemIndexer < Gem::TestCase
def setup
super
@@ -558,5 +558,5 @@ eighty characters.&lt;/pre&gt;
refute File.exist?(file), "#{file} exists"
end
-end if ''.respond_to? :to_xs
+end if defined?(Builder::XChar)
diff --git a/test/rubygems/test_gem_install_update_options.rb b/test/rubygems/test_gem_install_update_options.rb
index 9000c4f873..937774617f 100644
--- a/test/rubygems/test_gem_install_update_options.rb
+++ b/test/rubygems/test_gem_install_update_options.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_installer_test_case"
+require 'rubygems/installer_test_case'
require 'rubygems/install_update_options'
require 'rubygems/command'
-class TestGemInstallUpdateOptions < GemInstallerTestCase
+class TestGemInstallUpdateOptions < Gem::InstallerTestCase
def setup
super
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index c77de792f3..94fa4423bc 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -4,9 +4,9 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_installer_test_case"
+require 'rubygems/installer_test_case'
-class TestGemInstaller < GemInstallerTestCase
+class TestGemInstaller < Gem::InstallerTestCase
def test_app_script_text
util_make_exec '2', ''
@@ -72,6 +72,7 @@ load Gem.bin_path('a', 'my_exec', version)
end
def test_build_extensions_unsupported
+ gem_make_out = File.join @gemhome, 'gems', @spec.full_name, 'gem_make.out'
@spec.extensions << nil
e = assert_raises Gem::Installer::ExtensionBuildError do
@@ -80,15 +81,15 @@ load Gem.bin_path('a', 'my_exec', version)
end
end
- assert_match(/^No builder for extension ''$/, e.message)
+ assert_match(/^\s*No builder for extension ''$/, e.message)
assert_equal "Building native extensions. This could take a while...\n",
@ui.output
assert_equal '', @ui.error
- assert_equal "No builder for extension ''\n", File.read('gem_make.out')
+ assert_equal "No builder for extension ''\n", File.read(gem_make_out)
ensure
- FileUtils.rm_f 'gem_make.out'
+ FileUtils.rm_f gem_make_out
end
def test_ensure_dependency
diff --git a/test/rubygems/test_gem_local_remote_options.rb b/test/rubygems/test_gem_local_remote_options.rb
index 7f122d29a6..8d7907268d 100644
--- a/test/rubygems/test_gem_local_remote_options.rb
+++ b/test/rubygems/test_gem_local_remote_options.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/local_remote_options'
require 'rubygems/command'
-class TestGemLocalRemoteOptions < RubyGemTestCase
+class TestGemLocalRemoteOptions < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_package_tar_header.rb b/test/rubygems/test_gem_package_tar_header.rb
index 2f499a3e0d..20d2204ad7 100644
--- a/test/rubygems/test_gem_package_tar_header.rb
+++ b/test/rubygems/test_gem_package_tar_header.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_package_tar_test_case"
+require 'rubygems/package/tar_test_case'
require 'rubygems/package'
-class TestGemPackageTarHeader < TarTestCase
+class TestGemPackageTarHeader < Gem::Package::TarTestCase
def setup
super
diff --git a/test/rubygems/test_gem_package_tar_input.rb b/test/rubygems/test_gem_package_tar_input.rb
index 377c4e452f..0d3de45ba4 100644
--- a/test/rubygems/test_gem_package_tar_input.rb
+++ b/test/rubygems/test_gem_package_tar_input.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_package_tar_test_case"
+require 'rubygems/package/tar_test_case'
require 'rubygems/package/tar_input'
-class TestGemPackageTarInput < TarTestCase
+class TestGemPackageTarInput < Gem::Package::TarTestCase
# Sometimes the setgid bit doesn't take. Don't know if this is a problem on
# all systems, or just some. But for now, we will ignore it in the tests.
diff --git a/test/rubygems/test_gem_package_tar_output.rb b/test/rubygems/test_gem_package_tar_output.rb
index 090f09284a..7458a749dd 100644
--- a/test/rubygems/test_gem_package_tar_output.rb
+++ b/test/rubygems/test_gem_package_tar_output.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_package_tar_test_case"
+require 'rubygems/package/tar_test_case'
require 'rubygems/package/tar_output'
-class TestGemPackageTarOutput < TarTestCase
+class TestGemPackageTarOutput < Gem::Package::TarTestCase
def setup
super
diff --git a/test/rubygems/test_gem_package_tar_reader.rb b/test/rubygems/test_gem_package_tar_reader.rb
index a57f5355fa..657db9b367 100644
--- a/test/rubygems/test_gem_package_tar_reader.rb
+++ b/test/rubygems/test_gem_package_tar_reader.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_package_tar_test_case"
+require 'rubygems/package/tar_test_case'
require 'rubygems/package'
-class TestGemPackageTarReader < TarTestCase
+class TestGemPackageTarReader < Gem::Package::TarTestCase
def test_each_entry
tar = tar_dir_header "foo", "bar", 0
diff --git a/test/rubygems/test_gem_package_tar_reader_entry.rb b/test/rubygems/test_gem_package_tar_reader_entry.rb
index 1b39b2fd2d..a6d06cf00e 100644
--- a/test/rubygems/test_gem_package_tar_reader_entry.rb
+++ b/test/rubygems/test_gem_package_tar_reader_entry.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_package_tar_test_case"
+require 'rubygems/package/tar_test_case'
require 'rubygems/package'
-class TestGemPackageTarReaderEntry < TarTestCase
+class TestGemPackageTarReaderEntry < Gem::Package::TarTestCase
def setup
super
diff --git a/test/rubygems/test_gem_package_tar_writer.rb b/test/rubygems/test_gem_package_tar_writer.rb
index 8a4c951286..ab9e5dd47d 100644
--- a/test/rubygems/test_gem_package_tar_writer.rb
+++ b/test/rubygems/test_gem_package_tar_writer.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_package_tar_test_case"
+require 'rubygems/package/tar_test_case'
require 'rubygems/package/tar_writer'
-class TestTarWriter < TarTestCase
+class TestTarWriter < Gem::Package::TarTestCase
def setup
super
diff --git a/test/rubygems/test_gem_package_task.rb b/test/rubygems/test_gem_package_task.rb
index 11ed69e02b..d13c554360 100644
--- a/test/rubygems/test_gem_package_task.rb
+++ b/test/rubygems/test_gem_package_task.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems'
require 'rubygems/package_task'
-class TestGemPackageTask < RubyGemTestCase
+class TestGemPackageTask < Gem::TestCase
def test_gem_package
gem = Gem::Specification.new do |g|
diff --git a/test/rubygems/test_gem_platform.rb b/test/rubygems/test_gem_platform.rb
index ac8a65bf7a..666669b233 100644
--- a/test/rubygems/test_gem_platform.rb
+++ b/test/rubygems/test_gem_platform.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/platform'
require 'rbconfig'
-class TestGemPlatform < RubyGemTestCase
+class TestGemPlatform < Gem::TestCase
def test_self_local
util_set_arch 'i686-darwin8.10.1'
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb
index fbeb19c239..135b2c7e53 100644
--- a/test/rubygems/test_gem_remote_fetcher.rb
+++ b/test/rubygems/test_gem_remote_fetcher.rb
@@ -4,7 +4,7 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'ostruct'
require 'webrick'
require 'rubygems/remote_fetcher'
@@ -24,7 +24,7 @@ require 'rubygems/format'
# software doesn't really care, as long as we hit the proxy URL when a
# proxy is configured.
-class TestGemRemoteFetcher < RubyGemTestCase
+class TestGemRemoteFetcher < Gem::TestCase
include Gem::DefaultUserInteraction
@@ -617,7 +617,7 @@ gems:
assert_equal '', response.body
end
- def test_request_unmodifed
+ def test_request_unmodified
uri = URI.parse "#{@gem_repo}/specs.#{Gem.marshal_version}"
conn = util_stub_connection_for :body => '', :code => 304
diff --git a/test/rubygems/test_gem_requirement.rb b/test/rubygems/test_gem_requirement.rb
index 03f3ddd5e7..df478190b5 100644
--- a/test/rubygems/test_gem_requirement.rb
+++ b/test/rubygems/test_gem_requirement.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require "rubygems/requirement"
-class TestGemRequirement < RubyGemTestCase
+class TestGemRequirement < Gem::TestCase
def test_equals2
r = req "= 1.2"
diff --git a/test/rubygems/test_gem_security.rb b/test/rubygems/test_gem_security.rb
index 38128e6992..c289edfa09 100644
--- a/test/rubygems/test_gem_security.rb
+++ b/test/rubygems/test_gem_security.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/security'
-class TestGemSecurity < RubyGemTestCase
+class TestGemSecurity < Gem::TestCase
def test_class_build_cert
name = OpenSSL::X509::Name.parse "CN=nobody/DC=example"
diff --git a/test/rubygems/test_gem_server.rb b/test/rubygems/test_gem_server.rb
index f7ba61a4b5..3fad8c486e 100644
--- a/test/rubygems/test_gem_server.rb
+++ b/test/rubygems/test_gem_server.rb
@@ -4,7 +4,7 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/server'
require 'stringio'
@@ -13,7 +13,7 @@ class Gem::Server
attr_reader :server
end
-class TestGemServer < RubyGemTestCase
+class TestGemServer < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_source_index.rb b/test/rubygems/test_gem_source_index.rb
index 95ea94451d..9846c9cc89 100644
--- a/test/rubygems/test_gem_source_index.rb
+++ b/test/rubygems/test_gem_source_index.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/source_index'
require 'rubygems/config_file'
-class TestGemSourceIndex < RubyGemTestCase
+class TestGemSourceIndex < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_spec_fetcher.rb b/test/rubygems/test_gem_spec_fetcher.rb
index 517247b98f..6e3891b866 100644
--- a/test/rubygems/test_gem_spec_fetcher.rb
+++ b/test/rubygems/test_gem_spec_fetcher.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/spec_fetcher'
-class TestGemSpecFetcher < RubyGemTestCase
+class TestGemSpecFetcher < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index 573610b52d..49862fe4bb 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'stringio'
require 'rubygems/specification'
-class TestGemSpecification < RubyGemTestCase
+class TestGemSpecification < Gem::TestCase
LEGACY_YAML_SPEC = <<-EOF
--- !ruby/object:Gem::Specification
@@ -997,7 +997,7 @@ end
assert_equal "WARNING: no description specified\n", @ui.error, 'error'
- @ui = MockGemUi.new
+ @ui = Gem::MockGemUi.new
@a1.summary = 'this is my summary'
@a1.description = @a1.summary
@@ -1133,7 +1133,7 @@ end
assert_equal "WARNING: no homepage specified\n", @ui.error, 'error'
- @ui = MockGemUi.new
+ @ui = Gem::MockGemUi.new
@a1.homepage = ''
diff --git a/test/rubygems/test_gem_stream_ui.rb b/test/rubygems/test_gem_stream_ui.rb
index 60bd3032a8..1bc0e0bbd5 100644
--- a/test/rubygems/test_gem_stream_ui.rb
+++ b/test/rubygems/test_gem_stream_ui.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/user_interaction'
require 'timeout'
-class TestGemStreamUI < RubyGemTestCase
+class TestGemStreamUI < Gem::TestCase
module IsTty
attr_accessor :tty
@@ -199,6 +199,24 @@ class TestGemStreamUI < RubyGemTestCase
assert_equal "Fetching: a.gem\rFetching: a.gem ( 50%)\rFetching: a.gem (100%)\n", @out.string
end
+ def test_verbose_download_reporter_progress_nil_length
+ @cfg.verbose = true
+ reporter = @sui.download_reporter
+ reporter.fetch 'a.gem', nil
+ reporter.update 1024
+ reporter.done
+ assert_equal "Fetching: a.gem\rFetching: a.gem (1024B)\rFetching: a.gem (1024B)\n", @out.string
+ end
+
+ def test_verbose_download_reporter_progress_zero_length
+ @cfg.verbose = true
+ reporter = @sui.download_reporter
+ reporter.fetch 'a.gem', 0
+ reporter.update 1024
+ reporter.done
+ assert_equal "Fetching: a.gem\rFetching: a.gem (1024B)\rFetching: a.gem (1024B)\n", @out.string
+ end
+
def test_verbose_download_reporter_no_tty
@out.tty = false
diff --git a/test/rubygems/test_gem_text.rb b/test/rubygems/test_gem_text.rb
index b800c5f58c..775f1e9d12 100644
--- a/test/rubygems/test_gem_text.rb
+++ b/test/rubygems/test_gem_text.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require "rubygems/text"
-class TestGemText < RubyGemTestCase
+class TestGemText < Gem::TestCase
include Gem::Text
def test_format_text
diff --git a/test/rubygems/test_gem_uninstaller.rb b/test/rubygems/test_gem_uninstaller.rb
index 9d42d9bcde..3925ab1a63 100644
--- a/test/rubygems/test_gem_uninstaller.rb
+++ b/test/rubygems/test_gem_uninstaller.rb
@@ -4,31 +4,28 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gem_installer_test_case"
+require 'rubygems/installer_test_case'
require 'rubygems/uninstaller'
-class TestGemUninstaller < GemInstallerTestCase
+class TestGemUninstaller < Gem::InstallerTestCase
def setup
super
- ui = MockGemUi.new
- util_setup_gem ui
-
@user_spec.executables = ["my_exec"]
# HACK util_make_exec
user_bin_dir = File.join Gem.user_dir, 'gems', @user_spec.full_name, 'bin'
FileUtils.mkdir_p user_bin_dir
exec_path = File.join user_bin_dir, "my_exec"
- File.open exec_path, 'w' do |f|
+ open exec_path, 'w' do |f|
f.puts "#!/usr/bin/ruby"
end
user_bin_dir = File.join Gem.user_dir, 'bin'
FileUtils.mkdir_p user_bin_dir
exec_path = File.join user_bin_dir, "my_exec"
- File.open exec_path, 'w' do |f|
+ open exec_path, 'w' do |f|
f.puts "#!/usr/bin/ruby"
end
@@ -50,11 +47,14 @@ class TestGemUninstaller < GemInstallerTestCase
def test_remove_executables_force_keep
uninstaller = Gem::Uninstaller.new nil, :executables => false
+ executable = File.join Gem.user_dir, 'bin', 'my_exec'
+ assert File.exist? executable
+
use_ui @ui do
- uninstaller.remove_executables @spec
+ uninstaller.remove_executables @user_spec
end
- assert_equal true, File.exist?(File.join(@gemhome, 'bin', 'executable'))
+ assert File.exist? executable
assert_equal "Executables and scripts will remain installed.\n", @ui.output
end
@@ -62,13 +62,16 @@ class TestGemUninstaller < GemInstallerTestCase
def test_remove_executables_force_remove
uninstaller = Gem::Uninstaller.new nil, :executables => true
+ executable = File.join Gem.user_dir, 'bin', 'my_exec'
+ assert File.exist? executable
+
use_ui @ui do
- uninstaller.remove_executables @spec
+ uninstaller.remove_executables @user_spec
end
- assert_equal "Removing executable\n", @ui.output
+ assert_equal "Removing my_exec\n", @ui.output
- assert_equal false, File.exist?(File.join(@gemhome, 'bin', 'executable'))
+ refute File.exist? executable
end
def test_remove_executables_user
diff --git a/test/rubygems/test_gem_validator.rb b/test/rubygems/test_gem_validator.rb
index c7f23dcae8..aa4bd38eb6 100644
--- a/test/rubygems/test_gem_validator.rb
+++ b/test/rubygems/test_gem_validator.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require "test/rubygems/simple_gem"
require 'rubygems/validator'
-class TestGemValidator < RubyGemTestCase
+class TestGemValidator < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_gem_version.rb b/test/rubygems/test_gem_version.rb
index a3fbe24f15..d6a15ec459 100644
--- a/test/rubygems/test_gem_version.rb
+++ b/test/rubygems/test_gem_version.rb
@@ -4,10 +4,10 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require "rubygems/version"
-class TestGemVersion < RubyGemTestCase
+class TestGemVersion < Gem::TestCase
def test_bump
assert_bumped_version_equal "5.3", "5.2.4"
diff --git a/test/rubygems/test_gem_version_option.rb b/test/rubygems/test_gem_version_option.rb
index a0b4eac380..bcb594e8dd 100644
--- a/test/rubygems/test_gem_version_option.rb
+++ b/test/rubygems/test_gem_version_option.rb
@@ -4,11 +4,11 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
require 'rubygems/command'
require 'rubygems/version_option'
-class TestGemVersionOption < RubyGemTestCase
+class TestGemVersionOption < Gem::TestCase
def setup
super
diff --git a/test/rubygems/test_kernel.rb b/test/rubygems/test_kernel.rb
index dcbb8770f8..98d27a6123 100644
--- a/test/rubygems/test_kernel.rb
+++ b/test/rubygems/test_kernel.rb
@@ -4,9 +4,9 @@
# File a patch instead and assign it to Ryan Davis or Eric Hodel.
######################################################################
-require "test/rubygems/gemutilities"
+require 'rubygems/test_case'
-class TestKernel < RubyGemTestCase
+class TestKernel < Gem::TestCase
def setup
super
@@ -27,7 +27,7 @@ class TestKernel < RubyGemTestCase
assert $:.any? { |p| %r{a-1/lib} =~ p }
end
- def test_gem_redundent
+ def test_gem_redundant
assert gem('a', '= 1'), "Should load"
refute gem('a', '= 1'), "Should not load"
assert_equal 1, $:.select { |p| %r{a-1/lib} =~ p }.size