| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| (async function() { |
| TestRunner.addResult(`Tests that memory-cached resources are correctly reported.\n`); |
| await TestRunner.loadModule('network_test_runner'); |
| await TestRunner.showPanel('network'); |
| await TestRunner.navigatePromise(`resources/memory-cached-resource.html`); |
| |
| function waitOnResource(url, status, cached) { |
| return new Promise(resolve => { |
| const eventName = SDK.NetworkManager.Events.RequestFinished; |
| function onRequestFinished(event) { |
| const request = event.data; |
| if (url.test(request.url()) && status === request.statusCode && cached === request.cached()) { |
| TestRunner.networkManager.removeEventListener(eventName, onRequestFinished); |
| resolve(request); |
| } |
| } |
| TestRunner.networkManager.addEventListener(eventName, onRequestFinished); |
| }); |
| } |
| |
| await TestRunner.NetworkAgent.setCacheDisabled(true); |
| await TestRunner.reloadPage(); |
| await waitOnResource(/abe\.png/, 200, false); |
| TestRunner.addResult('An uncached resource is found.'); |
| |
| await TestRunner.NetworkAgent.setCacheDisabled(false); |
| const cached = waitOnResource(/abe\.png/, 200, true); |
| await TestRunner.addIframe('memory-cached-resource.html'); |
| await cached; |
| TestRunner.addResult('A cached resource is found.'); |
| |
| TestRunner.completeTest(); |
| })(); |