| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../../http/tests/inspector/inspector-test.js"></script> |
| 4 <script src="heap-snapshot-test.js"></script> | 4 <script src="heap-snapshot-test.js"></script> |
| 5 <script> | 5 <script> |
| 6 | 6 |
| 7 function test() | 7 function test() |
| 8 { | 8 { |
| 9 var instanceCount = 200; | 9 var instanceCount = 200; |
| 10 function createHeapSnapshot() | 10 function createHeapSnapshot() |
| 11 { | 11 { |
| 12 return InspectorTest.createHeapSnapshot(instanceCount, 100); | 12 return InspectorTest.createHeapSnapshot(instanceCount, 100); |
| 13 } | 13 } |
| 14 | 14 |
| 15 InspectorTest.runHeapSnapshotTestSuite([ | 15 InspectorTest.runHeapSnapshotTestSuite([ |
| 16 function testSearch(next) | 16 function testSearch(next) |
| 17 { | 17 { |
| 18 InspectorTest.takeAndOpenSnapshot(createHeapSnapshot, step1); | 18 InspectorTest.takeAndOpenSnapshot(createHeapSnapshot, step1); |
| 19 | 19 |
| 20 function step1() | 20 function step1() |
| 21 { | 21 { |
| 22 InspectorTest.switchToView("Summary", step2); | 22 InspectorTest.switchToView("Summary", step2); |
| 23 } | 23 } |
| 24 | 24 |
| 25 var view; | 25 var view; |
| 26 function addNodeHighlightSniffer(constructorName, nodeId, onSuccess) |
| 27 { |
| 28 InspectorTest.addSniffer(view, "_didHighlightById", checkNodeIsH
ighlighted.bind(view, constructorName, nodeId, onSuccess)); |
| 29 } |
| 30 |
| 26 function step2() | 31 function step2() |
| 27 { | 32 { |
| 28 view = InspectorTest.currentProfileView(); | 33 view = InspectorTest.currentProfileView(); |
| 29 view.performSearch("@101", checkNodeIsHighlighted.bind(this, "A"
, "101", step3)); | 34 addNodeHighlightSniffer("A", "101", step3); |
| 35 view.performSearch({query:"@101", caseSensitive: false}); |
| 30 } | 36 } |
| 31 | 37 |
| 32 function step3() | 38 function step3() |
| 33 { | 39 { |
| 34 view.searchCanceled(); | 40 view.performSearch({query: "@a", caseSensitive: false}); |
| 35 view.performSearch("@a", step4); | 41 if (view._searchResults.length !== 0) { |
| 36 } | |
| 37 | |
| 38 function step4(view, resultCount) | |
| 39 { | |
| 40 if (resultCount !== 0) { | |
| 41 InspectorTest.addResult("FAIL: node @a found"); | 42 InspectorTest.addResult("FAIL: node @a found"); |
| 42 return next(); | 43 return next(); |
| 43 } | 44 } |
| 44 view.searchCanceled(); | 45 InspectorTest.addResult("PASS: node @a was not found"); |
| 45 view.performSearch("@999", step5); | 46 InspectorTest.addSniffer(view, "_didHighlightById", step5); |
| 47 view.performSearch({query: "@999", caseSensitive: false}, step5)
; |
| 46 } | 48 } |
| 47 | 49 |
| 48 function step5(view, resultCount) | 50 function step5(found) |
| 49 { | 51 { |
| 50 if (resultCount !== 0) { | 52 if (found) { |
| 51 InspectorTest.addResult("FAIL: found node @999"); | 53 InspectorTest.addResult("FAIL: found node @999"); |
| 52 return next(); | 54 return next(); |
| 53 } | 55 } |
| 54 view.searchCanceled(); | 56 InspectorTest.addResult("PASS: node @999 was not found"); |
| 55 view.performSearch("@100", checkNodeIsHighlighted.bind(this, "B"
, "100", step6)); | 57 addNodeHighlightSniffer("B", "100", step6); |
| 58 view.performSearch({query: "@100", caseSensitive: false}); |
| 56 } | 59 } |
| 57 | 60 |
| 58 function step6() | 61 function step6() |
| 59 { | 62 { |
| 60 view.searchCanceled(); | 63 addNodeHighlightSniffer("B", "400", step7); |
| 61 view.performSearch("@400", checkNodeIsHighlighted.bind(this, "B"
, "400", step7)); | 64 view.performSearch({query: "@400", caseSensitive: false}); |
| 62 } | 65 } |
| 63 | 66 |
| 64 function step7() | 67 function step7() |
| 65 { | 68 { |
| 66 view.searchCanceled(); | 69 addNodeHighlightSniffer("A", "401", next); |
| 67 view.performSearch("@401", checkNodeIsHighlighted.bind(this, "A"
, "401", next)); | 70 view.performSearch({query: "@401", caseSensitive: false}); |
| 68 } | 71 } |
| 69 | 72 |
| 70 function checkNodeIsHighlighted(constructorName, nodeId, onSuccess,
view, resultCount) | 73 function checkNodeIsHighlighted(constructorName, nodeId, onSuccess,
found) |
| 71 { | 74 { |
| 72 if (resultCount !== 1) { | 75 if (!found) { |
| 73 InspectorTest.addResult("FAIL: node @" + nodeId + " not foun
d"); | 76 InspectorTest.addResult("FAIL: node @" + nodeId + " not foun
d"); |
| 74 return next(); | 77 return next(); |
| 75 } | 78 } |
| 76 try { | 79 try { |
| 77 var constructorsGrid = InspectorTest.currentProfileView()._d
ataGrid; | 80 var constructorsGrid = InspectorTest.currentProfileView()._d
ataGrid; |
| 78 var constructorNodes = constructorsGrid.rootNode().children; | 81 var constructorNodes = constructorsGrid.rootNode().children; |
| 79 var constructorNode; | 82 var constructorNode; |
| 80 for (var i = 0; i < constructorNodes.length; i++) { | 83 for (var i = 0; i < constructorNodes.length; i++) { |
| 81 if (constructorNodes[i].data.object === constructorName)
{ | 84 if (constructorNodes[i].data.object === constructorName)
{ |
| 82 constructorNode = constructorNodes[i]; | 85 constructorNode = constructorNodes[i]; |
| 83 break; | 86 break; |
| 84 } | 87 } |
| 85 } | 88 } |
| 86 if (!constructorNode) { | 89 if (!constructorNode) { |
| 87 InspectorTest.addResult("FAIL: constructor " + construct
orName + " not found in viewport"); | 90 InspectorTest.addResult("FAIL: constructor " + construct
orName + " not found in viewport"); |
| 88 return next(); | 91 return next(); |
| 89 } | 92 } |
| 90 var instanceNodes = constructorNode.children; | 93 var instanceNodes = constructorNode.children; |
| 91 for (var i = 0; i < instanceNodes.length; i++) { | 94 for (var i = 0; i < instanceNodes.length; i++) { |
| 92 if (instanceNodes[i].snapshotNodeId == nodeId) { | 95 if (instanceNodes[i].snapshotNodeId == nodeId) { |
| 93 if (!instanceNodes[i].element().classList.contains("
highlighted-row")) { | 96 if (!instanceNodes[i].element().classList.contains("
highlighted-row")) { |
| 94 if (constructorsGrid._nodeToHighlightAfterScroll
=== instanceNodes[i]) { | 97 if (constructorsGrid._nodeToHighlightAfterScroll
=== instanceNodes[i]) { |
| 95 function afterScroll(nodeToHighlight) | 98 function afterScroll(nodeToHighlight) |
| 96 { | 99 { |
| 100 InspectorTest.addResult("PASS: found nod
e @" + nodeId + " with class '" + constructorName + "'"); |
| 97 onSuccess(); | 101 onSuccess(); |
| 98 } | 102 } |
| 99 InspectorTest.addSniffer(WebInspector.HeapSn
apshotSortableDataGrid.prototype, "highlightNode", afterScroll); | 103 InspectorTest.addSniffer(WebInspector.HeapSn
apshotSortableDataGrid.prototype, "highlightNode", afterScroll); |
| 100 return; | 104 return; |
| 101 } else { | 105 } else { |
| 102 InspectorTest.addResult("FAIL: node is not h
ighlighted"); | 106 InspectorTest.addResult("FAIL: node is not h
ighlighted"); |
| 103 return next(); | 107 return next(); |
| 104 } | 108 } |
| 105 } | 109 } |
| 110 InspectorTest.addResult("PASS: found node @" + nodeI
d + " with class '" + constructorName + "'"); |
| 106 return onSuccess(); | 111 return onSuccess(); |
| 107 } | 112 } |
| 108 } | 113 } |
| 109 } catch (e) { | 114 } catch (e) { |
| 110 InspectorTest.addResult("EXCEPTION: " + e); | 115 InspectorTest.addResult("EXCEPTION: " + e); |
| 111 } | 116 } |
| 112 return next(); | 117 return next(); |
| 113 } | 118 } |
| 114 } | 119 } |
| 115 ]); | 120 ]); |
| 116 } | 121 } |
| 117 | 122 |
| 118 </script> | 123 </script> |
| 119 </head> | 124 </head> |
| 120 <body onload="runTest()"> | 125 <body onload="runTest()"> |
| 121 <p> | 126 <p> |
| 122 Tests search in Summary view of detailed heap snapshots. | 127 Tests search in Summary view of detailed heap snapshots. |
| 123 </p> | 128 </p> |
| 124 </body> | 129 </body> |
| 125 </html> | 130 </html> |
| OLD | NEW |