@@ -81,17 +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 )
92
+ triggerKeydownEvent ( details , 'Tab' , true )
93
+ assert . equal ( document . activeElement , document . querySelector ( `[${ CLOSE_ATTR } ]` ) )
94
+ triggerKeydownEvent ( details , 'Tab' )
93
95
assert . equal ( document . activeElement , document . querySelector ( `[data-button]` ) )
94
- pressTab ( details )
96
+ triggerKeydownEvent ( details , 'Tab' )
95
97
assert . equal ( document . activeElement , document . querySelector ( `[${ CLOSE_ATTR } ]` ) )
96
98
} )
97
99
@@ -122,7 +124,7 @@ describe('details-dialog-element', function() {
122
124
assert ( details . open )
123
125
assert . equal ( closeRequestCount , 2 )
124
126
125
- pressEscape ( details )
127
+ triggerKeydownEvent ( details , 'Escape' )
126
128
assert ( details . open )
127
129
assert . equal ( closeRequestCount , 3 )
128
130
@@ -163,7 +165,7 @@ describe('details-dialog-element', function() {
163
165
assert ( details . open )
164
166
assert . equal ( closeRequestCount , 1 )
165
167
166
- pressEscape ( details )
168
+ triggerKeydownEvent ( details , 'Escape' )
167
169
assert ( details . open )
168
170
assert . equal ( closeRequestCount , 2 )
169
171
@@ -197,7 +199,7 @@ describe('details-dialog-element', function() {
197
199
dialog . toggle ( true )
198
200
await waitForToggleEvent ( details )
199
201
assert ( details . open )
200
- pressEscape ( details )
202
+ triggerKeydownEvent ( details , 'Escape' )
201
203
assert ( ! details . open )
202
204
} )
203
205
} )
@@ -230,7 +232,7 @@ describe('details-dialog-element', function() {
230
232
dialog . preload = true
231
233
assert ( dialog . hasAttribute ( 'preload' ) )
232
234
assert . notOk ( includeFragment . getAttribute ( 'src' ) )
233
- triggerEvent ( details , 'mouseover' )
235
+ triggerMouseoverEvent ( details )
234
236
assert . equal ( includeFragment . getAttribute ( 'src' ) , '/404' )
235
237
} )
236
238
} )
@@ -260,7 +262,7 @@ describe('details-dialog-element', function() {
260
262
it ( 'transfers src on mouseover' , async function ( ) {
261
263
assert ( ! details . open )
262
264
assert . notOk ( includeFragment . getAttribute ( 'src' ) )
263
- triggerEvent ( details , 'mouseover' )
265
+ triggerMouseoverEvent ( details )
264
266
assert . equal ( includeFragment . getAttribute ( 'src' ) , '/404' )
265
267
} )
266
268
} )
@@ -279,17 +281,21 @@ function waitForToggleEvent(details) {
279
281
} )
280
282
}
281
283
282
- function triggerEvent ( element , name , key ) {
283
- const event = document . createEvent ( 'Event' )
284
- event . initEvent ( name , true , true )
285
- if ( key ) event . key = key
286
- element . dispatchEvent ( event )
287
- }
288
-
289
- function pressEscape ( details ) {
290
- triggerEvent ( details , 'keydown' , 'Escape' )
284
+ function triggerMouseoverEvent ( element ) {
285
+ element . dispatchEvent (
286
+ new MouseEvent ( 'mouseover' , {
287
+ bubbles : true ,
288
+ cancelable : true
289
+ } )
290
+ )
291
291
}
292
-
293
- function pressTab ( details ) {
294
- triggerEvent ( details , 'keydown' , 'Tab' )
292
+ function triggerKeydownEvent ( element , key , shiftKey ) {
293
+ element . dispatchEvent (
294
+ new KeyboardEvent ( 'keydown' , {
295
+ bubbles : true ,
296
+ cancelable : true ,
297
+ key,
298
+ shiftKey
299
+ } )
300
+ )
295
301
}
0 commit comments