Change soft-fail to use the config, rather than env
[rbx.git] / test / rubygems / test_gem_commands_mirror_command.rb
blob359ba5481e6933ed6b529eb432ed466c64845145
1 require 'test/unit'
2 require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
3 require 'rubygems/indexer'
4 require 'rubygems/commands/mirror_command'
6 class TestGemCommandsMirrorCommand < RubyGemTestCase
8   def setup
9     super
11     @cmd = Gem::Commands::MirrorCommand.new
12   end
14   def test_execute
15     util_make_gems
17     gems_dir = File.join @tempdir, 'gems'
18     mirror = File.join @tempdir, 'mirror'
20     FileUtils.mkdir_p gems_dir
21     FileUtils.mkdir_p mirror
23     Dir[File.join(@gemhome, 'cache', '*.gem')].each do |gem|
24       FileUtils.mv gem, gems_dir
25     end
27     use_ui @ui do
28       Gem::Indexer.new(@tempdir).generate_index
29     end
31     orig_HOME = ENV['HOME']
32     ENV['HOME'] = @tempdir
33     Gem.instance_variable_set :@user_home, nil
35     File.open File.join(Gem.user_home, '.gemmirrorrc'), 'w' do |fp|
36       fp.puts "---"
37       # tempdir could be a drive+path (under windows)
38       if @tempdir.match(/[a-z]:/i)
39         fp.puts "- from: file:///#{@tempdir}"
40       else
41         fp.puts "- from: file://#{@tempdir}"
42       end
43       fp.puts "  to: #{mirror}"
44     end
46     use_ui @ui do
47       @cmd.execute
48     end
50     assert File.exist?(File.join(mirror, 'gems', "#{@a1.full_name}.gem"))
51     assert File.exist?(File.join(mirror, 'gems', "#{@a2.full_name}.gem"))
52     assert File.exist?(File.join(mirror, 'gems', "#{@b2.full_name}.gem"))
53     assert File.exist?(File.join(mirror, 'gems', "#{@c1_2.full_name}.gem"))
54     assert File.exist?(File.join(mirror, "Marshal.#{@marshal_version}"))
55   ensure
56     orig_HOME.nil? ? ENV.delete('HOME') : ENV['HOME'] = orig_HOME
57     Gem.instance_variable_set :@user_home, nil
58   end
60 end if ''.respond_to? :to_xs