X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Fconnect_separated_points.js;h=7b9fe4c32e5aca34e9d3c66c0c0d1c75d0ed5115;hb=ce31caf22475e3e1fd6d9fea192d61ff4fcd7fac;hp=f668ebcaf63d05f9cf15ee1e0514eb090cb3aadd;hpb=b85358e2c7dc73ec1179feb17b9060e132fcdbec;p=dygraphs.git diff --git a/auto_tests/tests/connect_separated_points.js b/auto_tests/tests/connect_separated_points.js index f668ebc..7b9fe4c 100644 --- a/auto_tests/tests/connect_separated_points.js +++ b/auto_tests/tests/connect_separated_points.js @@ -3,26 +3,29 @@ * * @author julian.eichstaedt@ch.sauter-bc.com (Fr. Sauter AG) */ -var ConnectSeparatedPointsTestCase = TestCase("connect-separated-points"); -ConnectSeparatedPointsTestCase.prototype.setUp = function() { - document.body.innerHTML = "
"; -}; +import Dygraph from '../../src/dygraph'; +import * as utils from '../../src/dygraph-utils'; +import CanvasAssertions from './CanvasAssertions'; +import Proxy from './Proxy'; -ConnectSeparatedPointsTestCase.origFunc = Dygraph.getContext; +describe("connect-separated-points", function() { -ConnectSeparatedPointsTestCase.prototype.setUp = function() { - document.body.innerHTML = "
"; - Dygraph.getContext = function(canvas) { - return new Proxy(ConnectSeparatedPointsTestCase.origFunc(canvas)); +cleanupAfterEach(); + +var origFunc = utils.getContext; + +beforeEach(function() { + utils.getContext = function(canvas) { + return new Proxy(origFunc(canvas)); }; -}; +}); -ConnectSeparatedPointsTestCase.prototype.tearDown = function() { - Dygraph.getContext = ConnectSeparatedPointsTestCase.origFunc; -}; +afterEach(function() { + Dygraph.getContext = origFunc; +}); -ConnectSeparatedPointsTestCase.prototype.testEdgePointsSimple = function() { +it('testEdgePointsSimple', function() { var opts = { width: 480, height: 320, @@ -47,7 +50,7 @@ ConnectSeparatedPointsTestCase.prototype.testEdgePointsSimple = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); - htx = g.hidden_ctx_; + var htx = g.hidden_ctx_; var attrs = {}; @@ -84,9 +87,9 @@ ConnectSeparatedPointsTestCase.prototype.testEdgePointsSimple = function() { // Check if both points are connected at the right edge of the canvas and if the option "connectSeparatedPoints" works properly // even if the point is outside the visible range and only one series has a valid value for this point. CanvasAssertions.assertLineDrawn(htx, xy1, xy2, attrs); -}; +}); -ConnectSeparatedPointsTestCase.prototype.testEdgePointsCustomBars = function() { +it('testEdgePointsCustomBars', function() { var opts = { width: 480, height: 320, @@ -113,7 +116,7 @@ ConnectSeparatedPointsTestCase.prototype.testEdgePointsCustomBars = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); - htx = g.hidden_ctx_; + var htx = g.hidden_ctx_; var attrs = {}; @@ -213,9 +216,9 @@ ConnectSeparatedPointsTestCase.prototype.testEdgePointsCustomBars = function() { // Check if both points are connected at the right edge of the canvas and if the option "connectSeparatedPoints" works properly // even if the point is outside the visible range and only one series has a valid value for this point. CanvasAssertions.assertLineDrawn(htx, xy1, xy2, attrs); -}; +}); -ConnectSeparatedPointsTestCase.prototype.testEdgePointsErrorBars = function() { +it('testEdgePointsErrorBars', function() { var opts = { width: 480, height: 320, @@ -243,7 +246,7 @@ ConnectSeparatedPointsTestCase.prototype.testEdgePointsErrorBars = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); - htx = g.hidden_ctx_; + var htx = g.hidden_ctx_; var attrs = {}; @@ -350,35 +353,35 @@ ConnectSeparatedPointsTestCase.prototype.testEdgePointsErrorBars = function() { // Check if both points are connected at the right edge of the canvas and if the option "connectSeparatedPoints" works properly // even if the point is outside the visible range and only one series has a valid value for this point. CanvasAssertions.assertLineDrawn(htx, xy1, xy2, attrs); -}; +}); -ConnectSeparatedPointsTestCase.prototype.testConnectSeparatedPointsPerSeries = function() { +it('testConnectSeparatedPointsPerSeries', function() { var assertExpectedLinesDrawnPerSeries = function(htx, expectedSeries1, expectedSeries2, expectedSeries3) { var expected = [expectedSeries1, expectedSeries2, expectedSeries3]; var actual = [ CanvasAssertions.numLinesDrawn(htx, "#ff0000"), CanvasAssertions.numLinesDrawn(htx, "#00ff00"), CanvasAssertions.numLinesDrawn(htx, "#0000ff")]; - assertEquals(expected, actual); + assert.deepEqual(expected, actual); } var g = new Dygraph(document.getElementById("graph"), - [ - [1, 10, 10, 10], - [2, 15, 11, 12], - [3, null, null, 12], - [4, 20, 14, null], - [5, 15, null, 17], - [6, 18, null, null], - [7, 12, 14, null] - ], - { - labels: ["Date","Series1","Series2","Series3"], - connectSeparatedPoints: false, - colors: ["#ff0000", "#00ff00", "#0000ff"] - }); + [ + [1, 10, 10, 10], + [2, 15, 11, 12], + [3, null, null, 12], + [4, 20, 14, null], + [5, 15, null, 17], + [6, 18, null, null], + [7, 12, 14, null] + ], + { + labels: ["Date","Series1","Series2","Series3"], + connectSeparatedPoints: false, + colors: ["#ff0000", "#00ff00", "#0000ff"] + }); - htx = g.hidden_ctx_; + var htx = g.hidden_ctx_; assertExpectedLinesDrawnPerSeries(htx, 4, 1, 2); Proxy.reset(htx); @@ -405,4 +408,47 @@ ConnectSeparatedPointsTestCase.prototype.testConnectSeparatedPointsPerSeries = f } }); assertExpectedLinesDrawnPerSeries(htx, 4, 3, 3); -} +}); + +it('testNaNErrorBars', function() { + var data = [ + [0,[1,2,3]], + [1,[2,3,4]], + [2,[3,4,5]], + [3,[null,null,null]], + [4,[2,3,4]], + [5,[3,4,5]], + [6,[2,3,4]], + [7,[NaN,NaN,NaN]], + [8,[2,3,4]], + [9,[2,3,4]], + [10,[2,3,4]], + [11,[2,3,4]] + ]; + + var opts = { + labels: ["x", "y"], + colors: ["#ff0000"], + customBars: true, + connectSeparatedPoints: true + }; + + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, data, opts); + + var htx = g.hidden_ctx_; + + var attrs = {}; + + // Line should be drawn across the null gap. + CanvasAssertions.assertLineDrawn(htx, + g.toDomCoords(data[2][0], data[2][1][1]), + g.toDomCoords(data[4][0], data[4][1][1]), + attrs); + + // No line across the NaN gap, and a single line (not two) + // across the null gap. + assert.equal(8, CanvasAssertions.numLinesDrawn(htx, '#ff0000')); +}); + +});