| // 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 evaluate in console works even if window.console is substituted or deleted. Bug 53072\n`); |
| await TestRunner.loadModule('console_test_runner'); |
| await TestRunner.showPanel('console'); |
| |
| await TestRunner.evaluateInPagePromise(` |
| function deleteConsole() |
| { |
| window.console = undefined; |
| } |
| |
| function substituteConsole() |
| { |
| Object.defineProperty(window, "__commandLineAPI", { enumerable: false, configurable: false, get: function() { throw "Substituted" }}); |
| } |
| `); |
| |
| ConsoleTestRunner.evaluateInConsole('deleteConsole()', step1); |
| |
| function step1() { |
| ConsoleTestRunner.evaluateInConsole('1', step2); |
| } |
| |
| function step2(result) { |
| TestRunner.addResult(result); |
| ConsoleTestRunner.evaluateInConsole('substituteConsole()', step3); |
| } |
| |
| function step3(result) { |
| ConsoleTestRunner.evaluateInConsole('2', step4); |
| } |
| |
| function step4(result) { |
| TestRunner.addResult(result); |
| TestRunner.completeTest(); |
| } |
| })(); |