blob: c505a14fe469971193223521850a7ca6d0673df0 [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 console viewport reveals messages on searching.\n`);
await TestRunner.loadModule('console_test_runner');
await TestRunner.showPanel('console');
await TestRunner.evaluateInPagePromise(`
for (var i = 0; i < 200; ++i)
console.log("Message #" + i);
console.log("LAST MESSAGE");
`);
var consoleView = Console.ConsoleView.instance();
var viewport = consoleView._viewport;
const maximumViewportMessagesCount = 150;
TestRunner.runTestSuite([
function waitForMessages(next) {
// NOTE: keep in sync with populateConsoleWithMessages above.
const expectedMessageCount = 201;
ConsoleTestRunner.waitForConsoleMessages(expectedMessageCount, next);
},
function verifyViewportIsTallEnough(next) {
viewport.invalidate();
var viewportMessagesCount = viewport._lastVisibleIndex - viewport._firstVisibleIndex;
if (viewportMessagesCount > maximumViewportMessagesCount) {
TestRunner.addResult(
String.sprintf(
'Test cannot be run because viewport could fit %d messages which is more than maximum of %d.',
viewportMessagesCount,
maximumViewportMessagesCount
)
);
TestRunner.completeTest();
return;
}
next();
},
function scrollConsoleToTop(next) {
viewport.forceScrollItemToBeFirst(0);
dumpTop();
next();
},
function testFindLastMessage(next) {
TestRunner.addSniffer(consoleView, '_searchFinishedForTests', callback);
consoleView._searchableView._searchInputElement.value = 'LAST MESSAGE';
consoleView._searchableView.showSearchField();
function callback() {
consoleView._searchableView.handleFindNextShortcut();
dumpBottom();
next();
}
}
]);
function dumpTop() {
viewport.refresh();
TestRunner.addResult('first visible message index: ' + viewport.firstVisibleIndex());
}
function dumpBottom() {
viewport.refresh();
TestRunner.addResult('last visible message index: ' + viewport.lastVisibleIndex());
}
})();