1
require_relative 'gemutilities'
2
require 'rubygems/indexer'
3
require 'rubygems/commands/mirror_command'
5
class TestGemCommandsMirrorCommand < RubyGemTestCase
10
@cmd = Gem::Commands::MirrorCommand.new
16
gems_dir = File.join @tempdir, 'gems'
17
mirror = File.join @tempdir, 'mirror'
19
FileUtils.mkdir_p gems_dir
20
FileUtils.mkdir_p mirror
22
Dir[File.join(@gemhome, 'cache', '*.gem')].each do |gem|
23
FileUtils.mv gem, gems_dir
27
Gem::Indexer.new(@tempdir).generate_index
30
orig_HOME = ENV['HOME']
31
ENV['HOME'] = @tempdir
32
Gem.instance_variable_set :@user_home, nil
34
File.open File.join(Gem.user_home, '.gemmirrorrc'), 'w' do |fp|
36
# tempdir could be a drive+path (under windows)
37
if @tempdir.match(/[a-z]:/i)
38
fp.puts "- from: file:///#{@tempdir}"
40
fp.puts "- from: file://#{@tempdir}"
42
fp.puts " to: #{mirror}"
49
assert File.exist?(File.join(mirror, 'gems', @a1.file_name))
50
assert File.exist?(File.join(mirror, 'gems', @a2.file_name))
51
assert File.exist?(File.join(mirror, 'gems', @b2.file_name))
52
assert File.exist?(File.join(mirror, 'gems', @c1_2.file_name))
53
assert File.exist?(File.join(mirror, "Marshal.#{@marshal_version}"))
55
orig_HOME.nil? ? ENV.delete('HOME') : ENV['HOME'] = orig_HOME
56
Gem.instance_variable_set :@user_home, nil
59
end if ''.respond_to? :to_xs