/usr/lib/ruby/vendor_ruby/rack/test/methods.rb is in ruby-rack-test 0.6.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | require "forwardable"
module Rack
module Test
# This module serves as the primary integration point for using Rack::Test
# in a testing environment. It depends on an app method being defined in the
# same context, and provides the Rack::Test API methods (see Rack::Test::Session
# for their documentation).
#
# Example:
#
# class HomepageTest < Test::Unit::TestCase
# include Rack::Test::Methods
#
# def app
# MyApp.new
# end
# end
module Methods
extend Forwardable
def rack_mock_session(name = :default) # :nodoc:
return build_rack_mock_session unless name
@_rack_mock_sessions ||= {}
@_rack_mock_sessions[name] ||= build_rack_mock_session
end
def build_rack_mock_session # :nodoc:
Rack::MockSession.new(app)
end
def rack_test_session(name = :default) # :nodoc:
return build_rack_test_session(name) unless name
@_rack_test_sessions ||= {}
@_rack_test_sessions[name] ||= build_rack_test_session(name)
end
def build_rack_test_session(name) # :nodoc:
Rack::Test::Session.new(rack_mock_session(name))
end
def current_session # :nodoc:
rack_test_session(_current_session_names.last)
end
def with_session(name) # :nodoc:
_current_session_names.push(name)
yield rack_test_session(name)
_current_session_names.pop
end
def _current_session_names # :nodoc:
@_current_session_names ||= [:default]
end
METHODS = [
:request,
:get,
:post,
:put,
:patch,
:delete,
:options,
:head,
:follow_redirect!,
:header,
:set_cookie,
:clear_cookies,
:authorize,
:basic_authorize,
:digest_authorize,
:last_response,
:last_request
]
def_delegators :current_session, *METHODS
end
end
end
|