123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627 |
- // Copyright 2007 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- goog.provide('goog.ui.ServerChartTest');
- goog.setTestOnly('goog.ui.ServerChartTest');
- goog.require('goog.Uri');
- goog.require('goog.events');
- goog.require('goog.testing.jsunit');
- goog.require('goog.ui.ServerChart');
- function testSchemeIndependentBarChartRequest() {
- var bar = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.BAR, 180, 104, null);
- tryToCreateBarChart(bar);
- var uri = bar.getUri();
- var schemeIndependentUri =
- new goog.Uri(goog.ui.ServerChart.CHART_SERVER_SCHEME_INDEPENDENT_URI);
- assertEquals('', uri.getScheme());
- assertEquals(schemeIndependentUri.getDomain(), uri.getDomain());
- }
- function testHttpBarChartRequest() {
- var bar = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.BAR, 180, 104, null,
- goog.ui.ServerChart.CHART_SERVER_HTTP_URI);
- tryToCreateBarChart(bar);
- var uri = bar.getUri();
- var httpUri = new goog.Uri(goog.ui.ServerChart.CHART_SERVER_HTTP_URI);
- assertEquals('http', uri.getScheme());
- assertEquals(httpUri.getDomain(), uri.getDomain());
- }
- function testHttpsBarChartRequest() {
- var bar = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.BAR, 180, 104, null,
- goog.ui.ServerChart.CHART_SERVER_HTTPS_URI);
- tryToCreateBarChart(bar);
- var uri = bar.getUri();
- var httpsUri = new goog.Uri(goog.ui.ServerChart.CHART_SERVER_HTTPS_URI);
- assertEquals('https', uri.getScheme());
- assertEquals(httpsUri.getDomain(), uri.getDomain());
- }
- function testMinValue() {
- var pie =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.PIE3D, 180, 104);
- pie.addDataSet([1, 2, 3], '000000');
- assertEquals(pie.getMinValue(), 0);
- var line =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.LINE, 180, 104);
- line.addDataSet([1, 2, 3], '000000');
- assertEquals(line.getMinValue(), 1);
- }
- function testMargins() {
- var pie =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.PIE3D, 180, 104);
- pie.setMargins(1, 2, 3, 4);
- assertEquals(
- '1,2,3,4',
- pie.getUri().getParameterValue(goog.ui.ServerChart.UriParam.MARGINS));
- }
- function testSetParameterValue() {
- var scatter =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.SCATTER, 180, 104);
- var key = goog.ui.ServerChart.UriParam.DATA_COLORS;
- var value = '000000,FF0000|00FF00|0000FF';
- scatter.setParameterValue(key, value);
- assertEquals(
- 'unexpected parameter value', value,
- scatter.getUri().getParameterValue(key));
- scatter.removeParameter(key);
- assertUndefined(
- 'parameter not removed', scatter.getUri().getParameterValue(key));
- }
- function testTypes() {
- var chart;
- chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.CONCENTRIC_PIE, 180, 104);
- assertTrue(chart.isPieChart());
- assertFalse(chart.isBarChart());
- assertFalse(chart.isMap());
- assertFalse(chart.isLineChart());
- chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_GROUPED_BAR, 180, 104);
- assertFalse(chart.isPieChart());
- assertTrue(chart.isBarChart());
- assertTrue(chart.isHorizontalBarChart());
- assertTrue(chart.isGroupedBarChart());
- assertFalse(chart.isVerticalBarChart());
- assertFalse(chart.isStackedBarChart());
- chart = new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.BAR, 180, 104);
- assertTrue(chart.isBarChart());
- assertTrue(chart.isStackedBarChart());
- assertFalse(chart.isGroupedBarChart());
- chart =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.XYLINE, 180, 104);
- assertTrue('I thought lxy was a line chart', chart.isLineChart());
- assertFalse('lxy is definitely not a pie chart', chart.isPieChart());
- }
- function testBarChartRequest() {
- var bar =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.BAR, 180, 104);
- tryToCreateBarChart(bar);
- var httpUri = new goog.Uri(goog.ui.ServerChart.CHART_SERVER_URI);
- var uri = bar.getUri();
- assertEquals(httpUri.getDomain(), uri.getDomain());
- }
- function tryToCreateBarChart(bar) {
- bar.addDataSet([8, 23, 7], '008000');
- bar.addDataSet([31, 11, 7], 'ffcc33');
- bar.addDataSet([2, 43, 70, 3, 43, 74], '3072f3');
- bar.setLeftLabels(['', '20K', '', '60K', '', '100K']);
- bar.setXLabels(['O', 'N', 'D']);
- bar.setMaxValue(100);
- var uri = bar.getUri();
- assertEquals('br', uri.getParameterValue(goog.ui.ServerChart.UriParam.TYPE));
- assertEquals(
- '180x104', uri.getParameterValue(goog.ui.ServerChart.UriParam.SIZE));
- assertEquals(
- 'e:D6NtDQ,S7F4DQ,AAaxsZApaxvA',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- assertEquals(
- '008000,ffcc33,3072f3',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA_COLORS));
- assertEquals(
- '100K||60K||20K|',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.LEFT_Y_LABELS));
- assertEquals(
- 'O|N|D', uri.getParameterValue(goog.ui.ServerChart.UriParam.X_LABELS));
- }
- function testClearDataSets() {
- var chart =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.BAR, 180, 104);
- tryToCreateBarChart(chart);
- var uriBefore = chart.getUri();
- chart.clearDataSets();
- var chart =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.BAR, 180, 104);
- tryToCreateBarChart(chart);
- var uriAfter = chart.getUri();
- assertEquals(uriBefore.getScheme(), uriAfter.getScheme());
- assertEquals(uriBefore.getDomain(), uriAfter.getDomain());
- assertEquals(uriBefore.getPath(), uriAfter.getPath());
- }
- function testMultipleDatasetsTextEncoding() {
- var chart =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.BAR, 180, 104);
- chart.setEncodingType(goog.ui.ServerChart.EncodingType.TEXT);
- chart.addDataSet([0, 25, 100], '008000');
- chart.addDataSet([12, 2, 7.1], '112233');
- chart.addDataSet([82, 16, 2], '3072f3');
- var uri = chart.getUri();
- assertEquals(
- 't:0,25,100|12,2,7.1|82,16,2',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- }
- function testVennDiagramRequest() {
- var venn =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.VENN, 300, 200);
- venn.setTitle('Google Employees');
- var weights = [
- 80, // Size of circle A
- 60, // Size of circle B
- 40, // Size of circle C
- 20, // Overlap of A and B
- 20, // Overlap of A and C
- 20, // Overlap of B and C
- 5
- ]; // Overlap of A, B and C
- var labels = [
- 'C Hackers', // Label for A
- 'LISP Gurus', // Label for B
- 'Java Jockeys'
- ]; // Label for C
- venn.setVennSeries(weights, labels);
- var uri = venn.getUri();
- var httpUri = new goog.Uri(goog.ui.ServerChart.CHART_SERVER_URI);
- assertEquals(httpUri.getDomain(), uri.getDomain());
- assertEquals('v', uri.getParameterValue(goog.ui.ServerChart.UriParam.TYPE));
- assertEquals(
- '300x200', uri.getParameterValue(goog.ui.ServerChart.UriParam.SIZE));
- assertEquals(
- 'e:..u7d3MzMzMzAA',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- assertEquals(
- 'Google Employees',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.TITLE));
- assertEquals(
- labels.join('|'),
- uri.getParameterValue(goog.ui.ServerChart.UriParam.LEGEND_TEXTS));
- }
- function testSparklineChartRequest() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.SPARKLINE, 300, 200);
- chart.addDataSet([8, 23, 7], '008000');
- chart.addDataSet([31, 11, 7], 'ffcc33');
- chart.addDataSet([2, 43, 70, 3, 43, 74], '3072f3');
- chart.setLeftLabels(['', '20K', '', '60K', '', '100K']);
- chart.setXLabels(['O', 'N', 'D']);
- chart.setMaxValue(100);
- var uri = chart.getUri();
- assertEquals('ls', uri.getParameterValue(goog.ui.ServerChart.UriParam.TYPE));
- assertEquals(
- '300x200', uri.getParameterValue(goog.ui.ServerChart.UriParam.SIZE));
- assertEquals(
- 'e:D6NtDQ,S7F4DQ,AAaxsZApaxvA',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- assertEquals(
- '008000,ffcc33,3072f3',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA_COLORS));
- assertEquals(
- '100K||60K||20K|',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.LEFT_Y_LABELS));
- assertEquals(
- 'O|N|D', uri.getParameterValue(goog.ui.ServerChart.UriParam.X_LABELS));
- }
- function testLegendPositionRequest() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.SPARKLINE, 300, 200);
- chart.addDataSet([0, 100], '008000', 'foo');
- chart.setLegendPosition(goog.ui.ServerChart.LegendPosition.TOP);
- assertEquals('t', chart.getLegendPosition());
- var uri = chart.getUri();
- assertEquals(
- 't', uri.getParameterValue(goog.ui.ServerChart.UriParam.LEGEND_POSITION));
- }
- function testSetGridParameter() {
- var gridArg = '20,20,4,4';
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.SPARKLINE, 300, 200);
- chart.addDataSet([0, 100], '008000', 'foo');
- chart.setGridParameter(gridArg);
- assertEquals(gridArg, chart.getGridParameter());
- var uri = chart.getUri();
- assertEquals(
- gridArg, uri.getParameterValue(goog.ui.ServerChart.UriParam.GRID));
- }
- function testSetMarkerParameter() {
- var markerArg = 's,FF0000,0,-1,5';
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.SPARKLINE, 300, 200);
- chart.addDataSet([0, 100], '008000', 'foo');
- chart.setMarkerParameter(markerArg);
- assertEquals(markerArg, chart.getMarkerParameter());
- var uri = chart.getUri();
- assertEquals(
- markerArg, uri.getParameterValue(goog.ui.ServerChart.UriParam.MARKERS));
- }
- function testNullDataPointRequest() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.SPARKLINE, 300, 200);
- chart.addDataSet([40, null, 10], '008000');
- assertEquals(10, chart.getMinValue());
- assertEquals(40, chart.getMaxValue());
- var uri = chart.getUri();
- assertEquals(
- 'e:..__AA', uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.SPARKLINE, 300, 200);
- chart.addDataSet([-5, null, -1], '008000');
- assertEquals(-5, chart.getMinValue());
- assertEquals(-1, chart.getMaxValue());
- uri = chart.getUri();
- assertEquals(
- 'e:AA__..', uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- }
- function testSetBarSpaceWidths() {
- var noSpaceBetweenBarsSpecified = '20';
- var noSpaceBetweenBarsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.VERTICAL_STACKED_BAR);
- noSpaceBetweenBarsChart.setBarSpaceWidths(20);
- var uri = noSpaceBetweenBarsChart.getUri();
- assertEquals(
- noSpaceBetweenBarsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- var spaceBetweenBarsSpecified = '20,5';
- var spaceBetweenBarsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR);
- spaceBetweenBarsChart.setBarSpaceWidths(20, 5);
- var uri = spaceBetweenBarsChart.getUri();
- assertEquals(
- spaceBetweenBarsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- var spaceBetweenGroupsSpecified = '20,5,6';
- var spaceBetweenGroupsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR);
- spaceBetweenGroupsChart.setBarSpaceWidths(20, 5, 6);
- var uri = spaceBetweenGroupsChart.getUri();
- assertEquals(
- spaceBetweenGroupsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- var groupsButNotBarsSpecified = '20,6';
- var groupsButNotBarsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR);
- groupsButNotBarsChart.setBarSpaceWidths(20, undefined, 6);
- var uri = groupsButNotBarsChart.getUri();
- assertEquals(
- groupsButNotBarsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- }
- function testSetAutomaticBarWidth() {
- var noSpaceBetweenBarsSpecified = 'a';
- var noSpaceBetweenBarsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.VERTICAL_STACKED_BAR);
- noSpaceBetweenBarsChart.setAutomaticBarWidth();
- var uri = noSpaceBetweenBarsChart.getUri();
- assertEquals(
- noSpaceBetweenBarsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- var spaceBetweenBarsSpecified = 'a,5';
- var spaceBetweenBarsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR);
- spaceBetweenBarsChart.setAutomaticBarWidth(5);
- uri = spaceBetweenBarsChart.getUri();
- assertEquals(
- spaceBetweenBarsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- var spaceBetweenGroupsSpecified = 'a,5,6';
- var spaceBetweenGroupsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR);
- spaceBetweenGroupsChart.setAutomaticBarWidth(5, 6);
- uri = spaceBetweenGroupsChart.getUri();
- assertEquals(
- spaceBetweenGroupsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- var groupsButNotBarsSpecified = 'a,6';
- var groupsButNotBarsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR);
- groupsButNotBarsChart.setAutomaticBarWidth(undefined, 6);
- uri = groupsButNotBarsChart.getUri();
- assertEquals(
- groupsButNotBarsSpecified,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.BAR_HEIGHT));
- }
- function testSetDataScaling() {
- var dataScalingArg = '0,160';
- var dataArg = 't:0,50,100,130';
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.VERTICAL_STACKED_BAR, 300, 200);
- chart.addDataSet([0, 50, 100, 130], '008000');
- chart.setDataScaling(0, 160);
- var uri = chart.getUri();
- assertEquals(
- dataScalingArg,
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA_SCALING));
- assertEquals(
- dataArg, uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- }
- function testSetMultiAxisLabelStyle() {
- var noFontSizeChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR, 300, 200);
- noFontSizeChart.addDataSet([0, 50, 100, 130], '008000');
- var axisNumber = noFontSizeChart.addMultiAxis(
- goog.ui.ServerChart.MultiAxisType.LEFT_Y_AXIS);
- var noFontSizeArgs = axisNumber + ',009000';
- noFontSizeChart.setMultiAxisLabelStyle(axisNumber, '009000');
- var noFontSizeUri = noFontSizeChart.getUri();
- assertEquals(
- noFontSizeArgs, noFontSizeUri.getParameterValue(
- goog.ui.ServerChart.UriParam.MULTI_AXIS_STYLE));
- var noAlignChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR, 300, 200);
- noAlignChart.addDataSet([0, 50, 100, 130], '008000');
- var xAxisNumber =
- noAlignChart.addMultiAxis(goog.ui.ServerChart.MultiAxisType.X_AXIS);
- var yAxisNumber =
- noAlignChart.addMultiAxis(goog.ui.ServerChart.MultiAxisType.LEFT_Y_AXIS);
- var noAlignArgs = xAxisNumber + ',009000,12|' + yAxisNumber + ',007000,14';
- noAlignChart.setMultiAxisLabelStyle(xAxisNumber, '009000', 12);
- noAlignChart.setMultiAxisLabelStyle(yAxisNumber, '007000', 14);
- var noAlignUri = noAlignChart.getUri();
- assertEquals(
- noAlignArgs, noAlignUri.getParameterValue(
- goog.ui.ServerChart.UriParam.MULTI_AXIS_STYLE));
- var noLineTicksChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR, 300, 200);
- noLineTicksChart.addDataSet([0, 50, 100, 130], '008000');
- axisNumber = noLineTicksChart.addMultiAxis(
- goog.ui.ServerChart.MultiAxisType.LEFT_Y_AXIS);
- var noLineTicksArgs = axisNumber + ',009000,12,0';
- noLineTicksChart.setMultiAxisLabelStyle(
- axisNumber, '009000', 12,
- goog.ui.ServerChart.MultiAxisAlignment.ALIGN_CENTER);
- var noLineTicksUri = noLineTicksChart.getUri();
- assertEquals(
- noLineTicksArgs, noLineTicksUri.getParameterValue(
- goog.ui.ServerChart.UriParam.MULTI_AXIS_STYLE));
- var allParamsChart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR, 300, 200);
- allParamsChart.addDataSet([0, 50, 100, 130], '008000');
- axisNumber = allParamsChart.addMultiAxis(
- goog.ui.ServerChart.MultiAxisType.LEFT_Y_AXIS);
- var allParamsArgs = axisNumber + ',009000,12,0,lt';
- allParamsChart.setMultiAxisLabelStyle(
- axisNumber, '009000', 12,
- goog.ui.ServerChart.MultiAxisAlignment.ALIGN_CENTER,
- goog.ui.ServerChart.AxisDisplayType.LINE_AND_TICKS);
- var allParamsUri = allParamsChart.getUri();
- assertEquals(
- allParamsArgs, allParamsUri.getParameterValue(
- goog.ui.ServerChart.UriParam.MULTI_AXIS_STYLE));
- }
- function testSetBackgroundFill() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR, 300, 200);
- assertEquals(0, chart.getBackgroundFill().length);
- chart.setBackgroundFill([{color: '00ff00'}]);
- assertObjectEquals(
- {area: 'bg', effect: 's', color: '00ff00'}, chart.getBackgroundFill()[0]);
- chart.setBackgroundFill([{color: '00ff00'}, {area: 'c', color: '00ff00'}]);
- assertObjectEquals(
- {area: 'bg', effect: 's', color: '00ff00'}, chart.getBackgroundFill()[0]);
- assertObjectEquals(
- {area: 'c', effect: 's', color: '00ff00'}, chart.getBackgroundFill()[1]);
- chart.setParameterValue(
- goog.ui.ServerChart.UriParam.BACKGROUND_FILL,
- 'bg,s,00ff00|c,lg,45,ff00ff|bg,s,ff00ff');
- assertEquals(0, chart.getBackgroundFill().length);
- }
- function testSetMultiAxisRange() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR, 300, 200);
- var x = chart.addMultiAxis(goog.ui.ServerChart.MultiAxisType.X_AXIS);
- var top = chart.addMultiAxis(goog.ui.ServerChart.MultiAxisType.TOP_AXIS);
- chart.setMultiAxisRange(x, -500, 500, 100);
- chart.setMultiAxisRange(top, 0, 10);
- var range = chart.getMultiAxisRange();
- assertArrayEquals(range[x], [-500, 500, 100]);
- assertArrayEquals(range[top], [0, 10]);
- }
- function testGetConvertedValue() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.VERTICAL_STACKED_BAR);
- assertThrows('No exception thrown when minValue > maxValue', function() {
- var result = chart.getConvertedValue_(
- 90, 24, 3, goog.ui.ServerChart.EncodingType.SIMPLE);
- });
- assertEquals(
- '_', chart.getConvertedValue_(
- 90, 100, 101, goog.ui.ServerChart.EncodingType.SIMPLE));
- assertEquals(
- '_', chart.getConvertedValue_(
- null, 0, 5, goog.ui.ServerChart.EncodingType.SIMPLE));
- assertEquals(
- '__', chart.getConvertedValue_(
- null, 0, 150, goog.ui.ServerChart.EncodingType.EXTENDED));
- assertEquals(
- '24', chart.getConvertedValue_(
- 24, 1, 200, goog.ui.ServerChart.EncodingType.TEXT));
- assertEquals(
- 'H', chart.getConvertedValue_(
- 24, 1, 200, goog.ui.ServerChart.EncodingType.SIMPLE));
- assertEquals(
- 'HZ', chart.getConvertedValue_(
- 24, 1, 200, goog.ui.ServerChart.EncodingType.EXTENDED));
- // Out-of-range values should give a missing data point, not an empty string.
- assertEquals(
- '__', chart.getConvertedValue_(
- 0, 1, 200, goog.ui.ServerChart.EncodingType.EXTENDED));
- assertEquals(
- '__', chart.getConvertedValue_(
- 201, 1, 200, goog.ui.ServerChart.EncodingType.EXTENDED));
- assertEquals(
- '_', chart.getConvertedValue_(
- 0, 1, 200, goog.ui.ServerChart.EncodingType.SIMPLE));
- assertEquals(
- '_', chart.getConvertedValue_(
- 201, 1, 200, goog.ui.ServerChart.EncodingType.SIMPLE));
- assertEquals(
- '_', chart.getConvertedValue_(
- 0, 1, 200, goog.ui.ServerChart.EncodingType.TEXT));
- assertEquals(
- '_', chart.getConvertedValue_(
- 201, 1, 200, goog.ui.ServerChart.EncodingType.TEXT));
- }
- function testGetChartServerValues() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.HORIZONTAL_STACKED_BAR);
- var values = [0, 1, 2, 56, 90, 120];
- var minValue = 0;
- var maxValue = 140;
- var expectedSimple = 'AABYn0';
- assertEquals(
- expectedSimple, chart.getChartServerValues_(values, minValue, maxValue));
- var expectedText = '0,1,2,56,90,120';
- assertEquals(
- expectedSimple, chart.getChartServerValues_(values, minValue, maxValue));
- }
- function testUriLengthLimit() {
- var chart = new goog.ui.ServerChart(
- goog.ui.ServerChart.ChartType.SPARKLINE, 300, 200);
- var longUri = null;
- goog.events.listen(
- chart, goog.ui.ServerChart.Event.URI_TOO_LONG,
- function(e) { longUri = e.uri; });
- assertEquals(
- goog.ui.ServerChart.EncodingType.AUTOMATIC, chart.getEncodingType());
- chart.addDataSet(
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], '008000');
- assertEquals(
- 'e:AAHHOOVVccjjqqxx44..AAHHOOVVccjjqqxx44..',
- chart.getUri().getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- chart.setUriLengthLimit(100);
- assertEquals(
- 's:AHOUbipv29AHOUbipv29',
- chart.getUri().getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- chart.setUriLengthLimit(80);
- assertEquals(null, longUri);
- chart.getUri();
- assertNotEquals(null, longUri);
- }
- function testVisibleDataSets() {
- var uri;
- var bar =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.BAR, 180, 104);
- bar.addDataSet([8, 23, 7], '008000');
- bar.addDataSet([31, 11, 7], 'ffcc33');
- bar.addDataSet([2, 43, 70, 3, 43, 74], '3072f3');
- bar.setMaxValue(100);
- bar.setNumVisibleDataSets(0);
- uri = bar.getUri();
- assertEquals(
- 'e0:D6NtDQ,S7F4DQ,AAaxsZApaxvA',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- bar.setNumVisibleDataSets(1);
- uri = bar.getUri();
- assertEquals(
- 'e1:D6NtDQ,S7F4DQ,AAaxsZApaxvA',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- bar.setNumVisibleDataSets(2);
- uri = bar.getUri();
- assertEquals(
- 'e2:D6NtDQ,S7F4DQ,AAaxsZApaxvA',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- bar.setNumVisibleDataSets(null);
- uri = bar.getUri();
- assertEquals(
- 'e:D6NtDQ,S7F4DQ,AAaxsZApaxvA',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.DATA));
- }
- function testTitle() {
- var chart =
- new goog.ui.ServerChart(goog.ui.ServerChart.ChartType.BAR, 180, 104);
- assertEquals('Default title size', 13.5, chart.getTitleSize());
- assertEquals('Default title color', '333333', chart.getTitleColor());
- chart.setTitle('Test title');
- chart.setTitleSize(7);
- chart.setTitleColor('ff0000');
- var uri = chart.getUri();
- assertEquals(
- 'Changing chart title failed', 'Test title',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.TITLE));
- assertEquals(
- 'Changing title size and color failed', 'ff0000,7',
- uri.getParameterValue(goog.ui.ServerChart.UriParam.TITLE_FORMAT));
- assertEquals('New title size', 7, chart.getTitleSize());
- assertEquals('New title color', 'ff0000', chart.getTitleColor());
- }
|