Files
react-native-devtools-frontend/front_end/coverage_test_runner/CoverageTestRunner.js
T
Blink Reformat 4c46d0969f The Great Blink mv for source files, part 2.
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
2018-04-07 15:32:37 +00:00

102 lines
3.2 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}
*/
CoverageTestRunner.startCoverage = function() {
UI.viewManager.showView('coverage');
const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
coverageView._startRecording();
};
/**
* @return {!Promise}
*/
CoverageTestRunner.stopCoverage = function() {
const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
return coverageView._stopRecording();
};
/**
* @return {!Promise}
*/
CoverageTestRunner.pollCoverage = function() {
const coverageView = self.runtime.sharedInstance(Coverage.CoverageView);
return coverageView._poll();
};
/**
* @return {!Promise<!SourceFrame.SourceFrame>}
*/
CoverageTestRunner.sourceDecorated = async function(source) {
await UI.inspectorView.showPanel('sources');
const decoratePromise = TestRunner.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, '_innerDecorate');
const sourceFrame = await SourcesTestRunner.showScriptSourcePromise(source);
await decoratePromise;
return sourceFrame;
};
CoverageTestRunner.dumpDecorations = async function(source) {
const sourceFrame = await CoverageTestRunner.sourceDecorated(source);
CoverageTestRunner.dumpDecorationsInSourceFrame(sourceFrame);
};
/**
* @return {?DataGrid.DataGridNode}
*/
CoverageTestRunner.findCoverageNodeForURL = function(url) {
const coverageListView = self.runtime.sharedInstance(Coverage.CoverageView)._listView;
const rootNode = coverageListView._dataGrid.rootNode();
for (const child of rootNode.children) {
if (child._coverageInfo.url().endsWith(url))
return child;
}
return null;
};
CoverageTestRunner.dumpDecorationsInSourceFrame = function(sourceFrame) {
const markerMap = new Map([['used', '+'], ['unused', '-']]);
const codeMirror = sourceFrame.textEditor.codeMirror();
for (let line = 0; line < codeMirror.lineCount(); ++line) {
const text = codeMirror.getLine(line);
let markerType = ' ';
const lineInfo = codeMirror.lineInfo(line);
if (!lineInfo)
continue;
const gutterElement = lineInfo.gutterMarkers && lineInfo.gutterMarkers['CodeMirror-gutter-coverage'];
if (gutterElement) {
const markerClass = /^text-editor-coverage-(\w*)-marker$/.exec(gutterElement.classList)[1];
markerType = markerMap.get(markerClass) || gutterElement.classList;
}
TestRunner.addResult(`${line}: ${markerType} ${text}`);
}
};
CoverageTestRunner.dumpCoverageListView = function() {
const coverageListView = self.runtime.sharedInstance(Coverage.CoverageView)._listView;
const dataGrid = coverageListView._dataGrid;
dataGrid.updateInstantly();
for (const child of dataGrid.rootNode().children) {
const data = child._coverageInfo;
const url = TestRunner.formatters.formatAsURL(data.url());
if (url.startsWith('test://'))
continue;
const type = Coverage.CoverageListView._typeToString(data.type());
TestRunner.addResult(`${url} ${type} used: ${data.usedSize()} unused: ${data.unusedSize()} total: ${data.size()}`);
}
};