diff options
Diffstat (limited to 'jni/ruby/test/rubygems/test_gem_silent_ui.rb')
-rw-r--r-- | jni/ruby/test/rubygems/test_gem_silent_ui.rb | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/jni/ruby/test/rubygems/test_gem_silent_ui.rb b/jni/ruby/test/rubygems/test_gem_silent_ui.rb new file mode 100644 index 0000000..01ff79d --- /dev/null +++ b/jni/ruby/test/rubygems/test_gem_silent_ui.rb @@ -0,0 +1,116 @@ +require 'rubygems/test_case' +require 'rubygems/user_interaction' +require 'timeout' + +class TestGemSilentUI < Gem::TestCase + + def setup + super + @sui = Gem::SilentUI.new + end + + def teardown + @sui.close + super + end + + def test_ask + value = nil + out, err = capture_io do + use_ui @sui do + value = @sui.ask 'Problem?' + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + + assert_nil value, 'No value' + end + + def test_ask_for_password + value = nil + out, err = capture_io do + use_ui @sui do + value = @sui.ask_for_password 'Problem?' + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + + assert_nil value, 'No value' + end + + def test_ask_yes_no + value = nil + out, err = capture_io do + use_ui @sui do + assert_raises(Gem::OperationNotSupportedError) do + @sui.ask_yes_no 'Problem?' + end + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + + out, err = capture_io do + use_ui @sui do + value = @sui.ask_yes_no 'Problem?', true + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + + assert value, 'Value is true' + + out, err = capture_io do + use_ui @sui do + value = @sui.ask_yes_no 'Problem?', false + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + + assert_equal value, false, 'Value is false' + end + + def test_choose_from_list + value = nil + out, err = capture_io do + use_ui @sui do + value = @sui.choose_from_list 'Problem?', %w[yes no] + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + + assert_equal [nil, nil], value, 'Value is nil!' + end + + def test_progress_reporter + out, err = capture_io do + use_ui @sui do + @sui.progress_reporter 10, 'hi' + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + end + + def test_download_reporter + out, err = capture_io do + use_ui @sui do + @sui.download_reporter.fetch 'a.gem', 1024 + end + end + + assert_empty out, 'No output' + assert_empty err, 'No output' + end +end |