+ assert.equal(6, callbackCount);
+});
+
+/**
+ * Tests that a graph created in a not-displayed div works as expected
+ * if the graph options include height and width. Resize not needed.
+ */
+it('testHiddenDivWithSizedGraph', function() {
+ var div = document.getElementById("graph");
+
+ div.style.display = 'none';
+ var g = new Dygraph(div, data, {width: 400, height: 300});
+ div.style.display = '';
+
+ var area = g.getArea();
+ assert.isTrue(area.w > 0);
+ assert.isTrue(area.h > 0);
+});
+
+/**
+ * Tests that a graph created in a not-displayed div with
+ * CSS-specified size but no graph height or width options works as
+ * expected. The user needs to call resize() on it after displaying
+ * it.
+ */
+it('testHiddenDivWithResize', function() {
+ var div = document.getElementById("graph");
+
+ div.style.display = 'none';
+ div.style.width = '400px';
+ div.style.height = '300px';
+
+ // Setting strokeWidth 3 removes any ambiguitiy from the pixel sampling
+ // request, below.
+ var g = new Dygraph(div, data, {strokeWidth: 3});
+ div.style.display = '';
+
+ g.resize();
+ var area = g.getArea();
+ assert.isTrue(area.w > 0);
+ assert.isTrue(area.h > 0);
+
+ // Regression test: check that graph remains visible after no-op resize.
+ g.resize();
+ var x = Math.floor(g.toDomXCoord(2));
+ var y = Math.floor(g.toDomYCoord(200));
+ assert.deepEqual([0, 128, 128, 255], Util.samplePixel(g.hidden_, x, y),
+ "Unexpected grid color found at pixel: x: " + x + " y: " + y);
+});
+
+});