| OLD | NEW |
| (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> |
| OLD | NEW |