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

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

Issue 2256873002: Revert of DevTools: fix stick to bottom in console viewport (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/inspector/console/console-viewport-stick-to-bottom-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script src="../../http/tests/inspector/inspector-test.js"></script> 3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/console-test.js"></script> 4 <script src="../../http/tests/inspector/console-test.js"></script>
5 <script> 5 <script>
6 function populateConsoleWithMessages(count) 6 function populateConsoleWithMessages(count)
7 { 7 {
8 for (var i = 0; i < count - 1; ++i) 8 for (var i = 0; i < count - 1; ++i)
9 console.log("Multiline\nMessage #" + i); 9 console.log("Multiline\nMessage #" + i);
10 console.log("hello %cworld", "color: blue"); 10 console.log("hello %cworld", "color: blue");
11 } 11 }
12 12
13 //# sourceURL=console-viewport-selection.html 13 //# sourceURL=console-viewport-selection.html
14 </script> 14 </script>
15 15
16 <script> 16 <script>
17 17
18 function test() 18 function test()
19 { 19 {
20 var viewportHeight = 200; 20 InspectorTest.fixConsoleViewportDimensions(600, 200);
21 InspectorTest.fixConsoleViewportDimensions(600, viewportHeight);
22 var consoleView = WebInspector.ConsoleView.instance(); 21 var consoleView = WebInspector.ConsoleView.instance();
23 var viewport = consoleView._viewport; 22 var viewport = consoleView._viewport;
24 const minimumViewportMessagesCount = 10; 23 const minimumViewportMessagesCount = 10;
25 const messagesCount = 150; 24 const messagesCount = 150;
26 const middleMessage = messagesCount / 2; 25 const middleMessage = messagesCount / 2;
27 var viewportMessagesCount; 26 var viewportMessagesCount;
28 27
29 logMessagesToConsole(messagesCount, () => InspectorTest.runTestSuite(testSui te)); 28 logMessagesToConsole(messagesCount, () => InspectorTest.runTestSuite(testSui te));
30 29
31 var testSuite = [ 30 var testSuite = [
32 function verifyViewportIsTallEnough(next) 31 function verifyViewportIsTallEnough(next)
33 { 32 {
34 viewport.invalidate(); 33 viewport.invalidate();
35 viewport.forceScrollItemToBeFirst(0); 34 viewport.forceScrollItemToBeFirst(0);
36 viewportMessagesCount = viewport.lastVisibleIndex() - viewport.first VisibleIndex() + 1; 35 viewportMessagesCount = viewport.lastVisibleIndex() - viewport.first VisibleIndex() + 1;
37 if (viewportMessagesCount < minimumViewportMessagesCount) { 36 if (viewportMessagesCount < minimumViewportMessagesCount) {
38 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)); 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));
39 InspectorTest.completeTest(); 38 InspectorTest.completeTest();
40 return; 39 return;
41 } 40 }
42 InspectorTest.addResult(String.sprintf("Viewport contains %d message s", viewportMessagesCount)); 41 InspectorTest.addResult(String.sprintf("Viewport contains %d message s", viewportMessagesCount));
43 next(); 42 next();
44 }, 43 },
45 44
46 function testScrollViewportToBottom(next) 45 function testScrollViewportToBottom(next)
47 { 46 {
48 consoleView._immediatelyScrollToBottom(); 47 consoleView._immediatelyScrollToBottom();
49 dumpAndContinue(next); 48 viewport.refresh();
49 InspectorTest.addResult("Last visible message: " + viewport.lastVisi bleIndex());
50 next();
50 }, 51 },
51 52
52 function testConsoleSticksToBottom(next) 53 function testConsoleSticksToBottom(next)
53 { 54 {
54 logMessagesToConsole(messagesCount, onMessagesDumped); 55 logMessagesToConsole(messagesCount, onMessagesDumped);
55 56
56 function onMessagesDumped() 57 function onMessagesDumped()
57 { 58 {
58 dumpAndContinue(next); 59 viewport.invalidate();
59 } 60 // Force refresh which has been scheduled via invalidate() metho d.
60 }, 61 viewport.refresh();
61 62 InspectorTest.addResult("Last visible message: " + viewport.last VisibleIndex());
62 function testSmoothScrollDoesNotStickToBottom(next)
63 {
64 InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "_updat eViewportStickinessForTest", onUpdateTimeout);
65 sendPageUp();
66
67 function onUpdateTimeout()
68 {
69 dumpAndContinue(next);
70 }
71 },
72
73 function testEscShouldNotJumpToBottom(next)
74 {
75 var keyEvent = InspectorTest.createKeyEvent("Escape");
76 viewport._contentElement.dispatchEvent(keyEvent);
77 dumpAndContinue(next);
78 },
79
80 function testTypingShouldJumpToBottom(next)
81 {
82 var keyEvent = InspectorTest.createKeyEvent("a");
83 viewport._contentElement.dispatchEvent(keyEvent);
84 consoleView._prompt._proxyElement.dispatchEvent(new Event('input'));
85
86 dumpAndContinue(next);
87 },
88
89 function testViewportMutationsShouldPreserveStickToBottom(next)
90 {
91 viewport._contentElement.children[1].innerText = "More than 2 lines: foo\n\nbar";
92 dumpAndContinue(onMessagesDumped);
93
94 function onMessagesDumped()
95 {
96 viewport.setStickToBottom(false);
97 viewport._contentElement.children[1].innerText = "More than 3 li nes: foo\n\n\nbar";
98 dumpAndContinue(next);
99 }
100 },
101
102 function testMuteUpdatesWhileScrolling(next)
103 {
104 consoleView._updateStickToBottomOnMouseDown();
105 viewport.element.scrollTop -= 10;
106
107 InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "_sched uleViewportRefreshForTest", onMessageAdded);
108 InspectorTest.evaluateInConsole("1 + 1");
109
110 /**
111 * @param {boolean} muted
112 */
113 function onMessageAdded(muted)
114 {
115 InspectorTest.addResult("New messages were muted: " + muted);
116 InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "_s cheduleViewportRefreshForTest", onMouseUpScheduledRefresh);
117 InspectorTest.addSniffer(WebInspector.ConsoleView.prototype, "_u pdateViewportStickinessForTest", onUpdateStickiness);
118 consoleView._updateStickToBottomOnMouseUp();
119 }
120
121 /**
122 * @param {boolean} muted
123 */
124 function onMouseUpScheduledRefresh(muted)
125 {
126 InspectorTest.addResult("Refresh was scheduled after dirty state ");
127 }
128
129 function onUpdateStickiness()
130 {
131 next(); 63 next();
132 } 64 }
133 }, 65 },
134 66
135 function testShouldNotJumpToBottomWhenPromptFillsEntireViewport(next) 67 function testManualScrollDoesNotStickToBottom(next)
136 { 68 {
137 var text = "Foo"; 69 const manualScrollValue = 3;
138 for (var i = 0; i < viewportHeight; i++) 70 var initialScrollTop = viewport.element.scrollTop;
139 text += "\n"; 71 viewport.element.scrollTop = initialScrollTop - manualScrollValue;
140 consoleView._promptElement.textContent = text; 72 viewport.refresh();
141 WebInspector.ConsoleView.clearConsole(); 73 var newScrollTop = viewport.element.scrollTop;
142 viewport.element.scrollTop -= 10; 74 var isScrollPreserved = initialScrollTop - newScrollTop === manualSc rollValue;
143 75 InspectorTest.addResult("Scroll preserved: " + isScrollPreserved);
144 var keyEvent = InspectorTest.createKeyEvent("a"); 76 next();
145 viewport._contentElement.dispatchEvent(keyEvent); 77 },
146 consoleView._prompt._proxyElement.dispatchEvent(new Event('input'));
147
148 dumpAndContinue(next);
149 }
150 ]; 78 ];
151 79
152 function sendPageUp()
153 {
154 var keyEvent = InspectorTest.createKeyEvent("PageUp");
155 consoleView._prompt._proxyElement.dispatchEvent(keyEvent);
156 viewport.element.scrollTop -= 10;
157 }
158
159 function dumpAndContinue(callback)
160 {
161 viewport.refresh();
162 InspectorTest.addResult("Is at bottom: " + viewport.element.isScrolledTo Bottom() + ", should stick: " + viewport.stickToBottom());
163 callback();
164 }
165
166 function logMessagesToConsole(count, callback) 80 function logMessagesToConsole(count, callback)
167 { 81 {
168 var awaitingMessagesCount = count; 82 var awaitingMessagesCount = count;
169 function messageAdded() 83 function messageAdded()
170 { 84 {
171 if (!--awaitingMessagesCount) 85 if (!--awaitingMessagesCount)
172 callback(); 86 callback();
173 else 87 else
174 InspectorTest.addConsoleSniffer(messageAdded, false); 88 InspectorTest.addConsoleSniffer(messageAdded, false);
175 } 89 }
176 90
177 InspectorTest.addConsoleSniffer(messageAdded, false); 91 InspectorTest.addConsoleSniffer(messageAdded, false);
178 InspectorTest.evaluateInPage(String.sprintf("populateConsoleWithMessages (%d)", count)); 92 InspectorTest.evaluateInPage(String.sprintf("populateConsoleWithMessages (%d)", count));
179 } 93 }
180 } 94 }
181 </script> 95 </script>
182 </head> 96 </head>
183 <body onload="runTest()"> 97 <body onload="runTest()">
184 <p> 98 <p>
185 Verifies viewport stick-to-bottom behavior. 99 Verifies viewport stick-to-bottom behavior.
186 </p> 100 </p>
187 </body> 101 </body>
188 </html> 102 </html>
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/inspector/console/console-viewport-stick-to-bottom-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698