mirror of
https://github.com/classilla/tenfourfox.git
synced 2026-03-11 22:50:40 +00:00
52 lines
1.9 KiB
HTML
52 lines
1.9 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>WebSockets: bufferedAmount after send()ing</title>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script src=../../../constants.js?pipe=sub></script>
|
|
<div id=log></div>
|
|
<script>
|
|
async_test(function(t){
|
|
// bufferedAmount should increase sync in the send() method and decrease between
|
|
// events in the event loop (so never while script is running).
|
|
var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo');
|
|
ws.onopen = t.step_func(function(e) {
|
|
ws.send('x');
|
|
assert_equals(ws.bufferedAmount, 1, 'bufferedAmount after sent "x"');
|
|
ws.send('\u00E5');
|
|
assert_equals(ws.bufferedAmount, 1+2, 'bufferedAmount after sent "x", "\u00E5"');
|
|
ws.send('\u5336');
|
|
assert_equals(ws.bufferedAmount, 1+2+3, 'bufferedAmount after sent "x", "\u00E5", "\u5336"');
|
|
ws.send('\uD801\uDC7E');
|
|
assert_equals(ws.bufferedAmount, 1+2+3+4, 'bufferedAmount after sent "x", "\u00E5", "\u5336", "\uD801\uDC7E"');
|
|
})
|
|
var i = 0;
|
|
ws.onmessage = t.step_func(function(e) {
|
|
i++;
|
|
switch(i) {
|
|
case 1:
|
|
assert_equals(e.data, 'x');
|
|
assert_true(ws.bufferedAmount < 2+3+4 + 1, 'bufferedAmount after received "x"');
|
|
break;
|
|
case 2:
|
|
assert_equals(e.data, '\u00E5');
|
|
assert_true(ws.bufferedAmount < 3+4 + 1, 'bufferedAmount after received "x", "\u00E5"');
|
|
break;
|
|
case 3:
|
|
assert_equals(e.data, '\u5336');
|
|
assert_true(ws.bufferedAmount < 4 + 1, 'bufferedAmount after received "x", "\u00E5", "\u5336"');
|
|
break;
|
|
case 4:
|
|
assert_equals(e.data, '\uD801\uDC7E');
|
|
assert_equals(ws.bufferedAmount, 0, 'bufferedAmount after received "x", "\u00E5", "\u5336", "\uD801\uDC7E"');
|
|
t.done();
|
|
break;
|
|
default:
|
|
assert_unreached(i);
|
|
}
|
|
})
|
|
ws.onerror = ws.onclose = t.step_func(function() {assert_unreached()});
|
|
});
|
|
</script>
|
|
|