blob: ea829ff29886e7328ebed3f8a76b91807011d225 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2013 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="/core/analysis/analysis_view.html">
<link rel="import" href="/core/analysis/stub_analysis_results.html">
<link rel="import" href="/core/test_utils.html">
<link rel="import" href="/core/selection.html">
<link rel="import" href="/model/model.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var Counter = tr.model.Counter;
var CounterSeries = tr.model.CounterSeries;
var Selection = tr.c.Selection;
var StubAnalysisResults = tr.c.analysis.StubAnalysisResults;
function createSeries(ctr) {
var allocatedSeries = new CounterSeries('bytesallocated', 0);
var freeSeries = new CounterSeries('bytesfree', 1);
ctr.addSeries(allocatedSeries);
ctr.addSeries(freeSeries);
allocatedSeries.addCounterSample(0, 0);
allocatedSeries.addCounterSample(10, 25);
allocatedSeries.addCounterSample(20, 10);
freeSeries.addCounterSample(0, 15);
freeSeries.addCounterSample(10, 20);
freeSeries.addCounterSample(20, 5);
}
var createSelectionWithTwoSeriesSingleCounter = function() {
var ctr = new Counter(null, 0, 'foo', 'ctr[0]');
createSeries(ctr);
var selection = new Selection();
var t1track = {};
selection.push(ctr.getSeries(0).samples[1]);
selection.push(ctr.getSeries(1).samples[1]);
return selection;
};
test('instantiate_singleCounterWithTwoSeries', function() {
var selection = createSelectionWithTwoSeriesSingleCounter();
var analysisEl = document.createElement('tr-c-a-counter-sample-sub-view');
analysisEl.selection = selection;
this.addHTMLOutput(analysisEl);
});
var createSelectionWithTwoSeriesTwoCounters = function() {
var ctr1 = new Counter(null, 0, '', 'ctr1');
createSeries(ctr1);
var ctr2 = new Counter(null, 0, '', 'ctr2');
createSeries(ctr2);
var selection = new Selection();
var t1track = {};
selection.push(ctr1.getSeries(0).samples[1]);
selection.push(ctr1.getSeries(1).samples[1]);
selection.push(ctr2.getSeries(0).samples[2]);
selection.push(ctr2.getSeries(1).samples[2]);
return selection;
};
test('instantiate_twoCountersWithTwoSeries', function() {
var selection = createSelectionWithTwoSeriesTwoCounters();
var analysisEl = document.createElement('tr-c-a-counter-sample-sub-view');
analysisEl.selection = selection;
this.addHTMLOutput(analysisEl);
});
test('analyzeSelectionWithSingleCounter', function() {
var ctr = new Counter(null, 0, '', 'ctr');
var series = new CounterSeries('value', 0);
ctr.addSeries(series);
series.addCounterSample(0, 0);
series.addCounterSample(10, 10);
var selection = new Selection();
var t1track = {};
selection.push(ctr.getSeries(0).samples[1]);
var view = document.createElement('tr-c-a-counter-sample-sub-view');
var results = new StubAnalysisResults();
view.analyzeCounterSamples_(results, selection);
assert.equal(results.tables.length, 1);
assert.equal(results.headers[0].label, 'Selected counter:');
var table = results.tables[0];
assert.equal(table.rows.length, 3);
assert.equal(table.rows[0].label, 'Title');
assert.equal(table.rows[1].label, 'Timestamp');
assert.equal(table.rows[2].label, 'value');
assert.equal(table.rows[2].text, 10);
});
function createSelectionWithTwoCountersDiffSeriesDiffEvents() {
var ctr1 = new Counter(null, 0, '', 'a');
var ctr1AllocatedSeries = new CounterSeries('bytesallocated', 0);
ctr1.addSeries(ctr1AllocatedSeries);
ctr1AllocatedSeries.addCounterSample(0, 0);
ctr1AllocatedSeries.addCounterSample(10, 25);
ctr1AllocatedSeries.addCounterSample(20, 15);
assert.equal(ctr1.name, 'a');
assert.equal(ctr1.numSamples, 3);
assert.equal(ctr1.numSeries, 1);
var ctr2 = new Counter(null, 0, '', 'b');
var ctr2AllocatedSeries = new CounterSeries('bytesallocated', 0);
var ctr2FreeSeries = new CounterSeries('bytesfree', 1);
ctr2.addSeries(ctr2AllocatedSeries);
ctr2.addSeries(ctr2FreeSeries);
ctr2AllocatedSeries.addCounterSample(0, 0);
ctr2AllocatedSeries.addCounterSample(10, 25);
ctr2AllocatedSeries.addCounterSample(20, 10);
ctr2AllocatedSeries.addCounterSample(30, 15);
ctr2FreeSeries.addCounterSample(0, 20);
ctr2FreeSeries.addCounterSample(10, 5);
ctr2FreeSeries.addCounterSample(20, 25);
ctr2FreeSeries.addCounterSample(30, 0);
assert.equal(ctr2.name, 'b');
assert.equal(ctr2.numSamples, 4);
assert.equal(ctr2.numSeries, 2);
var selection = new Selection();
var t1track = {};
var t2track = {};
selection.push(ctr1AllocatedSeries.samples[1]);
selection.push(ctr2AllocatedSeries.samples[2]);
selection.push(ctr2FreeSeries.samples[2]);
return selection;
};
test('analyzeSelectionWithComplexSeriesTwoCounters', function() {
var selection = createSelectionWithTwoCountersDiffSeriesDiffEvents();
var view = document.createElement('tr-c-a-counter-sample-sub-view');
var results = new StubAnalysisResults();
view.analyzeCounterSamples_(results, selection);
assert.equal(results.tables.length, 2);
});
});
</script>