diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
commit | 0dc342de848a642ecce8db697b8fecd83a63e117 (patch) | |
tree | 2b7ed4724aff1f86073e4740134bda9c4aac1a39 /trunk/test/rubygems/test_gem_source_info_cache_entry.rb | |
parent | ef70cf7138ab8034b5b806f466e4b484b24f0f88 (diff) |
added tag v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/test/rubygems/test_gem_source_info_cache_entry.rb')
-rw-r--r-- | trunk/test/rubygems/test_gem_source_info_cache_entry.rb | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/trunk/test/rubygems/test_gem_source_info_cache_entry.rb b/trunk/test/rubygems/test_gem_source_info_cache_entry.rb new file mode 100644 index 0000000000..6986c9cd7f --- /dev/null +++ b/trunk/test/rubygems/test_gem_source_info_cache_entry.rb @@ -0,0 +1,79 @@ +require 'test/unit' +require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities') +require 'rubygems/source_info_cache_entry' + +class TestGemSourceInfoCacheEntry < RubyGemTestCase + + def setup + super + + util_setup_fake_fetcher + + @si = Gem::SourceIndex.new + @si.add_spec @a1 + @sic_e = Gem::SourceInfoCacheEntry.new @si, @si.dump.size + end + + def test_refresh + @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}.Z"] = + proc { raise } + @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}"] = @si.dump + + use_ui @ui do + @sic_e.refresh @gem_repo, true + end + end + + def test_refresh_all + @si.add_spec @a2 + + a1_name = @a1.full_name + a2_name = @a2.full_name + + @fetcher.data["#{@gem_repo}quick/index.rz"] = + util_zip [a1_name, a2_name].join("\n") + @fetcher.data["#{@gem_repo}quick/latest_index.rz"] = util_zip a2_name + @fetcher.data["#{@gem_repo}quick/Marshal.#{Gem.marshal_version}/#{a1_name}.gemspec.rz"] = util_zip Marshal.dump(@a1) + @fetcher.data["#{@gem_repo}quick/Marshal.#{Gem.marshal_version}/#{a2_name}.gemspec.rz"] = util_zip Marshal.dump(@a2) + @fetcher.data["#{@gem_repo}Marshal.#{Gem.marshal_version}"] = + Marshal.dump @si + + sic_e = Gem::SourceInfoCacheEntry.new Gem::SourceIndex.new, 0 + + assert_equal [], sic_e.source_index.map { |n,| n } + + use_ui @ui do + assert sic_e.refresh(@gem_repo, false) + end + + assert_equal [a2_name], sic_e.source_index.map { |n,| n }.sort + + use_ui @ui do + sic_e.refresh @gem_repo, true + end + + assert_equal [a1_name, a2_name], sic_e.source_index.map { |n,| n }.sort + end + + def test_refresh_bad_uri + assert_raise URI::BadURIError do + @sic_e.refresh 'gems.example.com', true + end + end + + def test_refresh_update + si = Gem::SourceIndex.new + si.add_spec @a1 + si.add_spec @b2 + @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}"] = si.dump + + use_ui @ui do + @sic_e.refresh @gem_repo, true + end + + new_gem = @sic_e.source_index.specification(@b2.full_name) + assert_equal @b2.full_name, new_gem.full_name + end + +end + |