Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / console / console-big-array.html
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
7 function onload()
8 {
9     var a = [];
10     for (var i = 0; i < 42; ++i)
11         a[i] = i;
12     a[100] = 100;
13     console.dir(a);
14
15     var b = [];
16     for (var i = 0; i < 10; ++i)
17       b[i] = undefined;
18     console.dir(b);
19
20     var c = [];
21     for (var i = 0; i < 10; ++i)
22         c[i] = i;
23     c[100] = 100;
24     console.dir(c);
25
26     var d = [];
27     for (var i = 0; i < 405; ++i)
28       d[i] = i;
29     console.dir(d);
30
31     var e = [];
32     for (var i = 0; i < 10; ++i)
33         e[i] = i;
34     e[123] = 123;
35     e[-123] = -123;
36     e[3.14] = 3.14;
37     e[4294967295] = 4294967295;
38     e[4294967296] = 4294967296;
39     e[Infinity] = Infinity;
40     e[-Infinity] = -Infinity;
41     e[NaN] = NaN;
42     console.log("%O", e);
43
44     var f = [];
45     f[4294967294] = 4294967294;
46     for (var i = 20; i >= 0; i -= 2)
47         f[i] = i;
48     for (var i = 2, n = 33; n--; i *= 2)
49         f[i] = i;
50     for (var i = 1; i < 20; i += 2)
51         f[i] = i;
52     console.log("%O", f)
53
54     runTest();
55 }
56
57 function test()
58 {
59     WebInspector.ArrayGroupingTreeElement._bucketThreshold = 20;
60
61     var messages = WebInspector.ConsolePanel._view()._visibleViewMessages;
62     var sections = [];
63     for (var i = 0; i < messages.length; ++i) {
64         var consoleMessage = messages[i].consoleMessage();
65         var element = messages[i].toMessageElement();
66         var node = element.traverseNextNode(element);
67         while (node) {
68             if (node._section) {
69                 sections.push(node._section);
70                 node._section.expanded = true;
71             }
72             node = node.traverseNextNode(element);
73         }
74     }
75
76     InspectorTest.addSniffer(WebInspector.ArrayGroupingTreeElement.prototype, "onpopulate", populateCalled, true);
77     var populated = false;
78     function populateCalled()
79     {
80         populated = true;
81     }
82
83     InspectorTest.runAfterPendingDispatches(expandRecursively);
84
85     function expandRecursively()
86     {
87         for (var i = 0; i < sections.length; ++i) {
88             for (var j = 0; j < sections[i].propertiesTreeOutline.children.length; ++j) {
89                 for (var treeElement = sections[i].propertiesTreeOutline.children[j]; treeElement; treeElement = treeElement.traverseNextTreeElement(false, null, false)) {
90                     if (treeElement.listItemElement.textContent.indexOf("__proto__") === -1)
91                         treeElement.expand();
92                 }
93             }
94         }
95         if (populated)
96             InspectorTest.runAfterPendingDispatches(completeTest);
97         else
98             InspectorTest.runAfterPendingDispatches(expandRecursively);
99     }
100
101     function completeTest()
102     {
103         InspectorTest.dumpConsoleMessages(false, false, InspectorTest.textContentWithLineBreaks);
104         InspectorTest.completeTest();
105     }
106 }
107
108 </script>
109 </head>
110
111 <body onload="onload()">
112 <p>
113 Tests that console logging dumps large arrays properly.
114 </p>
115
116 </body>
117 </html>