* @fileoverview Regression tests for range selector.
* @author paul.eric.felix@gmail.com (Paul Felix)
*/
+
+import Dygraph from '../../src/dygraph';
+import * as utils from '../../src/dygraph-utils';
+import RangeSelectorPlugin from '../../src/plugins/range-selector';
+
+import Util from './Util';
+import DygraphOps from './DygraphOps';
+import CanvasAssertions from './CanvasAssertions';
+import Proxy from './Proxy';
+
describe("range-selector", function() {
+cleanupAfterEach();
+
+var restoreConsole;
+var logs = {};
beforeEach(function() {
- document.body.innerHTML = "<div id='graph'></div>";
+ restoreConsole = Util.captureConsole(logs);
});
afterEach(function() {
+ restoreConsole();
});
it('testRangeSelector', function() {
];
var graph = document.getElementById("graph");
var g = new Dygraph(graph, data, opts);
+ var initialChartHeight = g.getArea().h;
g.updateOptions({showRangeSelector: true});
assertGraphExistence(g, graph);
+ assert(g.getArea().h < initialChartHeight); // range selector shown
+
+ g.updateOptions({showRangeSelector: false});
+ assert.equal(g.getArea().h, initialChartHeight); // range selector hidden
});
// The animatedZooms option does not work with the range selector. Make sure it gets turned off.
var g = new Dygraph(graph, data, opts);
assertGraphExistence(g, graph);
assert.isFalse(g.getOption('animatedZooms'));
+ assert.deepEqual(logs, {
+ log: [], error: [],
+ warn: ["Animated zooms and range selector are not compatible; disabling animatedZooms."]
+ });
});
it('testRangeSelectorWithAnimatedZoomsOption2', function() {
g.updateOptions({showRangeSelector: true});
assertGraphExistence(g, graph);
assert.isFalse(g.getOption('animatedZooms'));
+ assert.deepEqual(logs, {
+ log: [], error: [],
+ warn: ["Animated zooms and range selector are not compatible; disabling animatedZooms."]
+ });
});
it('testRangeSelectorInteraction', function() {
it('testMiniPlotDrawn', function() {
// Install Proxy to track canvas calls.
- var origFunc = Dygraph.getContext;
+ var origFunc = utils.getContext;
var miniHtx;
- Dygraph.getContext = function(canvas) {
- console.log(canvas.className);
+ utils.getContext = function(canvas) {
if (canvas.className != 'dygraph-rangesel-bgcanvas') {
return origFunc(canvas);
}
assert.isNotNull(miniHtx);
assert.isTrue(0 < CanvasAssertions.numLinesDrawn(miniHtx, '#ff0000'));
- Dygraph.getContext = origFunc;
+ utils.getContext = origFunc;
});
// Tests data computation for the mini plot with a single series.
var graph = document.getElementById("graph");
var g = new Dygraph(graph, data, opts);
- var rangeSelector = g.getPluginInstance_(Dygraph.Plugins.RangeSelector);
+ var rangeSelector = g.getPluginInstance_(RangeSelectorPlugin);
assert.isNotNull(rangeSelector);
var combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_();
var graph = document.getElementById("graph");
var g = new Dygraph(graph, data, opts);
- var rangeSelector = g.getPluginInstance_(Dygraph.Plugins.RangeSelector);
+ var rangeSelector = g.getPluginInstance_(RangeSelectorPlugin);
assert.isNotNull(rangeSelector);
var combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_();
var graph = document.getElementById("graph");
var g = new Dygraph(graph, data, opts);
- var rangeSelector = g.getPluginInstance_(Dygraph.Plugins.RangeSelector);
+ var rangeSelector = g.getPluginInstance_(RangeSelectorPlugin);
assert.isNotNull(rangeSelector);
var combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_();
var graph = document.getElementById("graph");
var g = new Dygraph(graph, data, opts);
- var rangeSelector = g.getPluginInstance_(Dygraph.Plugins.RangeSelector);
+ var rangeSelector = g.getPluginInstance_(RangeSelectorPlugin);
assert.isNotNull(rangeSelector);
var combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_();
var graph = document.getElementById("graph");
var g = new Dygraph(graph, data, opts);
- var rangeSelector = g.getPluginInstance_(Dygraph.Plugins.RangeSelector);
+ var rangeSelector = g.getPluginInstance_(RangeSelectorPlugin);
assert.isNotNull(rangeSelector);
var combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_();
var graph = document.getElementById("graph");
var g = new Dygraph(graph, data, opts);
- var rangeSelector = g.getPluginInstance_(Dygraph.Plugins.RangeSelector);
+ var rangeSelector = g.getPluginInstance_(RangeSelectorPlugin);
assert.isNotNull(rangeSelector);
var combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_();