<!DOCTYPE html>
<meta charset="utf-8">
<title>Navigation Preload empty response body</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/test-helpers.sub.js"></script>
<script>
promise_test(t => {
    var script = 'resources/empty-preload-response-body-worker.js';
    var scope = 'resources/empty-preload-response-body-scope.html';
    return service_worker_unregister_and_register(t, script, scope)
      .then(registration => {
          add_completion_callback(_ => registration.unregister());
          var worker = registration.installing;
          return wait_for_state(t, worker, 'activated');
        })
      .then(_ => with_iframe(scope))
      .then(frame => {
          assert_equals(
            frame.contentDocument.body.textContent,
            '[]');
        });
  }, 'Navigation Preload empty response body.');

</script>
