@@ -88,4 +88,29 @@ test("#6645: Missing element not found check in overlay", function(){
88
88
d1 . add ( d2 ) . remove ( ) ;
89
89
} ) ;
90
90
91
+ test ( "#6966: Escape key closes all dialogs, not the top one" , function ( ) {
92
+ expect ( 8 ) ;
93
+ // test with close function removing dialog
94
+ d1 = $ ( '<div title="dialog 1">Dialog 1</div>' ) . dialog ( { modal : true } ) ;
95
+ d2 = $ ( '<div title="dialog 2">Dialog 2</div>' ) . dialog ( { modal : true , close : function ( ) { d2 . remove ( ) } } ) ;
96
+ ok ( d1 . dialog ( "isOpen" ) , 'first dialog is open' ) ;
97
+ ok ( d2 . dialog ( "isOpen" ) , 'second dialog is open' ) ;
98
+ d2 . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
99
+ ok ( d1 . dialog ( "isOpen" ) , 'first dialog still open' ) ;
100
+ ok ( ! d2 . data ( 'dialog' ) , 'second dialog is closed' ) ;
101
+ d2 . remove ( ) ;
102
+ d1 . remove ( ) ;
103
+
104
+ // test without close function removing dialog
105
+ d1 = $ ( '<div title="dialog 1">Dialog 1</div>' ) . dialog ( { modal : true } ) ;
106
+ d2 = $ ( '<div title="dialog 2">Dialog 2</div>' ) . dialog ( { modal : true } ) ;
107
+ ok ( d1 . dialog ( "isOpen" ) , 'first dialog is open' ) ;
108
+ ok ( d2 . dialog ( "isOpen" ) , 'second dialog is open' ) ;
109
+ d2 . simulate ( "keydown" , { keyCode : $ . ui . keyCode . ESCAPE } ) ;
110
+ ok ( d1 . dialog ( "isOpen" ) , 'first dialog still open' ) ;
111
+ ok ( ! d2 . dialog ( "isOpen" ) , 'second dialog is closed' ) ;
112
+ d2 . remove ( ) ;
113
+ d1 . remove ( ) ;
114
+ } ) ;
115
+
91
116
} ) ( jQuery ) ;
0 commit comments