html5 boiler plate
[scannr.git] / js / flotr2 / spec / Chart.js
blob:a/js/flotr2/spec/Chart.js -> blob:b/js/flotr2/spec/Chart.js
  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
  });
  });
  });
  });
  });