@@ -1193,6 +1193,62 @@ describe('ModeBar', function() {
11931193 assertRange ( 'xaxis2' , [ - 1 , 4 ] ) ;
11941194 assertRange ( 'yaxis2' , [ 0 , 4 ] ) ;
11951195 } ) ;
1196+
1197+ it ( 'should respect modebardisable attribute' , function ( done ) {
1198+ Plotly . relayout ( gd , {
1199+ 'xaxis.modebardisable' : 'zoominout+autoscale' ,
1200+ 'xaxis2.modebardisable' : 'zoominout' ,
1201+ 'yaxis.modebardisable' : 'autoscale' ,
1202+ } ) . then ( function ( ) {
1203+ var buttonZoomIn = selectButton ( modeBar , 'zoomIn2d' ) ;
1204+ var buttonZoomOut = selectButton ( modeBar , 'zoomOut2d' ) ;
1205+
1206+ assertRange ( 'xaxis' , [ '2016-01-01' , '2016-04-01' ] ) ;
1207+ assertRange ( 'yaxis' , [ 1 , 3 ] ) ;
1208+ assertRange ( 'xaxis2' , [ - 1 , 4 ] ) ;
1209+ assertRange ( 'yaxis2' , [ 0 , 4 ] ) ;
1210+
1211+ // xaxis and xaxis2 should not be affected by zoom in/out
1212+ // yaxis and yaxis2 should be affected as in previous test
1213+ buttonZoomIn . click ( ) ;
1214+ assertRange ( 'xaxis' , [ '2016-01-01' , '2016-04-01' ] ) ;
1215+ assertRange ( 'yaxis' , [ 1.5 , 2.5 ] ) ;
1216+ assertRange ( 'xaxis2' , [ - 1 , 4 ] ) ;
1217+ assertRange ( 'yaxis2' , [ 1 , 3 ] ) ;
1218+
1219+ buttonZoomOut . click ( ) ;
1220+ assertRange ( 'xaxis' , [ '2016-01-01' , '2016-04-01' ] ) ;
1221+ assertRange ( 'yaxis' , [ 1 , 3 ] ) ;
1222+ assertRange ( 'xaxis2' , [ - 1 , 4 ] ) ;
1223+ assertRange ( 'yaxis2' , [ 0 , 4 ] ) ;
1224+
1225+ return Plotly . relayout ( gd , {
1226+ 'xaxis.range' : [ '2016-01-23 17:45' , '2016-03-09 05:15' ] ,
1227+ 'yaxis.range' : [ 1.5 , 2.5 ] ,
1228+ 'xaxis2.range' : [ 0.25 , 2.75 ] ,
1229+ 'yaxis2.range' : [ 1 , 3 ] ,
1230+ } ) ;
1231+ } )
1232+ . then ( function ( ) {
1233+ var buttonAutoScale = selectButton ( modeBar , 'autoScale2d' ) ;
1234+ var buttonResetScale = selectButton ( modeBar , 'resetScale2d' ) ;
1235+
1236+ // xaxis and yaxis should not be affected by autorange
1237+ // xaxis2 and yaxis2 should be affected as in previous test
1238+ buttonAutoScale . click ( ) ;
1239+ assertRange ( 'xaxis' , [ '2016-01-23 17:45' , '2016-03-09 05:15' ] ) ;
1240+ assertRange ( 'yaxis' , [ 1.5 , 2.5 ] ) ;
1241+ assertRange ( 'xaxis2' , [ - 0.5 , 2.5 ] ) ;
1242+ assertRange ( 'yaxis2' , [ 0 , 2.105263 ] ) ;
1243+
1244+ buttonResetScale . click ( ) ;
1245+ assertRange ( 'xaxis' , [ '2016-01-23 17:45' , '2016-03-09 05:15' ] ) ;
1246+ assertRange ( 'yaxis' , [ 1.5 , 2.5 ] ) ;
1247+ assertRange ( 'xaxis2' , [ - 1 , 4 ] ) ;
1248+ assertRange ( 'yaxis2' , [ 0 , 4 ] ) ;
1249+ } )
1250+ . then ( done , done . fail )
1251+ } ) ;
11961252 } ) ;
11971253
11981254 describe ( 'buttons zoom2d, pan2d, select2d and lasso2d' , function ( ) {
0 commit comments