diff --git a/lib/rack/test/cookie_jar.rb b/lib/rack/test/cookie_jar.rb index c0c6e9b..80d88ab 100644 --- a/lib/rack/test/cookie_jar.rb +++ b/lib/rack/test/cookie_jar.rb @@ -136,7 +136,7 @@ class CookieJar # :nodoc: def initialize(cookies = [], default_host = DEFAULT_HOST) @default_host = default_host - @cookies = cookies.sort! + @cookies = cookies.sort end # Ensure the copy uses a distinct cookies array. diff --git a/spec/rack/test/cookie_jar_spec.rb b/spec/rack/test/cookie_jar_spec.rb index 854c582..405e6c4 100644 --- a/spec/rack/test/cookie_jar_spec.rb +++ b/spec/rack/test/cookie_jar_spec.rb @@ -6,6 +6,15 @@ cookie_value = 'foo;abc'.freeze cookie_name = 'a_cookie_name'.freeze + it 'does not retain or mutate the supplied cookie array' do + cookies = [].freeze + jar = Rack::Test::CookieJar.new(cookies) + jar['a'] = 'b' + + cookies.must_be_empty + jar.to_hash.must_equal 'a' => 'b' + end + it 'copies should not share a cookie jar' do jar = Rack::Test::CookieJar.new jar_dup = jar.dup