blob: 190349ffe9bab8e351931c6f98b75e18caf37faf [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 WebInspector extension API\n`);
await TestRunner.loadModule('extensions_test_runner');
await TestRunner.navigatePromise('resources/extensions-network.html');
ExtensionsTestRunner.runExtensionTests([
function extension_testGetHAR(nextTest) {
function compareEntries(a, b) {
return a.request.url.toLowerCase().localeCompare(b.request.url.toLowerCase());
}
function onHAR(result) {
result.entries.sort(compareEntries);
for (var i = 0; i < result.entries.length; ++i)
output('resource: ' + result.entries[i].request.url);
}
extension_doXHR(function() {
webInspector.network.getHAR(callbackAndNextTest(onHAR, nextTest));
});
},
function extension_doXHR(callback) {
invokePageFunctionAsync("doXHR", callback);
},
function extension_testRequestNotification(nextTest) {
function onRequestFinished(request) {
output("Request finished: " + request.request.url.replace(/.*((\/[^/]*){3}$)/,"...$1"));
}
webInspector.network.onRequestFinished.addListener(callbackAndNextTest(onRequestFinished, nextTest));
extension_doXHR();
},
function extension_onRequestBody(content, encoding) {
dumpObject(Array.prototype.slice.call(arguments));
},
function extension_testGetRequestContent(nextTest) {
extension_getRequestByUrl([/audits-style1.css$/], function(request) {
request.getContent(callbackAndNextTest(extension_onRequestBody, nextTest));
});
},
function extension_testGetResourceContentEncoded(nextTest) {
extension_getRequestByUrl([/abe.png$/ ], function(request) {
request.getContent(callbackAndNextTest(extension_onRequestBody, nextTest));
});
}
]);
})();