Down with gulp
[dygraphs.git] / auto_tests / tests / range_selector.js
index 933cacf..82884c8 100644 (file)
@@ -4,13 +4,28 @@
  * @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() {
@@ -183,8 +198,13 @@ it('testRangeSelectorEnablingAfterCreation', 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.
@@ -211,6 +231,10 @@ it('testRangeSelectorWithAnimatedZoomsOption', function() {
   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() {
@@ -236,6 +260,10 @@ 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() {
@@ -386,10 +414,9 @@ it('testRangeSelectorPositionIfXAxisNotDrawn', 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);
     }
@@ -419,7 +446,7 @@ it('testMiniPlotDrawn', function() {
   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.
@@ -436,7 +463,7 @@ it('testSingleCombinedSeries', function() {
   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_();
@@ -466,7 +493,7 @@ it('testCombinedSeries', function() {
   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_();
@@ -499,7 +526,7 @@ it('testSelectedCombinedSeries', function() {
   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_();
@@ -529,7 +556,7 @@ it('testSingleCombinedSeriesCustomBars', function() {
   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_();
@@ -558,7 +585,7 @@ it('testSingleCombinedSeriesErrorBars', function() {
   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_();
@@ -588,7 +615,7 @@ it('testTwoCombinedSeriesCustomBars', function() {
   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_();