summaryrefslogtreecommitdiff
path: root/jni/ruby/test/rake/test_trace_output.rb
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/test/rake/test_trace_output.rb')
-rw-r--r--jni/ruby/test/rake/test_trace_output.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/jni/ruby/test/rake/test_trace_output.rb b/jni/ruby/test/rake/test_trace_output.rb
new file mode 100644
index 0000000..f9aead9
--- /dev/null
+++ b/jni/ruby/test/rake/test_trace_output.rb
@@ -0,0 +1,52 @@
+require File.expand_path('../helper', __FILE__)
+require 'stringio'
+
+class TestTraceOutput < Rake::TestCase
+ include Rake::TraceOutput
+
+ class PrintSpy
+ attr_reader :result, :calls
+
+ def initialize
+ @result = ""
+ @calls = 0
+ end
+
+ def print(string)
+ @result << string
+ @calls += 1
+ end
+ end
+
+ def test_trace_issues_single_io_for_args_with_empty_args
+ spy = PrintSpy.new
+ trace_on(spy)
+ assert_equal "\n", spy.result
+ assert_equal 1, spy.calls
+ end
+
+ def test_trace_issues_single_io_for_args_multiple_strings
+ spy = PrintSpy.new
+ trace_on(spy, "HI\n", "LO")
+ assert_equal "HI\nLO\n", spy.result
+ assert_equal 1, spy.calls
+ end
+
+ def test_trace_handles_nil_objects
+ spy = PrintSpy.new
+ trace_on(spy, "HI\n", nil, "LO")
+ assert_equal "HI\nLO\n", spy.result
+ assert_equal 1, spy.calls
+ end
+
+ def test_trace_issues_single_io_for_args_multiple_strings_and_alternate_sep
+ old_sep = $\
+ $\ = "\r"
+ spy = PrintSpy.new
+ trace_on(spy, "HI\r", "LO")
+ assert_equal "HI\rLO\r", spy.result
+ assert_equal 1, spy.calls
+ ensure
+ $\ = old_sep
+ end
+end