aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/request_id_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test/dispatch/request_id_test.rb')
-rw-r--r--actionpack/test/dispatch/request_id_test.rb84
1 files changed, 45 insertions, 39 deletions
diff --git a/actionpack/test/dispatch/request_id_test.rb b/actionpack/test/dispatch/request_id_test.rb
index 230ff54889..ece8353810 100644
--- a/actionpack/test/dispatch/request_id_test.rb
+++ b/actionpack/test/dispatch/request_id_test.rb
@@ -8,52 +8,58 @@ class RequestIdTest < ActiveSupport::TestCase
test "ensure that only alphanumeric uurids are accepted" do
assert_equal "X-Hacked-HeaderStuff", stub_request('HTTP_X_REQUEST_ID' => '; X-Hacked-Header: Stuff').uuid
end
-
+
test "ensure that 255 char limit on the request id is being enforced" do
assert_equal "X" * 255, stub_request('HTTP_X_REQUEST_ID' => 'X' * 500).uuid
end
-
+
test "generating a request id when none is supplied" do
assert_match /\w+/, stub_request.uuid
end
private
- def stub_request(env = {})
- ActionDispatch::RequestId.new(->(env) { [ 200, env, [] ] }).call(env)
- ActionDispatch::Request.new(env)
- end
+
+ def stub_request(env = {})
+ ActionDispatch::RequestId.new(lambda { |env| [ 200, env, [] ] }).call(env)
+ ActionDispatch::Request.new(env)
+ end
end
-# FIXME: Testing end-to-end doesn't seem to work
-#
-# class RequestIdResponseTest < ActionDispatch::IntegrationTest
-# class TestController < ActionController::Base
-# def index
-# head :ok
-# end
-# end
-#
-# test "request id is passed all the way to the response" do
-# with_test_route_set do
-# get '/'
-# puts @response.headers.inspect
-# assert_equal "internal-uu-rid", @response.headers["X-Request-Id"]
-# end
-# end
-#
-#
-# private
-# def with_test_route_set
-# with_routing do |set|
-# set.draw do
-# match ':action', to: ::RequestIdResponseTest::TestController
-# end
-#
-# @app = self.class.build_app(set) do |middleware|
-# middleware.use ActionDispatch::RequestId
-# end
-#
-# yield
-# end
-# end
-# end \ No newline at end of file
+class RequestIdResponseTest < ActionDispatch::IntegrationTest
+ class TestController < ActionController::Base
+ def index
+ head :ok
+ end
+ end
+
+ test "request id is passed all the way to the response" do
+ with_test_route_set do
+ get '/'
+ assert_match(/\w+/, @response.headers["X-Request-Id"])
+ end
+ end
+
+ test "request id given on request is passed all the way to the response" do
+ with_test_route_set do
+ get '/', {}, 'HTTP_X_REQUEST_ID' => 'X' * 500
+ assert_equal "X" * 255, @response.headers["X-Request-Id"]
+ end
+ end
+
+
+ private
+
+ def with_test_route_set
+ with_routing do |set|
+ set.draw do
+ match '/', :to => ::RequestIdResponseTest::TestController.action(:index)
+ end
+
+ @app = self.class.build_app(set) do |middleware|
+ middleware.use ActionDispatch::RequestId
+ end
+
+ yield
+ end
+ end
+end \ No newline at end of file