diff options
Diffstat (limited to 'test/rubygems/test_gem_commands_sources_command.rb')
-rw-r--r-- | test/rubygems/test_gem_commands_sources_command.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_commands_sources_command.rb b/test/rubygems/test_gem_commands_sources_command.rb index 6bae460c84..8dc2f91ed4 100644 --- a/test/rubygems/test_gem_commands_sources_command.rb +++ b/test/rubygems/test_gem_commands_sources_command.rb @@ -118,6 +118,45 @@ source #{@gem_repo} already present in the cache assert_equal '', @ui.error end + def test_execute_add_http_rubygems_org + http_rubygems_org = 'http://rubygems.org' + util_setup_fake_fetcher + + install_specs @a1 + + specs = Gem::Specification.map { |spec| + [spec.name, spec.version, spec.original_platform] + } + + specs_dump_gz = StringIO.new + Zlib::GzipWriter.wrap specs_dump_gz do |io| + Marshal.dump specs, io + end + + @fetcher.data["#{http_rubygems_org}/specs.#{@marshal_version}.gz"] = + specs_dump_gz.string + + @cmd.handle_options %W[--add #{http_rubygems_org}] + + util_setup_spec_fetcher + + ui = Gem::MockGemUi.new "n" + + use_ui ui do + assert_raises Gem::MockGemUi::TermError do + @cmd.execute + end + end + + assert_equal [@gem_repo], Gem.sources + + expected = <<-EXPECTED + EXPECTED + + assert_equal expected, @ui.output + assert_empty @ui.error + end + def test_execute_add_bad_uri @cmd.handle_options %w[--add beta-gems.example.com] |