| Index: packages/charted/test.disabled/svg/svg_axis_test.dart
|
| diff --git a/packages/charted/test.disabled/svg/svg_axis_test.dart b/packages/charted/test.disabled/svg/svg_axis_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d449b1cea2d4b53e4f9b36412ba2bf5e0fb3ca44
|
| --- /dev/null
|
| +++ b/packages/charted/test.disabled/svg/svg_axis_test.dart
|
| @@ -0,0 +1,150 @@
|
| +/*
|
| + * Copyright 2014 Google Inc. All rights reserved.
|
| + *
|
| + * Use of this source code is governed by a BSD-style
|
| + * license that can be found in the LICENSE file or at
|
| + * https://developers.google.com/open-source/licenses/bsd
|
| + */
|
| +
|
| +part of charted.test.svg;
|
| +
|
| +testSvgAxis() {
|
| + String markup = '<div class="charts-axis-container">'
|
| + '<div class="charts-axis"></div>'
|
| + '<div class="charts-axis-async1"></div>'
|
| + '<div class="charts-axis-async2"></div>'
|
| + '<div class="charts-axis-async3"></div>'
|
| + '<div class="charts-axis-async4"></div>'
|
| + '</div>';
|
| +
|
| + Element root;
|
| + SelectionScope scope;
|
| + Selection axis, ticks, text;
|
| +
|
| + setup() {
|
| + root = new Element.html(markup);
|
| + document.documentElement.append(root);
|
| + scope = new SelectionScope.selector('.charts-axis-container');
|
| + axis = scope.select('.charts-axis');
|
| + }
|
| +
|
| + teardown() {
|
| + root.remove();
|
| + }
|
| +
|
| + group('SvgAxis.axis', () {
|
| + setUp(setup);
|
| + tearDown(teardown);
|
| + SvgAxis svgAxis = new SvgAxis();
|
| + svgAxis.scale.domain = [1, 10];
|
| +
|
| + test('generates an axis with default tickFormat and scale', () {
|
| + svgAxis.axis(axis);
|
| + ticks = axis.selectAll('.tick');
|
| + text = ticks.select('text');
|
| + text.each((d, i, Element e) {
|
| + //Exactly 10 ticks steped 1 from 1 to 10 according to domain
|
| + expect(e.text, equals((i + 1).toString()));
|
| + });
|
| + });
|
| +
|
| + test('generates an axis with manaully set tickFormat', () {
|
| + svgAxis.tickFormat = (x) => x.toString() + 'px';
|
| + svgAxis.axis(axis);
|
| + ticks = axis.selectAll('.tick');
|
| + text = ticks.select('text');
|
| + text.each((d, i, Element e) {
|
| + //Exactly 10 ticks steped 1 from 1 to 10 according to domain
|
| + expect(e.text, equals((i + 1).toString() + '.0px'));
|
| + });
|
| + svgAxis.tickFormat = null;
|
| + });
|
| +
|
| + test('generates an axis with manaully set tickValues', () {
|
| + svgAxis.tickValues = [2, 4, 6, 8];
|
| + svgAxis.axis(axis);
|
| + ticks = axis.selectAll('.tick');
|
| + text = ticks.select('text');
|
| + text.each((d, i, Element e) {
|
| + //Exactly 10 ticks steped 1 from 1 to 10 according to domain
|
| + expect(e.text, equals((i * 2 + 2).toString()));
|
| + });
|
| + });
|
| +
|
| + test('transforms linear scale axis ticks to right positions', () {
|
| + Selection axis = scope.select('.charts-axis-async1');
|
| + SvgAxis svgAxis = new SvgAxis();
|
| + svgAxis.scale.domain = [1, 10];
|
| + svgAxis.scale.range = [10, 100];
|
| + svgAxis.axis(axis);
|
| + Selection ticks = axis.selectAll('.tick');
|
| + new Timer(new Duration(milliseconds:200), expectAsync(() {
|
| + ticks.each((d, i, Element e) {
|
| + int pos = e.attributes['transform'].indexOf(',');
|
| + expect(num.parse(e.attributes['transform'].substring(10, pos)),
|
| + closeTo((i + 1) * 10, EPSILON));
|
| + });
|
| + }));
|
| + Selection axis2 = scope.select('.charts-axis-async2');
|
| + SvgAxis svgAxis2 = new SvgAxis();
|
| + svgAxis2.orientation = ORIENTATION_LEFT;
|
| + svgAxis2.scale.domain = [1, 10];
|
| + svgAxis2.scale.range = [10, 100];
|
| + svgAxis2.axis(axis2);
|
| + Selection ticks2 = axis2.selectAll('.tick');
|
| + new Timer(new Duration(milliseconds:200), expectAsync(() {
|
| + ticks2.each((d, i, Element e) {
|
| + int pos1 = e.attributes['transform'].indexOf(',');
|
| + int pos2 = e.attributes['transform'].indexOf(')');
|
| + expect(num.parse(e.attributes['transform'].substring(pos1 + 1, pos2)),
|
| + closeTo((i + 1) * 10, EPSILON));
|
| + });
|
| + }));
|
| + });
|
| +
|
| + test('generates an axis with ordinal scale defined tickValues '
|
| + 'and transforms ordinal scale axis ticks to right positions', () {
|
| + Selection axis = scope.select('.charts-axis-async3');
|
| + SvgAxis svgAxis = new SvgAxis();
|
| + svgAxis.orientation = ORIENTATION_TOP;
|
| + svgAxis.scale = new OrdinalScale();
|
| + svgAxis.scale.domain = ['Jan', 'Feb', 'Mar'];
|
| + svgAxis.scale.range = [0, 45, 90];
|
| + svgAxis.scale.rangeBand = 10;
|
| + svgAxis.axis(axis);
|
| + Selection ticks = axis.selectAll('.tick');
|
| + text = ticks.select('text');
|
| + text.each((d, i, Element e) {
|
| + expect(e.text, equals(svgAxis.scale.domain[i]));
|
| + });
|
| + new Timer(new Duration(milliseconds:200), expectAsync(() {
|
| + ticks.each((d, i, Element e) {
|
| + int pos = e.attributes['transform'].indexOf(',');
|
| + expect(num.parse(e.attributes['transform'].substring(10, pos)),
|
| + closeTo(i * 45 + 5, EPSILON));
|
| + });
|
| + }));
|
| + Selection axis2 = scope.select('.charts-axis-async4');
|
| + SvgAxis svgAxis2 = new SvgAxis();
|
| + svgAxis2.orientation = ORIENTATION_RIGHT;
|
| + svgAxis2.scale = new OrdinalScale();
|
| + svgAxis2.scale.domain = ['Jan', 'Feb', 'Mar'];
|
| + svgAxis2.scale.range = [0, 45, 90];
|
| + svgAxis2.scale.rangeBand = 10;
|
| + svgAxis2.axis(axis2);
|
| + text = ticks.select('text');
|
| + text.each((d, i, Element e) {
|
| + expect(e.text, equals(svgAxis2.scale.domain[i]));
|
| + });
|
| + Selection ticks2 = axis2.selectAll('.tick');
|
| + new Timer(new Duration(milliseconds:200), expectAsync(() {
|
| + ticks2.each((d, i, Element e) {
|
| + int pos1 = e.attributes['transform'].indexOf(',');
|
| + int pos2 = e.attributes['transform'].indexOf(')');
|
| + expect(num.parse(e.attributes['transform'].substring(pos1 + 1, pos2)),
|
| + closeTo(i * 45 + 5, EPSILON));
|
| + });
|
| + }));
|
| + });
|
| + });
|
| +}
|
|
|