aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem_spec_fetcher.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-28 22:25:55 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-28 22:25:55 +0000
commita5dfaca00a94bc3d135aae52b4458f5a355bf0ed (patch)
tree77c9580bb289422d6e97749934a8c24c8aadc76c /test/rubygems/test_gem_spec_fetcher.rb
parent3fc7731297d8de1f52cec9382a4f1f0a08bea949 (diff)
downloadruby-a5dfaca00a94bc3d135aae52b4458f5a355bf0ed.tar.gz
* lib/rubygems/ext/builder.rb: Fix incompatibilities when installing
extensions. Patch by Nobu. [ruby-trunk - Bug #7968] [ruby-trunk - Bug #7971] * lib/rubygems/ext/ext_conf_builder.rb: ditto. * lib/rubygems/installer.rb: ditto. * test/rubygems/test_gem_ext_ext_conf_builder.rb: Test for the above. * test/rubygems/test_gem_installer.rb: ditto. * lib/rubygems/commands/sources_command.rb: Prefer HTTPS over HTTP. * lib/rubygems/defaults.rb: ditto * lib/rubygems/dependency_resolver.rb: Ditto. * lib/rubygems/source.rb: ditto. * lib/rubygems/spec_fetcher.rb: ditto. * lib/rubygems/specification.rb: ditto. * lib/rubygems/test_utilities.rb: ditto. * test/rubygems/test_gem.rb: Test for the above. * test/rubygems/test_gem_commands_sources_command.rb: ditto. * test/rubygems/test_gem_dependency_resolver_api_set.rb: ditto. * test/rubygems/test_gem_remote_fetcher.rb: ditto. * test/rubygems/test_gem_source.rb: ditto. * test/rubygems/test_gem_spec_fetcher.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_spec_fetcher.rb')
-rw-r--r--test/rubygems/test_gem_spec_fetcher.rb47
1 files changed, 39 insertions, 8 deletions
diff --git a/test/rubygems/test_gem_spec_fetcher.rb b/test/rubygems/test_gem_spec_fetcher.rb
index b4aff095c0..ac48edde96 100644
--- a/test/rubygems/test_gem_spec_fetcher.rb
+++ b/test/rubygems/test_gem_spec_fetcher.rb
@@ -32,13 +32,14 @@ class TestGemSpecFetcher < Gem::TestCase
Gem::NameTuple.new(spec.name, spec.version, spec.original_platform)
}
- v = Gem.marshal_version
- s_zip = util_gzip(Marshal.dump(Gem::NameTuple.to_basic(@specs)))
- l_zip = util_gzip(Marshal.dump(Gem::NameTuple.to_basic(@latest_specs)))
- p_zip = util_gzip(Marshal.dump(Gem::NameTuple.to_basic(@prerelease_specs)))
- @fetcher.data["#{@gem_repo}specs.#{v}.gz"] = s_zip
- @fetcher.data["#{@gem_repo}latest_specs.#{v}.gz"] = l_zip
- @fetcher.data["#{@gem_repo}prerelease_specs.#{v}.gz"] = p_zip
+ @v = Gem.marshal_version
+ @s_zip = util_gzip(Marshal.dump(Gem::NameTuple.to_basic(@specs)))
+ @l_zip = util_gzip(Marshal.dump(Gem::NameTuple.to_basic(@latest_specs)))
+ @p_zip = util_gzip(Marshal.dump(Gem::NameTuple.to_basic(@prerelease_specs)))
+
+ @fetcher.data["#{@gem_repo}specs.#{@v}.gz"] = @s_zip
+ @fetcher.data["#{@gem_repo}latest_specs.#{@v}.gz"] = @l_zip
+ @fetcher.data["#{@gem_repo}prerelease_specs.#{@v}.gz"] = @p_zip
@sf = Gem::SpecFetcher.new
@@ -200,7 +201,6 @@ class TestGemSpecFetcher < Gem::TestCase
assert_equal comp.sort, specs[@source].sort
end
-
def test_available_specs_cache
specs, _ = @sf.available_specs(:latest)
@@ -240,5 +240,36 @@ class TestGemSpecFetcher < Gem::TestCase
assert_kind_of Gem::SourceFetchProblem, errors.first
end
+ def test_upgrade_http_source
+ Gem.configuration.verbose = :really
+
+ source = Gem::Source.new URI 'http://example'
+ same_source = nil
+ https_source = nil
+
+ use_ui @ui do
+ same_source = @sf.upgrade_http_source source
+ end
+
+ assert_equal URI('http://example'), same_source.uri
+
+ @fetcher.data['https://example/'] = 'hello'
+
+ use_ui @ui do
+ https_source = @sf.upgrade_http_source source
+ end
+
+ assert_equal URI('https://example'), https_source.uri
+
+ assert_empty @ui.error
+
+ expected = <<-EXPECTED
+Upgrading http://example to HTTPS failed, continuing
+Upgraded http://example to HTTPS
+ EXPECTED
+
+ assert_equal expected, @ui.output
+ end
+
end