@@ -237,6 +237,41 @@ async def test_should_be_undefined_when_there_is_no_post_data(page, server):
237237 assert response .request .postDataJSON is None
238238
239239
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+
240275async def test_response_text_should_work (page , server ):
241276 response = await page .goto (server .PREFIX + "/simple.json" )
242277 assert await response .text () == '{"foo": "bar"}\n '
0 commit comments