auto_test for stacked annotations
authorDan Vanderkam <danvdk@gmail.com>
Sat, 9 Feb 2013 01:23:37 +0000 (20:23 -0500)
committerDan Vanderkam <danvdk@gmail.com>
Sat, 9 Feb 2013 01:23:37 +0000 (20:23 -0500)
auto_tests/tests/annotations.js
dygraph-layout.js

index 857dd60..76a56d2 100644 (file)
@@ -205,3 +205,38 @@ AnnotationsTestCase.prototype.testAnnotationsDrawnInDrawCallback = function() {
 
   assertEquals([true, false], calls);
 };
+
+
+// Test that annotations on the same point are stacked.
+// Regression test for http://code.google.com/p/dygraphs/issues/detail?id=256
+AnnotationsTestCase.prototype.testAnnotationsStacked = function() {
+  var data = 'X,Y1,Y2\n' +
+      '0,1,2\n' +
+      '1,2,3\n';
+  var graph = document.getElementById("graph");
+  var annotations = [
+    {
+      series: 'Y1',
+      x: 0,
+      shortText: '1',
+      attachAtBottom: true
+    },
+    {
+      series: 'Y2',
+      x: 0,
+      shortText: '2',
+      attachAtBottom: true
+    }
+  ];
+  var g = new Dygraph(graph, data, {
+    width: 480,
+    height: 320
+  });
+  g.setAnnotations(annotations);
+
+  var annEls = document.getElementsByClassName('dygraphDefaultAnnotation');
+  assertEquals(2, annEls.length);
+
+  assertEquals(annEls[0].offsetLeft, annEls[1].offsetLeft);
+  assert(annEls[1].offsetTop < annEls[0].offsetTop - 10);
+};
index b99896b..2b3d137 100644 (file)
@@ -130,7 +130,8 @@ DygraphLayout.prototype.setAnnotations = function(ann) {
   var parse = this.attr_('xValueParser') || function(x) { return x; };
   for (var i = 0; i < ann.length; i++) {
     var a = {};
-    if (!ann[i].xval && !ann[i].x) {
+    if (!ann[i].xval && ann[i].x === undefined) {
+      console.log(ann[i]);
       this.dygraph_.error("Annotations must have an 'x' property");
       return;
     }