提交 3bed6796 编写于 作者: K Kasper Timm Hansen

Merge pull request #24820 from maclover7/fix-15843

Ensure compatibility between ActionDispatch::Request::Session and Rack
...@@ -198,6 +198,10 @@ def merge!(other) ...@@ -198,6 +198,10 @@ def merge!(other)
@delegate.merge!(other) @delegate.merge!(other)
end end
def each(&block)
to_hash.each(&block)
end
private private
def load_for_read! def load_for_read!
......
...@@ -114,5 +114,31 @@ def delete_session(env, id, options); 123; end ...@@ -114,5 +114,31 @@ def delete_session(env, id, options); 123; end
}.new }.new
end end
end end
class SessionIntegrationTest < ActionDispatch::IntegrationTest
class MySessionApp
def call(env)
request = Rack::Request.new(env)
request.session['hello'] = 'Hello from MySessionApp!'
[ 200, {}, ['Hello from MySessionApp!'] ]
end
end
Router = ActionDispatch::Routing::RouteSet.new
Router.draw do
get '/mysessionapp' => MySessionApp.new
end
def app
@app ||= RoutedRackApp.new(Router)
end
def test_session_follows_rack_api_contract_1
get '/mysessionapp'
assert_response :ok
assert_equal 'Hello from MySessionApp!', @response.body
assert_equal 'Hello from MySessionApp!', session['hello']
end
end
end end
end end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册