Change soft-fail to use the config, rather than env
[rbx.git] / test / rubygems / test_gem_format.rb
blob4014acfed9b379929ab36a07c85f67f471bf65fc
1 #--
2 # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
3 # All rights reserved.
4 # See LICENSE.txt for permissions.
5 #++
7 require 'test/unit'
8 require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
9 require File.join(File.expand_path(File.dirname(__FILE__)), 'simple_gem')
10 require 'rubygems/format'
12 class TestGemFormat < RubyGemTestCase
14   def setup
15     super
17     @simple_gem = SIMPLE_GEM
18   end
20   def test_from_file_by_path
21     util_make_gems
23     gems = Dir[File.join(@gemhome, 'cache', '*.gem')]
25     names = [@a1, @a2, @a_evil9, @b2, @c1_2, @pl1].map do |spec|
26       spec.original_name
27     end
29     gems_n_names = gems.sort.zip names
31     gems_n_names.each do |gemfile, name|
32       spec = Gem::Format.from_file_by_path(gemfile).spec
34       assert_equal name, spec.original_name
35     end
36   end
38   def test_from_file_by_path_nonexistent
39     assert_raise Gem::Exception do
40       Gem::Format.from_file_by_path '/nonexistent'
41     end
42   end
44   def test_from_io_garbled
45     e = assert_raise Gem::Package::FormatError do
46       # subtly bogus input
47       Gem::Format.from_io(StringIO.new(@simple_gem.upcase))
48     end
50     assert_equal 'No metadata found!', e.message
52     e = assert_raise Gem::Package::FormatError do
53       # Totally bogus input
54       Gem::Format.from_io(StringIO.new(@simple_gem.reverse))
55     end
57     assert_equal 'No metadata found!', e.message
59     e = assert_raise Gem::Package::FormatError do
60       # This was intentionally screws up YAML parsing.
61       Gem::Format.from_io(StringIO.new(@simple_gem.gsub(/:/, "boom")))
62     end
64     assert_equal 'No metadata found!', e.message
65   end
67 end