From 504f1d56e60613d3d43c4271ebab8fff2d35a157 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Wed, 27 Apr 2022 14:50:44 +1200 Subject: Don't overwrite other cookie attributes when building deletion cookie. (#1846) --- test/spec_utils.rb | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'test/spec_utils.rb') diff --git a/test/spec_utils.rb b/test/spec_utils.rb index 3f50be7a..286f2eb1 100644 --- a/test/spec_utils.rb +++ b/test/spec_utils.rb @@ -648,9 +648,33 @@ describe Rack::Utils, "cookies" do header = [] Rack::Utils.delete_set_cookie_header!(header, 'name2') - header.must_equal ["name2=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"] + header.must_equal [ + "name2=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT" + ] + Rack::Utils.delete_set_cookie_header!(header, 'name') - header.must_equal ["name2=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT", "name=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"] + header.must_equal [ + "name2=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT", + "name=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT" + ] + end + + it "deletes cookies in header field with domain" do + header = [] + + Rack::Utils.delete_set_cookie_header!(header, 'name', {domain: "mydomain.com"}) + header.must_equal [ + "name=; domain=mydomain.com; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT" + ] + end + + it "deletes cookies in header field with path" do + header = [] + + Rack::Utils.delete_set_cookie_header!(header, 'name', {path: "/a/b"}) + header.must_equal [ + "name=; path=/a/b; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT" + ] end it "sets and deletes cookies in header hash" do -- cgit v1.2.1