blob: 65035ee06a95d129024bb7dde2514187322762d2 [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="/model/counter.html">
<link rel="import" href="/model/counter_series.html">
<link rel="import" href="/model/event_set.html">
<link rel="import" href="/ui/analysis/counter_sample_sub_view.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var Counter = tr.model.Counter;
var CounterSeries = tr.model.CounterSeries;
var EventSet = tr.model.EventSet;
test('instantiate_undefinedSelection', function() {
var analysisEl = document.createElement('tr-ui-a-counter-sample-sub-view');
analysisEl.selection = new EventSet(undefined);
assert.lengthOf(analysisEl.$.table.tableRows, 0);
});
test('instantiate_oneCounterOneSeries', function() {
var series = new CounterSeries('series1', 0);
series.addCounterSample(0, 0);
series.addCounterSample(1, 10);
var counter = new Counter(null, 0, 'cat', 'ctr1');
counter.addSeries(series);
var analysisEl = document.createElement('tr-ui-a-counter-sample-sub-view');
analysisEl.selection = new EventSet(series.samples);
this.addHTMLOutput(analysisEl);
// The first sample should be listed as a collapsible header row for the
// series.
var rows = analysisEl.$.table.tableRows;
assert.lengthOf(rows, 1);
assert.isTrue(rows[0].isExpanded);
assert.equal(rows[0].counter, 'ctr1');
assert.equal(rows[0].series, 'series1');
assert.equal(rows[0].start, 0);
assert.equal(rows[0].value, 0);
// The second sample should be listed as a subrow of the first.
var subRows = rows[0].subRows;
assert.lengthOf(subRows, 1);
assert.isUndefined(subRows[0].counter);
assert.isUndefined(subRows[0].series);
assert.equal(subRows[0].start, 1);
assert.equal(subRows[0].value, 10);
});
test('instantiate_singleSampleDoesntHaveSubrows', function() {
var series = new CounterSeries('series1', 0);
series.addCounterSample(0, 0);
var counter = new Counter(null, 0, 'cat', 'ctr1');
counter.addSeries(series);
var analysisEl = document.createElement('tr-ui-a-counter-sample-sub-view');
analysisEl.selection = new EventSet(series.samples);
this.addHTMLOutput(analysisEl);
// The first sample should be listed as a collapsible header row for the
// series.
var rows = analysisEl.$.table.tableRows;
assert.lengthOf(rows, 1);
assert.equal(rows[0].counter, 'ctr1');
assert.equal(rows[0].series, 'series1');
assert.equal(rows[0].start, 0);
assert.equal(rows[0].value, 0);
assert.isUndefined(rows[0].subRows);
});
test('instantiate_oneCounterTwoSeries', function() {
var series1 = new CounterSeries('series1', 0);
series1.addCounterSample(1, 10);
series1.addCounterSample(2, 20);
var series2 = new CounterSeries('series2', 0);
series2.addCounterSample(3, 30);
var counter = new Counter(null, 0, 'cat', 'ctr1');
counter.addSeries(series1);
counter.addSeries(series2);
var analysisEl = document.createElement('tr-ui-a-counter-sample-sub-view');
analysisEl.selection =
new EventSet(series1.samples.concat(series2.samples));
this.addHTMLOutput(analysisEl);
// The first samples should be listed as collapsible header rows for the
// series.
var rows = analysisEl.$.table.tableRows;
assert.lengthOf(rows, 2);
assert.equal(rows[0].counter, 'ctr1');
assert.equal(rows[0].series, 'series1');
assert.equal(rows[0].start, 1);
assert.equal(rows[0].value, 10);
assert.equal(rows[1].counter, 'ctr1');
assert.equal(rows[1].series, 'series2');
assert.equal(rows[1].start, 3);
assert.equal(rows[1].value, 30);
// The subsequent samples should be listed as subrows of the first.
var subRows1 = rows[0].subRows;
assert.lengthOf(subRows1, 1);
assert.isUndefined(subRows1[0].counter);
assert.isUndefined(subRows1[0].series);
assert.equal(subRows1[0].start, 2);
assert.equal(subRows1[0].value, 20);
assert.isUndefined(rows[1].subRows);
});
test('instantiate_twoCountersTwoSeries', function() {
var series1 = new CounterSeries('series1', 0);
series1.addCounterSample(1, 10);
var series2 = new CounterSeries('series2', 0);
series2.addCounterSample(2, 20);
var counter1 = new Counter(null, 0, 'cat', 'ctr1');
var counter2 = new Counter(null, 0, 'cat', 'ctr2');
counter1.addSeries(series1);
counter2.addSeries(series2);
var analysisEl = document.createElement('tr-ui-a-counter-sample-sub-view');
analysisEl.selection =
new EventSet(series1.samples.concat(series2.samples));
this.addHTMLOutput(analysisEl);
// Each sample should be a header row with no subrows.
var rows = analysisEl.$.table.tableRows;
assert.lengthOf(rows, 2);
assert.equal(rows[0].counter, 'ctr1');
assert.equal(rows[0].series, 'series1');
assert.equal(rows[0].start, 1);
assert.equal(rows[0].value, 10);
assert.isUndefined(rows[0].subRows);
assert.equal(rows[1].counter, 'ctr2');
assert.equal(rows[1].series, 'series2');
assert.equal(rows[1].start, 2);
assert.equal(rows[1].value, 20);
assert.isUndefined(rows[1].subRows);
});
test('instantiate_contentsClearedEachSelection', function() {
var series = new CounterSeries('series1', 0);
series.addCounterSample(0, 0);
var counter = new Counter(null, 0, 'cat', 'ctr1');
counter.addSeries(series);
var analysisEl = document.createElement('tr-ui-a-counter-sample-sub-view');
analysisEl.selection = new EventSet(series.samples);
analysisEl.selection = new EventSet(series.samples);
this.addHTMLOutput(analysisEl);
assert.lengthOf(analysisEl.$.table.tableRows, 1);
});
});
</script>