<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="resources/test-helpers.js"></script>
<script>
promise_test(function(t) {
    var script = 'resources/extendable-event-async-waituntil.js';
    var scope = 'resources/async-waituntil';
    var worker;

    return service_worker_unregister_and_register(t, script, scope)
      .then(function(registration) {
          worker = registration.installing;
          return wait_for_state(t, worker, 'activated');
        })
      .then(function() {
          var channel = new MessageChannel();
          var saw_message = new Promise(function(resolve) {
              channel.port1.onmessage = function(e) { resolve(e.data); }
            });
          worker.postMessage({port: channel.port2}, [channel.port2]);
          return saw_message;
        })
      .then(function(message) {
          assert_equals(message, 'PASS');
          return service_worker_unregister_and_done(t, scope);
        })
  }, 'Calling waitUntil asynchronously throws an exception');
</script>
