| // Copyright 2019 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 constructed stylesheets appear properly.\n`); |
| await TestRunner.loadModule('elements_test_runner'); |
| await TestRunner.showPanel('elements'); |
| await TestRunner.loadHTML(` |
| <div id="inspected">Text</div> |
| `); |
| await TestRunner.evaluateInPagePromise(` |
| const s = new CSSStyleSheet(); |
| s.replaceSync('div {color: red}'); |
| document.adoptedStyleSheets = [s]; |
| `); |
| |
| ElementsTestRunner.selectNodeAndWaitForStyles('inspected', modify); |
| |
| async function modify() { |
| await ElementsTestRunner.dumpSelectedElementStyles(true); |
| |
| TestRunner.cssModel.addEventListener(SDK.CSSModel.Events.StyleSheetChanged, onStyleSheetChanged, this); |
| |
| function onStyleSheetChanged(event) { |
| TestRunner.addResult('StyleSheetChanged triggered'); |
| TestRunner.completeTest(); |
| } |
| |
| await TestRunner.evaluateInPagePromise(` |
| s.insertRule('div {color: green}'); |
| `); |
| } |
| })(); |