From bab42629ebff81cf5d8117f91bd536b3b2ac4a48 Mon Sep 17 00:00:00 2001 From: drbrain Date: Thu, 7 Feb 2013 22:17:08 +0000 Subject: * lib/rubygems/dependency_installer.rb: Only install local gems if they end in '.gem'. Fixes github rubygems issue #407. * test/rubygems/test_gem_dependency_installer.rb: Test for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem_dependency_installer.rb | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test') diff --git a/test/rubygems/test_gem_dependency_installer.rb b/test/rubygems/test_gem_dependency_installer.rb index 0d1a564fc7..bbab5fe91e 100644 --- a/test/rubygems/test_gem_dependency_installer.rb +++ b/test/rubygems/test_gem_dependency_installer.rb @@ -794,6 +794,19 @@ class TestGemDependencyInstaller < Gem::TestCase assert_equal Gem::Source.new(@gem_repo), s.source end + def test_find_spec_by_name_and_version_bad_gem + FileUtils.touch 'rdoc.gem' + + inst = Gem::DependencyInstaller.new + + e = assert_raises Gem::Package::FormatError do + inst.find_spec_by_name_and_version 'rdoc.gem' + end + + full_path = File.join @tempdir, 'rdoc.gem' + assert_equal "package metadata is missing in #{full_path}", e.message + end + def test_find_spec_by_name_and_version_directory Dir.mkdir 'rdoc' @@ -808,6 +821,20 @@ class TestGemDependencyInstaller < Gem::TestCase e.message end + def test_find_spec_by_name_and_version_file + FileUtils.touch 'rdoc' + + inst = Gem::DependencyInstaller.new + + e = assert_raises Gem::SpecificGemNotFoundException do + inst.find_spec_by_name_and_version 'rdoc' + end + + assert_equal "Could not find a valid gem 'rdoc' (>= 0) " + + "locally or in a repository", + e.message + end + def test_find_gems_with_sources_local util_setup_gems -- cgit v1.2.3