CapybaraのRackTestドライバの設定中でテスト対象のappをやりとりしているので、ここで渡すappを弄るとヘッダを覗くことが出来る。(envはヘッダそのものではないがその情報を含んでいる)
original = Capybara.drivers[:rack_test]
Capybara.register_driver :rack_test do |app|
spied_app = lambda { |env| p env; app[env].tap { |status, header| p [status, header] } }
original[spied_app]
end
以下のような出力になる(一部省略)
{"rack.version"=>[1, 3], "rack.multithread"=>true, "rack.multiprocess"=>true, "rack.run_once"=>false, ..., "REQUEST_METHOD"=>"GET", "PATH_INFO"=>"/", "rack.url_scheme"=>"https", "HTTPS"=>"on", "SCRIPT_NAME"=>"", "CONTENT_LENGTH"=>"0", "rack.test"=>true, "REMOTE_ADDR"=>"127.0.0.1", "HTTP_REFERER"=>"https://hoge.fuga.jp", "HTTP_HOST"=>"hoge.fuga.jp", "HTTP_COOKIE"=>""}
[302, {"Content-Length"=>"74", "Location"=>"https://hoge.fuga.jp/", "Cache-Control"=>"no-cache", "Set-Cookie"=>"_session_key=....; domain=.fuga.jp; path=/; expires=Sun, 17 Jul 2016 04:14:29 -0000; HttpOnly", "Vary"=>"Origin"}]