]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Test for skipping drawing 1645/head
authorEvert Timberg <evert.timberg@gmail.com>
Thu, 12 Nov 2015 02:49:07 +0000 (21:49 -0500)
committerEvert Timberg <evert.timberg@gmail.com>
Thu, 12 Nov 2015 02:49:07 +0000 (21:49 -0500)
test/scale.linear.tests.js

index e83c77cdb61dfc490946da46a5167873655eec08..3f328e6eb862e5274b9bbfc79c7b7669044d926f 100644 (file)
@@ -1458,7 +1458,7 @@ describe('Linear Scale', function() {
                }, {
                        "name": "rotate",
                        "args": [-1.5707963267948966]
-               },  {
+               }, {
                        "name": "setFillStyle",
                        "args": ["#666"]
                }, {
@@ -1469,4 +1469,244 @@ describe('Linear Scale', function() {
                        "args": []
                }]);
        });
-});
+
+       it("should not draw lines where the callback function returned null or undefined", function() {
+               var scaleID = 'myScale';
+
+               var mockData = {
+                       datasets: [{
+                               xAxisID: scaleID, // for the horizontal scale
+                               yAxisID: scaleID,
+                               data: [-5, 0, 2, -3, 5]
+                       }]
+               };
+               var mockContext = window.createMockContext();
+
+               var config = Chart.helpers.clone(Chart.scaleService.getScaleDefaults('linear'));
+               config.ticks.callback = function(tickValue, index) {
+                       return index % 2 === 0 ? null : tickValue.toString();
+               };
+               var Constructor = Chart.scaleService.getScaleConstructor('linear');
+               var verticalScale = new Constructor({
+                       ctx: mockContext,
+                       options: config,
+                       data: mockData,
+                       id: scaleID
+               });
+
+               var minSize = verticalScale.update(100, 300);
+               minSize = verticalScale.update(30, 300, {
+                       left: 0,
+                       right: 0,
+                       top: 15,
+                       bottom: 3
+               });
+               expect(minSize).toEqual({
+                       width: 30,
+                       height: 300,
+               });
+
+               verticalScale.left = 0;
+               verticalScale.right = minSize.width;
+               verticalScale.top = 0;
+               verticalScale.bottom = minSize.height;
+
+               var chartArea = {
+                       top: 0,
+                       bottom: minSize.height,
+                       left: minSize.width,
+                       right: minSize.width + 100
+               };
+
+               mockContext.resetCalls();
+               verticalScale.draw(chartArea);
+
+               expect(mockContext.getCalls()).toEqual([{
+                       "name": "setFillStyle",
+                       "args": ["#666"]
+               }, {
+                       "name": "setLineWidth",
+                       "args": [1]
+               }, {
+                       "name": "setStrokeStyle",
+                       "args": ["rgba(0, 0, 0, 0.1)"]
+               }, {
+                       "name": "beginPath",
+                       "args": []
+               }, {
+                       "name": "moveTo",
+                       "args": [25, 30.2]
+               }, {
+                       "name": "lineTo",
+                       "args": [30, 30.2]
+               }, {
+                       "name": "moveTo",
+                       "args": [30, 30.2]
+               }, {
+                       "name": "lineTo",
+                       "args": [130, 30.2]
+               }, {
+                       "name": "stroke",
+                       "args": []
+               }, {
+                       "name": "save",
+                       "args": []
+               }, {
+                       "name": "translate",
+                       "args": [20, 29.7]
+               }, {
+                       "name": "rotate",
+                       "args": [-0]
+               }, {
+                       "name": "fillText",
+                       "args": ["4", 0, 0]
+               }, {
+                       "name": "restore",
+                       "args": []
+               }, {
+                       "name": "beginPath",
+                       "args": []
+               }, {
+                       "name": "moveTo",
+                       "args": [25, 89.6]
+               }, {
+                       "name": "lineTo",
+                       "args": [30, 89.6]
+               }, {
+                       "name": "moveTo",
+                       "args": [30, 89.6]
+               }, {
+                       "name": "lineTo",
+                       "args": [130, 89.6]
+               }, {
+                       "name": "stroke",
+                       "args": []
+               }, {
+                       "name": "save",
+                       "args": []
+               }, {
+                       "name": "translate",
+                       "args": [20, 89.1]
+               }, {
+                       "name": "rotate",
+                       "args": [-0]
+               }, {
+                       "name": "fillText",
+                       "args": ["2", 0, 0]
+               }, {
+                       "name": "restore",
+                       "args": []
+               }, {
+                       "name": "setLineWidth",
+                       "args": [1]
+               }, {
+                       "name": "setStrokeStyle",
+                       "args": ["rgba(0,0,0,0.25)"]
+               }, {
+                       "name": "beginPath",
+                       "args": []
+               }, {
+                       "name": "moveTo",
+                       "args": [25, 149]
+               }, {
+                       "name": "lineTo",
+                       "args": [30, 149]
+               }, {
+                       "name": "moveTo",
+                       "args": [30, 149]
+               }, {
+                       "name": "lineTo",
+                       "args": [130, 149]
+               }, {
+                       "name": "stroke",
+                       "args": []
+               }, {
+                       "name": "save",
+                       "args": []
+               }, {
+                       "name": "translate",
+                       "args": [20, 148.5]
+               }, {
+                       "name": "rotate",
+                       "args": [-0]
+               }, {
+                       "name": "fillText",
+                       "args": ["0", 0, 0]
+               }, {
+                       "name": "restore",
+                       "args": []
+               }, {
+                       "name": "setLineWidth",
+                       "args": [1]
+               }, {
+                       "name": "setStrokeStyle",
+                       "args": ["rgba(0, 0, 0, 0.1)"]
+               }, {
+                       "name": "beginPath",
+                       "args": []
+               }, {
+                       "name": "moveTo",
+                       "args": [25, 208.4]
+               }, {
+                       "name": "lineTo",
+                       "args": [30, 208.4]
+               }, {
+                       "name": "moveTo",
+                       "args": [30, 208.4]
+               }, {
+                       "name": "lineTo",
+                       "args": [130, 208.4]
+               }, {
+                       "name": "stroke",
+                       "args": []
+               }, {
+                       "name": "save",
+                       "args": []
+               }, {
+                       "name": "translate",
+                       "args": [20, 207.9]
+               }, {
+                       "name": "rotate",
+                       "args": [-0]
+               }, {
+                       "name": "fillText",
+                       "args": ["-2", 0, 0]
+               }, {
+                       "name": "restore",
+                       "args": []
+               }, {
+                       "name": "beginPath",
+                       "args": []
+               }, {
+                       "name": "moveTo",
+                       "args": [25, 267.8]
+               }, {
+                       "name": "lineTo",
+                       "args": [30, 267.8]
+               }, {
+                       "name": "moveTo",
+                       "args": [30, 267.8]
+               }, {
+                       "name": "lineTo",
+                       "args": [130, 267.8]
+               }, {
+                       "name": "stroke",
+                       "args": []
+               }, {
+                       "name": "save",
+                       "args": []
+               }, {
+                       "name": "translate",
+                       "args": [20, 267.3]
+               }, {
+                       "name": "rotate",
+                       "args": [-0]
+               }, {
+                       "name": "fillText",
+                       "args": ["-4", 0, 0]
+               }, {
+                       "name": "restore",
+                       "args": []
+               }])
+       });
+});
\ No newline at end of file