+ assert.isTrue(g.isZoomed());
+ assert.isTrue(g.isZoomed("x"));
+ assert.isTrue(g.isZoomed("y"));
+});
+
+
+it('testCorrectAxisValueRangeAfterUnzoom', function() {
+ var g = new Dygraph(document.getElementById("graph"),
+ data2, {
+ valueRange: [1, 50],
+ dateWindow: [1, 9],
+ animatedZooms:false
+ });
+
+ // Zoom x axis
+ DygraphOps.dispatchMouseDown_Point(g, 100, 100);
+ DygraphOps.dispatchMouseMove_Point(g, 130, 100);
+ DygraphOps.dispatchMouseUp_Point(g, 130, 100);
+
+ // Zoom y axis
+ DygraphOps.dispatchMouseDown_Point(g, 100, 100);
+ DygraphOps.dispatchMouseMove_Point(g, 100, 130);
+ DygraphOps.dispatchMouseUp_Point(g, 100, 130);
+ var currentYAxisRange = g.yAxisRange();
+ var currentXAxisRange = g.xAxisRange();
+
+ //check that the range for the axis has changed
+ assert.notEqual(1, currentXAxisRange[0]);
+ assert.notEqual(10, currentXAxisRange[1]);
+ assert.notEqual(1, currentYAxisRange[0]);
+ assert.notEqual(50, currentYAxisRange[1]);
+
+ // 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 the range for both axis was reset to show the full data.
+ assert.deepEqual(g.yAxisExtremes()[0], g.yAxisRange());
+ assert.deepEqual(g.xAxisExtremes(), g.xAxisRange());
+});
+
+/**
+ * Ensures pointClickCallback is called when some points along the y-axis don't
+ * exist.
+ */
+it('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;
+ }
+ });
+
+ clickAt(g, 2, 110);
+
+ assert.equal(2, clicked.xval);
+ assert.equal(110, clicked.yval);
+});