mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-10 21:54:47 +08:00
Move and rename files. NOAUTOREVERT=true NOPRESUBMIT=true NOTREECHECKS=true Bug: 768828 TBR=darin@chromium.org NOTRY=true Change-Id: I66d3b155808bc5bdbf237b80208e1e552bcf7f28 Reviewed-on: https://chromium-review.googlesource.com/1001153 Reviewed-by: Blink Reformat <blink-reformat@chromium.org> Commit-Queue: Blink Reformat <blink-reformat@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549061} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0aee4434a4dba42a42abaea9bfbc0cd196a63bc1
111 lines
3.6 KiB
JavaScript
111 lines
3.6 KiB
JavaScript
// Copyright 2017 The Chromium Authors. All
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
/**
|
|
* @fileoverview using private properties isn't a Closure violation in tests.
|
|
* @suppress {accessControls}
|
|
*/
|
|
|
|
ElementsTestRunner.events = [];
|
|
ElementsTestRunner.containerId;
|
|
|
|
ElementsTestRunner.setUpTestSuite = function(next) {
|
|
ElementsTestRunner.expandElementsTree(step1);
|
|
|
|
function step1() {
|
|
ElementsTestRunner.selectNodeWithId('container', step2);
|
|
}
|
|
|
|
function step2(node) {
|
|
ElementsTestRunner.containerId = node.id;
|
|
TestRunner.DOMAgent.getOuterHTML(ElementsTestRunner.containerId).then(step3);
|
|
}
|
|
|
|
function step3(text) {
|
|
ElementsTestRunner.containerText = text;
|
|
|
|
for (const key in SDK.DOMModel.Events) {
|
|
const eventName = SDK.DOMModel.Events[key];
|
|
|
|
if (eventName === SDK.DOMModel.Events.MarkersChanged || eventName === SDK.DOMModel.Events.DOMMutated)
|
|
continue;
|
|
|
|
TestRunner.domModel.addEventListener(
|
|
eventName, ElementsTestRunner.recordEvent.bind(ElementsTestRunner, eventName));
|
|
}
|
|
|
|
next();
|
|
}
|
|
};
|
|
|
|
ElementsTestRunner.recordEvent = function(eventName, event) {
|
|
if (!event.data)
|
|
return;
|
|
|
|
const node = event.data.node || event.data;
|
|
const parent = event.data.parent;
|
|
|
|
for (let currentNode = parent || node; currentNode; currentNode = currentNode.parentNode) {
|
|
if (currentNode.getAttribute('id') === 'output')
|
|
return;
|
|
}
|
|
|
|
ElementsTestRunner.events.push('Event ' + eventName.toString() + ': ' + node.nodeName());
|
|
};
|
|
|
|
ElementsTestRunner.patchOuterHTML = function(pattern, replacement, next) {
|
|
TestRunner.addResult('Replacing \'' + pattern + '\' with \'' + replacement + '\'\n');
|
|
ElementsTestRunner.setOuterHTML(ElementsTestRunner.containerText.replace(pattern, replacement), next);
|
|
};
|
|
|
|
ElementsTestRunner.patchOuterHTMLUseUndo = function(pattern, replacement, next) {
|
|
TestRunner.addResult('Replacing \'' + pattern + '\' with \'' + replacement + '\'\n');
|
|
ElementsTestRunner.setOuterHTMLUseUndo(ElementsTestRunner.containerText.replace(pattern, replacement), next);
|
|
};
|
|
|
|
ElementsTestRunner.setOuterHTML = function(newText, next) {
|
|
ElementsTestRunner.innerSetOuterHTML(newText, false, bringBack);
|
|
|
|
function bringBack() {
|
|
TestRunner.addResult('\nBringing things back\n');
|
|
ElementsTestRunner.innerSetOuterHTML(ElementsTestRunner.containerText, true, next);
|
|
}
|
|
};
|
|
|
|
ElementsTestRunner.setOuterHTMLUseUndo = function(newText, next) {
|
|
ElementsTestRunner.innerSetOuterHTML(newText, false, bringBack);
|
|
|
|
async function bringBack() {
|
|
TestRunner.addResult('\nBringing things back\n');
|
|
await SDK.domModelUndoStack.undo();
|
|
ElementsTestRunner._dumpOuterHTML(true, next);
|
|
}
|
|
};
|
|
|
|
ElementsTestRunner.innerSetOuterHTML = async function(newText, last, next) {
|
|
await TestRunner.DOMAgent.setOuterHTML(ElementsTestRunner.containerId, newText);
|
|
TestRunner.domModel.markUndoableState();
|
|
ElementsTestRunner._dumpOuterHTML(last, next);
|
|
};
|
|
|
|
ElementsTestRunner._dumpOuterHTML = async function(last, next) {
|
|
const result = await TestRunner.RuntimeAgent.evaluate('document.getElementById("identity").wrapperIdentity');
|
|
TestRunner.addResult('Wrapper identity: ' + result.value);
|
|
ElementsTestRunner.events.sort();
|
|
|
|
for (let i = 0; i < ElementsTestRunner.events.length; ++i)
|
|
TestRunner.addResult(ElementsTestRunner.events[i]);
|
|
|
|
ElementsTestRunner.events = [];
|
|
const text = await TestRunner.DOMAgent.getOuterHTML(ElementsTestRunner.containerId);
|
|
TestRunner.addResult('==========8<==========');
|
|
TestRunner.addResult(text);
|
|
TestRunner.addResult('==========>8==========');
|
|
|
|
if (last)
|
|
TestRunner.addResult('\n\n\n');
|
|
|
|
next();
|
|
};
|