Add sanity drawPointCallback tests.
[dygraphs.git] / auto_tests / tests / callback.js
1 /**
2 * @fileoverview Test cases for the callbacks.
3 *
4 * @author uemit.seren@gmail.com (Ümit Seren)
5 */
6
7 var CallbackTestCase = TestCase("callback");
8
9 CallbackTestCase.prototype.setUp = function() {
10 document.body.innerHTML = "<div id='graph'></div>";
11 };
12
13 CallbackTestCase.prototype.tearDown = function() {
14 };
15
16 var data = "X,a\,b,c\n" +
17 "10,-1,1,2\n" +
18 "11,0,3,1\n" +
19 "12,1,4,2\n" +
20 "13,0,2,3\n";
21
22
23 /**
24 * This tests that when the function idxToRow_ returns the proper row and the onHiglightCallback
25 * is properly called when the first series is hidden (setVisibility = false)
26 *
27 */
28 CallbackTestCase.prototype.testHighlightCallbackIsCalled = function() {
29 var h_row;
30 var h_pts;
31
32 var highlightCallback = function(e, x, pts, row) {
33 h_row = row;
34 h_pts = pts;
35 };
36
37 var graph = document.getElementById("graph");
38 var g = new Dygraph(graph, data,
39 {
40 width: 100,
41 height : 100,
42 visibility: [false, true, true],
43 highlightCallback : highlightCallback,
44 });
45
46 DygraphOps.dispatchMouseMove(g, 13, 10);
47
48 //check correct row is returned
49 assertEquals(3, h_row);
50 //check there are only two points (because first series is hidden)
51 assertEquals(2, h_pts.length);
52 };
53
54
55 /**
56 * Test that drawPointCallback isn't called when drawPoints is false
57 */
58 CallbackTestCase.prototype.testDrawPointCallback_disabled = function() {
59 var called = false;
60
61 var callback = function() {
62 called = true;
63 };
64
65 var graph = document.getElementById("graph");
66 var g = new Dygraph(graph, data, {
67 drawPointCallback : callback,
68 });
69
70 assertFalse(called);
71 };
72
73 /**
74 * Test that drawPointCallback is called when drawPoints is true
75 */
76 CallbackTestCase.prototype.testDrawPointCallback_enabled = function() {
77 var called = false;
78
79 var callback = function() {
80 called = true;
81 };
82
83 var graph = document.getElementById("graph");
84 var g = new Dygraph(graph, data, {
85 drawPoints : true,
86 drawPointCallback : callback
87 });
88
89 assertTrue(called);
90 };
91 // TODO * @fileoverview Test cases for drawPointCallback and drawHighlightCallback