mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-07 04:26:32 +08:00
Bug: chromium:1207342 Change-Id: I1c2f36feb524d2ea4940552367a16bddb714e215 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3107135 Commit-Queue: Jan Scheffler <janscheffler@chromium.org> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Auto-Submit: Jan Scheffler <janscheffler@chromium.org> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
80 lines
2.9 KiB
JavaScript
80 lines
2.9 KiB
JavaScript
// Copyright 2017 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.
|
|
|
|
/**
|
|
* @fileoverview using private properties isn't a Closure violation in tests.
|
|
*/
|
|
self.ElementsTestRunner = self.ElementsTestRunner || {};
|
|
|
|
ElementsTestRunner.doAddAttribute = function(testName, dataNodeId, attributeText, next) {
|
|
ElementsTestRunner.domActionTestForNodeId(testName, dataNodeId, testBody, next);
|
|
|
|
function testBody(node, done) {
|
|
ElementsTestRunner.editNodePart(node, 'webkit-html-attribute');
|
|
eventSender.keyDown('Tab');
|
|
TestRunner.deprecatedRunAfterPendingDispatches(testContinuation);
|
|
|
|
function testContinuation() {
|
|
const editorElement =
|
|
ElementsTestRunner.firstElementsTreeOutline().shadowRoot.getSelection().anchorNode.parentElement;
|
|
editorElement.textContent = attributeText;
|
|
editorElement.dispatchEvent(TestRunner.createKeyEvent('Enter'));
|
|
TestRunner.addSniffer(Elements.ElementsTreeOutline.prototype, 'updateModifiedNodes', done);
|
|
}
|
|
}
|
|
};
|
|
|
|
ElementsTestRunner.domActionTestForNodeId = function(testName, dataNodeId, testBody, next) {
|
|
function callback(testNode, continuation) {
|
|
ElementsTestRunner.selectNodeWithId(dataNodeId, continuation);
|
|
}
|
|
|
|
ElementsTestRunner.domActionTest(testName, callback, testBody, next);
|
|
};
|
|
|
|
ElementsTestRunner.domActionTest = function(testName, dataNodeSelectionCallback, testBody, next) {
|
|
const testNode = ElementsTestRunner.expandedNodeWithId(testName);
|
|
TestRunner.addResult('==== before ====');
|
|
ElementsTestRunner.dumpElementsTree(testNode);
|
|
dataNodeSelectionCallback(testNode, step0);
|
|
|
|
function step0(node) {
|
|
TestRunner.deprecatedRunAfterPendingDispatches(step1.bind(null, node));
|
|
}
|
|
|
|
function step1(node) {
|
|
testBody(node, step2);
|
|
}
|
|
|
|
function step2() {
|
|
TestRunner.addResult('==== after ====');
|
|
ElementsTestRunner.dumpElementsTree(testNode);
|
|
next();
|
|
}
|
|
};
|
|
|
|
ElementsTestRunner.editNodePart = function(node, className) {
|
|
const treeElement = ElementsTestRunner.firstElementsTreeOutline().findTreeElement(node);
|
|
let textElement = treeElement.listItemElement.getElementsByClassName(className)[0];
|
|
|
|
if (!textElement && treeElement.childrenListElement) {
|
|
textElement = treeElement.childrenListElement.getElementsByClassName(className)[0];
|
|
}
|
|
|
|
treeElement.startEditingTarget(textElement);
|
|
return textElement;
|
|
};
|
|
|
|
ElementsTestRunner.editNodePartAndRun = function(node, className, newValue, step2, useSniffer) {
|
|
const editorElement = ElementsTestRunner.editNodePart(node, className);
|
|
editorElement.textContent = newValue;
|
|
editorElement.dispatchEvent(TestRunner.createKeyEvent('Enter'));
|
|
|
|
if (useSniffer) {
|
|
TestRunner.addSniffer(Elements.ElementsTreeOutline.prototype, 'updateModifiedNodes', step2);
|
|
} else {
|
|
TestRunner.deprecatedRunAfterPendingDispatches(step2);
|
|
}
|
|
};
|