*
* @author konigsberg@google.com (Robert Konigsberg)
*/
-var ResizeTestCase = TestCase("resize");
-
-ResizeTestCase.data =
- "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";
-
-ResizeTestCase.prototype.setUp = function() {
- document.body.innerHTML = "<div id='graph'></div>";
-};
-
-ResizeTestCase.prototype.tearDown = function() {
-};
-
-ResizeTestCase.prototype.testResizeMaintainsMouseOperations = function() {
- document.body.innerHTML =
- '<div id="graph" style="width: 640px; height: 480px;"></div>' +
- '</div>';
- var graph = document.getElementById("graph");
+
+import Dygraph from '../../src/dygraph';
+
+import DygraphOps from './DygraphOps';
+import Util from './Util';
+
+describe("resize", function() {
+
+cleanupAfterEach();
+
+var data =
+ "X,Y\n" +
+ "1,100\n" +
+ "2,200\n" +
+ "3,300\n" +
+ "4,400\n" +
+ "5,300\n" +
+ "6,100\n";
+
+it('testResizeMaintainsMouseOperations', function() {
+ var graph = document.getElementById('graph');
+ graph.setAttribute('style', 'width: 640px; height: 480px;');
var callbackCount = 0;
var callback = function() {
DygraphOps.dispatchMouseUp_Point(g, x2 - 1, y);
}
- g = new Dygraph(graph, ResizeTestCase.data, {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";
+ 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.
*/
-ResizeTestCase.prototype.testHiddenDivWithSizedGraph = function() {
+it('testHiddenDivWithSizedGraph', function() {
var div = document.getElementById("graph");
div.style.display = 'none';
- var g = new Dygraph(div, ResizeTestCase.data, {width: 400, height: 300});
+ var g = new Dygraph(div, data, {width: 400, height: 300});
div.style.display = '';
var area = g.getArea();
- assertTrue(area.w > 0);
- assertTrue(area.h > 0);
-};
+ assert.isTrue(area.w > 0);
+ assert.isTrue(area.h > 0);
+});
/**
* Tests that a graph created in a not-displayed div with
* expected. The user needs to call resize() on it after displaying
* it.
*/
-ResizeTestCase.prototype.testHiddenDivWithResize = function() {
+it('testHiddenDivWithResize', function() {
var div = document.getElementById("graph");
div.style.display = 'none';
div.style.width = '400px';
div.style.height = '300px';
- var g = new Dygraph(div, ResizeTestCase.data, {});
+ // 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();
- area = g.getArea();
- assertTrue(area.w > 0);
- assertTrue(area.h > 0);
-};
+ 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);
+});
+
+});