*
* @author konigsberg@google.com (Robert Konigsbrg)
*/
-var InteractionModelTestCase = TestCase("interaction-model");
+describe("interaction-model", function() {
-InteractionModelTestCase.prototype.setUp = function() {
+beforeEach(function() {
document.body.innerHTML = "<div id='graph'></div>";
-};
+});
-InteractionModelTestCase.prototype.tearDown = function() {
-};
+afterEach(function() {
+});
var data1 = "X,Y\n" +
"20,-1\n" +
return ary;
}
-InteractionModelTestCase.prototype.testPan = function(g, xRange, yRange) {
+/*
+it('testPan', function() {
var originalXRange = g.xAxisRange();
var originalYRange = g.yAxisRange(0);
DygraphOps.dispatchMouseMove(g, xRange[1], yRange[0]); // this is really necessary.
DygraphOps.dispatchMouseUp(g, xRange[1], yRange[0]);
- assertEqualsDelta(xRange, g.xAxisRange(), 0.2);
- // assertEqualsDelta(originalYRange, g.yAxisRange(0), 0.2); // Not true, it's something in the middle.
+ assert.equalsDelta(xRange, g.xAxisRange(), 0.2);
+ // assert.equalsDelta(originalYRange, g.yAxisRange(0), 0.2); // Not true, it's something in the middle.
var midX = (xRange[1] - xRange[0]) / 2;
DygraphOps.dispatchMouseDown(g, midX, yRange[0]);
DygraphOps.dispatchMouseMove(g, midX, yRange[1]); // this is really necessary.
DygraphOps.dispatchMouseUp(g, midX, yRange[1]);
- assertEqualsDelta(xRange, g.xAxisRange(), 0.2);
- assertEqualsDelta(yRange, g.yAxisRange(0), 0.2);
-}
+ assert.equalsDelta(xRange, g.xAxisRange(), 0.2);
+ assert.equalsDelta(yRange, g.yAxisRange(0), 0.2);
+});
+*/
/**
* This tests that when changing the interaction model so pan is used instead
* of zoom as the default behavior, a standard click method is still called.
*/
-InteractionModelTestCase.prototype.testClickCallbackIsCalled = function() {
+it('testClickCallbackIsCalled', function() {
var clicked;
var clickCallback = function(event, x) {
DygraphOps.dispatchMouseMove_Point(g, 10, 10);
DygraphOps.dispatchMouseUp_Point(g, 10, 10);
- assertEquals(20, clicked);
-};
+ assert.equal(20, clicked);
+});
/**
* This tests that when changing the interaction model so pan is used instead
* of zoom as the default behavior, a standard click method is still called.
*/
-InteractionModelTestCase.prototype.testClickCallbackIsCalledOnCustomPan = function() {
+it('testClickCallbackIsCalledOnCustomPan', function() {
var clicked;
var clickCallback = function(event, x) {
DygraphOps.dispatchMouseMove_Point(g, 10, 10);
DygraphOps.dispatchMouseUp_Point(g, 10, 10);
- assertEquals(20, clicked);
-};
+ assert.equal(20, clicked);
+});
var clickAt = function(g, x, y) {
DygraphOps.dispatchMouseDown(g, x, y);
/**
* This tests that clickCallback is still called with the nonInteractiveModel.
*/
-InteractionModelTestCase.prototype.testClickCallbackIsCalledWithNonInteractiveModel = function() {
+it('testClickCallbackIsCalledWithNonInteractiveModel', function() {
var clicked;
// TODO(danvk): also test pointClickCallback here.
DygraphOps.dispatchMouseMove_Point(g, 10, 10);
DygraphOps.dispatchMouseUp_Point(g, 10, 10);
- assertEquals(20, clicked);
-};
+ assert.equal(20, clicked);
+});
/**
* A sanity test to ensure pointClickCallback is called.
*/
-InteractionModelTestCase.prototype.testPointClickCallback = function() {
+it('testPointClickCallback', function() {
var clicked;
var g = new Dygraph(document.getElementById("graph"), data2, {
pointClickCallback : function(event, point) {
clickAt(g, 4, 40);
- assertEquals(4, clicked.xval);
- assertEquals(40, clicked.yval);
-};
+ assert.equal(4, clicked.xval);
+ assert.equal(40, clicked.yval);
+});
/**
* A sanity test to ensure pointClickCallback is not called when out of range.
*/
-InteractionModelTestCase.prototype.testNoPointClickCallbackWhenOffPoint = function() {
+it('testNoPointClickCallbackWhenOffPoint', function() {
var clicked;
var g = new Dygraph(document.getElementById("graph"), data2, {
pointClickCallback : function(event, point) {
clickAt(g, 5, 40);
- assertUndefined(clicked);
-};
+ assert.isUndefined(clicked);
+});
/**
* Ensures pointClickCallback circle size is taken into account.
*/
-InteractionModelTestCase.prototype.testPointClickCallback_circleSize = function() {
+it('testPointClickCallback_circleSize', function() {
// TODO(konigsberg): Implement.
-};
+});
/**
* Ensures that pointClickCallback is called prior to clickCallback
*/
-InteractionModelTestCase.prototype.testPointClickCallbackCalledPriorToClickCallback = function() {
+it('testPointClickCallbackCalledPriorToClickCallback', function() {
var counter = 0;
var pointClicked;
var clicked;
});
clickAt(g, 4, 40);
- assertEquals(1, pointClicked);
- assertEquals(2, clicked);
-};
+ assert.equal(1, pointClicked);
+ assert.equal(2, clicked);
+});
/**
* Ensures that when there's no pointClickCallback, clicking on a point still calls
* clickCallback
*/
-InteractionModelTestCase.prototype.testClickCallback_clickOnPoint = function() {
+it('testClickCallback_clickOnPoint', function() {
var clicked;
var g = new Dygraph(document.getElementById("graph"), data2, {
clickCallback : function(event, point) {
});
clickAt(g, 4, 40);
- assertEquals(1, clicked);
-};
+ assert.equal(1, clicked);
+});
-InteractionModelTestCase.prototype.testIsZoomed_none = function() {
+it('testIsZoomed_none', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
- assertFalse(g.isZoomed());
- assertFalse(g.isZoomed("x"));
- assertFalse(g.isZoomed("y"));
-};
+ assert.isFalse(g.isZoomed());
+ assert.isFalse(g.isZoomed("x"));
+ assert.isFalse(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testIsZoomed_x = function() {
+it('testIsZoomed_x', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
DygraphOps.dispatchMouseDown_Point(g, 100, 100);
DygraphOps.dispatchMouseMove_Point(g, 130, 100);
DygraphOps.dispatchMouseUp_Point(g, 130, 100);
- assertTrue(g.isZoomed());
- assertTrue(g.isZoomed("x"));
- assertFalse(g.isZoomed("y"));
-};
+ assert.isTrue(g.isZoomed());
+ assert.isTrue(g.isZoomed("x"));
+ assert.isFalse(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testIsZoomed_y = function() {
+it('testIsZoomed_y', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
DygraphOps.dispatchMouseDown_Point(g, 10, 10);
DygraphOps.dispatchMouseMove_Point(g, 10, 30);
DygraphOps.dispatchMouseUp_Point(g, 10, 30);
- assertTrue(g.isZoomed());
- assertFalse(g.isZoomed("x"));
- assertTrue(g.isZoomed("y"));
-};
+ assert.isTrue(g.isZoomed());
+ assert.isFalse(g.isZoomed("x"));
+ assert.isTrue(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testIsZoomed_both = function() {
+it('testIsZoomed_both', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
// Zoom x axis
DygraphOps.dispatchMouseUp_Point(g, 100, 130);
- assertTrue(g.isZoomed());
- assertTrue(g.isZoomed("x"));
- assertTrue(g.isZoomed("y"));
-};
+ assert.isTrue(g.isZoomed());
+ assert.isTrue(g.isZoomed("x"));
+ assert.isTrue(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testIsZoomed_updateOptions_none = function() {
+it('testIsZoomed_updateOptions_none', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
g.updateOptions({});
- assertFalse(g.isZoomed());
- assertFalse(g.isZoomed("x"));
- assertFalse(g.isZoomed("y"));
-};
+ assert.isFalse(g.isZoomed());
+ assert.isFalse(g.isZoomed("x"));
+ assert.isFalse(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testIsZoomed_updateOptions_x = function() {
+it('testIsZoomed_updateOptions_x', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
g.updateOptions({dateWindow: [-.5, .3]});
- assertTrue(g.isZoomed());
- assertTrue(g.isZoomed("x"));
- assertFalse(g.isZoomed("y"));
-};
+ assert.isTrue(g.isZoomed());
+ assert.isTrue(g.isZoomed("x"));
+ assert.isFalse(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testIsZoomed_updateOptions_y = function() {
+it('testIsZoomed_updateOptions_y', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
g.updateOptions({valueRange: [1, 10]});
- assertTrue(g.isZoomed());
- assertFalse(g.isZoomed("x"));
- assertTrue(g.isZoomed("y"));
-};
+ assert.isTrue(g.isZoomed());
+ assert.isFalse(g.isZoomed("x"));
+ assert.isTrue(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testIsZoomed_updateOptions_both = function() {
+it('testIsZoomed_updateOptions_both', function() {
var g = new Dygraph(document.getElementById("graph"), data2, {});
g.updateOptions({dateWindow: [-1, 1], valueRange: [1, 10]});
- assertTrue(g.isZoomed());
- assertTrue(g.isZoomed("x"));
- assertTrue(g.isZoomed("y"));
-};
+ assert.isTrue(g.isZoomed());
+ assert.isTrue(g.isZoomed("x"));
+ assert.isTrue(g.isZoomed("y"));
+});
-InteractionModelTestCase.prototype.testCorrectAxisValueRangeAfterUnzoom = function() {
+it('testCorrectAxisValueRangeAfterUnzoom', function() {
var g = new Dygraph(document.getElementById("graph"),
data2, {
valueRange: [1, 50],
DygraphOps.dispatchMouseDown_Point(g, 100, 100);
DygraphOps.dispatchMouseMove_Point(g, 100, 130);
DygraphOps.dispatchMouseUp_Point(g, 100, 130);
- currentYAxisRange = g.yAxisRange();
- currentXAxisRange = g.xAxisRange();
+ var currentYAxisRange = g.yAxisRange();
+ var currentXAxisRange = g.xAxisRange();
//check that the range for the axis has changed
- assertNotEquals(1, currentXAxisRange[0]);
- assertNotEquals(10, currentXAxisRange[1]);
- assertNotEquals(1, currentYAxisRange[0]);
- assertNotEquals(50, currentYAxisRange[1]);
+ assert.notEqual(1, currentXAxisRange[0]);
+ assert.notEqual(10, currentXAxisRange[1]);
+ assert.notEqual(1, currentYAxisRange[0]);
+ assert.notEqual(50, currentYAxisRange[1]);
// unzoom by doubleclick. This is really the order in which a browser
// generates events, and we depend on it.
// check if range for y-axis was reset to original value
// TODO check if range for x-axis is correct.
// Currently not possible because dateRange is set to null and extremes are returned
- newYAxisRange = g.yAxisRange();
- assertEquals(1, newYAxisRange[0]);
- assertEquals(50, newYAxisRange[1]);
-};
+ var newYAxisRange = g.yAxisRange();
+ assert.equal(1, newYAxisRange[0]);
+ assert.equal(50, newYAxisRange[1]);
+});
/**
* Ensures pointClickCallback is called when some points along the y-axis don't
* exist.
*/
-InteractionModelTestCase.prototype.testPointClickCallback_missingData = function() {
+it('testPointClickCallback_missingData', function() {
// There's a B-value at 2, but no A-value.
var data =
clickAt(g, 2, 110);
- assertEquals(2, clicked.xval);
- assertEquals(110, clicked.yval);
-};
+ assert.equal(2, clicked.xval);
+ assert.equal(110, clicked.yval);
+});
+
+});