@@ -132,7 +132,7 @@ describe('$mdDialog', function() {
132
132
expect ( $document . activeElement ) . toBe ( parent [ 0 ] . querySelector ( 'md-dialog-content' ) ) ;
133
133
} ) ) ;
134
134
135
- it ( 'should remove `md-dialog-container` on click and remove' , inject ( function ( $mdDialog , $rootScope , $timeout ) {
135
+ it ( 'should remove `md-dialog-container` on mousedown mouseup and remove' , inject ( function ( $mdDialog , $rootScope , $timeout ) {
136
136
jasmine . mockElementFocus ( this ) ;
137
137
var container , parent = angular . element ( '<div>' ) ;
138
138
@@ -152,7 +152,11 @@ describe('$mdDialog', function() {
152
152
153
153
container = angular . element ( parent [ 0 ] . querySelector ( '.md-dialog-container' ) ) ;
154
154
container . triggerHandler ( {
155
- type : 'click' ,
155
+ type : 'mousedown' ,
156
+ target : container [ 0 ]
157
+ } ) ;
158
+ container . triggerHandler ( {
159
+ type : 'mouseup' ,
156
160
target : container [ 0 ]
157
161
} ) ;
158
162
@@ -290,7 +294,7 @@ describe('$mdDialog', function() {
290
294
expect ( $document . activeElement ) . toBe ( parent [ 0 ] . querySelector ( '.dialog-close' ) ) ;
291
295
} ) ) ;
292
296
293
- it ( 'should remove `md-dialog-container` after click outside' , inject ( function ( $mdDialog , $rootScope , $timeout , $animate ) {
297
+ it ( 'should remove `md-dialog-container` after mousedown mouseup outside' , inject ( function ( $mdDialog , $rootScope , $timeout , $animate ) {
294
298
jasmine . mockElementFocus ( this ) ;
295
299
var container , parent = angular . element ( '<div>' ) ;
296
300
@@ -311,7 +315,11 @@ describe('$mdDialog', function() {
311
315
312
316
container = angular . element ( parent [ 0 ] . querySelector ( '.md-dialog-container' ) ) ;
313
317
container . triggerHandler ( {
314
- type : 'click' ,
318
+ type : 'mousedown' ,
319
+ target : container [ 0 ]
320
+ } ) ;
321
+ container . triggerHandler ( {
322
+ type : 'mouseup' ,
315
323
target : container [ 0 ]
316
324
} ) ;
317
325
@@ -322,6 +330,80 @@ describe('$mdDialog', function() {
322
330
expect ( container . length ) . toBe ( 0 ) ;
323
331
} ) ) ;
324
332
333
+ it ( 'should not remove `md-dialog-container` after mousedown outside mouseup inside' , inject ( function ( $mdDialog , $rootScope , $timeout , $animate ) {
334
+ jasmine . mockElementFocus ( this ) ;
335
+ var container , parent = angular . element ( '<div>' ) ;
336
+
337
+ $mdDialog . show (
338
+ $mdDialog . confirm ( {
339
+ template : '<md-dialog>' +
340
+ '<md-dialog-content tabIndex="0">' +
341
+ '<p>Muppets are the best</p>' +
342
+ '</md-dialog-content>' +
343
+ '</md-dialog>' ,
344
+ parent : parent ,
345
+ clickOutsideToClose : true ,
346
+ ok : 'OK' ,
347
+ cancel : 'CANCEL'
348
+ } )
349
+ ) ;
350
+ runAnimation ( ) ;
351
+
352
+ container = angular . element ( parent [ 0 ] . querySelector ( '.md-dialog-container' ) ) ;
353
+ var content = angular . element ( parent [ 0 ] . querySelector ( 'md-dialog-content' ) ) ;
354
+ container . triggerHandler ( {
355
+ type : 'mousedown' ,
356
+ target : container [ 0 ]
357
+ } ) ;
358
+ content . triggerHandler ( {
359
+ type : 'mouseup' ,
360
+ target : content [ 0 ]
361
+ } ) ;
362
+
363
+ runAnimation ( ) ;
364
+ runAnimation ( ) ;
365
+
366
+ container = angular . element ( parent [ 0 ] . querySelector ( '.md-dialog-container' ) ) ;
367
+ expect ( container . length ) . toBe ( 1 ) ;
368
+ } ) ) ;
369
+
370
+ it ( 'should not remove `md-dialog-container` after mousedown inside mouseup outside' , inject ( function ( $mdDialog , $rootScope , $timeout , $animate ) {
371
+ jasmine . mockElementFocus ( this ) ;
372
+ var container , parent = angular . element ( '<div>' ) ;
373
+
374
+ $mdDialog . show (
375
+ $mdDialog . confirm ( {
376
+ template : '<md-dialog>' +
377
+ '<md-dialog-content tabIndex="0">' +
378
+ '<p>Muppets are the best</p>' +
379
+ '</md-dialog-content>' +
380
+ '</md-dialog>' ,
381
+ parent : parent ,
382
+ clickOutsideToClose : true ,
383
+ ok : 'OK' ,
384
+ cancel : 'CANCEL'
385
+ } )
386
+ ) ;
387
+ runAnimation ( ) ;
388
+
389
+ container = angular . element ( parent [ 0 ] . querySelector ( '.md-dialog-container' ) ) ;
390
+ var content = angular . element ( parent [ 0 ] . querySelector ( 'md-dialog-content' ) ) ;
391
+ content . triggerHandler ( {
392
+ type : 'mousedown' ,
393
+ target : content [ 0 ]
394
+ } ) ;
395
+ container . triggerHandler ( {
396
+ type : 'mouseup' ,
397
+ target : container [ 0 ]
398
+ } ) ;
399
+
400
+ runAnimation ( ) ;
401
+ runAnimation ( ) ;
402
+
403
+ container = angular . element ( parent [ 0 ] . querySelector ( '.md-dialog-container' ) ) ;
404
+ expect ( container . length ) . toBe ( 1 ) ;
405
+ } ) ) ;
406
+
325
407
it ( 'should remove `md-dialog-container` after ESCAPE key' , inject ( function ( $mdDialog , $rootScope , $timeout , $mdConstant ) {
326
408
jasmine . mockElementFocus ( this ) ;
327
409
var container , parent = angular . element ( '<div>' ) ;
@@ -569,7 +651,11 @@ describe('$mdDialog', function() {
569
651
expect ( parent . find ( 'md-dialog' ) . length ) . toBe ( 1 ) ;
570
652
571
653
container . triggerHandler ( {
572
- type : 'click' ,
654
+ type : 'mousedown' ,
655
+ target : container [ 0 ]
656
+ } ) ;
657
+ container . triggerHandler ( {
658
+ type : 'mouseup' ,
573
659
target : container [ 0 ]
574
660
} ) ;
575
661
runAnimation ( ) ;
0 commit comments