+AxisLabelsTestCase.prototype.testValueFormatterParameters = function() {
+ var calls = [];
+ // change any functions in list to 'fn' -- functions can't be asserted.
+ var killFunctions = function(list) {
+ var out = [];
+ for (var i = 0; i < list.length; i++) {
+ if (typeof(list[i]) == 'function') {
+ out[i] = 'fn';
+ } else {
+ out[i] = list[i];
+ }
+ }
+ return out;
+ };
+ var taggedRecorder = function(tag) {
+ return function() {
+ calls.push([tag].concat([this], killFunctions(arguments)));
+ return '';
+ }
+ };
+ var opts = {
+ axes: {
+ x: { valueFormatter: taggedRecorder('x') },
+ y: { valueFormatter: taggedRecorder('y') },
+ y2: { valueFormatter: taggedRecorder('y2') }
+ },
+ series: {
+ 'y1': { axis: 'y1'},
+ 'y2': { axis: 'y2'}
+ },
+ labels: ['x', 'y1', 'y2']
+ };
+ var data = [
+ [0, 1, 2],
+ [1, 3, 4]
+ ];
+ var graph = document.getElementById('graph');
+ var g = new Dygraph(graph, data, opts);
+
+ assertEquals([], calls);
+ g.setSelection(0);
+ assertEquals([
+ // num or millis, opts, series, dygraph, row, col
+ [ 'x', g, 0, 'fn', 'x', g, 0, 0],
+ [ 'y', g, 1, 'fn', 'y1', g, 0, 1],
+ ['y2', g, 2, 'fn', 'y2', g, 0, 2]
+ ], calls);
+
+ calls = [];
+ g.setSelection(1);
+ assertEquals([
+ [ 'x', g, 1, 'fn', 'x', g, 1, 0],
+ [ 'y', g, 3, 'fn', 'y1', g, 1, 1],
+ ['y2', g, 4, 'fn', 'y2', g, 1, 2]
+ ], calls);
+};
+