1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/actionpack/test/dispatch/live_response_test.rb

65 lines
1.6 KiB
Ruby
Raw Normal View History

require 'abstract_unit'
require 'active_support/concurrency/latch'
module ActionController
module Live
class ResponseTest < ActiveSupport::TestCase
def setup
@response = Live::Response.new
end
def test_parallel
latch = ActiveSupport::Concurrency::Latch.new
t = Thread.new {
@response.stream.write 'foo'
latch.await
@response.stream.close
}
@response.each do |part|
assert_equal 'foo', part
latch.release
end
assert t.join
end
def test_setting_body_populates_buffer
@response.body = 'omg'
@response.close
assert_equal ['omg'], @response.body_parts
end
def test_cache_control_is_set
@response.stream.write 'omg'
assert_equal 'no-cache', @response.headers['Cache-Control']
end
def test_content_length_is_removed
@response.headers['Content-Length'] = "1234"
@response.stream.write 'omg'
assert_nil @response.headers['Content-Length']
end
def test_headers_cannot_be_written_after_write
@response.stream.write 'omg'
e = assert_raises(ActionDispatch::IllegalStateError) do
@response.headers['Content-Length'] = "zomg"
end
assert_equal 'header already sent', e.message
end
def test_headers_cannot_be_written_after_close
@response.stream.close
e = assert_raises(ActionDispatch::IllegalStateError) do
@response.headers['Content-Length'] = "zomg"
end
assert_equal 'header already sent', e.message
end
end
end
end