From b551e8c8b36766651be4e782e09e3b02e7d14a10 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 22 Feb 2010 02:52:35 +0000 Subject: * lib/rubygems: update to 1.3.6. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem_commands_push_command.rb | 61 +++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 test/rubygems/test_gem_commands_push_command.rb (limited to 'test/rubygems/test_gem_commands_push_command.rb') diff --git a/test/rubygems/test_gem_commands_push_command.rb b/test/rubygems/test_gem_commands_push_command.rb new file mode 100644 index 0000000000..d461bd8af6 --- /dev/null +++ b/test/rubygems/test_gem_commands_push_command.rb @@ -0,0 +1,61 @@ +require_relative 'gemutilities' +require 'rubygems/commands/push_command' + +class TestGemCommandsPushCommand < RubyGemTestCase + + def setup + super + + @gems_dir = File.join @tempdir, 'gems' + @cache_dir = File.join @gemhome, 'cache' + FileUtils.mkdir @gems_dir + Gem.configuration.rubygems_api_key = "ed244fbf2b1a52e012da8616c512fa47f9aa5250" + @spec, @path = util_gem("freewill", "1.0.0") + + @fetcher = Gem::FakeFetcher.new + Gem::RemoteFetcher.fetcher = @fetcher + + @cmd = Gem::Commands::PushCommand.new + end + + def test_sending_gem + response = "Successfully registered gem: freewill (1.0.0)" + @fetcher.data["https://rubygems.org/api/v1/gems"] = [response, 200, 'OK'] + + use_ui @ui do + @cmd.send_gem(@path) + end + + assert_match %r{Pushing gem to RubyGems.org...}, @ui.output + + assert_equal Net::HTTP::Post, @fetcher.last_request.class + assert_equal Gem.read_binary(@path), @fetcher.last_request.body + assert_equal File.size(@path), @fetcher.last_request["Content-Length"].to_i + assert_equal "application/octet-stream", @fetcher.last_request["Content-Type"] + assert_equal Gem.configuration.rubygems_api_key, @fetcher.last_request["Authorization"] + + assert_match response, @ui.output + end + + def test_raises_error_with_no_arguments + def @cmd.sign_in; end + assert_raises Gem::CommandLineError do + @cmd.execute + end + end + + def test_sending_gem_denied + response = "You don't have permission to push to this gem" + @fetcher.data["https://rubygems.org/api/v1/gems"] = [response, 403, 'Forbidden'] + + assert_raises MockGemUi::TermError do + use_ui @ui do + @cmd.send_gem(@path) + end + end + + assert_match response, @ui.output + end + +end + -- cgit v1.2.3