test2721 (1462B)
1 <testcase> 2 <info> 3 <keywords> 4 WebSockets 5 </keywords> 6 </info> 7 8 <client> 9 <name> 10 ws: Fragmented messages with interleaved pong 11 </name> 12 <features> 13 Debug 14 ws 15 </features> 16 <server> 17 http 18 </server> 19 <tool> 20 lib2700 21 </tool> 22 <command> 23 ws://%HOSTIP:%HTTPPORT/%TESTNUMBER 24 </command> 25 <setenv> 26 CURL_WS_FORCE_ZERO_MASK=1 27 </setenv> 28 </client> 29 30 <reply> 31 <servercmd> 32 upgrade 33 </servercmd> 34 35 # Full list of frames: see <verify.stdout> below 36 # A TEXT/BINARY message fragmented into two frames each, with pongs in the middle 37 <data nocheck="yes" nonewline="yes"> 38 HTTP/1.1 101 Switching to WebSockets 39 Server: server/%TESTNUMBER 40 Upgrade: Websocket 41 Connection: Upgrade 42 Sec-WebSocket-Accept: HkPsVga7+8LuxM4RGQ5p9tZHeYs= 43 44 %hex[%01%02t1]hex%%hex[%8a%02p1]hex%%hex[%80%02t2]hex%%hex[%02%02b1]hex%%hex[%8a%02p2]hex%%hex[%80%02b2]hex%%hex[%88%00]hex% 45 </data> 46 </reply> 47 48 <verify> 49 50 # Exact echo of reply data with additional masking 51 <protocol nonewline="yes"> 52 %hex[%01%82%00%00%00%00t1]hex%%hex[%8a%82%00%00%00%00p1]hex%%hex[%80%82%00%00%00%00t2]hex%%hex[%02%82%00%00%00%00b1]hex%%hex[%8a%82%00%00%00%00p2]hex%%hex[%80%82%00%00%00%00b2]hex%%hex[%88%80%00%00%00%00]hex% 53 </protocol> 54 55 <stdout> 56 txt --- [2] t1 57 pong [2] p1 58 txt fin [2] t2 59 bin --- [2] b1 60 pong [2] p2 61 bin fin [2] b2 62 close [0] 63 </stdout> 64 65 # CURLE_OK 66 <errorcode> 67 0 68 </errorcode> 69 70 # Strip HTTP header from <protocol> 71 <strip> 72 ^GET /.* 73 ^(Host|User-Agent|Accept|Upgrade|Connection|Sec-WebSocket-(Version|Key)): .* 74 ^\s*$ 75 </strip> 76 </verify> 77 </testcase>