blob: 1afee4e7ed3b73d4cee108d41709a301c09d84b5 [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(`Test network status of non http request.\n`);
await TestRunner.loadModule('network_test_runner');
await TestRunner.showPanel('network');
await TestRunner.evaluateInPagePromise(`
function addScriptElement(src)
{
var element = document.createElement("script");
element.src = src;
document.body.appendChild(element);
}
function loadResources()
{
addScriptElement("network-status-non-http.js");
addScriptElement("non-existent-file.js");
// Test that data-url doesn't appear in network panel.
addScriptElement("data:application/javascript,var x = 0;");
}
`);
await TestRunner.NetworkAgent.setCacheDisabled(true);
var requestsToWatch = /\/network-status-non-http\.js$|\/non-existent-file.js$|^data:application\/javascript,|/;
var seenRequests = 0;
function dumpRequests() {
var logView = UI.panels.network._networkLogView;
logView._refresh();
var dataGrid = logView.element.querySelector('table.data');
var urls = document.evaluate(
'//tbody/tr/td[position()=1]/@title', dataGrid, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var outputStrings = [];
const requests = NetworkTestRunner.networkRequests();
for (var request of requests) {
var line = request.displayName + ':' + request.statusCode + ' ' + request.statusText;
if (request.failed)
line += '(failed)';
else if (request.finished)
line += 'Finished';
TestRunner.addResult(line);
}
TestRunner.completeTest();
}
function onRequestFinished(request) {
if (!requestsToWatch.test(request.url))
return;
if (++seenRequests === 3)
setTimeout(dumpRequests);
}
TestRunner.networkManager.addEventListener(SDK.NetworkManager.Events.RequestFinished, onRequestFinished);
NetworkTestRunner.recordNetwork();
TestRunner.evaluateInPage('loadResources()');
})();