<html>
<head>
<script src="../inspector-test.js"></script>
<script src="service-workers-test.js"></script>
<script src="../resources-test.js"></script>
<script src="../console-test.js"></script>
<script src="../network-test.js"></script>
<script>

function test() {
  let scope = 'http://127.0.0.1:8000/inspector/service-workers/resources/network-fetch-worker-blocked-scope';

  NetworkTestRunner.recordNetwork();
  SDK.multitargetNetworkManager.setBlockingEnabled(true);
  SDK.multitargetNetworkManager.setBlockedPatterns([{url: 'resources/resource.php', enabled: true}]);

  ApplicationTestRunner.makeFetchInServiceWorker(scope, '../../network/resources/resource.php', {}, fetchCallback);

  function fetchCallback(result) {
    TestRunner.addResult('Fetch in worker result: ' + result.value);

    var requests = NetworkTestRunner.networkRequests();
    requests.forEach((request) => {
      TestRunner.addResult(request.url());
      TestRunner.addResult('resource.type: ' + request.resourceType());
      TestRunner.addResult('request.failed: ' + !!request.failed);
    });

    TestRunner.completeTest();
  }
}

</script>
</head>
<body onload="runTest()">
<p>Tests blocking fetch in Service Workers.</p>
</body>
</html>
