Sha256: db5a24f342a87f3bc4892320954b08748c9ae366c47320e5c5ee037d251596b9

Contents?: true

Size: 1.63 KB

Versions: 4

Compression:

Stored size: 1.63 KB

Contents

#!/usr/bin/env ruby
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++

require 'test/unit'
require 'test/gemenvironment'

class TestRequireGem < Test::Unit::TestCase

  def setup
    @old_path = $:.dup
    TestEnvironment.create
    Gem.use_paths("test/data/gemhome")
    Gem.source_index.refresh!
    Gem.instance_eval { @loaded_specs.clear if @loaded_specs }
  end

  def teardown
    $:.replace @old_path
  end

  def test_require
    assert gem('a', '= 0.0.1'), "Should load"
    assert $:.any? { |p| %r{a-0.0.1/lib} =~ p }
    assert $:.any? { |p| %r{a-0.0.1/bin} =~ p }
  end

  def test_redundent_requires
    assert gem('a', '= 0.0.1'), "Should load"
    assert ! gem('a', '= 0.0.1'), "Should not load"
    assert_equal 1, $:.select { |p| %r{a-0.0.1/lib} =~ p }.size
    assert_equal 1, $:.select { |p| %r{a-0.0.1/bin} =~ p }.size
  end

  def test_overlapping_requires
    assert gem('a', '= 0.0.1'), "Should load"
    assert ! gem('a', '>= 0.0.1'), "Should not load"
    assert_equal 1, $:.select { |p| %r{a-0.0.1/lib} =~ p }.size
    assert_equal 1, $:.select { |p| %r{a-0.0.1/bin} =~ p }.size
  end

  def test_conflicting_requires
    assert gem('a', '= 0.0.1'), "Should load"
    ex = assert_raises(Gem::Exception) { 
      gem 'a', '= 0.0.2'
    }
    assert_match(/activate a \(= 0\.0\.2\)/, ex.message)
    assert_match(/activated a-0\.0\.1/, ex.message)
    assert $:.any? { |p| %r{a-0.0.1/lib} =~ p }
    assert $:.any? { |p| %r{a-0.0.1/bin} =~ p }
    assert ! $:.any? { |p| %r{a-0.0.2/lib} =~ p }
    assert ! $:.any? { |p| %r{a-0.0.2/bin} =~ p }
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rubygems-update-0.9.3 test/test_require_gem.rb
rubygems-update-0.9.2 test/test_require_gem.rb
rubygems-update-0.9.1 test/test_require_gem.rb
rubygems-update-0.9.4 test/test_require_gem.rb