<!DOCTYPE html>
<title> postMessage(): MessageEvent properties </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
async_test(function(t) {
  var channel = new MessageChannel();
  var targetPort = channel.port2;
  targetPort.start();
  targetPort.addEventListener("message", t.step_func_done(function (evt) {
    assert_class_string(evt, "MessageEvent");
    assert_equals(evt.type, "message");
    assert_false(evt.bubbles, "bubbles should be false");
    assert_false(evt.cancelable, "cancelable should be false");
    assert_equals(evt.data, "ping", "data");
    assert_equals(evt.origin, "", "origin");
    assert_equals(evt.lastEventId, "", "lastEventId");
    assert_equals(evt.source, null, "source");
    assert_array_equals(evt.ports, [], "ports");
  }), true);
  channel.port1.postMessage("ping");
});
</script>
