bufferedAmount-getting.html (2069B)
1 <!doctype html> 2 <meta charset=utf-8> 3 <title>WebSockets: bufferedAmount after send()ing</title> 4 <script src=/resources/testharness.js></script> 5 <script src=/resources/testharnessreport.js></script> 6 <script src=../../../constants.sub.js></script> 7 <meta name="variant" content="?default"> 8 <meta name="variant" content="?wss"> 9 <meta name="variant" content="?wpt_flags=h2"> 10 <div id=log></div> 11 <script> 12 async_test(function(t){ 13 // bufferedAmount should increase sync in the send() method and decrease between 14 // events in the event loop (so never while script is running). 15 var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); 16 ws.onopen = t.step_func(function(e) { 17 ws.send('x'); 18 assert_equals(ws.bufferedAmount, 1, 'bufferedAmount after sent "x"'); 19 ws.send('\u00E5'); 20 assert_equals(ws.bufferedAmount, 1+2, 'bufferedAmount after sent "x", "\u00E5"'); 21 ws.send('\u5336'); 22 assert_equals(ws.bufferedAmount, 1+2+3, 'bufferedAmount after sent "x", "\u00E5", "\u5336"'); 23 ws.send('\uD801\uDC7E'); 24 assert_equals(ws.bufferedAmount, 1+2+3+4, 'bufferedAmount after sent "x", "\u00E5", "\u5336", "\uD801\uDC7E"'); 25 }) 26 var i = 0; 27 ws.onmessage = t.step_func(function(e) { 28 i++; 29 switch(i) { 30 case 1: 31 assert_equals(e.data, 'x'); 32 assert_true(ws.bufferedAmount < 2+3+4 + 1, 'bufferedAmount after received "x"'); 33 break; 34 case 2: 35 assert_equals(e.data, '\u00E5'); 36 assert_true(ws.bufferedAmount < 3+4 + 1, 'bufferedAmount after received "x", "\u00E5"'); 37 break; 38 case 3: 39 assert_equals(e.data, '\u5336'); 40 assert_true(ws.bufferedAmount < 4 + 1, 'bufferedAmount after received "x", "\u00E5", "\u5336"'); 41 break; 42 case 4: 43 assert_equals(e.data, '\uD801\uDC7E'); 44 assert_equals(ws.bufferedAmount, 0, 'bufferedAmount after received "x", "\u00E5", "\u5336", "\uD801\uDC7E"'); 45 t.done(); 46 break; 47 default: 48 assert_unreached(i); 49 } 50 }) 51 ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()}); 52 }); 53 </script>