mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Move TestRequest cookies accessor into AD TestRequest
This commit is contained in:
@@ -2,7 +2,6 @@ require 'rack/session/abstract/id'
|
||||
|
||||
module ActionController #:nodoc:
|
||||
class TestRequest < ActionDispatch::TestRequest #:nodoc:
|
||||
attr_accessor :cookies
|
||||
attr_accessor :query_parameters
|
||||
|
||||
def initialize(env = {})
|
||||
@@ -13,7 +12,6 @@ module ActionController #:nodoc:
|
||||
self.session_options = TestSession::DEFAULT_OPTIONS.merge(:id => ActiveSupport::SecureRandom.hex(16))
|
||||
|
||||
@request_uri = "/"
|
||||
@cookies = {}
|
||||
end
|
||||
|
||||
# Wraps raw_post in a StringIO.
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
module ActionDispatch
|
||||
class TestRequest < Request
|
||||
DEFAULT_ENV = Rack::MockRequest.env_for('/')
|
||||
|
||||
def self.new(env = {})
|
||||
super
|
||||
end
|
||||
|
||||
def initialize(env = {})
|
||||
super(Rack::MockRequest.env_for('/').merge(env))
|
||||
super(DEFAULT_ENV.merge(env))
|
||||
|
||||
self.host = 'test.host'
|
||||
self.remote_addr = '0.0.0.0'
|
||||
self.user_agent = 'Rails Testing'
|
||||
end
|
||||
|
||||
def env
|
||||
write_cookies!
|
||||
super
|
||||
end
|
||||
|
||||
def request_method=(method)
|
||||
@env['REQUEST_METHOD'] = method.to_s.upcase
|
||||
end
|
||||
@@ -49,8 +56,19 @@ module ActionDispatch
|
||||
end
|
||||
|
||||
def accept=(mime_types)
|
||||
@env.delete("action_dispatch.request.accepts")
|
||||
@env["HTTP_ACCEPT"] = Array(mime_types).collect { |mime_types| mime_types.to_s }.join(",")
|
||||
@env.delete('action_dispatch.request.accepts')
|
||||
@env['HTTP_ACCEPT'] = Array(mime_types).collect { |mime_types| mime_types.to_s }.join(",")
|
||||
end
|
||||
|
||||
def cookies
|
||||
@cookies ||= super
|
||||
end
|
||||
|
||||
private
|
||||
def write_cookies!
|
||||
unless @cookies.blank?
|
||||
@env['HTTP_COOKIE'] = @cookies.map { |name, value| "#{name}=#{value};" }.join(' ')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -27,4 +27,19 @@ class TestRequestTest < ActiveSupport::TestCase
|
||||
|
||||
assert env.empty?, env.inspect
|
||||
end
|
||||
|
||||
test "cookie jar" do
|
||||
req = ActionDispatch::TestRequest.new
|
||||
|
||||
assert_equal({}, req.cookies)
|
||||
assert_equal nil, req.env["HTTP_COOKIE"]
|
||||
|
||||
req.cookies["user_name"] = "david"
|
||||
assert_equal({"user_name" => "david"}, req.cookies)
|
||||
assert_equal "user_name=david;", req.env["HTTP_COOKIE"]
|
||||
|
||||
req.cookies["login"] = "XJ-122"
|
||||
assert_equal({"user_name" => "david", "login" => "XJ-122"}, req.cookies)
|
||||
assert_equal "login=XJ-122; user_name=david;", req.env["HTTP_COOKIE"]
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user