describe('Charts', function () { var width = 480, height = 320, a, b, options, defaults; defaults = { width : 480, height : 320, color : "rgb(192,216,0)", context : null, data : null, fill : false, fillColor : null, fillOpacity : 0.4, fillStyle : "rgba(192,216,0,0.4)", fontColor : "#545454", fontSize : 7.5, htmlText : true, lineWidth : 2, shadowSize : 4, show : false, stacked : false, textEnabled : true, xScale : function (x) { return x; }, yScale : function (y) { return height - y; } }; /** * @param skip bool Skip test against development version (use this when developing test) */ function drawTest (data, o, skip) { options.data = data; if (o) _.extend(options, o); if (!skip) TestFlotr.graphTypes.lines.draw(options); options.context = b.getContext('2d'); StableFlotr.graphTypes.lines.draw(options); expect(b).toImageDiffEqual(a); } describe('Lines', function () { beforeEach(function () { options = _.clone(defaults); }); /* describe('Data', function () { it('gets a range', function () { options.stacked = true; options.data = [[0, 0], [240, 160], [480, 320]]; range = TestFlotr.graphTypes.lines.range(options); expect(range.min).toEqual(0); expect(range.max).toEqual(320); }); }); */ describe('Draw', function () { beforeEach(function () { this.addMatchers(imagediff.jasmine); a = imagediff.createCanvas(width, height); b = imagediff.createCanvas(width, height); options.context = a.getContext('2d'); }); it('draws a line chart', function () { drawTest([ [0, 0], [240, 300], [480, 0] ]); }); it('skips null values', function () { drawTest([ [0, 0], [100, 50], [200, null], [300, 150], [400, 200], [480, 240] ]); }); it('draws two lines', function () { // First line drawTest([[0, 0], [240, 160], [480, 320]]); // Second Line options.context = a.getContext('2d'); drawTest([[0, 320], [240, 160], [480, 0]]); }); it('fills a line', function () { drawTest([ [0, 0], [240, 300], [480, 0] ], { fill : true }); }); it('draws no shadow', function () { drawTest([ [0, 0], [240, 300], [480, 0] ], { shadowSize : 0 }); }); }); }); });