blob: 50e23a9e2fc03608bb87d3df96a45ac8f0448d3b [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 switching editor tabs after searching does not affect editor selection and viewport.\n`);
await TestRunner.loadModule('sources_test_runner');
await TestRunner.showPanel('sources');
await TestRunner.addScriptTag('../sources/debugger/resources/edit-me.js');
await TestRunner.addScriptTag('resources/search-me.js');
var textEditor;
var searchString = 'FINDME';
var searchableView = UI.panels.sources.searchableView();
var sourceFrame;
SourcesTestRunner.showScriptSource('search-me.js', didShowScriptSource);
function didShowScriptSource(shownSourceFrame) {
sourceFrame = shownSourceFrame;
textEditor = sourceFrame._textEditor;
// We are probably still updating the editor in current callstack, so postpone the test execution.
queueMicrotask(() => {
textEditorUpdated();
});
}
function textEditorUpdated(sourceFrame) {
searchableView.showSearchField();
TestRunner.addResult('Performing search...');
searchableView._searchInputElement.value = searchString;
searchableView._performSearch(true, true);
TestRunner.addResult('Recording editor viewport after searching...');
var originalViewport = {from: textEditor.firstVisibleLine(), to: textEditor.lastVisibleLine()};
var originalSelectionRange = textEditor.selection();
SourcesTestRunner.showScriptSource('edit-me.js', didShowAnotherSource);
function didShowAnotherSource(anotherSourceFrame) {
SourcesTestRunner.showScriptSource('search-me.js', didShowScriptSourceAgain);
}
function didShowScriptSourceAgain(sourceFrame) {
TestRunner.addResult('Recording editor viewport after switching tabs...');
var newViewport = {from: textEditor.firstVisibleLine(), to: textEditor.lastVisibleLine()};
var newSelectionRange = textEditor.selection();
TestRunner.addResult('Comparing viewports...');
if (originalViewport.from === newViewport.from && originalViewport.to === newViewport.to)
TestRunner.addResult(' viewports match, SUCCESS');
else
TestRunner.addResult(' viewports do not match, FAIL');
TestRunner.addResult('Comparing selection ranges...');
TestRunner.addResult(' original selection range: ' + originalSelectionRange.toString());
TestRunner.addResult(' current selection range: ' + newSelectionRange.toString());
TestRunner.completeTest();
}
}
})();