@@ -289,74 +289,100 @@ describe('Test Plots', function() {
289
289
} ) ;
290
290
} ) ;
291
291
292
- describe ( 'Plots.resize' , function ( ) {
292
+ describe ( 'Plots.resize: ' , function ( ) {
293
293
var gd ;
294
294
295
- beforeAll ( function ( done ) {
296
- gd = createGraphDiv ( ) ;
295
+ describe ( 'on graph div DOM style changes' , function ( ) {
296
+ beforeAll ( function ( done ) {
297
+ gd = createGraphDiv ( ) ;
297
298
298
- Plotly . plot ( gd , [ { x : [ 1 , 2 , 3 ] , y : [ 2 , 3 , 4 ] } ] )
299
- . then ( function ( ) {
300
- gd . style . width = '400px' ;
301
- gd . style . height = '400px' ;
299
+ Plotly . plot ( gd , [ { x : [ 1 , 2 , 3 ] , y : [ 2 , 3 , 4 ] } ] )
300
+ . then ( function ( ) {
301
+ gd . style . width = '400px' ;
302
+ gd . style . height = '400px' ;
302
303
303
- return Plotly . Plots . resize ( gd ) ;
304
- } )
305
- . then ( done ) ;
306
- } ) ;
304
+ return Plotly . Plots . resize ( gd ) ;
305
+ } )
306
+ . then ( done ) ;
307
+ } ) ;
307
308
308
- afterAll ( destroyGraphDiv ) ;
309
+ afterAll ( destroyGraphDiv ) ;
309
310
310
- it ( 'should resize the plot clip' , function ( ) {
311
- var uid = gd . _fullLayout . _uid ;
311
+ it ( 'should resize the plot clip' , function ( ) {
312
+ var uid = gd . _fullLayout . _uid ;
312
313
313
- var plotClip = document . getElementById ( 'clip' + uid + 'xyplot' ) ,
314
- clipRect = plotClip . children [ 0 ] ,
315
- clipWidth = + clipRect . getAttribute ( 'width' ) ,
316
- clipHeight = + clipRect . getAttribute ( 'height' ) ;
314
+ var plotClip = document . getElementById ( 'clip' + uid + 'xyplot' ) ,
315
+ clipRect = plotClip . children [ 0 ] ,
316
+ clipWidth = + clipRect . getAttribute ( 'width' ) ,
317
+ clipHeight = + clipRect . getAttribute ( 'height' ) ;
317
318
318
- expect ( clipWidth ) . toBe ( 240 ) ;
319
- expect ( clipHeight ) . toBe ( 220 ) ;
320
- } ) ;
319
+ expect ( clipWidth ) . toBe ( 240 ) ;
320
+ expect ( clipHeight ) . toBe ( 220 ) ;
321
+ } ) ;
321
322
322
- it ( 'should resize the main svgs' , function ( ) {
323
- var mainSvgs = document . getElementsByClassName ( 'main-svg' ) ;
324
- expect ( mainSvgs . length ) . toBe ( 2 ) ;
323
+ it ( 'should resize the main svgs' , function ( ) {
324
+ var mainSvgs = document . getElementsByClassName ( 'main-svg' ) ;
325
+ expect ( mainSvgs . length ) . toBe ( 2 ) ;
325
326
326
- for ( var i = 0 ; i < mainSvgs . length ; i ++ ) {
327
- var svg = mainSvgs [ i ] ,
328
- svgWidth = + svg . getAttribute ( 'width' ) ,
329
- svgHeight = + svg . getAttribute ( 'height' ) ;
327
+ for ( var i = 0 ; i < mainSvgs . length ; i ++ ) {
328
+ var svg = mainSvgs [ i ] ,
329
+ svgWidth = + svg . getAttribute ( 'width' ) ,
330
+ svgHeight = + svg . getAttribute ( 'height' ) ;
330
331
331
- expect ( svgWidth ) . toBe ( 400 ) ;
332
- expect ( svgHeight ) . toBe ( 400 ) ;
333
- }
334
- } ) ;
332
+ expect ( svgWidth ) . toBe ( 400 ) ;
333
+ expect ( svgHeight ) . toBe ( 400 ) ;
334
+ }
335
+ } ) ;
336
+
337
+ it ( 'should update the axis scales' , function ( ) {
338
+ var mainSvgs = document . getElementsByClassName ( 'main-svg' ) ;
339
+ expect ( mainSvgs . length ) . toBe ( 2 ) ;
335
340
336
- it ( 'should update the axis scales' , function ( ) {
337
- var mainSvgs = document . getElementsByClassName ( 'main-svg' ) ;
338
- expect ( mainSvgs . length ) . toBe ( 2 ) ;
341
+ var fullLayout = gd . _fullLayout ,
342
+ plotinfo = fullLayout . _plots . xy ;
339
343
340
- var fullLayout = gd . _fullLayout ,
341
- plotinfo = fullLayout . _plots . xy ;
344
+ expect ( fullLayout . xaxis . _length ) . toEqual ( 240 ) ;
345
+ expect ( fullLayout . yaxis . _length ) . toEqual ( 220 ) ;
342
346
343
- expect ( fullLayout . xaxis . _length ) . toEqual ( 240 ) ;
344
- expect ( fullLayout . yaxis . _length ) . toEqual ( 220 ) ;
347
+ expect ( plotinfo . xaxis . _length ) . toEqual ( 240 ) ;
348
+ expect ( plotinfo . yaxis . _length ) . toEqual ( 220 ) ;
349
+ } ) ;
350
+
351
+ it ( 'should allow resizing by plot ID' , function ( done ) {
352
+ var mainSvgs = document . getElementsByClassName ( 'main-svg' ) ;
353
+ expect ( mainSvgs . length ) . toBe ( 2 ) ;
354
+
355
+ expect ( typeof gd . id ) . toBe ( 'string' ) ;
356
+ expect ( gd . id ) . toBeTruthy ( ) ;
345
357
346
- expect ( plotinfo . xaxis . _length ) . toEqual ( 240 ) ;
347
- expect ( plotinfo . yaxis . _length ) . toEqual ( 220 ) ;
358
+ Plotly . Plots . resize ( gd . id )
359
+ . catch ( failTest )
360
+ . then ( done ) ;
361
+ } ) ;
348
362
} ) ;
349
363
350
- it ( 'should allow resizing by plot ID' , function ( done ) {
351
- var mainSvgs = document . getElementsByClassName ( 'main-svg' ) ;
352
- expect ( mainSvgs . length ) . toBe ( 2 ) ;
364
+ describe ( 'on styled graph div' , function ( ) {
365
+ afterEach ( destroyGraphDiv ) ;
353
366
354
- expect ( typeof gd . id ) . toBe ( 'string' ) ;
355
- expect ( gd . id ) . toBeTruthy ( ) ;
367
+ it ( 'should sanitize margins' , function ( done ) {
368
+ gd = createGraphDiv ( ) ;
369
+ gd . style . width = '150px' ;
370
+ gd . style . height = '150px' ;
356
371
357
- Plotly . Plots . resize ( gd . id )
358
- . catch ( failTest )
359
- . then ( done ) ;
372
+ function _assert ( exp ) {
373
+ var margin = gd . _fullLayout . margin || { } ;
374
+ for ( var k in exp ) {
375
+ expect ( margin [ k ] ) . toBe ( exp [ k ] , ' - margin.' + k ) ;
376
+ }
377
+ }
378
+
379
+ Plotly . plot ( gd , [ ] , { } )
380
+ . then ( function ( ) { _assert ( { l : 74 , r : 74 , t : 82 , b : 66 } ) ; } )
381
+ . then ( function ( ) { return Plotly . Plots . resize ( gd ) ; } )
382
+ . then ( function ( ) { _assert ( { l : 74 , r : 74 , t : 82 , b : 66 } ) ; } )
383
+ . catch ( failTest )
384
+ . then ( done ) ;
385
+ } ) ;
360
386
} ) ;
361
387
} ) ;
362
388
0 commit comments