Document the role of makeNextPointStep.
[dygraphs.git] / auto_tests / tests / simple_drawing.js
index 71f2fc1..544bb81 100644 (file)
@@ -30,9 +30,9 @@ var SimpleDrawingTestCase = TestCase("simple-drawing");
 var _origFunc = Dygraph.getContext;
 SimpleDrawingTestCase.prototype.setUp = function() {
   document.body.innerHTML = "<div id='graph'></div>";
-  // Dygraph.getContext = function(canvas) {
-  //   return new Proxy(_origFunc(canvas));
-  // }
+  Dygraph.getContext = function(canvas) {
+    return new Proxy(_origFunc(canvas));
+  }
 };
 
 SimpleDrawingTestCase.prototype.tearDown = function() {
@@ -49,10 +49,85 @@ SimpleDrawingTestCase.prototype.testDrawSimpleRangePlusOne = function() {
 
   var graph = document.getElementById("graph");
   var g = new Dygraph(graph, ZERO_TO_FIFTY, opts);
-  // var htx = g.hidden_ctx_;
+  var htx = g.hidden_ctx_;
 
-  // CanvasAssertions.assertLineDrawn(htx, [56,300], [475,5.8], {
-  //   strokeStyle: "#008080",
-  //   lineWidth: 1
-  // });
+  CanvasAssertions.assertLineDrawn(htx, [0,320], [475,6.2745], {
+    strokeStyle: "#008080",
+    lineWidth: 1
+  });
+  CanvasAssertions.assertBalancedSaveRestore(htx);
+};
+
+SimpleDrawingTestCase.prototype.testDrawWithAxis = function() {
+  var graph = document.getElementById("graph");
+  var g = new Dygraph(graph, ZERO_TO_FIFTY);
+
+  var htx = g.hidden_ctx_;
+  CanvasAssertions.assertBalancedSaveRestore(htx);
+};
+
+/**
+ * Tests that it is drawing dashes, and it remember the dash history between
+ * points.
+ */
+SimpleDrawingTestCase.prototype.testDrawSimpleDash = function() {
+  var opts = {
+      drawXGrid: false,
+      drawYGrid: false,
+      drawXAxis: false,
+      drawYAxis: false,
+      'Y1': {strokePattern: [25, 7, 7, 7]},
+      colors: ['#ff0000']
+  };
+
+  var graph = document.getElementById("graph");
+  // Set the dims so we pass if default changes.
+  graph.style.width='480px';
+  graph.style.height='320px';
+  var g = new Dygraph(graph, [[1, 4], [2, 5], [3, 3], [4, 7], [5, 9]], opts);
+  htx = g.hidden_ctx_;
+
+  assertEquals(29, CanvasAssertions.numLinesDrawn(htx, "#ff0000"));
+  CanvasAssertions.assertBalancedSaveRestore(htx);
+};
+
+SimpleDrawingTestCase.prototype.testSeparatedPointsDontDraw = function() {
+  var graph = document.getElementById("graph");
+  var g = new Dygraph(
+      graph,
+      [[1, 10, 11],
+       [2, 11, null],
+       [3, 12, 13]],
+      { colors: ['red', 'blue']});
+  var htx = g.hidden_ctx_;
+  assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#ff0000'));
+  assertEquals(0, CanvasAssertions.numLinesDrawn(htx, '#0000ff'));
+}
+
+SimpleDrawingTestCase.prototype.testSeparatedPointsDontDraw_expanded = function() {
+  var graph = document.getElementById("graph");
+  var g = new Dygraph(
+      graph,
+      [[0, 10],
+       [1, 11],
+       [2, null],
+       [3, 13],
+       [4, 14]],
+      { colors: ['blue']});
+  var htx = g.hidden_ctx_;
+  var num_lines = 0;
+  var lines = CanvasAssertions.getLinesDrawn(htx);
+  for (var idx = 0; idx < lines.length; idx++) {
+    var line = lines[idx];
+    var color = line[1].properties.strokeStyle;
+    if (color === "#ff0000" || color === "#0000ff") {
+      console.log(line[0].args, line[1].args, color);
+    }
+  }
+
+  assertEquals(2, CanvasAssertions.numLinesDrawn(htx, '#0000ff'));
+  CanvasAssertions.assertLineDrawn(htx, [370, 87], [475, 25],
+      { strokeStyle: '#0000ff', });
+  CanvasAssertions.assertLineDrawn(htx, [56, 275], [161, 212],
+      { strokeStyle: '#0000ff', });
 }