@@ -8,6 +8,115 @@ var createGraphDiv = require('../assets/create_graph_div');
8
8
var destroyGraphDiv = require ( '../assets/destroy_graph_div' ) ;
9
9
var failTest = require ( '../assets/fail_test' ) ;
10
10
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
+ } ) ;
11
120
12
121
describe ( 'Test Gl3d layout defaults' , function ( ) {
13
122
'use strict' ;
0 commit comments