diff --git a/.travis.yml b/.travis.yml index c66ea5fb7..2c250f717 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,10 @@ node_js: - "0.11" - "0.10" +before_install: + - "export DISPLAY=:99.0" + - "sh -e /etc/init.d/xvfb start" + before_script: - npm install diff --git a/gulpfile.js b/gulpfile.js index 39cbc817e..651217eaf 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -139,7 +139,7 @@ function unittestTask() { return gulp.src(files) .pipe(karma({ - configFile: 'karma.conf.js', + configFile: 'karma.conf.ci.js', action: 'run' })); } diff --git a/karma.conf.ci.js b/karma.conf.ci.js new file mode 100644 index 000000000..826b65575 --- /dev/null +++ b/karma.conf.ci.js @@ -0,0 +1,7 @@ +module.exports = function(config) { + config.set({ + browsers: ['Firefox'], + frameworks: ['jasmine'], + reporters: ['progress', 'html'], + }); +}; \ No newline at end of file diff --git a/src/charts/Chart.Doughnut.js b/src/charts/Chart.Doughnut.js index 333a0bbeb..05a9764bd 100644 --- a/src/charts/Chart.Doughnut.js +++ b/src/charts/Chart.Doughnut.js @@ -15,6 +15,6 @@ config.type = 'doughnut'; return new Chart(context, config); - } + }; }).call(this); diff --git a/src/charts/Chart.Line.js b/src/charts/Chart.Line.js index d5e7cf76c..8e26f09b5 100644 --- a/src/charts/Chart.Line.js +++ b/src/charts/Chart.Line.js @@ -9,6 +9,6 @@ config.type = 'line'; return new Chart(context, config); - } + }; }).call(this); diff --git a/src/charts/Chart.PolarArea.js b/src/charts/Chart.PolarArea.js index 9dbdf1b39..20171f7f7 100644 --- a/src/charts/Chart.PolarArea.js +++ b/src/charts/Chart.PolarArea.js @@ -15,6 +15,6 @@ config.type = 'polarArea'; return new Chart(context, config); - } + }; }).call(this); diff --git a/src/charts/Chart.Radar.js b/src/charts/Chart.Radar.js index 2f1f82606..7680e25f7 100644 --- a/src/charts/Chart.Radar.js +++ b/src/charts/Chart.Radar.js @@ -14,6 +14,6 @@ config.type = 'radar'; return new Chart(context, config); - } + }; }).call(this); diff --git a/src/charts/Chart.Scatter.js b/src/charts/Chart.Scatter.js index 8863ed5e6..ee1ec474a 100644 --- a/src/charts/Chart.Scatter.js +++ b/src/charts/Chart.Scatter.js @@ -34,6 +34,6 @@ config.options = helpers.configMerge(defaultConfig, config.options); config.type = 'line'; return new Chart(context, config); - } + }; }).call(this); \ No newline at end of file diff --git a/src/controllers/controller.doughnut.js b/src/controllers/controller.doughnut.js index 4ab485058..1188a7c2b 100644 --- a/src/controllers/controller.doughnut.js +++ b/src/controllers/controller.doughnut.js @@ -92,7 +92,7 @@ // Make sure that we handle number of datapoints changing if (numData < numArcs) { // Remove excess bars for data points that have been removed - this.getDataset().metaData.splice(numData, numArcs - numData) + this.getDataset().metaData.splice(numData, numArcs - numData); } else if (numData > numArcs) { // Add new elements for (var index = numArcs; index < numData; ++index) { diff --git a/src/controllers/controller.polarArea.js b/src/controllers/controller.polarArea.js index 709cc1591..45e4b33a5 100644 --- a/src/controllers/controller.polarArea.js +++ b/src/controllers/controller.polarArea.js @@ -87,7 +87,7 @@ // Make sure that we handle number of datapoints changing if (numData < numPoints) { // Remove excess bars for data points that have been removed - this.getDataset().metaData.splice(numData, numPoints - numData) + this.getDataset().metaData.splice(numData, numPoints - numData); } else if (numData > numPoints) { // Add new elements for (var index = numPoints; index < numData; ++index) { @@ -206,12 +206,4 @@ }, }); - - - - return; - - - Chart.Type.extend({}); - }).call(this); diff --git a/src/controllers/controller.radar.js b/src/controllers/controller.radar.js index 40fc4a7ab..ddbff5e15 100644 --- a/src/controllers/controller.radar.js +++ b/src/controllers/controller.radar.js @@ -103,7 +103,7 @@ // Make sure that we handle number of datapoints changing if (numData < numPoints) { // Remove excess bars for data points that have been removed - this.getDataset().metaData.splice(numData, numPoints - numData) + this.getDataset().metaData.splice(numData, numPoints - numData); } else if (numData > numPoints) { // Add new elements for (var index = numPoints; index < numData; ++index) { diff --git a/src/core/core.controller.js b/src/core/core.controller.js index 79e7d10d3..45e8869e5 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -158,7 +158,7 @@ this.scale = scale; - this.scales['radialScale'] = scale; + this.scales.radialScale = scale; } Chart.scaleService.update(this, this.chart.width, this.chart.height); @@ -313,13 +313,13 @@ helpers.each(this.data.datasets, function(dataset, datasetIndex) { if (helpers.isDatasetVisible(dataset)) { - for (var elementIndex = 0; elementIndex < dataset.metaData.length; elementIndex++) { - if (dataset.metaData[elementIndex].inLabelRange(eventPosition.x, eventPosition.y)) { + helpers.each(dataset.metaData, function(element, elementIndex) { + if (element.inLabelRange(eventPosition.x, eventPosition.y)) { helpers.each(dataset.metaData, function(element, index) { elementsArray.push(element); }, this); } - } + }, this); } }, this); @@ -441,8 +441,8 @@ break; case 'label': case 'dataset': - for (var i = 0; i < this.active.length; i++) { - this.data.datasets[this.active[i]._datasetIndex].controller.setHoverStyle(this.active[i]); + for (var j = 0; j < this.active.length; j++) { + this.data.datasets[this.active[j]._datasetIndex].controller.setHoverStyle(this.active[j]); } break; default: diff --git a/src/core/core.scale.js b/src/core/core.scale.js index 556ea0039..133801150 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -114,7 +114,7 @@ // Reset position before calculating rotation this.top = 0; - this.bottom = this.height + this.bottom = this.height; } // Reset padding diff --git a/src/elements/element.arc.js b/src/elements/element.arc.js index 209c505d9..615cab867 100644 --- a/src/elements/element.arc.js +++ b/src/elements/element.arc.js @@ -45,7 +45,7 @@ // Put into the range of (-PI/2, 3PI/2] var startAngle = vm.startAngle < (-0.5 * Math.PI) ? vm.startAngle + (2.0 * Math.PI) : vm.startAngle > (1.5 * Math.PI) ? vm.startAngle - (2.0 * Math.PI) : vm.startAngle; - var endAngle = vm.endAngle < (-0.5 * Math.PI) ? vm.endAngle + (2.0 * Math.PI) : vm.endAngle > (1.5 * Math.PI) ? vm.endAngle - (2.0 * Math.PI) : vm.endAngle + var endAngle = vm.endAngle < (-0.5 * Math.PI) ? vm.endAngle + (2.0 * Math.PI) : vm.endAngle > (1.5 * Math.PI) ? vm.endAngle - (2.0 * Math.PI) : vm.endAngle; //Check if within the range of the open/close angle var betweenAngles = (pointRelativePosition.angle >= startAngle && pointRelativePosition.angle <= endAngle), diff --git a/src/scales/scale.category.js b/src/scales/scale.category.js index e85ba04ea..039a9bef6 100644 --- a/src/scales/scale.category.js +++ b/src/scales/scale.category.js @@ -24,23 +24,23 @@ if (this.isHorizontal()) { var innerWidth = this.width - (this.paddingLeft + this.paddingRight); var valueWidth = innerWidth / Math.max((this.data.labels.length - ((this.options.gridLines.offsetGridLines) ? 0 : 1)), 1); - var valueOffset = (valueWidth * index) + this.paddingLeft; + var widthOffset = (valueWidth * index) + this.paddingLeft; if (this.options.gridLines.offsetGridLines && includeOffset) { - valueOffset += (valueWidth / 2); + widthOffset += (valueWidth / 2); } - return this.left + Math.round(valueOffset); + return this.left + Math.round(widthOffset); } else { var innerHeight = this.height - (this.paddingTop + this.paddingBottom); var valueHeight = innerHeight / Math.max((this.data.labels.length - ((this.options.gridLines.offsetGridLines) ? 0 : 1)), 1); - var valueOffset = (valueHeight * index) + this.paddingTop; + var heightOffset = (valueHeight * index) + this.paddingTop; if (this.options.gridLines.offsetGridLines && includeOffset) { - valueOffset += (valueHeight / 2); + heightOffset += (valueHeight / 2); } - return this.top + Math.round(valueOffset); + return this.top + Math.round(heightOffset); } }, }); diff --git a/test/scale.linear.tests.js b/test/scale.linear.tests.js index ac190a3c5..87b82662d 100644 --- a/test/scale.linear.tests.js +++ b/test/scale.linear.tests.js @@ -1396,6 +1396,9 @@ describe('Linear Scale', function() { }, { "name": "rotate", "args": [-1.5707963267948966] + }, { + "name": "setFillStyle", + "args": ["#666"] }, { "name": "setFillStyle", "args": ["#666"]