From: Robert Konigsberg Date: Sun, 30 Dec 2012 16:07:00 +0000 (-0500) Subject: Merge branch 'master' of github.com:danvk/dygraphs X-Git-Tag: v1.0.0~134^2 X-Git-Url: https://adrianiainlam.tk/git/?a=commitdiff_plain;h=901b2ebbe25c116c93550cfca91b0704d751d997;hp=-c;p=dygraphs.git Merge branch 'master' of github.com:danvk/dygraphs Conflicts: auto_tests/tests/Util.js auto_tests/tests/axis_labels.js --- 901b2ebbe25c116c93550cfca91b0704d751d997 diff --combined auto_tests/tests/Util.js index 1fce3a0,6469bc6..3eb59e3 --- a/auto_tests/tests/Util.js +++ b/auto_tests/tests/Util.js @@@ -19,7 -19,7 +19,7 @@@ Util.getYLabels = function(axis_num, pa ary.push(y_labels[i].innerHTML); } return ary; -} +}; /** * Get the x-labels for a given axis. @@@ -34,7 -34,7 +34,7 @@@ Util.getXLabels = function(parent) ary.push(x_labels[i].innerHTML); } return ary; -} +}; /** * Returns all text in tags w/ a given css class, sorted. @@@ -49,33 -49,22 +49,45 @@@ Util.getClassTexts = function(css_class } texts.sort(); return texts; -} +}; Util.getLegend = function(parent) { parent = parent || document; var legend = parent.getElementsByClassName("dygraph-legend")[0]; return legend.textContent; -} +}; + +/** + * Assert that all the elements in 'parent' with class 'className' is + * the expected font size. + */ +Util.assertFontSizes = function(parent, className, expectedSize) { + var expectedSizePx = expectedSize + "px"; + var labels = parent.getElementsByClassName(className); + assertTrue(labels.length > 0); + + // window.getComputedStyle is apparently compatible with all browsers + // (IE first became compatible with IE9.) + // If this test fails on earlier browsers, then enable something like this, + // because the font size is set by the parent div. + // if (!window.getComputedStyle) { + // fontSize = label.parentElement.style.fontSize; + // } + for (var idx = 0; idx < labels.length; idx++) { + var label = labels[idx]; + var fontSize = window.getComputedStyle(label).fontSize; + assertEquals(expectedSizePx, fontSize); + } +}; + + + /** + * Takes in an array of strings and returns an array of floats. + */ + Util.makeNumbers = function(ary) { + var ret = []; + for (var i = 0; i < ary.length; i++) { + ret.push(parseFloat(ary[i])); + } + return ret; -} ++}; diff --combined auto_tests/tests/axis_labels.js index 00f3913,2eb7f4d..56ddf3d --- a/auto_tests/tests/axis_labels.js +++ b/auto_tests/tests/axis_labels.js @@@ -14,21 -14,10 +14,10 @@@ AxisLabelsTestCase.prototype.tearDown AxisLabelsTestCase.simpleData = "X,Y,Y2\n" + - "0,-1,0.25\n" + - "1,0,0.5\n" + - "2,1,0.9\n" + - "3,0,0.7\n"; - - /** - * Takes in an array of strings and returns an array of floats. - */ - function makeNumbers(ary) { - var ret = []; - for (var i = 0; i < ary.length; i++) { - ret.push(parseFloat(ary[i])); - } - return ret; - } + "0,-1,.5\n" + + "1,0,.7\n" + + "2,1,.4\n" + + "3,0,.98\n"; AxisLabelsTestCase.prototype.kCloseFloat = 1.0e-10; @@@ -85,18 -74,18 +74,18 @@@ AxisLabelsTestCase.prototype.testSmallR var graph = document.getElementById("graph"); var g = new Dygraph(graph, data, opts); - assertEqualsDelta(makeNumbers(["-0.1","-0.08","-0.06","-0.04","-0.02","0","0.02","0.04","0.06","0.08"]), - makeNumbers(Util.getYLabels()), this.kCloseFloat); + assertEqualsDelta([-0.1, -0.08, -0.06, -0.04, -0.02, 0, 0.02, 0.04, 0.06, 0.08], + Util.makeNumbers(Util.getYLabels()), this.kCloseFloat); opts.valueRange = [-0.05, 0.05]; g.updateOptions(opts); - // TODO(danvk): why '1.00e-2' and not '0.01'? - assertEquals(makeNumbers(["-0.05","-0.04","-0.03","-0.02","-0.01","0","1.00e-2","0.02","0.03","0.04"]), - makeNumbers(Util.getYLabels())); + assertEquals([-0.05, -0.04, -0.03, -0.02, -0.01, 0, 0.01, 0.02, 0.03, 0.04], + Util.makeNumbers(Util.getYLabels())); opts.valueRange = [-0.01, 0.01]; g.updateOptions(opts); - assertEquals(makeNumbers(["-0.01","-8.00e-3","-6.00e-3","-4.00e-3","-2.00e-3","0","2.00e-3","4.00e-3","6.00e-3","8.00e-3"]), makeNumbers(Util.getYLabels())); + assertEquals([-0.01, -8.00e-3, -6.00e-3, -4.00e-3, -2.00e-3, 0, 2.00e-3, 4.00e-3, 6.00e-3, 8.00e-3], + Util.makeNumbers(Util.getYLabels())); g.setSelection(1); assertEquals('1: Y:0', Util.getLegend()); @@@ -577,16 -566,108 +566,87 @@@ AxisLabelsTestCase.prototype.testInclud assertEquals(['500','600','700','800','900','1000'], Util.getYLabels()); } + AxisLabelsTestCase.prototype.testAxisLabelFontSize = function() { + var graph = document.getElementById("graph"); + var g = new Dygraph(graph, AxisLabelsTestCase.simpleData, {}); + var assertSize = function(className, size) { + var sizePx = size + "px"; + var labels = graph.getElementsByClassName(className); + assertTrue(labels.length > 0); + + // window.getComputedStyle is apparently compatible with all browsers + // (IE first became compatible with IE9.) + // If this test fails on earlier browsers, then enable something like this, + // because the font size is set by the parent div. + // if (!window.getComputedStyle) { + // fontSize = label.parentElement.style.fontSize; + // } + for (var idx = 0; idx < labels.length; idx++) { + var label = labels[idx]; + var fontSize = window.getComputedStyle(label).fontSize; + assertEquals(sizePx, fontSize); + } + } + + // Be sure we're dealing with a 14-point default. + assertEquals(14, Dygraph.DEFAULT_ATTRS.axisLabelFontSize); + + assertSize("dygraph-axis-label-x", 14); + assertSize("dygraph-axis-label-y", 14); + + g.updateOptions({ axisLabelFontSize : 8}); + assertSize("dygraph-axis-label-x", 8); + assertSize("dygraph-axis-label-y", 8); + + /* + Enable these tests when https://code.google.com/p/dygraphs/issues/detail?id=126 + is fixed. + + g.updateOptions({ + axisLabelFontSize : null, + axes : { + x : { axisLabelFontSize : 5 }, + } + }); + + assertSize("dygraph-axis-label-x", 5); + assertSize("dygraph-axis-label-y", 14); + + g.updateOptions({ + axisLabelFontSize : null, + axes : { + y : { axisLabelFontSize : 3 }, + } + }); + + assertSize("dygraph-axis-label-x", 5); + assertSize("dygraph-axis-label-y", 3); + + g.updateOptions({ + series : { + Y2 : { axis : "y2" } // copy y2 series to y2 axis. + }, + axes : { + y2 : { axisLabelFontSize : 8 }, + } + }); + + assertSize("dygraph-axis-label-x", 5); + assertSize("dygraph-axis-label-y", 3); + assertSize("dygraph-axis-label-y2", 8); + */ + } + -/* - * This test will pass when - * https://code.google.com/p/dygraphs/issues/detail?id=413 - * is fixed. -AxisLabelsTestCase.prototype.testAxisLabelFontSize2 = function() { +AxisLabelsTestCase.prototype.testAxisLabelFontSizeNull = function() { var graph = document.getElementById("graph"); var g = new Dygraph(graph, AxisLabelsTestCase.simpleData, - {axisLabelFontSize: undefined}); - var assertSize = function(className, size) { - var sizePx = size + "px"; - var labels = graph.getElementsByClassName(className); - assertTrue(labels.length > 0); - - // window.getComputedStyle is apparently compatible with all browsers - // (IE first became compatible with IE9.) - // If this test fails on earlier browsers, then enable something like this, - // because the font size is set by the parent div. - // if (!window.getComputedStyle) { - // fontSize = label.parentElement.style.fontSize; - // } - for (var idx = 0; idx < labels.length; idx++) { - var label = labels[idx]; - var fontSize = window.getComputedStyle(label).fontSize; - assertEquals(sizePx, fontSize); - } - } + { + axisLabelFontSize: null + }); // Be sure we're dealing with a 14-point default. assertEquals(14, Dygraph.DEFAULT_ATTRS.axisLabelFontSize); - assertSize("dygraph-axis-label-x", 14); - assertSize("dygraph-axis-label-y", 14); + Util.assertFontSizes(graph, "dygraph-axis-label-x", 14); + Util.assertFontSizes(graph, "dygraph-axis-label-y", 14); } -*/