diff options
author | Eric Wong <e@80x24.org> | 2015-06-30 22:19:19 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-06-30 22:33:40 +0000 |
commit | b0d10d473bc5fdc9b3f6f1fd4f2d300651b77428 (patch) | |
tree | b8dea5c54f2d4ca3084f447bba9925b4ca88e52a /test/unit | |
parent | 1db9a8243d42cc86d5ca4901bceb305061d0d212 (diff) | |
download | unicorn-b0d10d473bc5fdc9b3f6f1fd4f2d300651b77428.tar.gz |
Applications may want to alter the message associated with HTTP status codes in Rack::Utils::HTTP_STATUS_CODES. Avoid memoizing status lines ahead-of-time Note: this introduces a minor performance regression, but ought to be unnoticeable unless you're running "Hello world"-type apps.
Diffstat (limited to 'test/unit')
-rw-r--r-- | test/unit/test_response.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/unit/test_response.rb b/test/unit/test_response.rb index 3478288..1e9d74a 100644 --- a/test/unit/test_response.rb +++ b/test/unit/test_response.rb @@ -79,4 +79,24 @@ class ResponseTest < Test::Unit::TestCase headers = out.string.split(/\r\n\r\n/).first.split(/\r\n/) assert %r{\AHTTP/\d\.\d 666 I AM THE BEAST\z}.match(headers[0]) end + + def test_modified_rack_http_status_codes_late + r, w = IO.pipe + pid = fork do + r.close + # Users may want to globally override the status text associated + # with an HTTP status code in their app. + Rack::Utils::HTTP_STATUS_CODES[200] = "HI" + http_response_write(w, 200, {}, []) + w.close + end + w.close + assert_equal "HTTP/1.1 200 HI\r\n", r.gets + r.read # just drain the pipe + pid, status = Process.waitpid2(pid) + assert_predicate status, :success? + ensure + r.close + w.close unless w.closed? + end end |