X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Ffast_canvas_proxy.js;h=217dbd619ffdbe0a2d05ee09372cb8975748a0f8;hb=refs%2Ftags%2Fv2.0.0;hp=a06fe4022a47701156c332a775cb186ed9d56e73;hpb=3123ca57f71d145bb5bcc4a2f754d3dff3225346;p=dygraphs.git diff --git a/auto_tests/tests/fast_canvas_proxy.js b/auto_tests/tests/fast_canvas_proxy.js index a06fe40..217dbd6 100644 --- a/auto_tests/tests/fast_canvas_proxy.js +++ b/auto_tests/tests/fast_canvas_proxy.js @@ -3,13 +3,11 @@ * * @author danvdk@gmail.com (Dan Vanderkam) */ -describe("fast-canvas-proxy", function() { -beforeEach(function() { -}); +import DygraphCanvasRenderer from '../../src/dygraph-canvas'; +import Proxy from './Proxy'; -afterEach(function() { -}); +describe("fast-canvas-proxy", function() { var fakeCanvasContext = { moveTo: function() {}, @@ -98,4 +96,61 @@ it('testSuperfluousSegmentsElided', function() { ['moveTo', 3, 0]], extractMoveToAndLineToCalls(htx)); }); + +// For a more visual version of this test, see +// https://gist.github.com/danvk/e98dbb24253c9b153696 +// The drawing commands in the following two tests are taken from there. +it('should handle gaps on the left', function() { + var htx = new Proxy(fakeCanvasContext); + var fastProxy = DygraphCanvasRenderer._fastCanvasProxy(htx); + + fastProxy.moveTo(0, 320); + fastProxy.lineTo(0, 320); + fastProxy.lineTo(53.21, 187); + fastProxy.lineTo(53.23, 29); + fastProxy.lineTo(53.41, 320); + fastProxy.lineTo(54.15, 320); + fastProxy.lineTo(475, 320); + fastProxy.lineTo(475, 320); + fastProxy.fill(); + + assert.deepEqual([ + ['moveTo', 0, 320], + ['lineTo', 0, 320], + ['lineTo', 53.21, 187], + ['lineTo', 53.23, 29], + ['lineTo', 53.41, 320], + ['lineTo', 54.15, 320], + ['lineTo', 475, 320], + ['lineTo', 475, 320] + ], extractMoveToAndLineToCalls(htx)); +}); + +it('should handle gaps on the right', function() { + var htx = new Proxy(fakeCanvasContext); + var fastProxy = DygraphCanvasRenderer._fastCanvasProxy(htx); + fastProxy.moveTo(240.2, 320); + fastProxy.lineTo(240.2, 320); + fastProxy.lineTo(240.2, 174); + fastProxy.lineTo(240.7, 145); + fastProxy.lineTo(240.8, 320); + fastProxy.lineTo(241.3, 29); + fastProxy.lineTo(241.4, 320); + fastProxy.lineTo(715.9, 320); + fastProxy.lineTo(715.9, 320); + fastProxy.fill(); + + assert.deepEqual([ + ['moveTo', 240.2, 320], + ['lineTo', 240.2, 320], + ['lineTo', 240.2, 174], + ['lineTo', 240.7, 145], + ['lineTo', 240.8, 320], + ['lineTo', 241.3, 29], + ['lineTo', 241.4, 320], + ['lineTo', 715.9, 320], + ['lineTo', 715.9, 320] + ], extractMoveToAndLineToCalls(htx)); +}); + });