UpdateOptionsTestCase.prototype.tearDown = function() {
};
-UpdateOptionsTestCase.prototype.wrap = function(g) {
+/*
+ * Tweaks the dygraph so it sets g._testDrawCalled to true when internal method
+ * drawGraph_ is called. Call unWrapDrawGraph when done with this.
+ */
+UpdateOptionsTestCase.prototype.wrapDrawGraph = function(g) {
g._testDrawCalled = false;
- var oldDrawGraph = Dygraph.prototype.drawGraph_;
- Dygraph.prototype.drawGraph_ = function() {
+ g._oldDrawGraph = g.drawGraph_;
+ g.drawGraph_ = function() {
g._testDrawCalled = true;
- oldDrawGraph.call(g);
+ g._oldDrawGraph.call(g);
}
-
- return oldDrawGraph;
}
-UpdateOptionsTestCase.prototype.unWrap = function(oldDrawGraph) {
- Dygraph.prototype.drawGraph_ = oldDrawGraph;
+/*
+ * See wrapDrawGraph
+ */
+UpdateOptionsTestCase.prototype.unwrapDrawGraph = function(g) {
+ g.drawGraph_ = g._oldDrawGraph;
}
UpdateOptionsTestCase.prototype.testStrokeAll = function() {
// These options will allow us to jump to renderGraph_()
// drawGraph_() will be skipped.
- var oldDrawGraph = this.wrap(graph);
+ this.wrapDrawGraph(graph);
graph.updateOptions(updatedOptions);
- this.unWrap(oldDrawGraph);
+ this.unwrapDrawGraph(graph);
assertFalse(graph._testDrawCalled);
};
// These options will allow us to jump to renderGraph_()
// drawGraph_() will be skipped.
- var oldDrawGraph = this.wrap(graph);
+ this.wrapDrawGraph(graph);
graph.updateOptions(updatedOptions);
- this.unWrap(oldDrawGraph);
+ this.unwrapDrawGraph(graph);
assertFalse(graph._testDrawCalled);
};
// These options will not allow us to jump to renderGraph_()
// drawGraph_() must be called
- var oldDrawGraph = this.wrap(graph);
+ this.wrapDrawGraph(graph);
graph.updateOptions(updatedOptions);
- this.unWrap(oldDrawGraph);
+ this.unwrapDrawGraph(graph);
assertTrue(graph._testDrawCalled);
};
// These options will not allow us to jump to renderGraph_()
// drawGraph_() must be called
- var oldDrawGraph = this.wrap(graph);
+ this.wrapDrawGraph(graph);
graph.updateOptions(updatedOptions);
- this.unWrap(oldDrawGraph);
+ this.unwrapDrawGraph(graph);
assertTrue(graph._testDrawCalled);
};
graph.updateOptions({labelsDiv : labelsDiv});
}
+// Test https://github.com/danvk/dygraphs/issues/247
+UpdateOptionsTestCase.prototype.testUpdateColors = function() {
+ var graphDiv = document.getElementById("graph");
+ var graph = new Dygraph(graphDiv, this.data, this.opts);
+
+ var defaultColors = ["rgb(0,128,0)", "rgb(0,0,128)"];
+ assertEquals(["rgb(0,128,0)", "rgb(0,0,128)"], graph.getColors());
+
+ var colors1 = [ "#aaa", "#bbb" ];
+ graph.updateOptions({ colors: colors1 });
+ assertEquals(colors1, graph.getColors());
+
+ var colors2 = [ "#aaa", "#bbb", "#ccc" ];
+ graph.updateOptions({ colors: colors2 });
+ assertEquals(colors2, graph.getColors());
+
+
+ graph.updateOptions({ colors: null });
+ assertEquals(defaultColors, graph.getColors());
+}