blob: d6aad0ebf4be0527bc7fe67119854733564ddeab [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startHTML(`
<style>
#test { color: green; }
</style>
<article id='test'></article>
`, 'The test verifies functionality of protocol method CSS.setStyleTexts and DOM.undo.');
const CSSHelper = await testRunner.loadScript('../resources/css-helper.js');
const cssHelper = new CSSHelper(testRunner, dp);
let eventPromise = dp.CSS.onceStyleSheetAdded();
await dp.DOM.enable();
await dp.CSS.enable();
let event = await eventPromise;
let styleSheetId = event.params.header.styleSheetId;
const setStyleTexts = cssHelper.setStyleTexts.bind(cssHelper, styleSheetId, false);
const documentNodeId = await cssHelper.requestDocumentNodeId();
let response = await dp.CSS.getStyleSheetText({styleSheetId});
testRunner.log('==== Initial style sheet text ====');
testRunner.log(response.result.text);
await setStyleTexts([{
styleSheetId: styleSheetId,
range: { startLine: 1, startColumn: 7, endLine: 1, endColumn: 22 },
text: "color: blue;",
}]);
await cssHelper.loadAndDumpMatchingRules(documentNodeId, '#test');
eventPromise = dp.CSS.onceStyleSheetAdded();
// Clear the style content.
await session.evaluate(fontURL => {
const style = document.querySelector('style');
style.textContent = '';
});
await dp.DOM.undo();
event = await eventPromise;
styleSheetId = event.params.header.styleSheetId;
response = await dp.CSS.getStyleSheetText({styleSheetId});
testRunner.log('==== Style sheet text after clearing the stylesheet and DOM.Undo ====');
testRunner.log(response.result.text || '<empty>');
testRunner.completeTest();
})