<!doctype html>
<title>WebSockets: Send/Receive ArrayBuffer, size greater than network array buffer</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 data = "";
  var datasize = 100000;
  ws.onopen = t.step_func(function(e) {
   ws.binaryType = "arraybuffer";
   data = new ArrayBuffer(datasize);
   ws.send(data);
  })
  ws.onmessage = t.step_func(function(e) {
    assert_equals(e.data.byteLength, datasize);
    t.done();
  })

}, null, {timeout:20000});
</script>
