3 Copyright (c) 2014 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
7 <link rel="import" href="/tvcm/ui/line_chart.html">
11 tvcm.unittest.testSuite(function() {
12 test('singleSeries', function() {
13 var chart = new tvcm.ui.LineChart();
16 chart.chartTitle = 'Chart title';
24 this.addHTMLOutput(chart);
27 test('twoSeries', function() {
28 var chart = new tvcm.ui.LineChart();
32 chart.chartTitle = 'Chart title';
34 {x: 10, value1: 100, value2: 50},
35 {x: 20, value1: 110, value2: 75},
36 {x: 30, value1: 100, value2: 125},
37 {x: 40, value1: 50, value2: 125}
41 var r = new tvcm.Range();
44 chart.brushedRange = r;
46 this.addHTMLOutput(chart);
49 test('brushRangeFromIndices', function() {
50 var chart = new tvcm.ui.LineChart();
59 var r = new tvcm.Range();
61 // Range min should be 10.
62 r = chart.computeBrushRangeFromIndices(-2, 1);
63 assertEquals(10, r.min);
65 // Range max should be 120.
66 r = chart.computeBrushRangeFromIndices(3, 10);
67 assertEquals(120, r.max);
69 // Range should be [10, 120]
70 r = chart.computeBrushRangeFromIndices(-2, 10);
71 assertEquals(10, r.min);
72 assertEquals(120, r.max);
74 // Range should be [20, 100]
75 r = chart.computeBrushRangeFromIndices(1, 3);
76 assertEquals(20, r.min);
77 assertEquals(100, r.max);
80 test('interactiveBrushing', function() {
81 var chart = new tvcm.ui.LineChart();
84 chart.chartTitle = 'Chart title';
97 var mouseDownIndex = undefined;
98 var curMouseIndex = undefined;
100 function updateBrushedRange() {
101 if (mouseDownIndex === undefined) {
102 chart.brushedRange = new tvcm.Range();
105 chart.brushedRange = chart.computeBrushRangeFromIndices(
106 mouseDownIndex, curMouseIndex);
109 chart.addEventListener('item-mousedown', function(e) {
110 mouseDownIndex = e.index;
111 curMouseIndex = e.index;
112 updateBrushedRange();
114 chart.addEventListener('item-mousemove', function(e) {
115 if (e.button == undefined)
117 curMouseIndex = e.index;
118 updateBrushedRange();
120 chart.addEventListener('item-mouseup', function(e) {
121 curMouseIndex = e.index;
122 updateBrushedRange();
124 this.addHTMLOutput(chart);