<!doctype html>
<title>WebSockets: Send/Receive blob, blob size less than network array buffer</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=../constants.sub.js></script>
<meta name="variant" content="?default">
<meta name="variant" content="?wss">
<meta name="variant" content="?wpt_flags=h2">
<div id=log></div>
<script>
async_test(function(t){
  var ws = new WebSocket(SCHEME_DOMAIN_PORT + '/echo');
  var data = "";
  var datasize = 10;
  ws.onopen = t.step_func(function(e) {
   ws.binaryType = "blob";
   data = new ArrayBuffer(datasize);
   ws.send(data);
  })
  ws.onmessage = t.step_func(function(e) {
    assert_true(e.data instanceof Blob);
    assert_equals(e.data.size, datasize);
    t.done();
  })
  ws.onclose = t.unreached_func('close event should not fire');
});
</script>
