diff options
author | José Valim <jose.valim@gmail.com> | 2011-05-04 20:36:37 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-05-04 20:36:37 +0200 |
commit | 20ed4ff43e062e3b4370ed01c07a64d487de2b27 (patch) | |
tree | f7d755b1089c02b4529cd85aec5a98a2ed25ec95 /test/spec_session_cookie.rb | |
parent | 18040b59dad3f2efe96d5b70b2260764fcda4784 (diff) | |
download | rack-20ed4ff43e062e3b4370ed01c07a64d487de2b27.tar.gz |
Ensure cookies respect renew.
Diffstat (limited to 'test/spec_session_cookie.rb')
-rw-r--r-- | test/spec_session_cookie.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/spec_session_cookie.rb b/test/spec_session_cookie.rb index 7e6bfb15..7eb3faea 100644 --- a/test/spec_session_cookie.rb +++ b/test/spec_session_cookie.rb @@ -87,6 +87,27 @@ describe Rack::Session::Cookie do res.body.should.equal '{"counter"=>3}' end + renewer = lambda do |env| + env["rack.session.options"][:renew] = true + Rack::Response.new("Nothing").to_a + end + + only_session_id = lambda do |env| + Rack::Response.new(env["rack.session"]["session_id"]).to_a + end + + it "renew session id" do + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor)).get("/") + res = Rack::MockRequest.new(Rack::Session::Cookie.new(only_session_id)). + get("/", "HTTP_COOKIE" => res["Set-Cookie"]) + old_session_id = res.body + res = Rack::MockRequest.new(Rack::Session::Cookie.new(renewer)). + get("/", "HTTP_COOKIE" => res["Set-Cookie"]) + res = Rack::MockRequest.new(Rack::Session::Cookie.new(only_session_id)). + get("/", "HTTP_COOKIE" => res["Set-Cookie"]) + res.body.should.not.equal old_session_id + end + it "survives broken cookies" do res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor)). get("/", "HTTP_COOKIE" => "rack.session=blarghfasel") |