Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: third_party/WebKit/LayoutTests/inspector/console/console-viewport-stick-to-bottom.html

Issue 1688053004: DevTools: [Console] fix viewport stick-to-bottom behavior (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/inspector/console/console-viewport-stick-to-bottom.html
diff --git a/third_party/WebKit/LayoutTests/inspector/console/console-viewport-stick-to-bottom.html b/third_party/WebKit/LayoutTests/inspector/console/console-viewport-stick-to-bottom.html
new file mode 100644
index 0000000000000000000000000000000000000000..42899ad9df773815972b574fd4e0614a9369d8f6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector/console/console-viewport-stick-to-bottom.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+<script src="../../http/tests/inspector/inspector-test.js"></script>
+<script src="../../http/tests/inspector/console-test.js"></script>
+<script>
+function populateConsoleWithMessages(count)
+{
+ for (var i = 0; i < count - 1; ++i)
+ console.log("Message #" + i);
+ console.log("hello %cworld", "color: blue");
+}
+
+//# sourceURL=console-viewport-selection.html
+</script>
+
+<script>
+
+function test()
+{
+ InspectorTest.fixConsoleViewportDimensions(600, 200);
+ var consoleView = WebInspector.ConsolePanel._view();
+ var viewport = consoleView._viewport;
+ const minimumViewportMessagesCount = 10;
+ const messagesCount = 150;
+ const middleMessage = messagesCount / 2;
+ var viewportMessagesCount;
+
+ logMessagesToConsole(messagesCount, () => InspectorTest.runTestSuite(testSuite));
+
+ var testSuite = [
+ function verifyViewportIsTallEnough(next)
+ {
+ viewport.invalidate();
+ viewport.forceScrollItemToBeFirst(0);
+ viewportMessagesCount = viewport.lastVisibleIndex() - viewport.firstVisibleIndex() + 1;
+ if (viewportMessagesCount < minimumViewportMessagesCount) {
+ InspectorTest.addResult(String.sprintf("Test cannot be run as viewport is not tall enough. It is required to contain at least %d messages, but %d only fit", minimumViewportMessagesCount, viewportMessagesCount));
+ InspectorTest.completeTest();
+ return;
+ }
+ InspectorTest.addResult(String.sprintf("Viewport contains %d messages", viewportMessagesCount));
+ next();
+ },
+
+ function testScrollViewportToBottom(next)
+ {
+ consoleView._immediatelyScrollToBottom();
+ viewport.refresh();
+ InspectorTest.addResult("Last visible message: " + viewport.lastVisibleIndex());
+ next();
+ },
+
+ function testConsoleSticksToBottom(next)
+ {
+ logMessagesToConsole(messagesCount, onMessagesDumped);
+
+ function onMessagesDumped()
+ {
+ viewport.invalidate();
+ // Force refresh which has been scheduled via invalidate() method.
+ viewport.refresh();
+ InspectorTest.addResult("Last visible message: " + viewport.lastVisibleIndex());
+ next();
+ }
+ },
+
+ function testManualScrollDoesNotStickToBottom(next)
+ {
+ var initialScrollTop = viewport.element.scrollTop;
+ viewport.element.scrollTop = initialScrollTop - 1;
+ viewport.refresh();
+ var newScrollTop = viewport.element.scrollTop;
+ var isScrollPreserved = initialScrollTop - newScrollTop === 1;
+ InspectorTest.addResult("Scroll preserved: " + isScrollPreserved);
+ next();
+ },
+ ];
+
+ function logMessagesToConsole(count, callback)
+ {
+ var awaitingMessagesCount = count;
+ function messageAdded()
+ {
+ if (!--awaitingMessagesCount)
+ callback();
+ else
+ InspectorTest.addConsoleSniffer(messageAdded, false);
+ }
+
+ InspectorTest.addConsoleSniffer(messageAdded, false);
+ InspectorTest.evaluateInPage(String.sprintf("populateConsoleWithMessages(%d)", count));
+ }
+}
+</script>
+</head>
+<body onload="runTest()">
+<p>
+ Verifies viewport stick-to-bottom behavior.
+</p>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698