-// Copyright (c) 2011 Google, Inc.
+// Copyright (c) 2011 Google, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
*
* @author konigsberg@google.com (Robert Konigsberg)
*/
-var DEAD_SIMPLE_DATA = [[ 20061010, 2100 ]];
-var ZERO_TO_FIFTY = [[ 20061010, 0 ] , [ 20061011, 50 ]];
-var SanityTestCase = TestCase("dygraphs-sanity");
+import Dygraph from '../../src/dygraph';
-SanityTestCase.prototype.setUp = function() {
- document.body.innerHTML = "<div id='graph'></div>";
-};
+describe("dygraphs-sanity", function() {
+
+var DEAD_SIMPLE_DATA = 'X,Y\n10,2100';
+var ZERO_TO_FIFTY = 'X,Y\n10,0\n20,50';
+
+cleanupAfterEach();
/**
* The sanity test of sanity tests.
*/
-SanityTestCase.prototype.testTrue = function() {
- assertTrue(true);
-};
+it('testTrue', function() {
+ assert.isTrue(true);
+});
/**
* Sanity test that ensures the graph element exists.
*/
-SanityTestCase.prototype.testGraphExists = function() {
+it('testGraphExists', function() {
var graph = document.getElementById("graph");
- assertNotNull(graph);
-};
+ assert.isNotNull(graph);
+});
+
+// TODO(konigsberg): Move the following tests to a new package that
+// tests all kinds of toDomCoords, toDataCoords, toPercent, et cetera.
/**
* A sanity test of sorts, by ensuring the dygraph is created, and
* isn't just some piece of junk object.
*/
-SanityTestCase.prototype.testToString = function() {
+it('testToString', function() {
var graph = document.getElementById("graph");
var g = new Dygraph(graph, DEAD_SIMPLE_DATA, {});
- assertNotNull(g);
- assertEquals("[Dygraph graph]", g.toString());
-};
+ assert.isNotNull(g);
+ assert.equal("[Dygraph graph]", g.toString());
+});
/**
* Test that when no valueRange is specified, the y axis range is
* adjusted by 10% on top.
*/
-SanityTestCase.prototype.testYAxisRange_default = function() {
+it('testYAxisRange_default', function() {
var graph = document.getElementById("graph");
- assertEquals(0, graph.style.length);
+ assert.equal(0, graph.style.length);
var g = new Dygraph(graph, ZERO_TO_FIFTY, {});
- assertEquals([0, 55], g.yAxisRange(0));
-};
+ assert.deepEqual([0, 55], g.yAxisRange(0));
+});
/**
* Test that valueRange matches the y-axis range specifically.
*/
-SanityTestCase.prototype.testYAxisRange_custom = function() {
+it('testYAxisRange_custom', function() {
var graph = document.getElementById("graph");
var g = new Dygraph(graph, ZERO_TO_FIFTY, { valueRange: [0,50] });
- assertEquals([0, 50], g.yAxisRange(0));
-};
-
-function assertEqualsDelta(msg, expected, actual, delta) {
- var args = this.argsWithOptionalMsg_(arguments, 4);
-
- var message = args[0];
- var exp = args[1];
- var act = args[2];
- var d = args[3];
- if (Math.abs(exp - act) > d) {
- fail(message +
- " Expected to be within " + d + " of " + exp + ", got " + act);
- }
-}
+ assert.deepEqual([0, 50], g.yAxisRange(0));
+ g.updateOptions({valueRange: null, axes: {y: {valueRange: [10, 40]}}});
+ assert.deepEqual([10, 40], g.yAxisRange(0));
+});
/**
* Test that valueRange matches the y-axis range specifically.
* axis label and tick marks.
* TODO(konigsberg): change yAxisLabelWidth to 0 (or 20) and try again.
*/
-SanityTestCase.prototype.testToDomYCoord = function() {
+it('testToDomYCoord', function() {
var graph = document.getElementById("graph");
var g = new Dygraph(graph, ZERO_TO_FIFTY, { height: 70, valueRange: [0,50] });
- assertEquals(50, g.toDomYCoord(0));
- assertEquals(0, g.toDomYCoord(50));
-
+ assert.equal(50, g.toDomYCoord(0));
+ assert.equal(0, g.toDomYCoord(50));
+
for (var x = 0; x <= 50; x++) {
- assertEqualsDelta(50 - x, g.toDomYCoord(x), 0.00001);
+ assert.closeTo(50 - x, g.toDomYCoord(x), 0.00001);
}
-};
+ g.updateOptions({valueRange: null, axes: {y: {valueRange: [0, 50]}}});
+
+ assert.equal(50, g.toDomYCoord(0));
+ assert.equal(0, g.toDomYCoord(50));
+
+ for (var x = 0; x <= 50; x++) {
+ assert.closeTo(50 - x, g.toDomYCoord(x), 0.00001);
+ }
+});
+
+/**
+ * Test that the two-argument form of the constructor (no options) works.
+ */
+it('testTwoArgumentConstructor', function() {
+ var graph = document.getElementById("graph");
+ new Dygraph(graph, ZERO_TO_FIFTY);
+});
+
+// Here is the first of a series of tests that just ensure the graph is drawn
+// without exception.
+//TODO(konigsberg): Move to its own test case.
+it('testFillStack1', function() {
+ var graph = document.getElementById("graph");
+ new Dygraph(graph, ZERO_TO_FIFTY, { stackedGraph: true });
+});
+
+it('testFillStack2', function() {
+ var graph = document.getElementById("graph");
+ new Dygraph(graph, ZERO_TO_FIFTY, { stackedGraph: true, fillGraph: true });
+});
+
+it('testFillStack3', function() {
+ var graph = document.getElementById("graph");
+ new Dygraph(graph, ZERO_TO_FIFTY, { fillGraph: true });
+});
+
+});