summaryrefslogtreecommitdiff
path: root/test/rubygems/test_kernel.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_kernel.rb')
-rw-r--r--test/rubygems/test_kernel.rb103
1 files changed, 54 insertions, 49 deletions
diff --git a/test/rubygems/test_kernel.rb b/test/rubygems/test_kernel.rb
index 4efa7e075d..d862b26fe9 100644
--- a/test/rubygems/test_kernel.rb
+++ b/test/rubygems/test_kernel.rb
@@ -1,95 +1,98 @@
# frozen_string_literal: true
-require_relative 'helper'
-class TestKernel < Gem::TestCase
+require_relative "helper"
+
+class TestGemKernel < Gem::TestCase
def setup
super
- @old_path = $:.dup
-
util_make_gems
without_any_upwards_gemfiles
end
- def teardown
- super
-
- $:.replace @old_path
- end
-
def test_gem
- assert gem('a', '= 1'), "Should load"
- assert $:.any? {|p| %r{a-1/lib} =~ p }
+ assert gem("a", "= 1"), "Should load"
+ assert $:.any? {|p| p.include?("a-1/lib") }
end
def test_gem_default
- assert gem('a', '>= 0')
+ assert gem("a", ">= 0")
- assert_equal @a2, Gem.loaded_specs['a']
+ assert_equal @a2, Gem.loaded_specs["a"]
end
def test_gem_default_re_gem
- assert gem('a', '=1')
+ assert gem("a", "=1")
- refute gem('a', '>= 0')
+ refute gem("a", ">= 0")
- assert_equal @a1, Gem.loaded_specs['a']
+ assert_equal @a1, Gem.loaded_specs["a"]
end
def test_gem_re_gem_mismatch
- assert gem('a', '=1')
+ assert gem("a", "=1")
assert_raise Gem::LoadError do
- gem('a', '= 2')
+ gem("a", "= 2")
end
- assert_equal @a1, Gem.loaded_specs['a']
+ assert_equal @a1, Gem.loaded_specs["a"]
end
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
+ assert gem("a", "= 1"), "Should load"
+ refute gem("a", "= 1"), "Should not load"
+ assert_equal 1, $:.count {|p| p.include?("a-1/lib") }
end
def test_gem_overlapping
- assert gem('a', '= 1'), "Should load"
- refute gem('a', '>= 1'), "Should not load"
- assert_equal 1, $:.select {|p| %r{a-1/lib} =~ p }.size
+ assert gem("a", "= 1"), "Should load"
+ refute gem("a", ">= 1"), "Should not load"
+ assert_equal 1, $:.count {|p| p.include?("a-1/lib") }
end
- def test_gem_prerelease
- quick_gem 'd', '1.1.a'
- refute gem('d', '>= 1'), 'release requirement must not load prerelease'
- assert gem('d', '>= 1.a'), 'prerelease requirement may load prerelease'
+ def test_gem_prerelease_is_the_only_available
+ quick_gem "d", "1.1.a"
+
+ assert gem("d", ">= 1"), "release requirement may load prerelease when sole option"
+ assert $:.one? {|p| p.include?("/d-1.1.a/lib") }
+ end
+
+ def test_release_favored_over_prerelease
+ quick_gem "d", "1.1.a"
+ quick_gem "d", "1.2"
+ gem("d", ">= 1")
+
+ refute $:.any? {|p| p.include?("/d-1.1.a/lib") }
+ assert $:.one? {|p| p.include?("/d-1.2/lib") }
end
def test_gem_env_req
- ENV["GEM_REQUIREMENT_A"] = '~> 2.0'
- assert_raise(Gem::MissingSpecVersionError) { gem('a', '= 1') }
- assert gem('a', '> 1')
- assert_equal @a2, Gem.loaded_specs['a']
+ ENV["GEM_REQUIREMENT_A"] = "~> 2.0"
+ assert_raise(Gem::MissingSpecVersionError) { gem("a", "= 1") }
+ assert gem("a", "> 1")
+ assert_equal @a2, Gem.loaded_specs["a"]
end
def test_gem_conflicting
- assert gem('a', '= 1'), "Should load"
+ assert gem("a", "= 1"), "Should load"
ex = assert_raise Gem::LoadError do
- gem 'a', '= 2'
+ gem "a", "= 2"
end
assert_equal "can't activate a-2, already activated a-1", ex.message
assert_match(/activated a-1/, ex.message)
- assert_equal 'a', ex.name
+ assert_equal "a", ex.name
- assert $:.any? {|p| %r{a-1/lib} =~ p }
- refute $:.any? {|p| %r{a-2/lib} =~ p }
+ assert $:.any? {|p| p.include?("a-1/lib") }
+ refute $:.any? {|p| p.include?("a-2/lib") }
end
def test_gem_not_adding_bin
- assert gem('a', '= 1'), "Should load"
- refute $:.any? {|p| %r{a-1/bin} =~ p }
+ assert gem("a", "= 1"), "Should load"
+ refute $:.any? {|p| p.include?("a-1/bin") }
end
def test_gem_failing_inside_require_doesnt_cause_double_exceptions
@@ -110,20 +113,22 @@ class TestKernel < Gem::TestCase
end
def test_gem_bundler
- quick_gem 'bundler', '1'
- quick_gem 'bundler', '2.a'
+ quick_gem "bundler", "1"
+ quick_gem "bundler", "2.a"
- assert gem('bundler')
- assert $:.any? {|p| %r{bundler-1/lib} =~ p }
+ assert gem("bundler")
+ assert $:.any? {|p| p.include?("bundler-1/lib") }
end
def test_gem_bundler_inferred_bundler_version
+ require "rubygems/bundler_version_finder"
+
Gem::BundlerVersionFinder.stub(:bundler_version, Gem::Version.new("1")) do
- quick_gem 'bundler', '1'
- quick_gem 'bundler', '2.a'
+ quick_gem "bundler", "1"
+ quick_gem "bundler", "2.a"
- assert gem('bundler', '>= 0.a')
- assert $:.any? {|p| %r{bundler-1/lib} =~ p }
+ assert gem("bundler", ">= 0.a")
+ assert $:.any? {|p| p.include?("bundler-1/lib") }
end
end
end