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

Side by Side 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 unified diff | Download patch
OLDNEW
(Empty)
1 <html>
2 <head>
3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/console-test.js"></script>
5 <script>
6 function populateConsoleWithMessages(count)
7 {
8 for (var i = 0; i < count - 1; ++i)
9 console.log("Message #" + i);
10 console.log("hello %cworld", "color: blue");
11 }
12
13 //# sourceURL=console-viewport-selection.html
14 </script>
15
16 <script>
17
18 function test()
19 {
20 InspectorTest.fixConsoleViewportDimensions(600, 200);
21 var consoleView = WebInspector.ConsolePanel._view();
22 var viewport = consoleView._viewport;
23 const minimumViewportMessagesCount = 10;
24 const messagesCount = 150;
25 const middleMessage = messagesCount / 2;
26 var viewportMessagesCount;
27
28 logMessagesToConsole(messagesCount, () => InspectorTest.runTestSuite(testSui te));
29
30 var testSuite = [
31 function verifyViewportIsTallEnough(next)
32 {
33 viewport.invalidate();
34 viewport.forceScrollItemToBeFirst(0);
35 viewportMessagesCount = viewport.lastVisibleIndex() - viewport.first VisibleIndex() + 1;
36 if (viewportMessagesCount < minimumViewportMessagesCount) {
37 InspectorTest.addResult(String.sprintf("Test cannot be run as vi ewport is not tall enough. It is required to contain at least %d messages, but % d only fit", minimumViewportMessagesCount, viewportMessagesCount));
38 InspectorTest.completeTest();
39 return;
40 }
41 InspectorTest.addResult(String.sprintf("Viewport contains %d message s", viewportMessagesCount));
42 next();
43 },
44
45 function testScrollViewportToBottom(next)
46 {
47 consoleView._immediatelyScrollToBottom();
48 viewport.refresh();
49 InspectorTest.addResult("Last visible message: " + viewport.lastVisi bleIndex());
50 next();
51 },
52
53 function testConsoleSticksToBottom(next)
54 {
55 logMessagesToConsole(messagesCount, onMessagesDumped);
56
57 function onMessagesDumped()
58 {
59 viewport.invalidate();
60 // Force refresh which has been scheduled via invalidate() metho d.
61 viewport.refresh();
62 InspectorTest.addResult("Last visible message: " + viewport.last VisibleIndex());
63 next();
64 }
65 },
66
67 function testManualScrollDoesNotStickToBottom(next)
68 {
69 var initialScrollTop = viewport.element.scrollTop;
70 viewport.element.scrollTop = initialScrollTop - 1;
71 viewport.refresh();
72 var newScrollTop = viewport.element.scrollTop;
73 var isScrollPreserved = initialScrollTop - newScrollTop === 1;
74 InspectorTest.addResult("Scroll preserved: " + isScrollPreserved);
75 next();
76 },
77 ];
78
79 function logMessagesToConsole(count, callback)
80 {
81 var awaitingMessagesCount = count;
82 function messageAdded()
83 {
84 if (!--awaitingMessagesCount)
85 callback();
86 else
87 InspectorTest.addConsoleSniffer(messageAdded, false);
88 }
89
90 InspectorTest.addConsoleSniffer(messageAdded, false);
91 InspectorTest.evaluateInPage(String.sprintf("populateConsoleWithMessages (%d)", count));
92 }
93 }
94 </script>
95 </head>
96 <body onload="runTest()">
97 <p>
98 Verifies viewport stick-to-bottom behavior.
99 </p>
100 </body>
101 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698