@@ -237,6 +237,41 @@ async def test_should_be_undefined_when_there_is_no_post_data(page, server):
237
237
assert response .request .postDataJSON is None
238
238
239
239
240
+ async def test_should_work_with_binary_post_data (page , server ):
241
+ await page .goto (server .EMPTY_PAGE )
242
+ server .set_route ("/post" , lambda req : req .finish ())
243
+ requests = []
244
+ page .on ("request" , lambda r : requests .append (r ))
245
+ await page .evaluate (
246
+ """async () => {
247
+ await fetch('./post', { method: 'POST', body: new Uint8Array(Array.from(Array(256).keys())) })
248
+ }"""
249
+ )
250
+ assert len (requests ) == 1
251
+ buffer = requests [0 ].postDataBuffer
252
+ assert len (buffer ) == 256
253
+ for i in range (256 ):
254
+ assert buffer [i ] == i
255
+
256
+
257
+ async def test_should_work_with_binary_post_data_and_interception (page , server ):
258
+ await page .goto (server .EMPTY_PAGE )
259
+ server .set_route ("/post" , lambda req : req .finish ())
260
+ requests = []
261
+ await page .route ("/post" , lambda route : asyncio .ensure_future (route .continue_ ()))
262
+ page .on ("request" , lambda r : requests .append (r ))
263
+ await page .evaluate (
264
+ """async () => {
265
+ await fetch('./post', { method: 'POST', body: new Uint8Array(Array.from(Array(256).keys())) })
266
+ }"""
267
+ )
268
+ assert len (requests ) == 1
269
+ buffer = requests [0 ].postDataBuffer
270
+ assert len (buffer ) == 256
271
+ for i in range (256 ):
272
+ assert buffer [i ] == i
273
+
274
+
240
275
async def test_response_text_should_work (page , server ):
241
276
response = await page .goto (server .PREFIX + "/simple.json" )
242
277
assert await response .text () == '{"foo": "bar"}\n '
0 commit comments