Remove legacy options:
[dygraphs.git] / auto_tests / tests / per_series.js
1 /**
2 * @fileoverview Tests for per-series options.
3 *
4 * @author danvk@google.com (Dan Vanderkam)
5 */
6 var perSeriesTestCase = TestCase("per-series");
7
8 perSeriesTestCase.prototype.setUp = function() {
9 document.body.innerHTML = "<div id='graph'></div>";
10 };
11
12 perSeriesTestCase.prototype.tearDown = function() {
13 };
14
15 perSeriesTestCase.prototype.testPerSeriesFill = function() {
16 var opts = {
17 width: 480,
18 height: 320,
19 axes : {
20 x : {
21 drawGrid: false,
22 drawAxis: false,
23 },
24 y : {
25 drawGrid: false,
26 drawAxis: false,
27 }
28 },
29 series: {
30 Y: { fillGraph: true },
31 },
32 colors: [ '#FF0000', '#0000FF' ],
33 fillAlpha: 0.15
34 };
35 var data = "X,Y,Z\n" +
36 "1,0,0\n" +
37 "2,0,1\n" +
38 "3,0,1\n" +
39 "4,0,0\n" +
40 "5,0,0\n" +
41 "6,1,0\n" +
42 "7,1,0\n" +
43 "8,0,0\n"
44 ;
45
46 var graph = document.getElementById("graph");
47 g = new Dygraph(graph, data, opts);
48
49 var sampler = new PixelSampler(g);
50
51 // Inside of the "Z" bump -- no fill.
52 assertEquals([0,0,0,0], sampler.colorAtCoordinate(2.5, 0.5));
53
54 // Inside of the "Y" bump -- filled in.
55 assertEquals([255,0,0,38], sampler.colorAtCoordinate(6.5, 0.5));
56 };
57
58 perSeriesTestCase.prototype.testOldStyleSeries = function() {
59 var opts = {
60 pointSize : 5,
61 Y: { pointSize : 4 },
62 };
63 var graph = document.getElementById("graph");
64 var data = "X,Y,Z\n1,0,0\n";
65 g = new Dygraph(graph, data, opts);
66
67 assertEquals(5, g.getOption("pointSize"));
68 assertEquals(4, g.getOption("pointSize", "Y"));
69 assertEquals(5, g.getOption("pointSize", "Z"));
70 };
71
72 perSeriesTestCase.prototype.testNewStyleSeries = function() {
73 var opts = {
74 pointSize : 5,
75 series : {
76 Y: { pointSize : 4 }
77 },
78 };
79 var graph = document.getElementById("graph");
80 var data = "X,Y,Z\n1,0,0\n";
81 g = new Dygraph(graph, data, opts);
82
83 assertEquals(5, g.getOption("pointSize"));
84 assertEquals(4, g.getOption("pointSize", "Y"));
85 assertEquals(5, g.getOption("pointSize", "Z"));
86 };
87
88 perSeriesTestCase.prototype.testNewStyleSeriesTrumpsOldStyle = function() {
89 var opts = {
90 pointSize : 5,
91 Z : { pointSize : 6 },
92 series : {
93 Y: { pointSize : 4 }
94 },
95 };
96 var graph = document.getElementById("graph");
97 var data = "X,Y,Z\n1,0,0\n";
98 g = new Dygraph(graph, data, opts);
99
100 assertEquals(5, g.getOption("pointSize"));
101 assertEquals(4, g.getOption("pointSize", "Y"));
102 assertEquals(5, g.getOption("pointSize", "Z"));
103
104 // Erase the series object, and Z will become visible again.
105 g.updateOptions({ series : undefined });
106 assertEquals(5, g.getOption("pointSize"));
107 assertEquals(6, g.getOption("pointSize", "Z"));
108 assertEquals(5, g.getOption("pointSize", "Y"));
109 };
110
111 // TODO(konigsberg): move to multiple_axes.js
112 perSeriesTestCase.prototype.testAxisInNewSeries = function() {
113 var opts = {
114 series : {
115 D : { axis : 'y2' },
116 C : { axis : 1 },
117 B : { axis : 0 },
118 E : { axis : 'y' }
119 }
120 };
121 var graph = document.getElementById("graph");
122 var data = "X,A,B,C,D,E\n0,1,2,3,4,5\n";
123 g = new Dygraph(graph, data, opts);
124
125 assertEquals(["A", "B", "E"], g.attributes_.seriesForAxis(0));
126 assertEquals(["C", "D"], g.attributes_.seriesForAxis(1));
127 };
128
129 // TODO(konigsberg): move to multiple_axes.js
130 perSeriesTestCase.prototype.testAxisInNewSeries_withAxes = function() {
131 var opts = {
132 series : {
133 D : { axis : 'y2' },
134 C : { axis : 1 },
135 B : { axis : 0 },
136 E : { axis : 'y' }
137 },
138 axes : {
139 y : { pointSize : 7 },
140 y2 : { pointSize : 6 }
141 }
142 };
143 var graph = document.getElementById("graph");
144 var data = "X,A,B,C,D,E\n0,1,2,3,4,5\n";
145 g = new Dygraph(graph, data, opts);
146
147 assertEquals(["A", "B", "E"], g.attributes_.seriesForAxis(0));
148 assertEquals(["C", "D"], g.attributes_.seriesForAxis(1));
149
150 assertEquals(1.5, g.getOption("pointSize"));
151 assertEquals(7, g.getOption("pointSize", "A"));
152 assertEquals(7, g.getOption("pointSize", "B"));
153 assertEquals(6, g.getOption("pointSize", "C"));
154 assertEquals(6, g.getOption("pointSize", "D"));
155 assertEquals(7, g.getOption("pointSize", "E"));
156 };
157
158 // TODO(konigsberg): move to multiple_axes.js
159 perSeriesTestCase.prototype.testOldAxisSpecInNewSeriesThrows = function() {
160 var opts = {
161 series : {
162 D : { axis : {} },
163 },
164 };
165 var graph = document.getElementById("graph");
166 var data = "X,A,B,C,D,E\n0,1,2,3,4,5\n";
167 var threw = false;
168 try {
169 new Dygraph(graph, data, opts);
170 } catch(e) {
171 threw = true;
172 }
173
174 assertTrue(threw);
175 }
176
177 perSeriesTestCase.prototype.testColorOption = function() {
178 var graph = document.getElementById("graph");
179 var data = "X,A,B,C\n0,1,2,3\n";
180 var g = new Dygraph(graph, data, {});
181 assertEquals(['rgb(64,128,0)', 'rgb(64,0,128)', 'rgb(0,128,128)'], g.getColors());
182 g.updateOptions({series : { B : { color : 'purple' }}});
183 assertEquals(['rgb(64,128,0)', 'purple', 'rgb(0,128,128)'], g.getColors());
184 }