X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Finteraction_model.js;h=8eec47c769273ec4df0bc6812e4ffc98df3f0627;hb=3cfc4c9f46493dfa98464ee6fdb78e72aabd32a6;hp=9147f1ba5bcb355c7b5e12a6d3c48c84a55cc192;hpb=1b89e01f33c071af04e0586163fa3c09ac115b09;p=dygraphs.git diff --git a/auto_tests/tests/interaction_model.js b/auto_tests/tests/interaction_model.js index 9147f1b..8eec47c 100644 --- a/auto_tests/tests/interaction_model.js +++ b/auto_tests/tests/interaction_model.js @@ -136,6 +136,34 @@ InteractionModelTestCase.clickAt = function(g, x, y) { } /** + * This tests that clickCallback is still called with the nonInteractiveModel. + */ +InteractionModelTestCase.prototype.testClickCallbackIsCalledWithNonInteractiveModel = function() { + var clicked; + + // TODO(danvk): also test pointClickCallback here. + var clickCallback = function(event, x) { + clicked = x; + }; + + var opts = { + width: 100, + height : 100, + clickCallback : clickCallback, + interactionModel : Dygraph.Interaction.nonInteractiveModel_ + }; + + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, data1, opts); + + DygraphOps.dispatchMouseDown_Point(g, 10, 10); + DygraphOps.dispatchMouseMove_Point(g, 10, 10); + DygraphOps.dispatchMouseUp_Point(g, 10, 10); + + assertEquals(20, clicked); +}; + +/** * A sanity test to ensure pointClickCallback is called. */ InteractionModelTestCase.prototype.testPointClickCallback = function() { @@ -214,3 +242,92 @@ 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")); +};