1 var initialize_ConsoleTest = function() {
4 InspectorTest.showConsolePanel = function()
6 WebInspector.inspectorView.showPanel("console");
9 InspectorTest.prepareConsoleMessageText = function(messageElement)
11 var messageText = messageElement.textContent.replace(/\u200b/g, "");
12 // Replace scriptIds with generic scriptId string to avoid flakiness.
13 messageText = messageText.replace(/VM\d+/g, "VM");
14 // Strip out InjectedScript from stack traces to avoid rebaselining each time InjectedScriptSource is edited.
15 messageText = messageText.replace(/InjectedScript[\.a-zA-Z_]+ VM:\d+/g, "");
16 // The message might be extremely long in case of dumping stack overflow message.
17 messageText = messageText.substring(0, 1024);
21 InspectorTest.disableConsoleViewport = function()
23 InspectorTest.fixConsoleViewportDimensions(600, 2000);
26 InspectorTest.fixConsoleViewportDimensions = function(width, height)
28 var viewport = WebInspector.ConsolePanel._view()._viewport;
29 viewport.element.style.width = width + "px";
30 viewport.element.style.height = height + "px";
31 viewport.element.style.position = "absolute";
32 viewport.invalidate();
35 InspectorTest.dumpConsoleMessages = function(printOriginatingCommand, dumpClassNames, formatter)
37 WebInspector.inspectorView.panel("console");
38 formatter = formatter || InspectorTest.prepareConsoleMessageText;
40 InspectorTest.disableConsoleViewport();
41 var viewMessages = WebInspector.ConsolePanel._view()._visibleViewMessages;
42 for (var i = 0; i < viewMessages.length; ++i) {
43 var uiMessage = viewMessages[i];
44 var message = uiMessage.consoleMessage();
45 var element = uiMessage.contentElement();
49 for (var node = element.firstChild; node; node = node.traverseNextNode(element)) {
50 if (node.nodeType === Node.ELEMENT_NODE && node.className)
51 classNames.push(node.className);
55 if (InspectorTest.dumpConsoleTableMessage(uiMessage, false)) {
57 InspectorTest.addResult(classNames.join(" > "));
59 var messageText = formatter(element);
60 InspectorTest.addResult(messageText + (dumpClassNames ? " " + classNames.join(" > ") : ""));
63 if (printOriginatingCommand && uiMessage.consoleMessage().originatingMessage())
64 InspectorTest.addResult("Originating from: " + uiMessage.consoleMessage().originatingMessage().messageText);
69 InspectorTest.dumpConsoleTableMessage = function(viewMessage, forceInvalidate)
72 WebInspector.ConsolePanel._view()._viewport.invalidate();
73 var table = viewMessage.contentElement();
74 var headers = table.querySelectorAll("th div");
79 for (var i = 0; i < headers.length; i++)
80 headerLine += headers[i].textContent + " | ";
82 InspectorTest.addResult("HEADER " + headerLine);
84 var rows = table.querySelectorAll(".data-container tr");
86 for (var i = 0; i < rows.length; i++) {
89 var items = row.querySelectorAll("td > span");
90 for (var j = 0; j < items.length; j++)
91 rowLine += items[j].textContent + " | ";
94 InspectorTest.addResult("ROW " + rowLine);
99 InspectorTest.dumpConsoleMessagesWithStyles = function(sortMessages)
101 WebInspector.inspectorView.panel("console");
103 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
104 for (var i = 0; i < messageViews.length; ++i) {
105 var element = messageViews[i].contentElement();
106 var messageText = InspectorTest.prepareConsoleMessageText(element)
107 InspectorTest.addResult(messageText);
108 var spans = element.querySelectorAll(".console-message-text > span > span");
109 for (var j = 0; j < spans.length; j++)
110 InspectorTest.addResult("Styled text #" + j + ": " + (spans[j].style.cssText || "NO STYLES DEFINED"));
114 InspectorTest.dumpConsoleMessagesWithClasses = function(sortMessages) {
115 WebInspector.inspectorView.panel("console");
117 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
118 for (var i = 0; i < messageViews.length; ++i) {
119 var element = messageViews[i].contentElement();
120 var messageText = InspectorTest.prepareConsoleMessageText(element);
121 result.push(messageText + " " + element.getAttribute("class"));
125 for (var i = 0; i < result.length; ++i)
126 InspectorTest.addResult(result[i]);
129 InspectorTest.expandConsoleMessages = function(callback)
131 WebInspector.inspectorView.panel("console");
132 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
133 for (var i = 0; i < messageViews.length; ++i) {
134 var message = messageViews[i].consoleMessage();
135 var element = messageViews[i].contentElement();
138 if (node.treeElementForTest)
139 node.treeElementForTest.expand();
141 message.section = node._section;
142 node._section.expanded = true;
144 node = node.traverseNextNode(element);
148 InspectorTest.runAfterPendingDispatches(callback);
151 InspectorTest.waitForRemoteObjectsConsoleMessages = function(callback)
153 var messages = WebInspector.ConsolePanel._view()._visibleViewMessages;
154 for (var i = 0; i < messages.length; ++i)
155 messages[i].toMessageElement();
156 InspectorTest.runAfterPendingDispatches(callback);
159 InspectorTest.checkConsoleMessagesDontHaveParameters = function()
161 WebInspector.inspectorView.panel("console");
162 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
163 for (var i = 0; i < messageViews.length; ++i) {
164 var m = messageViews[i].consoleMessage();
165 InspectorTest.addResult("Message[" + i + "]:");
166 InspectorTest.addResult("Message: " + WebInspector.displayNameForURL(m.url) + ":" + m.line + " " + m.message);
167 if ("_parameters" in m) {
169 InspectorTest.addResult("FAILED: message parameters list is not empty: " + m.parameters);
171 InspectorTest.addResult("SUCCESS: message parameters list is empty. ");
173 InspectorTest.addResult("FAILED: didn't find _parameters field in the message.");
178 InspectorTest.waitUntilMessageReceived = function(callback)
180 InspectorTest.addSniffer(WebInspector.console, "addMessage", callback, false);
183 InspectorTest.waitUntilNthMessageReceived = function(count, callback)
188 InspectorTest.safeWrap(callback)();
190 InspectorTest.addSniffer(WebInspector.console, "addMessage", override, false);
192 InspectorTest.addSniffer(WebInspector.console, "addMessage", override, false);
195 InspectorTest.changeExecutionContext = function(namePrefix)
197 WebInspector.inspectorView.panel("console");
198 var selector = WebInspector.ConsolePanel._view()._executionContextSelector._selectElement;
199 var option = selector.firstChild;
201 if (option.textContent && option.textContent.startsWith(namePrefix))
203 option = option.nextSibling;
206 InspectorTest.addResult("FAILED: context with prefix: " + namePrefix + " not found in the context list");
209 option.selected = true;
210 WebInspector.ConsolePanel._view()._executionContextChanged();