X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Fcallback.js;h=6e59787692f4185249a2bfec9f417b9c91bc970e;hb=b9a3ece4ac8aeb31265823266ec359ad52ac2db0;hp=8c054a9c886900bbb0eec07a5f2e47fb8cd4dc0f;hpb=e27878d929f79c34d7f4cf201aa3b3ccfb372a8e;p=dygraphs.git diff --git a/auto_tests/tests/callback.js b/auto_tests/tests/callback.js index 8c054a9..6e59787 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.testClosestPointCallbackCss1 = 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 @@ -375,7 +438,7 @@ CallbackTestCase.prototype.testNaNDataStack = function() { }; CallbackTestCase.prototype.testGapHighlight = function() { -var dataGap = [ + var dataGap = [ [1, null, 3], [2, 2, null], [3, null, 5],