X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Fupdate_options.js;h=b40d705d06bb9b2c912205e20e79edfde2ef70aa;hb=c1f22b5a5d4ffbf25a75fc567232e65381c1938b;hp=628f6151135270bfe399ae4fee014c313ccb341a;hpb=66ad360904538151c5332d5cfbf811b59d1590a5;p=dygraphs.git
diff --git a/auto_tests/tests/update_options.js b/auto_tests/tests/update_options.js
index 628f615..b40d705 100644
--- a/auto_tests/tests/update_options.js
+++ b/auto_tests/tests/update_options.js
@@ -19,25 +19,30 @@ UpdateOptionsTestCase.prototype.data = "X,Y1,Y2\n" +
"2011-05-05,8,3\n";
UpdateOptionsTestCase.prototype.setUp = function() {
- document.body.innerHTML = "
";
+ document.body.innerHTML = "
";
};
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() {
@@ -49,9 +54,9 @@ 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);
};
@@ -66,9 +71,9 @@ UpdateOptionsTestCase.prototype.testStrokeSingleSeries = 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);
};
@@ -89,9 +94,9 @@ UpdateOptionsTestCase.prototype.testSingleSeriesRequiresNewPoints = function() {
// 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);
};
@@ -105,9 +110,9 @@ UpdateOptionsTestCase.prototype.testWidthChangeNeedsNewPoints = function() {
// 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);
};
@@ -119,3 +124,23 @@ UpdateOptionsTestCase.prototype.testUpdateLabelsDivDoesntInfiniteLoop = function
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());
+}