blob: 265f41254d92bf26ff866adedff3c143b15071c6 [file] [log] [blame]
// 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.
(async function() {
TestRunner.addResult(`Tests that the changes view highlights diffs correctly.\n`);
await TestRunner.loadModule('sources_test_runner');
await TestRunner.loadModule('changes');
await TestRunner.showPanel('sources');
await TestRunner.addStylesheetTag('resources/before.css');
await TestRunner.addStylesheetTag('resources/after.css');
TestRunner.waitForUISourceCode('after.css').then(uiSourceCode => uiSourceCode.requestContent()).then(onAfterContent);
async function onAfterContent({ content, error, isEncoded }) {
SourcesTestRunner.waitForScriptSource('before.css', uiSourceCode => uiSourceCode.setWorkingCopy(content));
TestRunner.addSniffer(Changes.ChangesView.prototype, '_renderDiffRows', rowsRendered, true);
await UI.viewManager.showView('changes.changes');
}
function rowsRendered() {
var codeMirror = this._editor._codeMirror;
for (var i = 0; i < codeMirror.lineCount(); i++) {
codeMirror.scrollIntoView(i); // Ensure highlighting
var lineInfo = codeMirror.lineInfo(i);
var prefix = '';
if (lineInfo.handle.styleClasses.bgClass === 'deletion')
prefix = '-';
else if (lineInfo.handle.styleClasses.bgClass === 'addition')
prefix = '+';
else if (lineInfo.handle.styleClasses.bgClass === 'equal')
prefix = ' ';
TestRunner.addResult(prefix + ' ' + lineInfo.text);
}
TestRunner.completeTest();
}
})();