blob: 65a5d4632248f4e76d81bbf95a2c4b261b86febf [file] [log] [blame]
<!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>