X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Finteraction_model.js;h=0a5621dfc41a6961c71210fd3d33b6434222f2a4;hb=f3cd243e082d307cabdc1831676cc3f941dc6a20;hp=5d3c43547e4d95813f3223c6a4ad33f38ba55e52;hpb=027e9e9b363e2330191001068818089477345b75;p=dygraphs.git diff --git a/auto_tests/tests/interaction_model.js b/auto_tests/tests/interaction_model.js index 5d3c435..0a5621d 100644 --- a/auto_tests/tests/interaction_model.js +++ b/auto_tests/tests/interaction_model.js @@ -150,7 +150,7 @@ InteractionModelTestCase.prototype.testClickCallbackIsCalledWithNonInteractiveMo width: 100, height : 100, clickCallback : clickCallback, - interactionModel : {} + interactionModel : Dygraph.Interaction.nonInteractiveModel_ }; var graph = document.getElementById("graph"); @@ -242,3 +242,130 @@ InteractionModelTestCase.prototype.testClickCallback_clickOnPoint = function() { assertEquals(1, clicked); }; +InteractionModelTestCase.prototype.testIsZoomed_none = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + assertFalse(g.isZoomed()); + assertFalse(g.isZoomed("x")); + assertFalse(g.isZoomed("y")); +}; + +InteractionModelTestCase.prototype.testIsZoomed_x = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + DygraphOps.dispatchMouseDown_Point(g, 10, 10); + DygraphOps.dispatchMouseMove_Point(g, 30, 10); + DygraphOps.dispatchMouseUp_Point(g, 30, 10); + + assertTrue(g.isZoomed()); + assertTrue(g.isZoomed("x")); + assertFalse(g.isZoomed("y")); +}; + +InteractionModelTestCase.prototype.testIsZoomed_y = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + DygraphOps.dispatchMouseDown_Point(g, 10, 10); + DygraphOps.dispatchMouseMove_Point(g, 10, 30); + DygraphOps.dispatchMouseUp_Point(g, 10, 30); + + assertTrue(g.isZoomed()); + assertFalse(g.isZoomed("x")); + assertTrue(g.isZoomed("y")); +}; + +InteractionModelTestCase.prototype.testIsZoomed_both = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + // Zoom x axis + DygraphOps.dispatchMouseDown_Point(g, 10, 10); + DygraphOps.dispatchMouseMove_Point(g, 30, 10); + DygraphOps.dispatchMouseUp_Point(g, 30, 10); + + // Now zoom y axis + DygraphOps.dispatchMouseDown_Point(g, 10, 10); + DygraphOps.dispatchMouseMove_Point(g, 10, 30); + DygraphOps.dispatchMouseUp_Point(g, 10, 30); + + + assertTrue(g.isZoomed()); + assertTrue(g.isZoomed("x")); + assertTrue(g.isZoomed("y")); +}; + +InteractionModelTestCase.prototype.testIsZoomed_updateOptions_none = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + g.updateOptions({}); + + assertFalse(g.isZoomed()); + assertFalse(g.isZoomed("x")); + assertFalse(g.isZoomed("y")); +}; + +InteractionModelTestCase.prototype.testIsZoomed_updateOptions_x = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + g.updateOptions({dateWindow: [-.5, .3]}); + assertTrue(g.isZoomed()); + assertTrue(g.isZoomed("x")); + assertFalse(g.isZoomed("y")); +}; + +InteractionModelTestCase.prototype.testIsZoomed_updateOptions_y = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + g.updateOptions({valueRange: [1, 10]}); + + assertTrue(g.isZoomed()); + assertFalse(g.isZoomed("x")); + assertTrue(g.isZoomed("y")); +}; + +InteractionModelTestCase.prototype.testIsZoomed_updateOptions_both = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {}); + + g.updateOptions({dateWindow: [-1, 1], valueRange: [1, 10]}); + + assertTrue(g.isZoomed()); + assertTrue(g.isZoomed("x")); + assertTrue(g.isZoomed("y")); +}; + + +InteractionModelTestCase.prototype.testCorrectAxisValueRangeAfterUnzoom = function() { + var g = new Dygraph(document.getElementById("graph"), data2, {valueRange:[1,50],dateRange:[1,9],animatedZooms:false}); + + // Zoom x axis + DygraphOps.dispatchMouseDown_Point(g, 10, 10); + DygraphOps.dispatchMouseMove_Point(g, 30, 10); + DygraphOps.dispatchMouseUp_Point(g, 30, 10); + + // Zoom y axis + DygraphOps.dispatchMouseDown_Point(g, 10, 10); + DygraphOps.dispatchMouseMove_Point(g, 10, 30); + DygraphOps.dispatchMouseUp_Point(g, 10, 30); + currentYAxisRange = g.yAxisRange(); + currentXAxisRange = g.xAxisRange(); + + //check that the range for the axis has changed + assertNotEquals(1,currentXAxisRange[0]); + assertNotEquals(10,currentXAxisRange[1]); + assertNotEquals(1,currentYAxisRange[0]); + assertNotEquals(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 range for y-axis was reset to original value + // TODO check if range for x-axis is correct. + // Currently not possible because dateRange is set to null and extremes are returned + newYAxisRange = g.yAxisRange(); + assertEquals(1,newYAxisRange[0]); + assertEquals(50,newYAxisRange[1]); +};