| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/base/deep_utils.html"> |
| <link rel="import" href="/core/analysis/memory_dump_overview_pane.html"> |
| <link rel="import" href="/core/analysis/memory_dump_sub_view_test_utils.html"> |
| <link rel="import" href="/core/test_utils.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { |
| function createProcessMemoryDumps() { |
| var gmd = tr.c.analysis.createTestGlobalMemoryDump(); |
| return tr.b.dictionaryValues(gmd.processMemoryDumps); |
| } |
| |
| test('instantiate', function() { |
| var processMemoryDumps = createProcessMemoryDumps(); |
| |
| var viewEl = document.createElement('tr-c-a-memory-dump-overview-pane'); |
| viewEl.processMemoryDumps = processMemoryDumps; |
| this.addHTMLOutput(viewEl); |
| |
| var table = tr.b.findDeepElementMatching( |
| viewEl, 'tr-b-ui-table'); |
| |
| var rows = table.tableRows; |
| var columns = table.tableColumns; |
| assert.lengthOf(rows, 3); |
| assert.lengthOf(columns, 9); |
| |
| var titleColumn = columns[0]; |
| var totalColumn = columns[1]; |
| var proportionalColumn = columns[2]; |
| var privateDirtyColumn = columns[3]; |
| var swappedColumn = columns[4]; |
| var mallocColumn = columns[5]; |
| var v8Column = columns[6]; |
| var oilpanColumn = columns[7]; |
| var tracingColumn = columns[8]; |
| |
| // Check the rows of the table. |
| assert.equal(titleColumn.value(rows[0]).label, 'Process 1'); |
| assert.equal(totalColumn.value(rows[0]).numBytes, 31457280); |
| assert.equal(proportionalColumn.value(rows[0]).numBytes, 10485760); |
| assert.equal(privateDirtyColumn.value(rows[0]).numBytes, 8388608); |
| assert.equal(swappedColumn.value(rows[0]).numBytes, 0); |
| assert.equal(mallocColumn.value(rows[0]), ''); |
| assert.equal(v8Column.value(rows[0]), ''); |
| assert.equal(oilpanColumn.value(rows[0]), ''); |
| assert.equal(tracingColumn.value(rows[0]).textContent, ''); |
| |
| assert.equal(titleColumn.value(rows[1]).label, 'Process 2'); |
| assert.equal(totalColumn.value(rows[1]).numBytes, 19922944); |
| assert.equal(proportionalColumn.value(rows[1]).numBytes, 14680064); |
| assert.equal(privateDirtyColumn.value(rows[1]).numBytes, 524288); |
| assert.equal(swappedColumn.value(rows[1]).numBytes, 32); |
| assert.equal(mallocColumn.value(rows[1]).numBytes, 2097152); |
| assert.equal(v8Column.value(rows[1]).numBytes, 5242880); |
| assert.equal(oilpanColumn.value(rows[1]), ''); |
| assert.equal(tracingColumn.value(rows[1]).children[0].numBytes, 1048576); |
| |
| assert.equal(titleColumn.value(rows[2]).label, 'Process 3'); |
| assert.equal(totalColumn.value(rows[2]), ''); |
| assert.equal(proportionalColumn.value(rows[2]), ''); |
| assert.equal(privateDirtyColumn.value(rows[2]), ''); |
| assert.equal(swappedColumn.value(rows[2]), ''); |
| assert.equal(mallocColumn.value(rows[2]), ''); |
| assert.equal(v8Column.value(rows[2]).numBytes, 1073741824); |
| assert.equal(oilpanColumn.value(rows[2]).numBytes, 2147483648); |
| assert.equal(tracingColumn.value(rows[2]).textContent, ''); |
| }); |
| |
| test('selection', function() { |
| var processMemoryDumps = createProcessMemoryDumps(); |
| |
| var viewEl = document.createElement('tr-c-a-memory-dump-overview-pane'); |
| viewEl.processMemoryDumps = processMemoryDumps; |
| this.addHTMLOutput(viewEl); |
| |
| var didFireSelectedDumpChanged; |
| viewEl.addEventListener('selected-memory-cell-changed', |
| function(e) { |
| didFireSelectedDumpChanged = true; |
| }); |
| |
| var table = tr.b.findDeepElementMatching( |
| viewEl, 'tr-b-ui-table'); |
| |
| // Simulate clicking on the 'oilpan' cell of the second process. |
| didFireSelectedDumpChanged = false; |
| table.selectedTableRow = table.tableRows[2]; |
| table.selectedColumnIndex = 7; |
| assert.isTrue(didFireSelectedDumpChanged); |
| assert.isDefined(viewEl.selectedMemoryCell); |
| assert.isDefined(viewEl.selectedMemoryCell.buildDetailsPane); |
| |
| // Simulate clicking on the 'Proportional used memory (mmaps)' cell of the |
| // second process. |
| didFireSelectedDumpChanged = false; |
| table.selectedColumnIndex = 2; |
| assert.isTrue(didFireSelectedDumpChanged); |
| assert.isUndefined(viewEl.selectedMemoryCell); |
| }); |
| }); |
| </script> |