<!doctype html>
<title>WebSockets: protocol array</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) {
  var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/protocol_array',['foobar','foobar2']);
  ws.onmessage = t.step_func(function(e) {
    assert_equals(ws.protocol, 'foobar');
    ws.onclose = t.step_func(function(e) {
      ws.onclose = t.step_func(function() {assert_unreached()});
      setTimeout(t.step_func(function() {t.done();}), 50)
    });
    ws.close();
  });
  ws.onerror = t.step_func(function() {assert_unreached()});
});
</script>
