@@ -62,6 +62,92 @@ describe('localization', function() {
62
62
. then ( done ) ;
63
63
} ) ;
64
64
65
+ function getLabels ( axLetter ) {
66
+ var out = [ ] ;
67
+ var s = d3 . select ( gd ) . selectAll ( '.' + axLetter + 'tick' ) ;
68
+ s . each ( function ( ) { out . push ( d3 . select ( this ) . text ( ) ) ; } ) ;
69
+ return out ;
70
+ }
71
+
72
+ it ( 'contains all short and long day and month names in the default locale' , function ( done ) {
73
+ Plotly . newPlot ( gd , [ {
74
+ x : [ '2000-01-01' , '2000-12-01' ] ,
75
+ y : [ '2000-01-02' , '2000-01-08' ] ,
76
+ mode : 'markers'
77
+ } ] , {
78
+ xaxis : { dtick : 'M1' , tickformat : '%b' } ,
79
+ yaxis : { dtick : 1000 * 3600 * 24 , tickformat : '%a' }
80
+ } )
81
+ . then ( function ( ) {
82
+ expect ( getLabels ( 'x' ) ) . toEqual ( [
83
+ 'Jan' , 'Feb' , 'Mar' , 'Apr' , 'May' , 'Jun' ,
84
+ 'Jul' , 'Aug' , 'Sep' , 'Oct' , 'Nov' , 'Dec'
85
+ ] ) ;
86
+ expect ( getLabels ( 'y' ) ) . toEqual ( [
87
+ 'Sun' , 'Mon' , 'Tue' , 'Wed' , 'Thu' , 'Fri' , 'Sat'
88
+ ] ) ;
89
+
90
+ return Plotly . relayout ( gd , {
91
+ 'xaxis.tickformat' : '%B' ,
92
+ 'yaxis.tickformat' : '%A'
93
+ } ) ;
94
+ } )
95
+ . then ( function ( ) {
96
+ expect ( getLabels ( 'x' ) ) . toEqual ( [
97
+ 'January' , 'February' , 'March' , 'April' , 'May' , 'June' ,
98
+ 'July' , 'August' , 'September' , 'October' , 'November' , 'December'
99
+ ] ) ;
100
+ expect ( getLabels ( 'y' ) ) . toEqual ( [
101
+ 'Sunday' , 'Monday' , 'Tuesday' , 'Wednesday' , 'Thursday' , 'Friday' , 'Saturday'
102
+ ] ) ;
103
+ } )
104
+ . catch ( failTest )
105
+ . then ( done ) ;
106
+ } ) ;
107
+
108
+ it ( 'contains correct periods, dateTime, date, and time fields in the default locale' , function ( done ) {
109
+ Plotly . newPlot ( gd , [ {
110
+ x : [ '2000-01-01 11:00' , '2000-01-01 13:00' ] ,
111
+ y : [ '2000-01-01 23:00' , '2000-01-02 01:00' ] ,
112
+ mode : 'markers'
113
+ } ] , {
114
+ xaxis : { dtick : 1000 * 3600 , tickformat : '%-I %p' } ,
115
+ yaxis : { dtick : 1000 * 3600 , tickformat : '%-I %p' }
116
+ } )
117
+ . then ( function ( ) {
118
+ expect ( getLabels ( 'x' ) ) . toEqual ( [ '11 AM' , '12 PM' , '1 PM' ] ) ;
119
+ expect ( getLabels ( 'y' ) ) . toEqual ( [ '11 PM' , '12 AM' , '1 AM' ] ) ;
120
+
121
+ return Plotly . relayout ( gd , {
122
+ 'xaxis.tickformat' : '%c' ,
123
+ 'yaxis.tickformat' : '%x~%X'
124
+ } ) ;
125
+ } )
126
+ . then ( function ( ) {
127
+ expect ( getLabels ( 'x' ) ) . toEqual ( [
128
+ 'Sat Jan 1 11:00:00 2000' , 'Sat Jan 1 12:00:00 2000' , 'Sat Jan 1 13:00:00 2000'
129
+ ] ) ;
130
+ expect ( getLabels ( 'y' ) ) . toEqual ( [
131
+ // here we're using British English, so day/month/year
132
+ '01/01/2000~23:00:00' , '02/01/2000~00:00:00' , '02/01/2000~01:00:00'
133
+ ] ) ;
134
+
135
+ Plotly . register ( require ( '@src/locale-en-us' ) ) ;
136
+ return Plotly . redraw ( gd ) ;
137
+ } )
138
+ . then ( function ( ) {
139
+ expect ( getLabels ( 'x' ) ) . toEqual ( [
140
+ 'Sat Jan 1 11:00:00 2000' , 'Sat Jan 1 12:00:00 2000' , 'Sat Jan 1 13:00:00 2000'
141
+ ] ) ;
142
+ expect ( getLabels ( 'y' ) ) . toEqual ( [
143
+ // now with the US version
144
+ '01/01/2000~23:00:00' , '01/02/2000~00:00:00' , '01/02/2000~01:00:00'
145
+ ] ) ;
146
+ } )
147
+ . catch ( failTest )
148
+ . then ( done ) ;
149
+ } ) ;
150
+
65
151
it ( 'uses the region first, then language (registered case)' , function ( done ) {
66
152
plot ( 'eg-AU' )
67
153
. then ( function ( ) {
0 commit comments