diff options
Diffstat (limited to 'test/rubygems/test_gem_stream_ui.rb')
-rw-r--r-- | test/rubygems/test_gem_stream_ui.rb | 82 |
1 files changed, 76 insertions, 6 deletions
diff --git a/test/rubygems/test_gem_stream_ui.rb b/test/rubygems/test_gem_stream_ui.rb index 97f6f09833..60bd3032a8 100644 --- a/test/rubygems/test_gem_stream_ui.rb +++ b/test/rubygems/test_gem_stream_ui.rb @@ -1,5 +1,12 @@ -require_relative 'gemutilities' +###################################################################### +# This file is imported from the rubygems project. +# DO NOT make modifications in this repo. They _will_ be reverted! +# File a patch instead and assign it to Ryan Davis or Eric Hodel. +###################################################################### + +require "test/rubygems/gemutilities" require 'rubygems/user_interaction' +require 'timeout' class TestGemStreamUI < RubyGemTestCase @@ -28,6 +35,7 @@ class TestGemStreamUI < RubyGemTestCase @err = StringIO.new @in.extend IsTty + @out.extend IsTty @sui = Gem::StreamUI.new @in, @out, @err end @@ -109,32 +117,94 @@ class TestGemStreamUI < RubyGemTestCase assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string end - def test_proress_reporter_silent_nil + def test_progress_reporter_silent_nil @cfg.verbose = nil reporter = @sui.progress_reporter 10, 'hi' assert_kind_of Gem::StreamUI::SilentProgressReporter, reporter end - def test_proress_reporter_silent_false + def test_progress_reporter_silent_false @cfg.verbose = false reporter = @sui.progress_reporter 10, 'hi' assert_kind_of Gem::StreamUI::SilentProgressReporter, reporter assert_equal "", @out.string end - def test_proress_reporter_simple + def test_progress_reporter_simple @cfg.verbose = true reporter = @sui.progress_reporter 10, 'hi' assert_kind_of Gem::StreamUI::SimpleProgressReporter, reporter assert_equal "hi\n", @out.string end - def test_proress_reporter_verbose + def test_progress_reporter_verbose @cfg.verbose = 0 reporter = @sui.progress_reporter 10, 'hi' assert_kind_of Gem::StreamUI::VerboseProgressReporter, reporter assert_equal "hi\n", @out.string end -end + def test_download_reporter_silent_nil + @cfg.verbose = nil + reporter = @sui.download_reporter + reporter.fetch 'a.gem', 1024 + assert_kind_of Gem::StreamUI::SilentDownloadReporter, reporter + assert_equal "", @out.string + end + + def test_download_reporter_silent_false + @cfg.verbose = false + reporter = @sui.download_reporter + reporter.fetch 'a.gem', 1024 + assert_kind_of Gem::StreamUI::SilentDownloadReporter, reporter + assert_equal "", @out.string + end + + def test_download_reporter_anything + @cfg.verbose = 0 + reporter = @sui.download_reporter + assert_kind_of Gem::StreamUI::VerboseDownloadReporter, reporter + end + + def test_verbose_download_reporter + @cfg.verbose = true + reporter = @sui.download_reporter + reporter.fetch 'a.gem', 1024 + assert_equal "Fetching: a.gem", @out.string + end + def test_verbose_download_reporter_progress + @cfg.verbose = true + reporter = @sui.download_reporter + reporter.fetch 'a.gem', 1024 + reporter.update 512 + assert_equal "Fetching: a.gem\rFetching: a.gem ( 50%)", @out.string + end + + def test_verbose_download_reporter_progress_once + @cfg.verbose = true + reporter = @sui.download_reporter + reporter.fetch 'a.gem', 1024 + reporter.update 510 + reporter.update 512 + assert_equal "Fetching: a.gem\rFetching: a.gem ( 50%)", @out.string + end + + def test_verbose_download_reporter_progress_complete + @cfg.verbose = true + reporter = @sui.download_reporter + reporter.fetch 'a.gem', 1024 + reporter.update 510 + reporter.done + assert_equal "Fetching: a.gem\rFetching: a.gem ( 50%)\rFetching: a.gem (100%)\n", @out.string + end + + def test_verbose_download_reporter_no_tty + @out.tty = false + + @cfg.verbose = true + reporter = @sui.download_reporter + reporter.fetch 'a.gem', 1024 + assert_equal "", @out.string + end +end |