| <!doctype html> | |
| <title>WebSockets : Boundary-value tests for the 'Extended payload length' field in RFC6455 section5.2 'Base Framing Protocol'</title> | |
| <meta name=timeout content=long> | |
| <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){ | |
| var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); | |
| var datasize = 125; | |
| var data = null; | |
| ws.onopen = t.step_func(function(e) { | |
| data = new Array(datasize + 1).join('a'); | |
| ws.send(data); | |
| }); | |
| ws.onmessage = t.step_func(function(e) { | |
| assert_equals(e.data, data); | |
| t.done(); | |
| }); | |
| }, "Application data is 125 byte which means any 'Extended payload length' field isn't used at all.", {timeout:20000}); | |
| async_test(function(t){ | |
| var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); | |
| var datasize = 126; | |
| var data = null; | |
| ws.onopen = t.step_func(function(e) { | |
| data = new Array(datasize + 1).join('a'); | |
| ws.send(data); | |
| }); | |
| ws.onmessage = t.step_func(function(e) { | |
| assert_equals(e.data, data); | |
| t.done(); | |
| }); | |
| }, "Application data is 126 byte which starts to use the 16 bit 'Extended payload length' field.", {timeout:20000}); | |
| async_test(function(t){ | |
| var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); | |
| var datasize = 0xFFFF; | |
| var data = null; | |
| ws.onopen = t.step_func(function(e) { | |
| data = new Array(datasize + 1).join('a'); | |
| ws.send(data); | |
| }); | |
| ws.onmessage = t.step_func(function(e) { | |
| assert_equals(e.data, data); | |
| t.done(); | |
| }); | |
| }, "Application data is 0xFFFF byte which means the upper bound of the 16 bit 'Extended payload length' field.", {timeout:20000}); | |
| async_test(function(t){ | |
| var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); | |
| var datasize = 0xFFFF + 1; | |
| var data = null; | |
| ws.onopen = t.step_func(function(e) { | |
| data = new Array(datasize + 1).join('a'); | |
| ws.send(data); | |
| }); | |
| ws.onmessage = t.step_func(function(e) { | |
| assert_equals(e.data, data); | |
| t.done(); | |
| }); | |
| }, "Application data is (0xFFFF + 1) byte which starts to use the 64 bit 'Extended payload length' field", {timeout:20000}); | |
| </script> |