Fix bug 329 which accumulates clipping rectangles on subsequent draws.
[dygraphs.git] / auto_tests / tests / interaction_model.js
index 4646ff8..7391061 100644 (file)
@@ -354,7 +354,12 @@ InteractionModelTestCase.prototype.testCorrectAxisValueRangeAfterUnzoom = functi
   assertNotEquals(1,currentYAxisRange[0]);
   assertNotEquals(50,currentYAxisRange[1]);
   
-  // unzoom by doubleclick
+  // unzoom by doubleclick.  This is really the order in which a browser
+  // generates events, and we depend on it.
+  DygraphOps.dispatchMouseDown_Point(g, 10, 10);
+  DygraphOps.dispatchMouseUp_Point(g, 10, 10);
+  DygraphOps.dispatchMouseDown_Point(g, 10, 10);
+  DygraphOps.dispatchMouseUp_Point(g, 10, 10);
   DygraphOps.dispatchDoubleClick(g, null);
   
   // check if range for y-axis was reset to original value 
@@ -364,3 +369,31 @@ InteractionModelTestCase.prototype.testCorrectAxisValueRangeAfterUnzoom = functi
   assertEquals(1,newYAxisRange[0]);
   assertEquals(50,newYAxisRange[1]);
 };
+
+/**
+ * Ensures pointClickCallback is called when some points along the y-axis don't
+ * exist.
+ */
+InteractionModelTestCase.prototype.testPointClickCallback_missingData = function() {
+
+  // There's a B-value at 2, but no A-value.
+  var data =
+    "X,A,B\n" +
+    "1,,100\n"+
+    "2,,110\n"+
+    "3,140,120\n"+
+    "4,130,110\n"+
+    "";
+
+  var clicked;
+  var g = new Dygraph(document.getElementById("graph"), data, {
+    pointClickCallback : function(event, point) {
+      clicked = point;
+    }
+  });
+
+  InteractionModelTestCase.clickAt(g, 2, 110);
+
+  assertEquals(2, clicked.xval);
+  assertEquals(110, clicked.yval);
+};