Files
react-native-devtools-frontend/front_end/elements_test_runner/SetOuterHTMLTestRunner.js
T
Tim van der Lippe 1d6e57a0e3 Always add braces to single-line if-statements
The Chromium/Google style guides does not enforce curly braces for
single-line if-statements, but does strongly recommend doing so. Adding
braces will improve code readability, by visually separating code
blocks. This will also prevent issues where accidental additions are
pushed to the "else"-clause instead of in the if-block.

This CL also updates the presubmit `eslint` to run the fix with the
correct configuration. It will now fix all issues it can fix.

Change-Id: I4b616f21a99393f168dec743c0bcbdc7f5db04a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1821526
Commit-Queue: Tim Van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jeff Fisher <jeffish@microsoft.com>
Cr-Original-Commit-Position: refs/heads/master@{#701070}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7e0bdbe2d7f9fc2386bfaefda3cc29c66ccc18f9
2019-09-30 11:55:34 +00:00

116 lines
3.7 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();
};