X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Fresize.js;h=3ce99ad58136393a40a44961c33ce58bb022e481;hb=18117d891a79ebdd470cf4e09c829b01008ba515;hp=d9dbbfc2c6339d19442db90cdaeb28811ad36737;hpb=204161754f01aaf091f9fc7d5598ec5127a00f4f;p=dygraphs.git diff --git a/auto_tests/tests/resize.js b/auto_tests/tests/resize.js index d9dbbfc..3ce99ad 100644 --- a/auto_tests/tests/resize.js +++ b/auto_tests/tests/resize.js @@ -5,6 +5,15 @@ */ var ResizeTestCase = TestCase("resize"); +ResizeTestCase.data = + "X,Y\n" + + "1,100\n" + + "2,200\n" + + "3,300\n" + + "4,400\n" + + "5,300\n" + + "6,100\n"; + ResizeTestCase.prototype.setUp = function() { document.body.innerHTML = "
"; }; @@ -32,15 +41,7 @@ ResizeTestCase.prototype.testResizeMaintainsMouseOperations = function() { DygraphOps.dispatchMouseUp_Point(g, x2 - 1, y); } - g = new Dygraph(graph, - "Date,Y\n" + - "2010/01/01,100\n" + - "2010/02/01,200\n" + - "2010/03/01,300\n" + - "2010/04/01,400\n" + - "2010/05/01,300\n" + - "2010/06/01,100\n", - { highlightCallback : callback }); + g = new Dygraph(graph, ResizeTestCase.data, {highlightCallback: callback}); strum(g, 300, 640); assertEquals(6, callbackCount); @@ -52,3 +53,50 @@ ResizeTestCase.prototype.testResizeMaintainsMouseOperations = function() { strum(g, 300, 500); assertEquals(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. + */ +ResizeTestCase.prototype.testHiddenDivWithSizedGraph = function() { + var div = document.getElementById("graph"); + + div.style.display = 'none'; + var g = new Dygraph(div, ResizeTestCase.data, {width: 400, height: 300}); + div.style.display = ''; + + var area = g.getArea(); + assertTrue(area.w > 0); + assertTrue(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. + */ +ResizeTestCase.prototype.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, ResizeTestCase.data, {strokeWidth: 3}); + div.style.display = ''; + + g.resize(); + area = g.getArea(); + assertTrue(area.w > 0); + assertTrue(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)); + assertEquals("Unexpected grid color found at pixel: x: " + x + " y: " + y, + [0, 128, 128, 255], Util.samplePixel(g.hidden_, x, y)); +};