Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Unified Diff: third_party/WebKit/LayoutTests/inspector-protocol/loading-iframe-document-node.js

Issue 2950713002: [DevTools] New harness for inspector-protocol layout tests (Closed)
Patch Set: addressed comments, 4 tests Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/inspector-protocol/loading-iframe-document-node.js
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/loading-iframe-document-node.js b/third_party/WebKit/LayoutTests/inspector-protocol/loading-iframe-document-node.js
new file mode 100644
index 0000000000000000000000000000000000000000..efbfe9630a1eccfe9063582876653213bacf7042
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/loading-iframe-document-node.js
@@ -0,0 +1,40 @@
+(async function(testRunner) {
+ let {page, session, dp} = await testRunner.startBlank('Testing that the Node ID can be retrieved before the onload event is triggered');
+ /*
+ 1. Create an iframe and point it to a page with a debugger statement.
+ 2. Wait until the debugger statement is hit and pause using the inspector protocol.
+ 3. Use the JS context to identify the 'window.document' object inside the iframe.
+ 4. Use the JS object to retrieve the DOM agent nodeId for the document node.
+ */
+ dp.Page.onLoadEventFired(() => {
+ // We should finish the test before this event is triggered.
+ // If you see this in the output, then the slow-image is not loaded correctly in the iframe.
+ testRunner.log('FAIL: Iframe load event fired before the test finished.');
+ testRunner.completeTest();
+ });
+ testRunner.log('step1_bootstrap');
+ // Enable Page agent for the Page.loadEventFired event.
+ dp.Page.enable();
+ // Make sure the debugger ready to break on the 'debugger' statement.
+ dp.Debugger.enable();
+ await dp.DOM.getDocument();
+ testRunner.log('Adding iframe');
+ session.evaluate(`
+ var frame = document.createElement('iframe');
+ frame.src = 'data:text/html,<script>debugger;</script>';
+ document.body.appendChild(frame);
+ `);
+ var response = await dp.Debugger.oncePaused();
+ testRunner.log('Paused on the debugger statement');
+ response = await dp.Runtime.callFunctionOn({
+ objectId: response.params.callFrames[0].this.objectId,
+ functionDeclaration: 'function() { return this.document; }'
+ });
+ var objectId = response.result.result.objectId;
+ testRunner.log('step2_requestNode: Requesting DOM node for iframe\'s document node');
+ response = await dp.DOM.requestNode({objectId: objectId});
+ testRunner.log(response.result.nodeId ? 'PASS: Received node for iframe\'s document node' : 'FAIL: Iframe\'s document node is not available');
+ await dp.Debugger.resume();
+ testRunner.log('Test finished');
+ testRunner.completeTest();
+})

Powered by Google App Engine
This is Rietveld 408576698