X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Fresize.js;h=9a8cffe650070456d9ec0132e4f061f12f7c4e2f;hb=6ecc073934b76e5076f917112a24ff7094857730;hp=d9dbbfc2c6339d19442db90cdaeb28811ad36737;hpb=204161754f01aaf091f9fc7d5598ec5127a00f4f;p=dygraphs.git diff --git a/auto_tests/tests/resize.js b/auto_tests/tests/resize.js index d9dbbfc..9a8cffe 100644 --- a/auto_tests/tests/resize.js +++ b/auto_tests/tests/resize.js @@ -3,16 +3,25 @@ * * @author konigsberg@google.com (Robert Konigsberg) */ -var ResizeTestCase = TestCase("resize"); +describe("resize", function() { -ResizeTestCase.prototype.setUp = function() { +var data = + "X,Y\n" + + "1,100\n" + + "2,200\n" + + "3,300\n" + + "4,400\n" + + "5,300\n" + + "6,100\n"; + +beforeEach(function() { document.body.innerHTML = "
"; -}; +}); -ResizeTestCase.prototype.tearDown = function() { -}; +afterEach(function() { +}); -ResizeTestCase.prototype.testResizeMaintainsMouseOperations = function() { +it('testResizeMaintainsMouseOperations', function() { document.body.innerHTML = '
' + ''; @@ -32,23 +41,64 @@ 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 }); + var g = new Dygraph(graph, data, {highlightCallback: callback}); strum(g, 300, 640); - assertEquals(6, callbackCount); + assert.equal(6, callbackCount); document.getElementById("graph").style.width = "500px"; g.resize(); callbackCount = 0; strum(g, 300, 500); - assertEquals(6, callbackCount); -}; + 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); +}); + +});