Updated RubySpec submodule to 9f66d0b1.
[rbx.git] / test / rubygems / test_kernel.rb
blob3c6448e4703240e35461c8fde3f7885cd3dfbfbb
1 #!/usr/bin/env ruby
2 #--
3 # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
4 # All rights reserved.
5 # See LICENSE.txt for permissions.
6 #++
8 require 'test/unit'
9 require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
10 require 'rubygems/package'
12 class TestKernel < RubyGemTestCase
14   def setup
15     super
17     @old_path = $:.dup
19     util_make_gems
20   end
22   def teardown
23     super
25     $:.replace @old_path
26   end
28   def test_gem
29     assert gem('a', '= 1'), "Should load"
30     assert $:.any? { |p| %r{a-1/lib} =~ p }
31     assert $:.any? { |p| %r{a-1/bin} =~ p }
32   end
34   def test_gem_redundent
35     assert gem('a', '= 1'), "Should load"
36     assert ! gem('a', '= 1'), "Should not load"
37     assert_equal 1, $:.select { |p| %r{a-1/lib} =~ p }.size
38     assert_equal 1, $:.select { |p| %r{a-1/bin} =~ p }.size
39   end
41   def test_gem_overlapping
42     assert gem('a', '= 1'), "Should load"
43     assert ! gem('a', '>= 1'), "Should not load"
44     assert_equal 1, $:.select { |p| %r{a-1/lib} =~ p }.size
45     assert_equal 1, $:.select { |p| %r{a-1/bin} =~ p }.size
46   end
48   def test_gem_conflicting
49     assert gem('a', '= 1'), "Should load"
51     ex = assert_raise Gem::Exception do
52       gem 'a', '= 2'
53     end
55     assert_match(/activate a \(= 2\)/, ex.message)
56     assert_match(/activated a-1/, ex.message)
58     assert $:.any? { |p| %r{a-1/lib} =~ p }
59     assert $:.any? { |p| %r{a-1/bin} =~ p }
60     assert ! $:.any? { |p| %r{a-2/lib} =~ p }
61     assert ! $:.any? { |p| %r{a-2/bin} =~ p }
62   end
64 end