@@ -273,6 +273,101 @@ test('smalltalk: alert: keydown: tab: preventDefault', (t) => {
273273 t . end ( ) ;
274274} ) ;
275275
276+ test . only ( 'smalltalk: alert: click: stopPropagation: called' , ( t ) => {
277+ before ( ) ;
278+
279+ const parentElement = {
280+ addEventListener : sinon . stub ( ) ,
281+ removeChild : sinon . stub ( )
282+ } ;
283+
284+ const el = {
285+ parentElement,
286+ querySelector : ( a ) => {
287+ if ( a === '[data-name="js-ok"]' )
288+ return ok ;
289+ }
290+ } ;
291+
292+ const ok = {
293+ getAttribute : ( ) => 'js-ok' ,
294+ focus : sinon . stub ( ) ,
295+ addEventListener : sinon . stub ( ) ,
296+ } ;
297+
298+ const createElement = getCreateElement ( el ) ;
299+ document . createElement = createElement ;
300+
301+ const querySelector = sinon . stub ( ) . returns ( el ) ;
302+ document . querySelector = querySelector ;
303+
304+ smalltalk . alert ( 'title' , 'message' ) ;
305+
306+ const [ , click ] = el . addEventListener . args . filter ( ( [ event ] ) => {
307+ return event === 'click' ;
308+ } ) . pop ( ) ;
309+
310+ const event = {
311+ stopPropagation : sinon . stub ( )
312+ } ;
313+
314+ click ( event ) ;
315+ after ( ) ;
316+
317+ t . ok ( event . stopPropagation . called , 'should call stopPropagation' ) ;
318+ t . end ( ) ;
319+ } ) ;
320+
321+ test ( 'smalltalk: alert: keydown: tab: preventDefault' , ( t ) => {
322+ before ( ) ;
323+
324+ const parentElement = {
325+ removeChild : sinon . stub ( )
326+ } ;
327+
328+ const el = {
329+ parentElement,
330+ querySelector : ( a ) => {
331+ if ( a === '[data-name="js-ok"]' )
332+ return ok ;
333+ } ,
334+ getAttribute : ( ) => 'js-ok'
335+ } ;
336+
337+ const ok = {
338+ getAttribute : ( ) => 'js-ok' ,
339+ focus : sinon . stub ( ) ,
340+ addEventListener : sinon . stub ( ) ,
341+ } ;
342+
343+ const createElement = getCreateElement ( el ) ;
344+ document . createElement = createElement ;
345+
346+ const querySelector = sinon . stub ( ) . returns ( el ) ;
347+ document . querySelector = querySelector ;
348+
349+ smalltalk . alert ( 'title' , 'message' ) ;
350+
351+ const [ , keydown ] = el . addEventListener . args
352+ . filter ( ( [ event ] ) => event === 'keydown' )
353+ . pop ( ) ;
354+
355+ const TAB = 9 ;
356+
357+ const event = {
358+ keyCode : TAB ,
359+ preventDefault : sinon . stub ( ) ,
360+ stopPropagation : sinon . stub ( ) ,
361+ target : el ,
362+ } ;
363+
364+ keydown ( event ) ;
365+ after ( ) ;
366+
367+ t . ok ( event . preventDefault . called , 'should call preventDefault' ) ;
368+ t . end ( ) ;
369+ } ) ;
370+
276371test ( 'smalltalk: alert: keydown: tab: active name' , ( t ) => {
277372 before ( ) ;
278373
0 commit comments