@@ -81,19 +81,19 @@ describe('details-dialog-element', function() {
81
81
dialog . toggle ( true )
82
82
await waitForToggleEvent ( details )
83
83
assert ( details . open )
84
- pressEscape ( details )
84
+ triggerKeydownEvent ( details , 'Escape' )
85
85
assert ( ! details . open )
86
86
} )
87
87
88
88
it ( 'manages focus' , async function ( ) {
89
89
summary . click ( )
90
90
await waitForToggleEvent ( details )
91
91
assert . equal ( document . activeElement , dialog )
92
- pressTab ( details , true )
92
+ triggerKeydownEvent ( details , 'Tab' , true )
93
93
assert . equal ( document . activeElement , document . querySelector ( `[${ CLOSE_ATTR } ]` ) )
94
- pressTab ( details )
94
+ triggerKeydownEvent ( details , 'Tab' )
95
95
assert . equal ( document . activeElement , document . querySelector ( `[data-button]` ) )
96
- pressTab ( details )
96
+ triggerKeydownEvent ( details , 'Tab' )
97
97
assert . equal ( document . activeElement , document . querySelector ( `[${ CLOSE_ATTR } ]` ) )
98
98
} )
99
99
@@ -124,7 +124,7 @@ describe('details-dialog-element', function() {
124
124
assert ( details . open )
125
125
assert . equal ( closeRequestCount , 2 )
126
126
127
- pressEscape ( details )
127
+ triggerKeydownEvent ( details , 'Escape' )
128
128
assert ( details . open )
129
129
assert . equal ( closeRequestCount , 3 )
130
130
@@ -165,7 +165,7 @@ describe('details-dialog-element', function() {
165
165
assert ( details . open )
166
166
assert . equal ( closeRequestCount , 1 )
167
167
168
- pressEscape ( details )
168
+ triggerKeydownEvent ( details , 'Escape' )
169
169
assert ( details . open )
170
170
assert . equal ( closeRequestCount , 2 )
171
171
@@ -199,7 +199,7 @@ describe('details-dialog-element', function() {
199
199
dialog . toggle ( true )
200
200
await waitForToggleEvent ( details )
201
201
assert ( details . open )
202
- pressEscape ( details )
202
+ triggerKeydownEvent ( details , 'Escape' )
203
203
assert ( ! details . open )
204
204
} )
205
205
} )
@@ -232,7 +232,7 @@ describe('details-dialog-element', function() {
232
232
dialog . preload = true
233
233
assert ( dialog . hasAttribute ( 'preload' ) )
234
234
assert . notOk ( includeFragment . getAttribute ( 'src' ) )
235
- triggerEvent ( details , 'mouseover' )
235
+ triggerMouseoverEvent ( details )
236
236
assert . equal ( includeFragment . getAttribute ( 'src' ) , '/404' )
237
237
} )
238
238
} )
@@ -262,7 +262,7 @@ describe('details-dialog-element', function() {
262
262
it ( 'transfers src on mouseover' , async function ( ) {
263
263
assert ( ! details . open )
264
264
assert . notOk ( includeFragment . getAttribute ( 'src' ) )
265
- triggerEvent ( details , 'mouseover' )
265
+ triggerMouseoverEvent ( details )
266
266
assert . equal ( includeFragment . getAttribute ( 'src' ) , '/404' )
267
267
} )
268
268
} )
@@ -281,22 +281,21 @@ function waitForToggleEvent(details) {
281
281
} )
282
282
}
283
283
284
- function triggerEvent ( element , name , key , shiftKey ) {
285
- const eventklass = name . match ( / ^ m o u s e / ) ? MouseEvent : KeyboardEvent
284
+ function triggerMouseoverEvent ( element ) {
286
285
element . dispatchEvent (
287
- new eventklass ( name , {
286
+ new MouseEvent ( 'mouseover' , {
287
+ bubbles : true ,
288
+ cancelable : true
289
+ } )
290
+ )
291
+ }
292
+ function triggerKeydownEvent ( element , key , shiftKey ) {
293
+ element . dispatchEvent (
294
+ new KeyboardEvent ( 'keydown' , {
288
295
bubbles : true ,
289
296
cancelable : true ,
290
297
key,
291
298
shiftKey
292
299
} )
293
300
)
294
301
}
295
-
296
- function pressEscape ( details ) {
297
- triggerEvent ( details , 'keydown' , 'Escape' )
298
- }
299
-
300
- function pressTab ( details , shift ) {
301
- triggerEvent ( details , 'keydown' , 'Tab' , shift )
302
- }
0 commit comments