@@ -272,6 +272,44 @@ describe('Modal', function () {
272272 ok ( hasPropagated )
273273 } ) ;
274274 } ) ;
275+
276+ it ( 'verify event passing on overlay click' , function ( ) {
277+ var requestCloseCallback = sinon . spy ( ) ;
278+ var modal = renderModal ( {
279+ isOpen : true ,
280+ shouldCloseOnOverlayClick : true ,
281+ onRequestClose : requestCloseCallback ,
282+ } ) ;
283+ equal ( modal . props . isOpen , true ) ;
284+ var overlay = TestUtils . scryRenderedDOMComponentsWithClass ( modal . portal , 'ReactModal__Overlay' ) ;
285+ equal ( overlay . length , 1 ) ;
286+ Simulate . click ( overlay [ 0 ] ) ; // click the overlay
287+ ok ( requestCloseCallback . called )
288+ // Check if event is passed to onRequestClose callback.
289+ var event = requestCloseCallback . getCall ( 0 ) . args [ 0 ] ;
290+ ok ( event ) ;
291+ ok ( event . constructor ) ;
292+ equal ( event . constructor . name , 'SyntheticEvent' ) ;
293+ } ) ;
294+ } ) ;
295+
296+ it ( 'should close on Esc key event' , function ( ) {
297+ var requestCloseCallback = sinon . spy ( ) ;
298+ var modal = renderModal ( {
299+ isOpen : true ,
300+ shouldCloseOnOverlayClick : true ,
301+ onRequestClose : requestCloseCallback ,
302+ } ) ;
303+ equal ( modal . props . isOpen , true ) ;
304+ assert . doesNotThrow ( function ( ) {
305+ Simulate . keyDown ( modal . portal . refs . content , { key : "Esc" , keyCode : 27 , which : 27 } )
306+ } ) ;
307+ ok ( requestCloseCallback . called )
308+ // Check if event is passed to onRequestClose callback.
309+ var event = requestCloseCallback . getCall ( 0 ) . args [ 0 ] ;
310+ ok ( event ) ;
311+ ok ( event . constructor ) ;
312+ equal ( event . constructor . name , 'SyntheticEvent' ) ;
275313 } ) ;
276314
277315 //it('adds --before-close for animations', function() {
0 commit comments