| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- topSuite("Ext.chart.axis.Time", ['Ext.chart.*', 'Ext.data.ArrayStore'], function() {
- beforeEach(function() {
- // Silence Sencha download server warnings
- spyOn(Ext.log, 'warn');
- });
-
- describe('renderer', function () {
- var chart;
-
- afterEach(function() {
- Ext.destroy(chart);
- });
- // Safari 7 times out here in Modern for unknown reason in TeamCity only.
- // Works fine locally (tested in Safari 7.0 (9537.71).
- TODO(Ext.isSafari7).
- it('should work with custom renderers even when "dateFormat" is set', function () {
- var axisRendererCallCount = 0,
- lastAxisRendererResult,
- axes, timeAxis, layoutEndSpy;
- chart = new Ext.chart.CartesianChart({
- renderTo: Ext.getBody(),
- width: 400,
- height: 400,
- insetPadding: 60,
- store: new Ext.data.Store({
- data: [
- {value: 1, time: new Date('Jun 01 2015 12:00')},
- {value: 3, time: new Date('Jun 01 2015 13:00')},
- {value: 2, time: new Date('Jun 01 2015 14:00')}
- ]
- }),
- series: {
- type: 'line',
- xField: 'time',
- yField: 'value'
- },
- axes: [
- {
- type: 'numeric',
- position: 'left'
- },
- {
- type: 'time',
- position: 'bottom',
- dateFormat: 'F j g:i A',
- renderer: function () {
- axisRendererCallCount++;
- return lastAxisRendererResult = 'hello';
- }
- }
- ]
- });
- layoutEndSpy = spyOn(chart, 'onLayoutEnd').andCallThrough();
- waitsForSpy(layoutEndSpy, "chart layout to finish");
- runs(function () {
- expect(axisRendererCallCount).toBeGreaterThan(3);
- axes = chart.getAxes();
- timeAxis = axes[1];
- axisRendererCallCount = 0;
- timeAxis.getSegmenter().setStep({
- unit: Ext.Date.HOUR,
- step: 1
- });
- layoutEndSpy.reset();
- chart.performLayout();
- });
- waitsForSpy(layoutEndSpy, "chart layout to finish");
- runs(function () {
- expect(axisRendererCallCount).toBe(3);
- expect(lastAxisRendererResult).toBe('hello');
- axisRendererCallCount = 0;
- lastAxisRendererResult = undefined;
- timeAxis.setRenderer(function () {
- axisRendererCallCount++;
- return lastAxisRendererResult = 'hi';
- });
- // New custom renderer should trigger axis and chart layouts.
- layoutEndSpy.reset();
- });
- waitsForSpy(layoutEndSpy, "chart layout to finish");
- runs(function () {
- expect(axisRendererCallCount).toBe(3);
- expect(lastAxisRendererResult).toBe('hi');
- timeAxis.setRenderer(null);
- // No user renderer, but dateFormat is set, should create a default renderer
- // based on dateFormat.
- var defaultRenderer = timeAxis.getRenderer();
- expect(defaultRenderer.isDefault).toBe(true);
- });
- });
- });
-
- });
|