blob: 28bb173a7754fabbf58fde72e4205f681248a368 [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() {
// about:blank never fires a load event so just wait until we see the URL change
function navigateToAboutBlankAndWait() {
var listenerPromise = new Promise(resolve => {
SDK.targetManager.addEventListener(SDK.TargetManager.Events.InspectedURLChanged, resolve);
});
TestRunner.navigate('about:blank');
return listenerPromise;
}
TestRunner.addResult('Tests that audits panel prevents run of unauditable pages.\n');
await TestRunner.navigatePromise('resources/audits-basic.html');
await TestRunner.loadModule('audits_test_runner');
await TestRunner.showPanel('audits');
TestRunner.addResult('\n\n**Prevents audit with no categories**');
AuditsTestRunner.openStartAudit();
var containerElement = AuditsTestRunner.getContainerElement();
var checkboxes = containerElement.querySelectorAll('.checkbox');
checkboxes.forEach(checkbox => checkbox.checkboxElement.checked && checkbox.checkboxElement.click());
AuditsTestRunner.dumpStartAuditState();
TestRunner.addResult('\n\n**Allows audit with a single category**');
checkboxes[0].checkboxElement.click();
AuditsTestRunner.dumpStartAuditState();
TestRunner.addResult('\n\n**Allows audit on undockable page**');
// Extension page and remote debugging previously caused crashes (crbug.com/734532)
// However, the crashes have been resolved, so these should now pass.
AuditsTestRunner.forcePageAuditabilityCheck();
AuditsTestRunner.dumpStartAuditState();
TestRunner.addResult('\n\n**Prevents audit on internal page**');
await navigateToAboutBlankAndWait();
TestRunner.addResult(`URL: ${TestRunner.mainTarget.inspectedURL()}`);
AuditsTestRunner.dumpStartAuditState();
TestRunner.completeTest();
})();