diff options
Diffstat (limited to 'actionpack/test')
-rw-r--r-- | actionpack/test/controller/streaming_test.rb | 30 | ||||
-rw-r--r-- | actionpack/test/dispatch/response_test.rb | 20 |
2 files changed, 50 insertions, 0 deletions
diff --git a/actionpack/test/controller/streaming_test.rb b/actionpack/test/controller/streaming_test.rb new file mode 100644 index 0000000000..50c98f220a --- /dev/null +++ b/actionpack/test/controller/streaming_test.rb @@ -0,0 +1,30 @@ +require 'abstract_unit' + +module ActionController + class StreamingResponseTest < ActionController::TestCase + class TestController < ActionController::Base + def self.controller_path + 'test' + end + + def basic_stream + %w{ hello world }.each do |word| + response.stream.write word + response.stream.write "\n" + end + response.stream.close + end + end + + tests TestController + + def test_write_to_stream + get :basic_stream + assert_equal "hello\nworld\n", @response.body + end + + def test_write_after_close + @response.stream + end + end +end diff --git a/actionpack/test/dispatch/response_test.rb b/actionpack/test/dispatch/response_test.rb index 51948a623c..e2903d4b36 100644 --- a/actionpack/test/dispatch/response_test.rb +++ b/actionpack/test/dispatch/response_test.rb @@ -14,6 +14,26 @@ class ResponseTest < ActiveSupport::TestCase assert t.join(0.5) end + def test_stream_close + @response.stream.close + assert @response.stream.closed? + end + + def test_stream_write + @response.stream.write "foo" + @response.stream.close + assert_equal "foo", @response.body + end + + def test_write_after_close + @response.stream.close + + e = assert_raises(IOError) do + @response.stream.write "omg" + end + assert_equal "closed stream", e.message + end + def test_response_body_encoding body = ["hello".encode('utf-8')] response = ActionDispatch::Response.new 200, {}, body |