X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Fcallback.js;h=0e6b4fa78b63d2e9d54af3fb74b0008d3d86b60e;hb=7071b20650f42804b37ecec270bc99729403dd0c;hp=4d0b1723cfb9b2dbcd44eacdd9872c1649ec40d8;hpb=e6b0b7c295a1c3838817744e4548c52bbbdf051f;p=dygraphs.git diff --git a/auto_tests/tests/callback.js b/auto_tests/tests/callback.js index 4d0b172..0e6b4fa 100644 --- a/auto_tests/tests/callback.js +++ b/auto_tests/tests/callback.js @@ -123,6 +123,48 @@ CallbackTestCase.prototype.testDrawPointCallback_pointSize = function() { }; /** + * Test that drawPointCallback is called for isolated points when + * drawPoints is false, and also for gap points if that's enabled. + */ +CallbackTestCase.prototype.testDrawPointCallback_isolated = function() { + var xvalues = []; + + var g; + var callback = function(g, seriesName, canvasContext, cx, cy, color, pointSizeParam) { + var dx = g.toDataXCoord(cx); + xvalues.push(dx); + Dygraph.Circles.DEFAULT.apply(this, arguments); + }; + + var graph = document.getElementById("graph"); + var testdata = [[10, 2], [11, 3], [12, NaN], [13, 2], [14, NaN], [15, 3]]; + var graphOpts = { + labels: ['X', 'Y'], + valueRange: [0, 4], + drawPoints : false, + drawPointCallback : callback, + pointSize : 8 + }; + + // Test that isolated points get drawn + g = new Dygraph(graph, testdata, graphOpts); + assertEquals(2, xvalues.length); + assertEquals(13, xvalues[0]); + assertEquals(15, xvalues[1]); + + // Test that isolated points + gap points get drawn when + // drawGapEdgePoints is set. This should add one point at the right + // edge of the segment at x=11, but not at the graph edge at x=10. + xvalues = []; // Reset for new test + graphOpts.drawGapEdgePoints = true; + g = new Dygraph(graph, testdata, graphOpts); + assertEquals(3, xvalues.length); + assertEquals(11, xvalues[0]); + assertEquals(13, xvalues[1]); + assertEquals(15, xvalues[2]); +}; + +/** * This tests that when the function idxToRow_ returns the proper row and the onHiglightCallback * is properly called when the first series is hidden (setVisibility = false) * @@ -260,6 +302,27 @@ CallbackTestCase.prototype.testClosestPointCallbackCss2 = function() { } /** + * Closest-point highlighting with locked series. + */ +CallbackTestCase.prototype.testSetSelectionLocking = function() { + var g = runClosestTest(false, 2, 4); + + // Default behavior, 'b' is closest + DygraphOps.dispatchMouseMove(g, 11, 4); + assertEquals('b', g.getHighlightSeries()); + + // Now lock selection to 'c' + g.setSelection(false, 'c', true); + DygraphOps.dispatchMouseMove(g, 11, 4); + assertEquals('c', g.getHighlightSeries()); + + // Unlock, should be back to 'b' + g.clearSelection(); + DygraphOps.dispatchMouseMove(g, 11, 4); + assertEquals('b', g.getHighlightSeries()); +} + +/** * This tests that closest point searches work for data containing NaNs. * * It's intended to catch a regression where a NaN Y value confuses the