#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
# See LICENSE.txt for permissions.
#++
require 'fileutils'
require 'tmpdir'
require 'test/unit'
require 'rubygems'
require 'test/gemutilities'
Gem::manage_gems
class TestFileList < RubyGemTestCase
def import_spec(name)
file = File.join(@gem_install_path, "specifications", name)
eval File.read(file)
end
def setup
@spec = Gem::Specification.new do |s|
s.files = ['lib/code.rb','lib/apple.rb','lib/brown.rb']
s.name = "a"
s.version = "0.0.1"
s.summary = "summary"
s.description = "desc"
s.require_path = 'lib'
end
@cm = Gem::CommandManager.new
@contents = @cm['contents']
current_path = Dir.getwd
@gem_install_path = File.join(current_path, "test/mock/gems/")
@gem_root_dir = File.join(@gem_install_path, "gems", @spec.name + "-" + @spec.version.to_s)
@gemspec_filename = @spec.name + '-' + @spec.version.to_s + '.gemspec'
@spec_destination_path = File.join(@gem_install_path, "specifications", @gemspec_filename)
begin
File.open(@spec_destination_path, 'w') do |fp|
fp.write @spec.to_ruby
end
rescue Exception => e
# ignore errors in setup
end
end
def teardown
FileUtils.rm_rf @spec_destination_path unless $DEBUG
end
def test_inspect_list
args = ["-s", @gem_install_path, "a"]
Gem::Command.instance_eval "public :handle_options"
@contents.handle_options(args)
sio = StringIO.new
@contents.execute(sio)
files = sio.string.split("\n")
code = File.join(@gem_root_dir,"lib/code.rb")
assert_match(code, files[0])
end
def test_inspect_list_unknown
args = ["-s", @gem_install_path, "not_there"]
Gem::Command.instance_eval "public :handle_options"
@contents.handle_options(args)
sio = StringIO.new
@contents.execute(sio)
assert_match(/Unable to find/, sio.string)
end
def disable_test_specification
puts " dest path: " + @spec_destination_path
assert(FileTest.exists?(@spec_destination_path))
assert(FileTest.size(@spec_destination_path)>0)
spec = import_spec(@gemspec_filename)
p spec.require_paths
p spec.full_gem_path
files = spec.files.map do |f|
end
root = @gem_install_path + "a-0.0.1";
puts " files[0] is: " + files[0]
check1 = root + "/lib/code.rb"
puts " check1 is " + check1
assert(files[0] == check1)
assert(files[1] == root + "/lib/apple.rb");
assert(files[2] == root + "/lib/brown.rb");
end
end
syntax highlighted by Code2HTML, v. 0.9.1