@@ -366,6 +366,51 @@ def test_fragmentation_header(
366
366
assert res == (WSMessage (WSMsgType .TEXT , "a" , "" ), 1 )
367
367
368
368
369
+ def test_large_message (
370
+ out : WebSocketDataQueue , parser : PatchableWebSocketReader
371
+ ) -> None :
372
+ large_payload = b"b" * 131072
373
+ data = build_frame (large_payload , WSMsgType .BINARY )
374
+ parser ._feed_data (data )
375
+
376
+ res = out ._buffer [0 ]
377
+ assert res == ((WSMsgType .BINARY , large_payload , "" ), 131072 )
378
+
379
+
380
+ def test_large_masked_message (
381
+ out : WebSocketDataQueue , parser : PatchableWebSocketReader
382
+ ) -> None :
383
+ large_payload = b"b" * 131072
384
+ data = build_frame (large_payload , WSMsgType .BINARY , use_mask = True )
385
+ parser ._feed_data (data )
386
+
387
+ res = out ._buffer [0 ]
388
+ assert res == ((WSMsgType .BINARY , large_payload , "" ), 131072 )
389
+
390
+
391
+ def test_fragmented_masked_message (
392
+ out : WebSocketDataQueue , parser : PatchableWebSocketReader
393
+ ) -> None :
394
+ large_payload = b"b" * 100
395
+ data = build_frame (large_payload , WSMsgType .BINARY , use_mask = True )
396
+ for i in range (len (data )):
397
+ parser ._feed_data (data [i : i + 1 ])
398
+
399
+ res = out ._buffer [0 ]
400
+ assert res == ((WSMsgType .BINARY , large_payload , "" ), 100 )
401
+
402
+
403
+ def test_large_fragmented_masked_message (
404
+ out : WebSocketDataQueue , parser : PatchableWebSocketReader
405
+ ) -> None :
406
+ large_payload = b"b" * 131072
407
+ data = build_frame (large_payload , WSMsgType .BINARY , use_mask = True )
408
+ for i in range (0 , len (data ), 16384 ):
409
+ parser ._feed_data (data [i : i + 16384 ])
410
+ res = out ._buffer [0 ]
411
+ assert res == ((WSMsgType .BINARY , large_payload , "" ), 131072 )
412
+
413
+
369
414
def test_continuation (
370
415
out : WebSocketDataQueue , parser : PatchableWebSocketReader
371
416
) -> None :
0 commit comments