summaryrefslogtreecommitdiff
path: root/trunk/test/rubygems/test_gem_spec_fetcher.rb
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/test/rubygems/test_gem_spec_fetcher.rb')
-rw-r--r--trunk/test/rubygems/test_gem_spec_fetcher.rb303
1 files changed, 0 insertions, 303 deletions
diff --git a/trunk/test/rubygems/test_gem_spec_fetcher.rb b/trunk/test/rubygems/test_gem_spec_fetcher.rb
deleted file mode 100644
index 2e9ce1b7eb..0000000000
--- a/trunk/test/rubygems/test_gem_spec_fetcher.rb
+++ /dev/null
@@ -1,303 +0,0 @@
-require 'test/unit'
-require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
-require 'rubygems/spec_fetcher'
-
-class TestGemSpecFetcher < RubyGemTestCase
-
- def setup
- super
-
- @uri = URI.parse @gem_repo
-
- util_setup_fake_fetcher
-
- @source_index.add_spec @pl1
-
- @specs = @source_index.gems.sort.map do |name, spec|
- [spec.name, spec.version, spec.original_platform]
- end.sort
-
- @fetcher.data["#{@gem_repo}specs.#{Gem.marshal_version}.gz"] =
- util_gzip(Marshal.dump(@specs))
-
- @latest_specs = @source_index.latest_specs.sort.map do |spec|
- [spec.name, spec.version, spec.original_platform]
- end
-
- @fetcher.data["#{@gem_repo}latest_specs.#{Gem.marshal_version}.gz"] =
- util_gzip(Marshal.dump(@latest_specs))
-
- @sf = Gem::SpecFetcher.new
- end
-
- def test_fetch_all
- @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a1.full_name}.gemspec.rz"] =
- util_zip(Marshal.dump(@a1))
- @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a2.full_name}.gemspec.rz"] =
- util_zip(Marshal.dump(@a2))
-
- dep = Gem::Dependency.new 'a', 1
- specs_and_sources = @sf.fetch dep, true
-
- spec_names = specs_and_sources.map do |spec, source_uri|
- [spec.full_name, source_uri]
- end
-
- expected = [[@a1.full_name, @gem_repo], [@a2.full_name, @gem_repo]]
-
- assert_equal expected, spec_names
-
- assert_same specs_and_sources.first.last, specs_and_sources.last.last
- end
-
- def test_fetch_latest
- @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a1.full_name}.gemspec.rz"] =
- util_zip(Marshal.dump(@a1))
- @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a2.full_name}.gemspec.rz"] =
- util_zip(Marshal.dump(@a2))
-
- dep = Gem::Dependency.new 'a', 1
- specs_and_sources = @sf.fetch dep
-
- spec_names = specs_and_sources.map do |spec, source_uri|
- [spec.full_name, source_uri]
- end
-
- assert_equal [[@a2.full_name, @gem_repo]], spec_names
- end
-
- def test_fetch_legacy_repo
- @fetcher.data["#{@gem_repo}specs.#{Gem.marshal_version}.gz"] = nil
- @fetcher.data["#{@gem_repo}yaml"] = ''
- util_setup_source_info_cache @a1, @a2
-
- dep = Gem::Dependency.new 'a', 1
- specs = nil
-
- use_ui @ui do
- specs = @sf.fetch dep, true
- end
-
- expected = <<-EOF
-WARNING: RubyGems 1.2+ index not found for:
-\thttp://gems.example.com/
-
-RubyGems will revert to legacy indexes degrading performance.
- EOF
-
- assert_equal expected, @ui.error
-
- specs = specs.map { |spec, source_uri| [spec.full_name, source_uri] }
-
- expected = [
- [@a1.full_name, @gem_repo],
- [@a2.full_name, @gem_repo],
- ]
-
- assert_equal expected, specs
- end
-
- def test_fetch_platform
- util_set_arch 'i386-linux'
-
- @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@pl1.original_name}.gemspec.rz"] =
- util_zip(Marshal.dump(@pl1))
-
- dep = Gem::Dependency.new 'pl', 1
- specs_and_sources = @sf.fetch dep
-
- spec_names = specs_and_sources.map do |spec, source_uri|
- [spec.full_name, source_uri]
- end
-
- assert_equal [[@pl1.full_name, @gem_repo]], spec_names
- end
-
- def test_fetch_spec
- spec_uri = "#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a1.full_name}.gemspec"
- @fetcher.data["#{spec_uri}.rz"] = util_zip(Marshal.dump(@a1))
-
- spec = @sf.fetch_spec ['a', Gem::Version.new(1), 'ruby'], @uri
- assert_equal @a1.full_name, spec.full_name
-
- cache_dir = @sf.cache_dir URI.parse(spec_uri)
-
- cache_file = File.join cache_dir, "#{@a1.full_name}.gemspec"
-
- assert File.exist?(cache_file)
- end
-
- def test_fetch_spec_cached
- spec_uri = "#{@gem_repo}/#{Gem::MARSHAL_SPEC_DIR}#{@a1.full_name}.gemspec"
- @fetcher.data["#{spec_uri}.rz"] = nil
-
- cache_dir = @sf.cache_dir URI.parse(spec_uri)
- FileUtils.mkdir_p cache_dir
-
- cache_file = File.join cache_dir, "#{@a1.full_name}.gemspec"
-
- open cache_file, 'wb' do |io|
- Marshal.dump @a1, io
- end
-
- spec = @sf.fetch_spec ['a', Gem::Version.new(1), 'ruby'], @uri
- assert_equal @a1.full_name, spec.full_name
- end
-
- def test_fetch_spec_platform
- @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@pl1.original_name}.gemspec.rz"] =
- util_zip(Marshal.dump(@pl1))
-
- spec = @sf.fetch_spec ['pl', Gem::Version.new(1), 'i386-linux'], @uri
-
- assert_equal @pl1.full_name, spec.full_name
- end
-
- def test_fetch_spec_platform_ruby
- @fetcher.data["#{@gem_repo}#{Gem::MARSHAL_SPEC_DIR}#{@a1.full_name}.gemspec.rz"] =
- util_zip(Marshal.dump(@a1))
-
- spec = @sf.fetch_spec ['a', Gem::Version.new(1), nil], @uri
- assert_equal @a1.full_name, spec.full_name
-
- spec = @sf.fetch_spec ['a', Gem::Version.new(1), ''], @uri
- assert_equal @a1.full_name, spec.full_name
- end
-
- def test_find_matching_all
- dep = Gem::Dependency.new 'a', 1
- specs = @sf.find_matching dep, true
-
- expected = [
- [['a', Gem::Version.new(1), Gem::Platform::RUBY], @gem_repo],
- [['a', Gem::Version.new(2), Gem::Platform::RUBY], @gem_repo],
- ]
-
- assert_equal expected, specs
- end
-
- def test_find_matching_latest
- dep = Gem::Dependency.new 'a', 1
- specs = @sf.find_matching dep
-
- expected = [
- [['a', Gem::Version.new(2), Gem::Platform::RUBY], @gem_repo],
- ]
-
- assert_equal expected, specs
- end
-
- def test_find_matching_platform
- util_set_arch 'i386-linux'
-
- dep = Gem::Dependency.new 'pl', 1
- specs = @sf.find_matching dep
-
- expected = [
- [['pl', Gem::Version.new(1), 'i386-linux'], @gem_repo],
- ]
-
- assert_equal expected, specs
-
- util_set_arch 'i386-freebsd6'
-
- dep = Gem::Dependency.new 'pl', 1
- specs = @sf.find_matching dep
-
- assert_equal [], specs
- end
-
- def test_find_all_platforms
- util_set_arch 'i386-freebsd6'
-
- dep = Gem::Dependency.new 'pl', 1
- specs = @sf.find_matching dep, false, false
-
- expected = [
- [['pl', Gem::Version.new(1), 'i386-linux'], @gem_repo],
- ]
-
- assert_equal expected, specs
- end
-
- def test_list
- specs = @sf.list
-
- assert_equal [@uri], specs.keys
- assert_equal @latest_specs, specs[@uri].sort
- end
-
- def test_list_all
- specs = @sf.list true
-
- assert_equal [@uri], specs.keys
-
- assert_equal @specs, specs[@uri].sort
- end
-
- def test_list_cache
- specs = @sf.list
-
- assert !specs[@uri].empty?
-
- @fetcher.data["#{@gem_repo}/latest_specs.#{Gem.marshal_version}.gz"] = nil
-
- cached_specs = @sf.list
-
- assert_equal specs, cached_specs
- end
-
- def test_list_cache_all
- specs = @sf.list true
-
- assert !specs[@uri].empty?
-
- @fetcher.data["#{@gem_repo}/specs.#{Gem.marshal_version}.gz"] = nil
-
- cached_specs = @sf.list true
-
- assert_equal specs, cached_specs
- end
-
- def test_load_specs
- specs = @sf.load_specs @uri, 'specs'
-
- expected = [
- ['a', Gem::Version.new(1), Gem::Platform::RUBY],
- ['a', Gem::Version.new(2), Gem::Platform::RUBY],
- ['a_evil', Gem::Version.new(9), Gem::Platform::RUBY],
- ['c', Gem::Version.new('1.2'), Gem::Platform::RUBY],
- ['pl', Gem::Version.new(1), 'i386-linux'],
- ]
-
- assert_equal expected, specs
-
- cache_dir = File.join Gem.user_home, '.gem', 'specs', 'gems.example.com%80'
- assert File.exist?(cache_dir), "#{cache_dir} does not exist"
-
- cache_file = File.join cache_dir, "specs.#{Gem.marshal_version}"
- assert File.exist?(cache_file)
- end
-
- def test_load_specs_cached
- @fetcher.data["#{@gem_repo}latest_specs.#{Gem.marshal_version}.gz"] = ''
- @fetcher.data["#{@gem_repo}latest_specs.#{Gem.marshal_version}"] =
- ' ' * Marshal.dump(@latest_specs).length
-
- cache_dir = File.join Gem.user_home, '.gem', 'specs', 'gems.example.com%80'
-
- FileUtils.mkdir_p cache_dir
-
- cache_file = File.join cache_dir, "latest_specs.#{Gem.marshal_version}"
-
- open cache_file, 'wb' do |io|
- Marshal.dump @latest_specs, io
- end
-
- latest_specs = @sf.load_specs @uri, 'latest_specs'
-
- assert_equal @latest_specs, latest_specs
- end
-
-end
-