Class: Rack::MockSession
- Inherits:
-
Object
- Object
- Rack::MockSession
- Defined in:
- lib/rack/test/capture.rb
Instance Method Summary collapse
-
#request(uri, env) ⇒ Object
I *do not* like replicating functionality (this is a copy of the code from within rack/test’s ‘Rack::MockSession`) but for some reason this method pushes out an array, not the expected `@last_response` if I just call it with the usual `alias` method.
Instance Method Details
#request(uri, env) ⇒ Object
I *do not* like replicating functionality (this is a copy of the code from within rack/test’s ‘Rack::MockSession`) but for some reason this method pushes out an array, not the expected `@last_response` if I just call it with the usual `alias` method. This works, let’s leave it at that for now!
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rack/test/capture.rb', line 9 def request(uri, env) env["HTTP_COOKIE"] ||= .for(uri) @last_request = Rack::Request.new(env) start_time = Time.now.to_f status, headers, body = @app.call(@last_request.env) duration = Time.now.to_f - start_time @last_response = MockResponse.new(status, headers, body, env["rack.errors"].flush) captured_request = HttpCapture::Request.new(@last_request) captured_response = HttpCapture::Response.new(@last_response, request: captured_request, duration: duration) HttpCapture::RESPONSES.push(captured_response) body.close if body.respond_to?(:close) .merge(last_response.headers["Set-Cookie"], uri) @after_request.each { |hook| hook.call } if @last_response.respond_to?(:finish) @last_response.finish else @last_response end end |