blob: 1c3145e478c5d820f6e7c03e1ef4c3b4c0f6f10d [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/console-test.js"></script>
<script src="resources/log-source.js"></script>
<script>
function log1()
{
console.log.apply(console, arguments);
}
// Create a mix of log messages from different source files
function onload()
{
for (var i = 0; i < 10; i++) {
if (i % 2 == 0)
log1(i + "topGroup"); // from console-filter-test.html
else
log2(i + "topGroup"); // from log-source.js
}
console.group("outerGroup");
for (var i = 10; i < 20; i++) {
if (i % 2 == 0)
log1(i + "outerGroup"); // from console-filter-test.html
else
log2(i + "outerGroup"); // from log-source.js
}
console.group("innerGroup");
for (var i = 20; i < 30; i++) {
if (i % 2 == 0)
log1(i + "innerGroup"); // from console-filter-test.html
else
log2(i + "innerGroup"); // from log-source.js
}
console.groupEnd();
console.groupEnd();
console.log("end");
runTest();
}
function test()
{
var messagesElement = WebInspector.consoleView.messagesElement;
function dumpVisibleMessages(root, indent)
{
indent = indent || "";
root = root || WebInspector.consoleView.messagesElement.firstChild; // .console-group
var children = root.childNodes;
for (var i = 0; i < children.length; i++) {
if (children[i].hasStyleClass("console-message")) {
InspectorTest.addResult(indent + ">" + children[i].textContent);
indent = indent + " ";
} else if (children[i].hasStyleClass("console-group-messages")) {
var groupMessages = children[i].childNodes;
for (var j = 0; j < groupMessages.length; j++) {
if (groupMessages[j].hasStyleClass("console-message"))
InspectorTest.addResult(indent + groupMessages[j].textContent);
else if (groupMessages[j].hasStyleClass("console-group"))
dumpVisibleMessages(groupMessages[j], indent);
}
}
}
}
var groupMessages = messagesElement.querySelector(".console-group-messages");
var url1 = groupMessages.childNodes[0].message.url;
var url2 = groupMessages.childNodes[1].message.url;
InspectorTest.runTestSuite([
function beforeFilter(next)
{
InspectorTest.addResult(arguments.callee.name);
dumpVisibleMessages();
next();
},
function addURL1Filter(next)
{
WebInspector.consoleView._addMessageURLFilter(url1);
dumpVisibleMessages();
next();
},
function addURL2Filter(next)
{
WebInspector.consoleView._addMessageURLFilter(url2);
dumpVisibleMessages();
next();
},
function removeURL1Filter(next)
{
WebInspector.consoleView._removeMessageURLFilter(url1);
dumpVisibleMessages();
next();
},
function restoreURL1Filter(next)
{
WebInspector.consoleView._addMessageURLFilter(url1);
dumpVisibleMessages();
next();
},
function removeAllFilters(next)
{
WebInspector.consoleView._removeMessageURLFilter();
dumpVisibleMessages();
next();
}
]);
}
</script>
</head>
<body onload="onload()">
<p>
Tests that console can filter messages by source.
</p>
</body>
</html>