summaryrefslogtreecommitdiff
path: root/test/rubygems
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-26 20:24:51 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-26 20:24:51 +0000
commite487a7f53cffbadf0bf15ff169c9cb5898503250 (patch)
treeeaa80eb4ced6fcdcc8b327d1cc5e47f66703fd1b /test/rubygems
parentcddd93a57568966b416e300529bdffc0c7e87b51 (diff)
* lib/rubygems: Import RubyGems 2.1.0 Release Candidate
* test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems')
-rw-r--r--test/rubygems/test_gem.rb22
-rw-r--r--test/rubygems/test_gem_commands_uninstall_command.rb21
-rw-r--r--test/rubygems/test_gem_package_task.rb25
-rw-r--r--test/rubygems/test_gem_security_policy.rb11
-rw-r--r--test/rubygems/test_gem_security_signer.rb6
-rw-r--r--test/rubygems/test_gem_source.rb23
-rw-r--r--test/rubygems/test_gem_source_installed.rb28
-rw-r--r--test/rubygems/test_gem_source_local.rb35
-rw-r--r--test/rubygems/test_gem_source_specific_file.rb38
-rw-r--r--test/rubygems/test_gem_specification.rb12
10 files changed, 205 insertions, 16 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 0ee8d36f8e..38a63c3b2c 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -1181,6 +1181,28 @@ class TestGem < Gem::TestCase
assert_equal nil, Gem.find_unresolved_default_spec("README")
end
+ def test_default_gems_use_full_paths
+ begin
+ engine = RUBY_ENGINE
+ Object.send :remove_const, :RUBY_ENGINE
+ Object.const_set :RUBY_ENGINE, 'ruby'
+ refute Gem.default_gems_use_full_paths?
+ ensure
+ Object.send :remove_const, :RUBY_ENGINE
+ Object.const_set :RUBY_ENGINE, engine
+ end
+
+ begin
+ engine = RUBY_ENGINE
+ Object.send :remove_const, :RUBY_ENGINE
+ Object.const_set :RUBY_ENGINE, 'jruby'
+ assert Gem.default_gems_use_full_paths?
+ ensure
+ Object.send :remove_const, :RUBY_ENGINE
+ Object.const_set :RUBY_ENGINE, engine
+ end
+ end
+
def with_plugin(path)
test_plugin_path = File.expand_path("test/rubygems/plugin/#{path}",
@@project_dir)
diff --git a/test/rubygems/test_gem_commands_uninstall_command.rb b/test/rubygems/test_gem_commands_uninstall_command.rb
index 5a11948ee6..9ba1371b79 100644
--- a/test/rubygems/test_gem_commands_uninstall_command.rb
+++ b/test/rubygems/test_gem_commands_uninstall_command.rb
@@ -191,21 +191,30 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
end
def test_execute_all
- ui = Gem::MockGemUi.new "y\n"
-
util_make_gems
- util_setup_gem ui
- assert Gem::Specification.find_all_by_name('a').length > 1
+ default = new_default_spec 'default', '1'
+ install_default_gems default
+
+ gemhome2 = "#{@gemhome}2"
+
+ a_4 = quick_spec 'a', 4
+ install_gem a_4, :install_dir => gemhome2
+
+ Gem::Specification.dirs = [@gemhome, gemhome2]
+
+ assert_includes Gem::Specification.all_names, 'a-1'
+ assert_includes Gem::Specification.all_names, 'a-4'
+ assert_includes Gem::Specification.all_names, 'default-1'
@cmd.options[:all] = true
@cmd.options[:args] = []
- use_ui ui do
+ use_ui @ui do
@cmd.execute
end
- refute_includes Gem::Specification.all_names, 'a'
+ assert_equal %w[a-4 default-1], Gem::Specification.all_names.sort
end
end
diff --git a/test/rubygems/test_gem_package_task.rb b/test/rubygems/test_gem_package_task.rb
index 35b38cdbc7..1526e825fe 100644
--- a/test/rubygems/test_gem_package_task.rb
+++ b/test/rubygems/test_gem_package_task.rb
@@ -4,16 +4,37 @@ require 'rubygems/package_task'
class TestGemPackageTask < Gem::TestCase
+ def setup
+ super
+
+ Rake.application = Rake::Application.new
+ RakeFileUtils.verbose_flag = false
+ end
+
def test_gem_package
gem = Gem::Specification.new do |g|
g.name = "pkgr"
g.version = "1.2.3"
- g.files = Rake::FileList["x"].resolve
+
+ g.authors = %w[author]
+ g.files = %w[x]
+ g.summary = 'summary'
end
+
pkg = Gem::PackageTask.new(gem) do |p|
p.package_files << "y"
end
- assert_equal ["x", "y"], pkg.package_files
+
+ assert_equal %w[x y], pkg.package_files
+
+ Dir.chdir @tempdir do
+ FileUtils.touch 'x'
+ FileUtils.touch 'y'
+
+ Rake.application['package'].invoke
+
+ assert_path_exists 'pkg/pkgr-1.2.3.gem'
+ end
end
def test_gem_package_with_current_platform
diff --git a/test/rubygems/test_gem_security_policy.rb b/test/rubygems/test_gem_security_policy.rb
index 5b960c4d48..a2115e709a 100644
--- a/test/rubygems/test_gem_security_policy.rb
+++ b/test/rubygems/test_gem_security_policy.rb
@@ -351,6 +351,17 @@ class TestGemSecurityPolicy < Gem::TestCase
end
end
+ def test_verify_no_signatures_no_digests
+ Gem::Security.trust_dir.trust_cert PUBLIC_CERT
+
+ use_ui @ui do
+ @no.verify [PUBLIC_CERT], nil, {}, {}, 'some_gem'
+ end
+
+ assert_empty @ui.output
+ assert_empty @ui.error
+ end
+
def test_verify_not_enough_signatures
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
diff --git a/test/rubygems/test_gem_security_signer.rb b/test/rubygems/test_gem_security_signer.rb
index c984382947..f077a46413 100644
--- a/test/rubygems/test_gem_security_signer.rb
+++ b/test/rubygems/test_gem_security_signer.rb
@@ -84,6 +84,12 @@ class TestGemSecuritySigner < Gem::TestCase
assert_equal ENCRYPTED_PRIVATE_KEY.to_s, signer.key.to_s
end
+ def test_extract_name
+ signer = Gem::Security::Signer.new nil, nil
+
+ assert_equal 'child@example', signer.extract_name(CHILD_CERT)
+ end
+
def test_load_cert_chain
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
diff --git a/test/rubygems/test_gem_source.rb b/test/rubygems/test_gem_source.rb
index 1303978a8e..cb43121ddd 100644
--- a/test/rubygems/test_gem_source.rb
+++ b/test/rubygems/test_gem_source.rb
@@ -184,5 +184,28 @@ class TestGemSource < Gem::TestCase
end
end
+ def test_spaceship
+ remote = @source
+ specific = Gem::Source::SpecificFile.new(@a1.cache_file)
+ installed = Gem::Source::Installed.new
+ local = Gem::Source::Local.new
+
+ assert_equal( 0, remote. <=>(remote), 'remote <=> remote')
+
+ assert_equal(-1, remote. <=>(specific), 'remote <=> specific')
+ assert_equal( 1, specific. <=>(remote), 'specific <=> remote')
+
+ assert_equal(-1, remote. <=>(local), 'remote <=> local')
+ assert_equal( 1, local. <=>(remote), 'local <=> remote')
+
+ assert_equal(-1, remote. <=>(installed), 'remote <=> installed')
+ assert_equal( 1, installed.<=>(remote), 'installed <=> remote')
+
+ no_uri = @source.dup
+ no_uri.instance_variable_set :@uri, nil
+
+ assert_equal(-1, remote. <=>(no_uri), 'remote <=> no_uri')
+ end
+
end
diff --git a/test/rubygems/test_gem_source_installed.rb b/test/rubygems/test_gem_source_installed.rb
new file mode 100644
index 0000000000..1119ad0c2b
--- /dev/null
+++ b/test/rubygems/test_gem_source_installed.rb
@@ -0,0 +1,28 @@
+require 'rubygems/test_case'
+require 'rubygems/source'
+
+class TestGemSourceInstalled < Gem::TestCase
+
+ def test_spaceship
+ a1 = quick_gem 'a', '1'
+ util_build_gem a1
+
+ remote = Gem::Source.new @gem_repo
+ specific = Gem::Source::SpecificFile.new a1.cache_file
+ installed = Gem::Source::Installed.new
+ local = Gem::Source::Local.new
+
+ assert_equal( 0, installed.<=>(installed), 'installed <=> installed')
+
+ assert_equal(-1, remote. <=>(installed), 'remote <=> installed')
+ assert_equal( 1, installed.<=>(remote), 'installed <=> remote')
+
+ assert_equal( 1, installed.<=>(local), 'installed <=> local')
+ assert_equal(-1, local. <=>(installed), 'local <=> installed')
+
+ assert_equal(-1, specific. <=>(installed), 'specific <=> installed')
+ assert_equal( 1, installed.<=>(specific), 'installed <=> specific')
+ end
+
+end
+
diff --git a/test/rubygems/test_gem_source_local.rb b/test/rubygems/test_gem_source_local.rb
index 8e901cfd21..b3b444ccde 100644
--- a/test/rubygems/test_gem_source_local.rb
+++ b/test/rubygems/test_gem_source_local.rb
@@ -66,18 +66,41 @@ class TestGemSourceLocal < Gem::TestCase
assert_equal s, @a
end
+ def test_inspect
+ assert_equal '#<Gem::Source::Local specs: "NOT LOADED">', @sl.inspect
+
+ @sl.load_specs :released
+
+ inner = [@a, @ap, @b].map { |t| t.name_tuple }.inspect
+
+ assert_equal "#<Gem::Source::Local specs: #{inner}>", @sl.inspect
+ end
+
def test_download
path = @sl.download @a
assert_equal File.expand_path(@a.file_name), path
end
- def test_compare
- uri = URI.parse "http://gems.example/foo"
- s = Gem::Source.new uri
+ def test_spaceship
+ a1 = quick_gem 'a', '1'
+ util_build_gem a1
- assert_equal(-1, s <=> @sl)
- assert_equal 0, @sl <=> @sl
- assert_equal 1, @sl <=> s
+ remote = Gem::Source.new @gem_repo
+ specific = Gem::Source::SpecificFile.new a1.cache_file
+ installed = Gem::Source::Installed.new
+ local = Gem::Source::Local.new
+
+ assert_equal( 0, local. <=>(local), 'local <=> local')
+
+ assert_equal(-1, remote. <=>(local), 'remote <=> local')
+ assert_equal( 1, local. <=>(remote), 'local <=> remote')
+
+ assert_equal( 1, installed.<=>(local), 'installed <=> local')
+ assert_equal(-1, local. <=>(installed), 'local <=> installed')
+
+ assert_equal(-1, specific. <=>(local), 'specific <=> local')
+ assert_equal( 1, local. <=>(specific), 'local <=> specific')
end
+
end
diff --git a/test/rubygems/test_gem_source_specific_file.rb b/test/rubygems/test_gem_source_specific_file.rb
index 1d8351781f..8ccbe50c91 100644
--- a/test/rubygems/test_gem_source_specific_file.rb
+++ b/test/rubygems/test_gem_source_specific_file.rb
@@ -30,4 +30,42 @@ class TestGemSourceSpecificFile < Gem::TestCase
def test_download
assert_equal @a_gem, @sf.download(@a)
end
+
+ def test_spaceship
+ a1 = quick_gem 'a', '1'
+ util_build_gem a1
+
+ remote = Gem::Source.new @gem_repo
+ specific = Gem::Source::SpecificFile.new a1.cache_file
+ installed = Gem::Source::Installed.new
+ local = Gem::Source::Local.new
+
+ assert_equal( 0, specific. <=>(specific), 'specific <=> specific')
+
+ assert_equal(-1, remote. <=>(specific), 'remote <=> specific')
+ assert_equal( 1, specific. <=>(remote), 'specific <=> remote')
+
+ assert_equal(-1, specific. <=>(local), 'specific <=> local')
+ assert_equal( 1, local. <=>(specific), 'local <=> specific')
+
+ assert_equal(-1, specific. <=>(installed), 'specific <=> installed')
+ assert_equal( 1, installed.<=>(specific), 'installed <=> specific')
+
+ a2 = quick_gem 'a', '2'
+ util_build_gem a2
+
+ b1 = quick_gem 'b', '1'
+ util_build_gem b1
+
+ a1_source = specific
+ a2_source = Gem::Source::SpecificFile.new a2.cache_file
+ b1_source = Gem::Source::SpecificFile.new b1.cache_file
+
+ assert_nil a1_source.<=>(b1_source), 'a1_source <=> b1_source'
+
+ assert_equal(-1, a1_source.<=>(a2_source), 'a1_source <=> a2_source')
+ assert_equal( 0, a1_source.<=>(a1_source), 'a1_source <=> a1_source')
+ assert_equal( 1, a2_source.<=>(a1_source), 'a2_source <=> a1_source')
+ end
+
end
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index dce7ad260b..efda6f6f19 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -445,6 +445,14 @@ end
end
end
+ def test_self_all_equals
+ a = new_spec "foo", "1", nil, "lib/foo.rb"
+
+ Gem::Specification.all = [a]
+
+ assert_equal a, Gem::Specification.find_inactive_by_path('foo')
+ end
+
def test_self_attribute_names
expected_value = %w[
authors
@@ -1313,7 +1321,7 @@ dependencies: []
end
def test_base_dir_not_loaded
- @a1.instance_variable_set :@filename, nil
+ @a1.instance_variable_set :@loaded_from, nil
assert_equal Gem.dir, @a1.base_dir
end
@@ -1322,7 +1330,7 @@ dependencies: []
default_dir =
File.join Gem::Specification.default_specifications_dir, @a1.spec_name
- @a1.instance_variable_set :@filename, default_dir
+ @a1.instance_variable_set :@loaded_from, default_dir
assert_equal Gem.default_dir, @a1.base_dir
end