blob: 2a12c17855d21170ed8dded218901cb6a9b4cba9 [file] [log] [blame]
// 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();
})();