@@ -156,8 +156,21 @@ describe('Test choropleth hover:', function() {
156
156
157
157
afterEach ( destroyGraphDiv ) ;
158
158
159
- function run ( pos , fig , content , style ) {
159
+ function transformPlot ( gd , transformString ) {
160
+ gd . style . webkitTransform = transformString ;
161
+ gd . style . MozTransform = transformString ;
162
+ gd . style . msTransform = transformString ;
163
+ gd . style . OTransform = transformString ;
164
+ gd . style . transform = transformString ;
165
+ }
166
+
167
+ function run ( hasCssTransform , pos , fig , content , style ) {
160
168
gd = createGraphDiv ( ) ;
169
+ var scale = 1 ;
170
+ if ( hasCssTransform ) {
171
+ scale = 0.5 ;
172
+ transformPlot ( gd , 'translate(-25%, -25%) scale(0.5)' ) ;
173
+ }
161
174
162
175
style = style || {
163
176
bgcolor : 'rgb(68, 68, 68)' ,
@@ -168,7 +181,7 @@ describe('Test choropleth hover:', function() {
168
181
} ;
169
182
170
183
return Plotly . plot ( gd , fig ) . then ( function ( ) {
171
- mouseEvent ( 'mousemove' , pos [ 0 ] , pos [ 1 ] ) ;
184
+ mouseEvent ( 'mousemove' , scale * pos [ 0 ] , scale * pos [ 1 ] ) ;
172
185
assertHoverLabelContent ( {
173
186
nums : content [ 0 ] ,
174
187
name : content [ 1 ]
@@ -180,102 +193,123 @@ describe('Test choropleth hover:', function() {
180
193
} ) ;
181
194
}
182
195
183
- it ( 'should generate hover label info (base)' , function ( done ) {
184
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
185
-
186
- run (
187
- [ 400 , 160 ] ,
188
- fig ,
189
- [ 'RUS\n10' , 'trace 1' ]
190
- )
191
- . then ( done ) ;
196
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
197
+ it ( 'should generate hover label info (base), hasCssTransform: ' + hasCssTransform , function ( done ) {
198
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
199
+
200
+ run (
201
+ hasCssTransform ,
202
+ [ 400 , 160 ] ,
203
+ fig ,
204
+ [ 'RUS\n10' , 'trace 1' ]
205
+ )
206
+ . then ( done ) ;
207
+ } ) ;
192
208
} ) ;
193
209
194
- it ( 'should use the hovertemplate' , function ( done ) {
195
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
196
- fig . data [ 1 ] . hovertemplate = 'tpl %{z}<extra>x</extra>' ;
197
-
198
- run (
199
- [ 400 , 160 ] ,
200
- fig ,
201
- [ 'tpl 10' , 'x' ]
202
- )
203
- . then ( done ) ;
210
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
211
+ it ( 'should use the hovertemplate, hasCssTransform: ' + hasCssTransform , function ( done ) {
212
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
213
+ fig . data [ 1 ] . hovertemplate = 'tpl %{z}<extra>x</extra>' ;
214
+
215
+ run (
216
+ hasCssTransform ,
217
+ [ 400 , 160 ] ,
218
+ fig ,
219
+ [ 'tpl 10' , 'x' ]
220
+ )
221
+ . then ( done ) ;
222
+ } ) ;
204
223
} ) ;
205
224
206
- it ( 'should generate hover label info (\'text\' single value case)' , function ( done ) {
207
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
208
- fig . data [ 1 ] . text = 'tExT' ;
209
- fig . data [ 1 ] . hoverinfo = 'text' ;
210
-
211
- run (
212
- [ 400 , 160 ] ,
213
- fig ,
214
- [ 'tExT' , null ]
215
- )
216
- . then ( done ) ;
225
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
226
+ it ( 'should generate hover label info (\'text\' single value case), hasCssTransform: ' + hasCssTransform , function ( done ) {
227
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
228
+ fig . data [ 1 ] . text = 'tExT' ;
229
+ fig . data [ 1 ] . hoverinfo = 'text' ;
230
+
231
+ run (
232
+ hasCssTransform ,
233
+ [ 400 , 160 ] ,
234
+ fig ,
235
+ [ 'tExT' , null ]
236
+ )
237
+ . then ( done ) ;
238
+ } ) ;
217
239
} ) ;
218
240
219
- it ( 'should generate hover label info (\'text\' array case)' , function ( done ) {
220
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
221
- fig . data [ 1 ] . text = [ 'tExT' , 'TeXt' , '-text-' ] ;
222
- fig . data [ 1 ] . hoverinfo = 'text' ;
223
-
224
- run (
225
- [ 400 , 160 ] ,
226
- fig ,
227
- [ '-text-' , null ]
228
- )
229
- . then ( done ) ;
241
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
242
+ it ( 'should generate hover label info (\'text\' array case), hasCssTransform: ' + hasCssTransform , function ( done ) {
243
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
244
+ fig . data [ 1 ] . text = [ 'tExT' , 'TeXt' , '-text-' ] ;
245
+ fig . data [ 1 ] . hoverinfo = 'text' ;
246
+
247
+ run (
248
+ hasCssTransform ,
249
+ [ 400 , 160 ] ,
250
+ fig ,
251
+ [ '-text-' , null ]
252
+ )
253
+ . then ( done ) ;
254
+ } ) ;
230
255
} ) ;
231
256
232
- it ( 'should generate hover labels from `hovertext`' , function ( done ) {
233
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
234
- fig . data [ 1 ] . hovertext = [ 'tExT' , 'TeXt' , '-text-' ] ;
235
- fig . data [ 1 ] . text = [ 'N' , 'O' , 'P' ] ;
236
- fig . data [ 1 ] . hoverinfo = 'text' ;
237
-
238
- run (
239
- [ 400 , 160 ] ,
240
- fig ,
241
- [ '-text-' , null ]
242
- )
243
- . then ( done ) ;
257
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
258
+ it ( 'should generate hover labels from `hovertext`, hasCssTransform: ' + hasCssTransform , function ( done ) {
259
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
260
+ fig . data [ 1 ] . hovertext = [ 'tExT' , 'TeXt' , '-text-' ] ;
261
+ fig . data [ 1 ] . text = [ 'N' , 'O' , 'P' ] ;
262
+ fig . data [ 1 ] . hoverinfo = 'text' ;
263
+
264
+ run (
265
+ hasCssTransform ,
266
+ [ 400 , 160 ] ,
267
+ fig ,
268
+ [ '-text-' , null ]
269
+ )
270
+ . then ( done ) ;
271
+ } ) ;
244
272
} ) ;
245
273
246
- it ( 'should generate hover label with custom styling' , function ( done ) {
247
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
248
- fig . data [ 1 ] . hoverlabel = {
249
- bgcolor : 'red' ,
250
- bordercolor : [ 'blue' , 'black' , 'green' ] ,
251
- font : { family : 'Roboto' }
252
- } ;
274
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
275
+ it ( 'should generate hover label with custom styling, hasCssTransform: ' + hasCssTransform , function ( done ) {
276
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
277
+ fig . data [ 1 ] . hoverlabel = {
278
+ bgcolor : 'red' ,
279
+ bordercolor : [ 'blue' , 'black' , 'green' ] ,
280
+ font : { family : 'Roboto' }
281
+ } ;
253
282
254
- run (
255
- [ 400 , 160 ] ,
256
- fig ,
257
- [ 'RUS\n10' , 'trace 1' ] ,
258
- {
259
- bgcolor : 'rgb(255, 0, 0)' ,
260
- bordercolor : 'rgb(0, 128, 0)' ,
261
- fontColor : 'rgb(0, 128, 0)' ,
262
- fontSize : 13 ,
263
- fontFamily : 'Roboto'
264
- }
265
- )
266
- . then ( done ) ;
283
+ run (
284
+ hasCssTransform ,
285
+ [ 400 , 160 ] ,
286
+ fig ,
287
+ [ 'RUS\n10' , 'trace 1' ] ,
288
+ {
289
+ bgcolor : 'rgb(255, 0, 0)' ,
290
+ bordercolor : 'rgb(0, 128, 0)' ,
291
+ fontColor : 'rgb(0, 128, 0)' ,
292
+ fontSize : 13 ,
293
+ fontFamily : 'Roboto'
294
+ }
295
+ )
296
+ . then ( done ) ;
297
+ } ) ;
267
298
} ) ;
268
299
269
- it ( 'should generate hover label with arrayOk \'hoverinfo\' settings' , function ( done ) {
270
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
271
- fig . data [ 1 ] . hoverinfo = [ 'location' , 'z' , 'location+name' ] ;
272
-
273
- run (
274
- [ 400 , 160 ] ,
275
- fig ,
276
- [ 'RUS' , 'trace 1' ]
277
- )
278
- . then ( done ) ;
300
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
301
+ it ( 'should generate hover label with arrayOk \'hoverinfo\' settings, hasCssTransform: ' + hasCssTransform , function ( done ) {
302
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_first.json' ) ) ;
303
+ fig . data [ 1 ] . hoverinfo = [ 'location' , 'z' , 'location+name' ] ;
304
+
305
+ run (
306
+ hasCssTransform ,
307
+ [ 400 , 160 ] ,
308
+ fig ,
309
+ [ 'RUS' , 'trace 1' ]
310
+ )
311
+ . then ( done ) ;
312
+ } ) ;
279
313
} ) ;
280
314
281
315
describe ( 'should preserve z formatting hovetemplate equivalence' , function ( ) {
@@ -292,24 +326,30 @@ describe('Test choropleth hover:', function() {
292
326
var pos = [ 400 , 160 ] ;
293
327
var exp = [ '10.02132' , 'RUS' ] ;
294
328
295
- it ( '- base case (truncate z decimals)' , function ( done ) {
296
- run ( pos , base ( ) , exp ) . then ( done ) ;
329
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
330
+ it ( '- base case (truncate z decimals), hasCssTransform: ' + hasCssTransform , function ( done ) {
331
+ run ( hasCssTransform , pos , base ( ) , exp ) . then ( done ) ;
332
+ } ) ;
297
333
} ) ;
298
334
299
- it ( '- hovertemplate case (same z truncation)' , function ( done ) {
300
- var fig = base ( ) ;
301
- fig . hovertemplate = '%{z}<extra>%{location}</extra>' ;
302
- run ( pos , fig , exp ) . then ( done ) ;
335
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
336
+ it ( '- hovertemplate case (same z truncation), hasCssTransform: ' + hasCssTransform , function ( done ) {
337
+ var fig = base ( ) ;
338
+ fig . hovertemplate = '%{z}<extra>%{location}</extra>' ;
339
+ run ( hasCssTransform , pos , fig , exp ) . then ( done ) ;
340
+ } ) ;
303
341
} ) ;
304
342
} ) ;
305
343
306
- it ( 'should include *properties* from input custom geojson' , function ( done ) {
307
- var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_custom-geojson.json' ) ) ;
308
- fig . data = [ fig . data [ 1 ] ] ;
309
- fig . data [ 0 ] . hovertemplate = '%{properties.name}<extra>%{ct[0]:.1f} | %{ct[1]:.1f}</extra>' ;
310
- fig . layout . geo . projection = { scale : 20 } ;
344
+ [ false , true ] . forEach ( function ( hasCssTransform ) {
345
+ it ( 'should include *properties* from input custom geojson, hasCssTransform: ' + hasCssTransform , function ( done ) {
346
+ var fig = Lib . extendDeep ( { } , require ( '@mocks/geo_custom-geojson.json' ) ) ;
347
+ fig . data = [ fig . data [ 1 ] ] ;
348
+ fig . data [ 0 ] . hovertemplate = '%{properties.name}<extra>%{ct[0]:.1f} | %{ct[1]:.1f}</extra>' ;
349
+ fig . layout . geo . projection = { scale : 20 } ;
311
350
312
- run ( [ 300 , 200 ] , fig , [ 'New York' , '-75.1 | 42.6' ] ) . then ( done ) ;
351
+ run ( hasCssTransform , [ 300 , 200 ] , fig , [ 'New York' , '-75.1 | 42.6' ] ) . then ( done ) ;
352
+ } ) ;
313
353
} ) ;
314
354
} ) ;
315
355
0 commit comments