X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2Frange_selector.js;h=1bba353611ddb22140aa4ba9057b5ed4c941aca9;hb=91e3b7f8b508d2ec2a03c2a2a0dc6bd32ad5ac6d;hp=a8b9459ec77d909dfff81bb8ae0ce12005ac4294;hpb=77a1405a7dea7e9de770583598a50e5907e6b1a1;p=dygraphs.git diff --git a/auto_tests/tests/range_selector.js b/auto_tests/tests/range_selector.js index a8b9459..1bba353 100644 --- a/auto_tests/tests/range_selector.js +++ b/auto_tests/tests/range_selector.js @@ -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 = "
"; + restoreConsole = Util.captureConsole(logs); }); afterEach(function() { + restoreConsole(); }); it('testRangeSelector', function() { @@ -216,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() { @@ -241,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() { @@ -391,9 +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) { + utils.getContext = function(canvas) { if (canvas.className != 'dygraph-rangesel-bgcanvas') { return origFunc(canvas); } @@ -423,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. @@ -440,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_(); @@ -470,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_(); @@ -503,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_(); @@ -533,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_(); @@ -562,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_(); @@ -592,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_(); @@ -607,6 +630,73 @@ it('testTwoCombinedSeriesCustomBars', function() { }, combinedSeries); }); +it('testHiddenSeriesExcludedFromMiniplot', function() { + var opts = { + showRangeSelector: true, + labels: ['X', 'Y1', 'Y2'], + visibility: [true, false] + }; + var data = [ + [0, 1, 3], // average = 2 + [5, 4, 6], // average = 5 + [10, 7, 9] // average = 8 + ]; + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, data, opts); + + var rangeSelector = g.getPluginInstance_(RangeSelectorPlugin); + assert.isNotNull(rangeSelector); + + // Invisible series (e.g. Y2) are not included in the combined series. + var combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_(); + assert.deepEqual({ + yMin: 1 - 6 * 0.25, // 25% padding on single series range. + yMax: 7 + 6 * 0.25, + data: [ + [0, 1], + [5, 4], + [10, 7] + ] + }, combinedSeries); + + // If Y2 is explicitly marked to be included in the range selector, + // then it will be (even if it's not visible). Since we've started being + // explicit about marking series for inclusion, this means that Y1 is no + // longer included. + g.updateOptions({ + series: { + Y2: { showInRangeSelector: true }, + } + }); + combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_(); + assert.deepEqual({ + yMin: 3 - 6 * 0.25, // 25% padding on combined series range. + yMax: 9 + 6 * 0.25, + data: [ + [0, 3], + [5, 6], + [10, 9] + ] + }, combinedSeries); + + // If we explicitly mark Y1, too, then it also gets included. + g.updateOptions({ + series: { + Y1: { showInRangeSelector: true }, + Y2: { showInRangeSelector: true }, + } + }); + combinedSeries = rangeSelector.computeCombinedSeriesAndLimits_(); + assert.deepEqual({ + yMin: 2 - 6 * 0.25, // 25% padding on combined series range. + yMax: 8 + 6 * 0.25, + data: [ + [0, 2], + [5, 5], + [10, 8] + ] + }, combinedSeries); +}); var assertGraphExistence = function(g, graph) { assert.isNotNull(g);