summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_stream_ui.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_stream_ui.rb')
-rw-r--r--test/rubygems/test_gem_stream_ui.rb82
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