| <!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> |