Skip to content

Commit 543d935

Browse files
byrootioquatix
authored andcommitted
[2.2] Update test suite for Ruby 3.5
`Hash#inspect` changed a bit which is causing spec to fail, but it's quite trivial to make code compatible.
1 parent d0dcf75 commit 543d935

File tree

2 files changed

+44
-44
lines changed

2 files changed

+44
-44
lines changed

test/spec_session_cookie.rb

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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
498498
end

test/spec_session_pool.rb

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -41,24 +41,24 @@
4141
pool = Rack::Session::Pool.new(incrementor)
4242
res = Rack::MockRequest.new(pool).get("/")
4343
res["Set-Cookie"].must_match(session_match)
44-
res.body.must_equal '{"counter"=>1}'
44+
res.body.must_equal({ "counter" => 1 }.to_s)
4545
end
4646

4747
it "determines session from a cookie" do
4848
pool = Rack::Session::Pool.new(incrementor)
4949
req = Rack::MockRequest.new(pool)
5050
cookie = req.get("/")["Set-Cookie"]
5151
req.get("/", "HTTP_COOKIE" => cookie).
52-
body.must_equal '{"counter"=>2}'
52+
body.must_equal({ "counter" => 2 }.to_s)
5353
req.get("/", "HTTP_COOKIE" => cookie).
54-
body.must_equal '{"counter"=>3}'
54+
body.must_equal({ "counter" => 3 }.to_s)
5555
end
5656

5757
it "survives nonexistent cookies" do
5858
pool = Rack::Session::Pool.new(incrementor)
5959
res = Rack::MockRequest.new(pool).
6060
get("/", "HTTP_COOKIE" => "#{session_key}=blarghfasel")
61-
res.body.must_equal '{"counter"=>1}'
61+
res.body.must_equal({ "counter" => 1 }.to_s)
6262
end
6363

6464
it "does not send the same session id if it did not change" do
@@ -67,17 +67,17 @@
6767

6868
res0 = req.get("/")
6969
cookie = res0["Set-Cookie"][session_match]
70-
res0.body.must_equal '{"counter"=>1}'
70+
res0.body.must_equal({ "counter" => 1 }.to_s)
7171
pool.pool.size.must_equal 1
7272

7373
res1 = req.get("/", "HTTP_COOKIE" => cookie)
7474
res1["Set-Cookie"].must_be_nil
75-
res1.body.must_equal '{"counter"=>2}'
75+
res1.body.must_equal({ "counter" => 2 }.to_s)
7676
pool.pool.size.must_equal 1
7777

7878
res2 = req.get("/", "HTTP_COOKIE" => cookie)
7979
res2["Set-Cookie"].must_be_nil
80-
res2.body.must_equal '{"counter"=>3}'
80+
res2.body.must_equal({ "counter" => 3 }.to_s)
8181
pool.pool.size.must_equal 1
8282
end
8383

@@ -89,17 +89,17 @@
8989

9090
res1 = req.get("/")
9191
session = (cookie = res1["Set-Cookie"])[session_match]
92-
res1.body.must_equal '{"counter"=>1}'
92+
res1.body.must_equal({ "counter" => 1 }.to_s)
9393
pool.pool.size.must_equal 1
9494

9595
res2 = dreq.get("/", "HTTP_COOKIE" => cookie)
9696
res2["Set-Cookie"].must_be_nil
97-
res2.body.must_equal '{"counter"=>2}'
97+
res2.body.must_equal({ "counter" => 2 }.to_s)
9898
pool.pool.size.must_equal 0
9999

100100
res3 = req.get("/", "HTTP_COOKIE" => cookie)
101101
res3["Set-Cookie"][session_match].wont_equal session
102-
res3.body.must_equal '{"counter"=>1}'
102+
res3.body.must_equal({ "counter" => 1 }.to_s)
103103
pool.pool.size.must_equal 1
104104
end
105105

@@ -111,22 +111,22 @@
111111

112112
res1 = req.get("/")
113113
session = (cookie = res1["Set-Cookie"])[session_match]
114-
res1.body.must_equal '{"counter"=>1}'
114+
res1.body.must_equal({ "counter" => 1 }.to_s)
115115
pool.pool.size.must_equal 1
116116

117117
res2 = rreq.get("/", "HTTP_COOKIE" => cookie)
118118
new_cookie = res2["Set-Cookie"]
119119
new_session = new_cookie[session_match]
120120
new_session.wont_equal session
121-
res2.body.must_equal '{"counter"=>2}'
121+
res2.body.must_equal({ "counter" => 2 }.to_s)
122122
pool.pool.size.must_equal 1
123123

124124
res3 = req.get("/", "HTTP_COOKIE" => new_cookie)
125-
res3.body.must_equal '{"counter"=>3}'
125+
res3.body.must_equal({ "counter" => 3 }.to_s)
126126
pool.pool.size.must_equal 1
127127

128128
res4 = req.get("/", "HTTP_COOKIE" => cookie)
129-
res4.body.must_equal '{"counter"=>1}'
129+
res4.body.must_equal({ "counter" => 1 }.to_s)
130130
pool.pool.size.must_equal 2
131131
end
132132

@@ -137,7 +137,7 @@
137137

138138
res1 = dreq.get("/")
139139
res1["Set-Cookie"].must_be_nil
140-
res1.body.must_equal '{"counter"=>1}'
140+
res1.body.must_equal({ "counter" => 1 }.to_s)
141141
pool.pool.size.must_equal 1
142142
end
143143

@@ -154,7 +154,7 @@
154154

155155
res1 = req.get("/", "HTTP_COOKIE" => cookie)
156156
res1["Set-Cookie"].must_be_nil
157-
res1.body.must_equal '{"counter"=>2}'
157+
res1.body.must_equal({ "counter" => 2 }.to_s)
158158
pool.pool[session_id.private_id].wont_be_nil
159159
end
160160

@@ -173,7 +173,7 @@
173173

174174
res2 = dreq.get("/", "HTTP_COOKIE" => cookie)
175175
res2["Set-Cookie"].must_be_nil
176-
res2.body.must_equal '{"counter"=>2}'
176+
res2.body.must_equal({ "counter" => 2 }.to_s)
177177
pool.pool[session_id.private_id].must_be_nil
178178
pool.pool[session_id.public_id].must_be_nil
179179
end
@@ -209,7 +209,7 @@
209209
req = Rack::MockRequest.new(pool)
210210

211211
res = req.get('/')
212-
res.body.must_equal '{"counter"=>1}'
212+
res.body.must_equal({ "counter" => 1 }.to_s)
213213
cookie = res["Set-Cookie"]
214214
sess_id = cookie[/#{pool.key}=([^,;]+)/, 1]
215215

0 commit comments

Comments
 (0)