@@ -8,6 +8,115 @@ var createGraphDiv = require('../assets/create_graph_div');
88var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
99var failTest = require ( '../assets/fail_test' ) ;
1010
11+ describe ( 'Test gl3d axes defaults' , function ( ) {
12+ 'use strict' ;
13+
14+ var supplyLayoutDefaults = require ( '@src/plots/gl3d/layout/axis_defaults' ) ;
15+
16+ describe ( 'supplyLayoutDefaults supplies defaults' , function ( ) {
17+ var layoutIn ,
18+ layoutOut ;
19+
20+ var options = {
21+ font : 'Open Sans' ,
22+ scene : { id : 'scene' } ,
23+ data : [ { x : [ ] , y : [ ] } ] ,
24+ bgColor : '#fff' ,
25+ fullLayout : { _dfltTitle : { x : 'xxx' , y : 'yyy' , colorbar : 'cbbb' } }
26+ } ;
27+
28+ beforeEach ( function ( ) {
29+ layoutOut = { } ;
30+ } ) ;
31+
32+ it ( 'should define specific default set with empty initial layout' , function ( ) {
33+ layoutIn = { } ;
34+
35+ var expected = {
36+ 'xaxis' : {
37+ 'showline' : false ,
38+ 'showgrid' : true ,
39+ 'gridcolor' : 'rgb(204, 204, 204)' ,
40+ 'gridwidth' : 1 ,
41+ 'showspikes' : true ,
42+ 'spikesides' : true ,
43+ 'spikethickness' : 2 ,
44+ 'spikecolor' : '#444' ,
45+ 'showbackground' : false ,
46+ 'showaxeslabels' : true
47+ } ,
48+ 'yaxis' : {
49+ 'showline' : false ,
50+ 'showgrid' : true ,
51+ 'gridcolor' : 'rgb(204, 204, 204)' ,
52+ 'gridwidth' : 1 ,
53+ 'showspikes' : true ,
54+ 'spikesides' : true ,
55+ 'spikethickness' : 2 ,
56+ 'spikecolor' : '#444' ,
57+ 'showbackground' : false ,
58+ 'showaxeslabels' : true
59+ } ,
60+ 'zaxis' : {
61+ 'showline' : false ,
62+ 'showgrid' : true ,
63+ 'gridcolor' : 'rgb(204, 204, 204)' ,
64+ 'gridwidth' : 1 ,
65+ 'showspikes' : true ,
66+ 'spikesides' : true ,
67+ 'spikethickness' : 2 ,
68+ 'spikecolor' : '#444' ,
69+ 'showbackground' : false ,
70+ 'showaxeslabels' : true
71+ }
72+ } ;
73+
74+ function checkKeys ( validObject , testObject ) {
75+ var keys = Object . keys ( validObject ) ;
76+ for ( var i = 0 ; i < keys . length ; i ++ ) {
77+ var k = keys [ i ] ;
78+ expect ( validObject [ k ] ) . toBe ( testObject [ k ] ) ;
79+ }
80+ return true ;
81+ }
82+
83+ supplyLayoutDefaults ( layoutIn , layoutOut , options ) ;
84+ [ 'xaxis' , 'yaxis' , 'zaxis' ] . forEach ( function ( axis ) {
85+ checkKeys ( expected [ axis ] , layoutOut [ axis ] ) ;
86+ } ) ;
87+ } ) ;
88+
89+ it ( 'should inherit layout.calendar' , function ( ) {
90+ layoutIn = {
91+ xaxis : { type : 'date' } ,
92+ yaxis : { type : 'date' } ,
93+ zaxis : { type : 'date' }
94+ } ;
95+ options . calendar = 'taiwan' ;
96+
97+ supplyLayoutDefaults ( layoutIn , layoutOut , options ) ;
98+
99+ expect ( layoutOut . xaxis . calendar ) . toBe ( 'taiwan' ) ;
100+ expect ( layoutOut . yaxis . calendar ) . toBe ( 'taiwan' ) ;
101+ expect ( layoutOut . zaxis . calendar ) . toBe ( 'taiwan' ) ;
102+ } ) ;
103+
104+ it ( 'should accept its own calendar' , function ( ) {
105+ layoutIn = {
106+ xaxis : { type : 'date' , calendar : 'hebrew' } ,
107+ yaxis : { type : 'date' , calendar : 'ummalqura' } ,
108+ zaxis : { type : 'date' , calendar : 'discworld' }
109+ } ;
110+ options . calendar = 'taiwan' ;
111+
112+ supplyLayoutDefaults ( layoutIn , layoutOut , options ) ;
113+
114+ expect ( layoutOut . xaxis . calendar ) . toBe ( 'hebrew' ) ;
115+ expect ( layoutOut . yaxis . calendar ) . toBe ( 'ummalqura' ) ;
116+ expect ( layoutOut . zaxis . calendar ) . toBe ( 'discworld' ) ;
117+ } ) ;
118+ } ) ;
119+ } ) ;
11120
12121describe ( 'Test Gl3d layout defaults' , function ( ) {
13122 'use strict' ;
0 commit comments