blob: 5d9f9357641e899c2c8352cb3881f033f7cf81ca [file] [log] [blame]
// Expected DOM structure:
// Note: unrelated elements like script, \n text nodes are omitted.
// For originUrl:
// * denotes dom-snapshot-origin-url-3.js.
// ** denotes dom-snapshot-origin-url.html, aka document inlined javascript.
// *** denotes dom-snapshot-origin-url-1.js.
// **** denoates dom-snapshot-origin-url-2.js.
// <img***>
// <firstChild**>
// <testWrite <html**** <p<text>> <span*<p<text>>> <p*<text>>>>
// <testInnerText <'New content'*>>
// <testInnerHtml1 <'Hello'**>>
// <testInnerHtml2 <p* <span <'Inner World'>>>>
// <p* <span <'Outer World'>>> (used to be testOuterHtml)
(async function(testRunner) {
const {page, session, dp} = await testRunner.startBlank('Tests that DOMSnapshot.getSnapshot records origin url of dom nodes generated by script.');
await dp.DOMSnapshot.enable();
await page.navigate('../resources/dom-snapshot-origin-url.html');
function cleanupPaths(obj) {
for (const key of Object.keys(obj)) {
const value = obj[key];
if (typeof value === 'string' && value.indexOf('file://') !== -1)
obj[key] = '<value>';
else if (typeof value === 'object')
cleanupPaths(value);
}
return obj;
}
const response = await dp.DOMSnapshot.getSnapshot({'computedStyleWhitelist': [], 'includeEventListeners': true});
if (response.error)
testRunner.log(response);
else
testRunner.log(cleanupPaths(response.result), null, ['documentURL', 'baseURL', 'frameId', 'backendNodeId', 'layoutTreeNodes']);
testRunner.completeTest();
})