blob: d614d85005d2f468cdcf3c6f3d15b6915ff4f4ae [file] [log] [blame]
<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/console-test.js"></script>
<script>
function onload()
{
var a = [];
for (var i = 0; i < 42; ++i)
a[i] = i;
a[100] = 100;
console.dir(a);
var b = [];
for (var i = 0; i < 10; ++i)
b[i] = undefined;
console.dir(b);
var c = [];
for (var i = 0; i < 10; ++i)
c[i] = i;
c[100] = 100;
console.dir(c);
var d = [];
for (var i = 0; i < 405; ++i)
d[i] = i;
console.dir(d);
var e = [];
for (var i = 0; i < 10; ++i)
e[i] = i;
e[123] = 123;
e[-123] = -123;
e[3.14] = 3.14;
e[4294967295] = 4294967295;
e[4294967296] = 4294967296;
e[Infinity] = Infinity;
e[-Infinity] = -Infinity;
e[NaN] = NaN;
console.log("%O", e);
var f = [];
f[4294967294] = 4294967294;
for (var i = 20; i >= 0; i -= 2)
f[i] = i;
for (var i = 2, n = 33; n--; i *= 2)
f[i] = i;
for (var i = 1; i < 20; i += 2)
f[i] = i;
console.log("%O", f)
runTest();
}
function test()
{
WebInspector.ArrayGroupingTreeElement._bucketThreshold = 20;
var messages = WebInspector.console.messages;
var sections = [];
for (var i = 0; i < messages.length; ++i) {
var element = messages[i].toMessageElement();
var node = element.traverseNextNode(element);
while (node) {
if (node._section) {
sections.push(node._section);
messages[i].section = node._section;
node._section.expanded = true;
}
node = node.traverseNextNode(element);
}
}
InspectorTest.addSniffer(WebInspector.ArrayGroupingTreeElement.prototype, "onpopulate", populateCalled, true);
var populated = false;
function populateCalled()
{
populated = true;
}
InspectorTest.runAfterPendingDispatches(expandRecursively);
function expandRecursively()
{
for (var i = 0; i < sections.length; ++i) {
for (var j = 0; j < sections[i].propertiesTreeOutline.children.length; ++j) {
for (var treeElement = sections[i].propertiesTreeOutline.children[j]; treeElement; treeElement = treeElement.traverseNextTreeElement(false, null, false)) {
if (treeElement.listItemElement.textContent.indexOf("__proto__") === -1)
treeElement.expand();
}
}
}
if (populated)
InspectorTest.runAfterPendingDispatches(completeTest);
else
InspectorTest.runAfterPendingDispatches(expandRecursively);
}
function completeTest()
{
InspectorTest.addResult(InspectorTest.textContentWithLineBreaks(WebInspector.consoleView.messagesElement));
InspectorTest.completeTest();
}
}
</script>
</head>
<body onload="onload()">
<p>
Tests that console logging dumps large arrays properly.
</p>
</body>
</html>