@@ -186,14 +186,14 @@ def decode(str); @calls << :decode; str; end
186186 response = response_for ( app : [ incrementor , { coder : identity } ] )
187187
188188 response [ "Set-Cookie" ] . must_include "rack.session="
189- response . body . must_equal '{ "counter"=>1}'
189+ response . body . must_equal ( { "counter" => 1 } . to_s )
190190 identity . calls . must_equal [ :decode , :encode ]
191191 end
192192
193193 it "creates a new cookie" do
194194 response = response_for ( app : incrementor )
195195 response [ "Set-Cookie" ] . must_include "rack.session="
196- response . body . must_equal '{ "counter"=>1}'
196+ response . body . must_equal ( { "counter" => 1 } . to_s )
197197 end
198198
199199 it "passes through same_site option to session cookie" do
@@ -217,10 +217,10 @@ def decode(str); @calls << :decode; str; end
217217 response = response_for ( app : incrementor )
218218
219219 response = response_for ( app : incrementor , cookie : response )
220- response . body . must_equal '{ "counter"=>2}'
220+ response . body . must_equal ( { "counter" => 2 } . to_s )
221221
222222 response = response_for ( app : incrementor , cookie : response )
223- response . body . must_equal '{ "counter"=>3}'
223+ response . body . must_equal ( { "counter" => 3 } . to_s )
224224 end
225225
226226 it "renew session id" do
@@ -259,13 +259,13 @@ def decode(str); @calls << :decode; str; end
259259 app : incrementor ,
260260 cookie : "rack.session=blarghfasel"
261261 )
262- response . body . must_equal '{ "counter"=>1}'
262+ response . body . must_equal ( { "counter" => 1 } . to_s )
263263
264264 response = response_for (
265265 app : [ incrementor , { secret : "test" } ] ,
266266 cookie : "rack.session="
267267 )
268- response . body . must_equal '{ "counter"=>1}'
268+ response . body . must_equal ( { "counter" => 1 } . to_s )
269269 end
270270
271271 it "barks on too big cookies" do
@@ -279,74 +279,74 @@ def decode(str); @calls << :decode; str; end
279279
280280 response = response_for ( app : app )
281281 response = response_for ( app : app , cookie : response )
282- response . body . must_equal '{ "counter"=>2}'
282+ response . body . must_equal ( { "counter" => 2 } . to_s )
283283
284284 response = response_for ( app : app , cookie : response )
285- response . body . must_equal '{ "counter"=>3}'
285+ response . body . must_equal ( { "counter" => 3 } . to_s )
286286
287287 app = [ incrementor , { secret : "other" } ]
288288
289289 response = response_for ( app : app , cookie : response )
290- response . body . must_equal '{ "counter"=>1}'
290+ response . body . must_equal ( { "counter" => 1 } . to_s )
291291 end
292292
293293 it "loads from a cookie with accept-only integrity hash for graceful key rotation" do
294294 response = response_for ( app : [ incrementor , { secret : "test" } ] )
295295
296296 app = [ incrementor , { secret : "test2" , old_secret : "test" } ]
297297 response = response_for ( app : app , cookie : response )
298- response . body . must_equal '{ "counter"=>2}'
298+ response . body . must_equal ( { "counter" => 2 } . to_s )
299299
300300 app = [ incrementor , { secret : "test3" , old_secret : "test2" } ]
301301 response = response_for ( app : app , cookie : response )
302- response . body . must_equal '{ "counter"=>3}'
302+ response . body . must_equal ( { "counter" => 3 } . to_s )
303303 end
304304
305305 it "ignores tampered with session cookies" do
306306 app = [ incrementor , { secret : "test" } ]
307307 response = response_for ( app : app )
308- response . body . must_equal '{ "counter"=>1}'
308+ response . body . must_equal ( { "counter" => 1 } . to_s )
309309
310310 response = response_for ( app : app , cookie : response )
311- response . body . must_equal '{ "counter"=>2}'
311+ response . body . must_equal ( { "counter" => 2 } . to_s )
312312
313313 _ , digest = response [ "Set-Cookie" ] . split ( "--" )
314314 tampered_with_cookie = "hackerman-was-here" + "--" + digest
315315
316316 response = response_for ( app : app , cookie : tampered_with_cookie )
317- response . body . must_equal '{ "counter"=>1}'
317+ response . body . must_equal ( { "counter" => 1 } . to_s )
318318 end
319319
320320 it "supports either of secret or old_secret" do
321321 app = [ incrementor , { secret : "test" } ]
322322 response = response_for ( app : app )
323- response . body . must_equal '{ "counter"=>1}'
323+ response . body . must_equal ( { "counter" => 1 } . to_s )
324324
325325 response = response_for ( app : app , cookie : response )
326- response . body . must_equal '{ "counter"=>2}'
326+ response . body . must_equal ( { "counter" => 2 } . to_s )
327327
328328 app = [ incrementor , { old_secret : "test" } ]
329329 response = response_for ( app : app )
330- response . body . must_equal '{ "counter"=>1}'
330+ response . body . must_equal ( { "counter" => 1 } . to_s )
331331
332332 response = response_for ( app : app , cookie : response )
333- response . body . must_equal '{ "counter"=>2}'
333+ response . body . must_equal ( { "counter" => 2 } . to_s )
334334 end
335335
336336 it "supports custom digest class" do
337337 app = [ incrementor , { secret : "test" , hmac : OpenSSL ::Digest ::SHA256 } ]
338338
339339 response = response_for ( app : app )
340340 response = response_for ( app : app , cookie : response )
341- response . body . must_equal '{ "counter"=>2}'
341+ response . body . must_equal ( { "counter" => 2 } . to_s )
342342
343343 response = response_for ( app : app , cookie : response )
344- response . body . must_equal '{ "counter"=>3}'
344+ response . body . must_equal ( { "counter" => 3 } . to_s )
345345
346346 app = [ incrementor , { secret : "other" } ]
347347
348348 response = response_for ( app : app , cookie : response )
349- response . body . must_equal '{ "counter"=>1}'
349+ response . body . must_equal ( { "counter" => 1 } . to_s )
350350 end
351351
352352 it "can handle Rack::Lint middleware" do
@@ -377,11 +377,11 @@ def call(env)
377377
378378 it "returns the session id in the session hash" do
379379 response = response_for ( app : incrementor )
380- response . body . must_equal '{ "counter"=>1}'
380+ response . body . must_equal ( { "counter" => 1 } . to_s )
381381
382382 response = response_for ( app : session_id , cookie : response )
383- response . body . must_match ( /"session_id"=>/ )
384- response . body . must_match ( /"counter"=> 1/ )
383+ response . body . must_match ( /"session_id"\s * =>/ )
384+ response . body . must_match ( /"counter"\s *=> \s * 1/ )
385385 end
386386
387387 it "does not return a cookie if set to secure but not using ssl" do
@@ -491,8 +491,8 @@ def decode(str)
491491 incrementor
492492 ] , cookie : non_strict_response )
493493
494- response . body . must_match %Q[ "value"=>" #{ 'A' * 256 } "]
495- response . body . must_match ' "counter"=>2'
494+ response . body . must_match ( { "value" => 'A' * 256 } . to_s [ 1 ..- 2 ] )
495+ response . body . must_match ( { "counter" => 2 } . to_s [ 1 ..- 2 ] )
496496 response . body . must_match ( /\A {[^}]+}\z / )
497497 end
498498end
0 commit comments