636 lines
23 KiB
JavaScript
636 lines
23 KiB
JavaScript
// 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());
|
|
}
|