blob: 385dbf3e774bc47939eb9a9f31eefa00296749f4 [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 the search replace functionality.\n`);
await TestRunner.loadModule('sources_test_runner');
await TestRunner.showPanel('sources');
await TestRunner.addScriptTag('../sources/debugger/resources/edit-me.js');
var textEditor;
var panel = UI.panels.sources;
SourcesTestRunner.showScriptSource('edit-me.js', didShowScriptSource);
function showReplaceField() {
var searchableView = UI.panels.sources.searchableView();
searchableView.showSearchField();
searchableView._replaceToggleButton.setToggled(true);
searchableView._updateSecondRowVisibility();
}
function runReplaceAll(searchValue, replaceValue) {
panel.searchableView()._searchInputElement.value = searchValue;
panel.searchableView()._replaceInputElement.value = replaceValue;
panel.searchableView()._replaceAll();
}
function dumpTextEditor(message) {
TestRunner.addResult(message);
TestRunner.addResult(textEditor.text());
}
function didShowScriptSource(sourceFrame) {
textEditor = sourceFrame._textEditor;
showReplaceField();
TestRunner.runTestSuite([
function testReplaceAll(next) {
var source = '// var a1, a2, a3;\nconst a1, a2, a3;\n';
sourceFrame.setContent(source);
dumpTextEditor('--- Before replace ---');
runReplaceAll('a1', 'a$$');
runReplaceAll('a2', 'b$&');
runReplaceAll('a3', 'a3 /* $0 $1 $2 $& $$ \\0 \\1 */');
runReplaceAll('/\\b(const)(\\s)+/', '/** @$1 */ var$2');
runReplaceAll('//', '//=');
dumpTextEditor('--- After replace ---');
next();
},
]);
}
})();