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 var viewport = WebInspector.ConsolePanel._view()._viewport;
24 viewport.element.style.height = "2000px";
25 viewport.element.style.position = "absolute";
26 viewport.invalidate();
29 InspectorTest.dumpConsoleMessages = function(printOriginatingCommand, dumpClassNames, formatter)
31 WebInspector.inspectorView.panel("console");
32 formatter = formatter || InspectorTest.prepareConsoleMessageText;
34 InspectorTest.disableConsoleViewport();
35 var viewMessages = WebInspector.ConsolePanel._view()._visibleViewMessages;
36 for (var i = 0; i < viewMessages.length; ++i) {
37 var uiMessage = viewMessages[i];
38 var message = uiMessage.consoleMessage();
39 var element = uiMessage.contentElement();
43 for (var node = element.firstChild; node; node = node.traverseNextNode(element)) {
44 if (node.nodeType === Node.ELEMENT_NODE && node.className)
45 classNames.push(node.className);
49 if (InspectorTest.dumpConsoleTableMessage(uiMessage, false)) {
51 InspectorTest.addResult(classNames.join(" > "));
53 var messageText = formatter(element);
54 InspectorTest.addResult(messageText + (dumpClassNames ? " " + classNames.join(" > ") : ""));
57 if (printOriginatingCommand && uiMessage.consoleMessage().originatingMessage())
58 InspectorTest.addResult("Originating from: " + uiMessage.consoleMessage().originatingMessage().messageText);
63 InspectorTest.dumpConsoleTableMessage = function(viewMessage, forceInvalidate)
66 WebInspector.ConsolePanel._view()._viewport.invalidate();
67 var table = viewMessage.contentElement();
68 var headers = table.querySelectorAll("th div");
73 for (var i = 0; i < headers.length; i++)
74 headerLine += headers[i].textContent + " | ";
76 InspectorTest.addResult("HEADER " + headerLine);
78 var rows = table.querySelectorAll(".data-container tr");
80 for (var i = 0; i < rows.length; i++) {
83 var items = row.querySelectorAll("td > span");
84 for (var j = 0; j < items.length; j++)
85 rowLine += items[j].textContent + " | ";
88 InspectorTest.addResult("ROW " + rowLine);
93 InspectorTest.dumpConsoleMessagesWithStyles = function(sortMessages)
95 WebInspector.inspectorView.panel("console");
97 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
98 for (var i = 0; i < messageViews.length; ++i) {
99 var element = messageViews[i].contentElement();
100 var messageText = InspectorTest.prepareConsoleMessageText(element)
101 InspectorTest.addResult(messageText);
102 var spans = element.querySelectorAll(".console-message-text > span > span");
103 for (var j = 0; j < spans.length; j++)
104 InspectorTest.addResult("Styled text #" + j + ": " + (spans[j].style.cssText || "NO STYLES DEFINED"));
108 InspectorTest.dumpConsoleMessagesWithClasses = function(sortMessages) {
109 WebInspector.inspectorView.panel("console");
111 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
112 for (var i = 0; i < messageViews.length; ++i) {
113 var element = messageViews[i].contentElement();
114 var messageText = InspectorTest.prepareConsoleMessageText(element);
115 result.push(messageText + " " + element.getAttribute("class"));
119 for (var i = 0; i < result.length; ++i)
120 InspectorTest.addResult(result[i]);
123 InspectorTest.expandConsoleMessages = function(callback)
125 WebInspector.inspectorView.panel("console");
126 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
127 for (var i = 0; i < messageViews.length; ++i) {
128 var message = messageViews[i].consoleMessage();
129 var element = messageViews[i].contentElement();
132 if (node.treeElementForTest)
133 node.treeElementForTest.expand();
135 message.section = node._section;
136 node._section.expanded = true;
138 node = node.traverseNextNode(element);
142 InspectorTest.runAfterPendingDispatches(callback);
145 InspectorTest.waitForRemoteObjectsConsoleMessages = function(callback)
147 var messages = WebInspector.ConsolePanel._view()._visibleViewMessages;
148 for (var i = 0; i < messages.length; ++i)
149 messages[i].toMessageElement();
150 InspectorTest.runAfterPendingDispatches(callback);
153 InspectorTest.checkConsoleMessagesDontHaveParameters = function()
155 WebInspector.inspectorView.panel("console");
156 var messageViews = WebInspector.ConsolePanel._view()._visibleViewMessages;
157 for (var i = 0; i < messageViews.length; ++i) {
158 var m = messageViews[i].consoleMessage();
159 InspectorTest.addResult("Message[" + i + "]:");
160 InspectorTest.addResult("Message: " + WebInspector.displayNameForURL(m.url) + ":" + m.line + " " + m.message);
161 if ("_parameters" in m) {
163 InspectorTest.addResult("FAILED: message parameters list is not empty: " + m.parameters);
165 InspectorTest.addResult("SUCCESS: message parameters list is empty. ");
167 InspectorTest.addResult("FAILED: didn't find _parameters field in the message.");
172 InspectorTest.waitUntilMessageReceived = function(callback)
174 InspectorTest.addSniffer(WebInspector.console, "addMessage", callback, false);
177 InspectorTest.waitUntilNthMessageReceived = function(count, callback)
182 InspectorTest.safeWrap(callback)();
184 InspectorTest.addSniffer(WebInspector.console, "addMessage", override, false);
186 InspectorTest.addSniffer(WebInspector.console, "addMessage", override, false);
189 InspectorTest.changeExecutionContext = function(namePrefix)
191 WebInspector.inspectorView.panel("console");
192 var selector = WebInspector.ConsolePanel._view()._executionContextSelector._selectElement;
193 var option = selector.firstChild;
195 if (option.textContent && option.textContent.startsWith(namePrefix))
197 option = option.nextSibling;
200 InspectorTest.addResult("FAILED: context with prefix: " + namePrefix + " not found in the context list");
203 option.selected = true;
204 WebInspector.ConsolePanel._view()._executionContextChanged();