diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-25 10:13:50 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-09-25 10:13:50 +0000 |
commit | d478c7a7342478847cc1148f4134b5f0db04e1d9 (patch) | |
tree | 3bfca425683a94d1360ecdf5857d741b8eaac213 /test/rubygems/test_gem_commands_uninstall_command.rb | |
parent | 788001a9c8473130bd357846785838045387b060 (diff) | |
download | ruby-d478c7a7342478847cc1148f4134b5f0db04e1d9.tar.gz |
Update to RubyGems 1.3.0 r1891
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_commands_uninstall_command.rb')
-rw-r--r-- | test/rubygems/test_gem_commands_uninstall_command.rb | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_commands_uninstall_command.rb b/test/rubygems/test_gem_commands_uninstall_command.rb new file mode 100644 index 0000000000..dfe84dc348 --- /dev/null +++ b/test/rubygems/test_gem_commands_uninstall_command.rb @@ -0,0 +1,60 @@ +require 'test/unit' +require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities') +require File.join(File.expand_path(File.dirname(__FILE__)), + 'gem_installer_test_case') +require 'rubygems/commands/uninstall_command' + +class TestGemCommandsUninstallCommand < GemInstallerTestCase + + def setup + super + + ui = MockGemUi.new + util_setup_gem ui + + use_ui ui do + @installer.install + end + + @cmd = Gem::Commands::UninstallCommand.new + @cmd.options[:executables] = true + @executable = File.join(@gemhome, 'bin', 'executable') + end + + def test_execute_removes_executable + if win_platform? + assert_equal true, File.exist?(@executable) + else + assert_equal true, File.symlink?(@executable) + end + + # Evil hack to prevent false removal success + FileUtils.rm_f @executable + File.open(@executable, "wb+") {|f| f.puts "binary"} + + @cmd.options[:args] = Array(@spec.name) + use_ui @ui do + @cmd.execute + end + + output = @ui.output.split "\n" + assert_match(/Removing executable/, output.shift) + assert_match(/Successfully uninstalled/, output.shift) + assert_equal false, File.exist?(@executable) + assert_nil output.shift, "UI output should have contained only two lines" + end + + def test_execute_not_installed + @cmd.options[:args] = ["foo"] + e = assert_raise(Gem::InstallError) do + use_ui @ui do + @cmd.execute + end + end + + assert_match(/\AUnknown gem foo >= 0$/, e.message) + output = @ui.output.split "\n" + assert output.empty?, "UI output should be empty after an uninstall error" + end +end + |