| OLD | NEW |
| 1 var initialize_HeapSnapshotTest = function() { | 1 var initialize_HeapSnapshotTest = function() { |
| 2 | 2 |
| 3 InspectorTest.createHeapSnapshotMockFactories = function() { | 3 InspectorTest.createHeapSnapshotMockFactories = function() { |
| 4 | 4 |
| 5 InspectorTest.createJSHeapSnapshotMockObject = function() | 5 InspectorTest.createJSHeapSnapshotMockObject = function() |
| 6 { | 6 { |
| 7 return { | 7 return { |
| 8 _rootNodeIndex: 0, | 8 _rootNodeIndex: 0, |
| 9 _nodeTypeOffset: 0, | 9 _nodeTypeOffset: 0, |
| 10 _nodeNameOffset: 1, | 10 _nodeNameOffset: 1, |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 }; | 474 }; |
| 475 | 475 |
| 476 InspectorTest.checkArrayIsSorted = function(contents, sortType, sortOrder) | 476 InspectorTest.checkArrayIsSorted = function(contents, sortType, sortOrder) |
| 477 { | 477 { |
| 478 function simpleComparator(a, b) | 478 function simpleComparator(a, b) |
| 479 { | 479 { |
| 480 return a < b ? -1 : (a > b ? 1 : 0); | 480 return a < b ? -1 : (a > b ? 1 : 0); |
| 481 } | 481 } |
| 482 function parseSize(size) | 482 function parseSize(size) |
| 483 { | 483 { |
| 484 if (size.substr(0, 1) === '"') size = JSON.parse(size); | |
| 485 // Remove thousands separator. | 484 // Remove thousands separator. |
| 486 return parseInt(size.replace(/[\u2009,]/g, "")); | 485 return parseInt(size.replace(/[\u2009,]/g, ""), 10); |
| 487 } | |
| 488 function extractField(data, field) | |
| 489 { | |
| 490 if (data.substr(0, 1) !== "{") return data; | |
| 491 data = JSON.parse(data); | |
| 492 if (!data[field]) | |
| 493 InspectorTest.addResult("No " + field + " field in " + JSON.stringif
y(data)); | |
| 494 return data[field]; | |
| 495 } | |
| 496 function extractId(data) | |
| 497 { | |
| 498 return parseInt(extractField(data, "nodeId")); | |
| 499 } | 486 } |
| 500 var extractor = { | 487 var extractor = { |
| 501 text: function (data) { return extractField(data, "value"); }, | 488 text: function (data) { data; }, |
| 502 number: function (data) { return parseInt(data, 10); }, | 489 number: function (data) { return parseInt(data, 10); }, |
| 503 size: function (data) { return parseSize(data); }, | 490 size: parseSize, |
| 504 name: function (data) { return extractField(data, "name"); }, | 491 name: function (data) { return data; }, |
| 505 id: function (data) { return extractId(data); } | 492 id: function (data) { return parseInt(data, 10); } |
| 506 }[sortType]; | 493 }[sortType]; |
| 507 var acceptableComparisonResult = { | 494 var acceptableComparisonResult = { |
| 508 ascending: -1, | 495 ascending: -1, |
| 509 descending: 1 | 496 descending: 1 |
| 510 }[sortOrder]; | 497 }[sortOrder]; |
| 511 | 498 |
| 512 if (!extractor) { | 499 if (!extractor) { |
| 513 InspectorTest.addResult("Invalid sort type: " + sortType); | 500 InspectorTest.addResult("Invalid sort type: " + sortType); |
| 514 return; | 501 return; |
| 515 } | 502 } |
| 516 if (!acceptableComparisonResult) { | 503 if (!acceptableComparisonResult) { |
| 517 InspectorTest.addResult("Invalid sort order: " + sortOrder); | 504 InspectorTest.addResult("Invalid sort order: " + sortOrder); |
| 518 return; | 505 return; |
| 519 } | 506 } |
| 520 | 507 |
| 521 for (var i = 0; i < contents.length - 1; ++i) { | 508 for (var i = 0; i < contents.length - 1; ++i) { |
| 522 var a = extractor(contents[i]); | 509 var a = extractor(contents[i]); |
| 523 var b = extractor(contents[i + 1]); | 510 var b = extractor(contents[i + 1]); |
| 524 var result = simpleComparator(a, b); | 511 var result = simpleComparator(a, b); |
| 525 if (result !== 0 && result !== acceptableComparisonResult) | 512 if (result !== 0 && result !== acceptableComparisonResult) { |
| 526 InspectorTest.addResult("Elements " + i + " and " + (i + 1) + " are
out of order: " + a + " " + b + " (" + sortOrder + ")"); | 513 InspectorTest.addResult("Elements " + i + " and " + (i + 1) + " are
out of order: " + a + " " + b + " (" + sortOrder + ")"); |
| 514 } |
| 527 } | 515 } |
| 528 }; | 516 }; |
| 529 | 517 |
| 530 InspectorTest.clickColumn = function(column, callback) | 518 InspectorTest.clickColumn = function(column, callback) |
| 531 { | 519 { |
| 532 callback = InspectorTest.safeWrap(callback); | 520 callback = InspectorTest.safeWrap(callback); |
| 533 var cell = this._currentGrid()._headerTableHeaders[column.identifier]; | 521 var cell = this._currentGrid()._headerTableHeaders[column.identifier]; |
| 534 var event = { target: { enclosingNodeOrSelfWithNodeName: function() { return
cell; } } }; | 522 var event = { target: { enclosingNodeOrSelfWithNodeName: function() { return
cell; } } }; |
| 535 | 523 |
| 536 function sortingComplete() | 524 function sortingComplete() |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 586 | 574 |
| 587 InspectorTest.columnContents = function(column, row) | 575 InspectorTest.columnContents = function(column, row) |
| 588 { | 576 { |
| 589 // Make sure invisible nodes are removed from the view port. | 577 // Make sure invisible nodes are removed from the view port. |
| 590 this._currentGrid().updateVisibleNodes(); | 578 this._currentGrid().updateVisibleNodes(); |
| 591 var result = []; | 579 var result = []; |
| 592 var parent = row || this._currentGrid().rootNode(); | 580 var parent = row || this._currentGrid().rootNode(); |
| 593 for (var node = parent.children[0]; node; node = node.traverseNextNode(true,
parent, true)) { | 581 for (var node = parent.children[0]; node; node = node.traverseNextNode(true,
parent, true)) { |
| 594 if (!node.selectable) | 582 if (!node.selectable) |
| 595 continue; | 583 continue; |
| 596 var data = node.data[column.identifier]; | 584 var cell = node.element.children[column.ordinal]; |
| 597 if (typeof data === "object") | 585 var content = cell.firstElementChild; |
| 598 data = JSON.stringify(data); | 586 // Do not inlcude percents |
| 599 result.push(data); | 587 if (content.firstElementChild) |
| 588 content = content.firstElementChild; |
| 589 result.push(content.textContent); |
| 600 } | 590 } |
| 601 return result; | 591 return result; |
| 602 }; | 592 }; |
| 603 | 593 |
| 604 InspectorTest.countDataRows = function(row, filter) | 594 InspectorTest.countDataRows = function(row, filter) |
| 605 { | 595 { |
| 606 var result = 0; | 596 var result = 0; |
| 607 filter = filter || function(node) { return node.selectable; }; | 597 filter = filter || function(node) { return node.selectable; }; |
| 608 for (var node = row.children[0]; node; node = node.traverseNextNode(true, ro
w, true)) { | 598 for (var node = row.children[0]; node; node = node.traverseNextNode(true, ro
w, true)) { |
| 609 if (filter(node)) | 599 if (filter(node)) |
| (...skipping 30 matching lines...) Expand all Loading... |
| 640 }; | 630 }; |
| 641 | 631 |
| 642 InspectorTest.findAndExpandWindow = function(callback) | 632 InspectorTest.findAndExpandWindow = function(callback) |
| 643 { | 633 { |
| 644 InspectorTest.findAndExpandRow("Window", callback); | 634 InspectorTest.findAndExpandRow("Window", callback); |
| 645 }; | 635 }; |
| 646 | 636 |
| 647 InspectorTest.findAndExpandRow = function(name, callback) | 637 InspectorTest.findAndExpandRow = function(name, callback) |
| 648 { | 638 { |
| 649 callback = InspectorTest.safeWrap(callback); | 639 callback = InspectorTest.safeWrap(callback); |
| 650 function propertyMatcher(data) | 640 var row = InspectorTest.findRow(name); |
| 651 { | |
| 652 return data.value === name; | |
| 653 } | |
| 654 var row = InspectorTest.findRow("object", propertyMatcher); | |
| 655 InspectorTest.assertEquals(true, !!row, '"' + name + '" row'); | 641 InspectorTest.assertEquals(true, !!row, '"' + name + '" row'); |
| 656 InspectorTest.expandRow(row, callback); | 642 InspectorTest.expandRow(row, callback); |
| 657 }; | 643 }; |
| 658 | 644 |
| 659 InspectorTest.findButtonsNode = function(row, startNode) | 645 InspectorTest.findButtonsNode = function(row, startNode) |
| 660 { | 646 { |
| 661 var result = 0; | 647 var result = 0; |
| 662 for (var node = startNode || row.children[0]; node; node = node.traverseNext
Node(true, row, true)) { | 648 for (var node = startNode || row.children[0]; node; node = node.traverseNext
Node(true, row, true)) { |
| 663 if (!node.selectable && node.showNext) | 649 if (!node.selectable && node.showNext) |
| 664 return node; | 650 return node; |
| 665 } | 651 } |
| 666 return null; | 652 return null; |
| 667 }; | 653 }; |
| 668 | 654 |
| 669 InspectorTest.findRow = function(columnIdentifier, matcher, parent) | 655 InspectorTest.findRow = function(name, parent) |
| 656 { |
| 657 function matcher(x) |
| 658 { |
| 659 return x._name === name; |
| 660 }; |
| 661 return InspectorTest.findMatchingRow(matcher, parent); |
| 662 }; |
| 663 |
| 664 InspectorTest.findMatchingRow = function(matcher, parent) |
| 670 { | 665 { |
| 671 parent = parent || this._currentGrid().rootNode(); | 666 parent = parent || this._currentGrid().rootNode(); |
| 672 if (typeof matcher !== "function") { | |
| 673 var value = matcher; | |
| 674 matcher = function(x) { return x === value; }; | |
| 675 } | |
| 676 for (var node = parent.children[0]; node; node = node.traverseNextNode(true,
parent, true)) { | 667 for (var node = parent.children[0]; node; node = node.traverseNextNode(true,
parent, true)) { |
| 677 if (matcher(node.data[columnIdentifier])) | 668 if (matcher(node)) |
| 678 return node; | 669 return node; |
| 679 } | 670 } |
| 680 return null; | 671 return null; |
| 681 }; | |
| 682 | |
| 683 InspectorTest.findRow2 = function(matcher, parent) | |
| 684 { | |
| 685 parent = parent || this._currentGrid().rootNode(); | |
| 686 for (var node = parent.children[0]; node; node = node.traverseNextNode(true,
parent, true)) { | |
| 687 if (matcher(node.data)) | |
| 688 return node; | |
| 689 } | |
| 690 return null; | |
| 691 }; | 672 }; |
| 692 | 673 |
| 693 InspectorTest.switchToView = function(title, callback) | 674 InspectorTest.switchToView = function(title, callback) |
| 694 { | 675 { |
| 695 callback = InspectorTest.safeWrap(callback); | 676 callback = InspectorTest.safeWrap(callback); |
| 696 var view = WebInspector.panels.profiles.visibleView; | 677 var view = WebInspector.panels.profiles.visibleView; |
| 697 view._changePerspectiveAndWait(title, callback); | 678 view._changePerspectiveAndWait(title, callback); |
| 698 // Increase the grid container height so the viewport don't limit the number
of nodes. | 679 // Increase the grid container height so the viewport don't limit the number
of nodes. |
| 699 InspectorTest._currentGrid().scrollContainer.style.height = "10000px"; | 680 InspectorTest._currentGrid().scrollContainer.style.height = "10000px"; |
| 700 }; | 681 }; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 744 function sortingComplete() | 725 function sortingComplete() |
| 745 { | 726 { |
| 746 dataGrid.removeEventListener(WebInspector.HeapSnapshotSortableDataGr
id.Events.SortingComplete, sortingComplete, null); | 727 dataGrid.removeEventListener(WebInspector.HeapSnapshotSortableDataGr
id.Events.SortingComplete, sortingComplete, null); |
| 747 callback(); | 728 callback(); |
| 748 } | 729 } |
| 749 dataGrid.addEventListener(WebInspector.HeapSnapshotSortableDataGrid.Even
ts.SortingComplete, sortingComplete, null); | 730 dataGrid.addEventListener(WebInspector.HeapSnapshotSortableDataGrid.Even
ts.SortingComplete, sortingComplete, null); |
| 750 } | 731 } |
| 751 }; | 732 }; |
| 752 | 733 |
| 753 }; | 734 }; |
| OLD | NEW |