@@ -200,6 +200,39 @@ describe('details-dialog-element', function() {
200
200
assert ( ! details . open )
201
201
} )
202
202
} )
203
+
204
+ describe ( 'when using with inlcude-fragment' , function ( ) {
205
+ let includeFragment
206
+ beforeEach ( function ( ) {
207
+ includeFragment = document . createElement ( 'include-fragment' )
208
+ dialog . innerHTML = ''
209
+ dialog . append ( includeFragment )
210
+ dialog . src = '/404'
211
+ } )
212
+
213
+ afterEach ( function ( ) {
214
+ dialog . innerHTML = ''
215
+ dialog . removeAttribute ( 'src' )
216
+ } )
217
+
218
+ it ( 'transfers src on toggle' , async function ( ) {
219
+ assert ( ! details . open )
220
+ assert . notOk ( includeFragment . getAttribute ( 'src' ) )
221
+ dialog . toggle ( true )
222
+ await waitForToggleEvent ( details )
223
+ assert ( details . open )
224
+ assert . equal ( includeFragment . getAttribute ( 'src' ) , '/404' )
225
+ } )
226
+
227
+ it ( 'transfers src on mouseover when preload is true' , async function ( ) {
228
+ assert ( ! details . open )
229
+ dialog . preload = true
230
+ assert ( dialog . hasAttribute ( 'preload' ) )
231
+ assert . notOk ( includeFragment . getAttribute ( 'src' ) )
232
+ triggerEvent ( details , 'mouseover' )
233
+ assert . equal ( includeFragment . getAttribute ( 'src' ) , '/404' )
234
+ } )
235
+ } )
203
236
} )
204
237
} )
205
238
@@ -215,16 +248,17 @@ function waitForToggleEvent(details) {
215
248
} )
216
249
}
217
250
251
+ function triggerEvent ( element , name , key ) {
252
+ const event = document . createEvent ( 'Event' )
253
+ event . initEvent ( name , true , true )
254
+ if ( key ) event . key = key
255
+ element . dispatchEvent ( event )
256
+ }
257
+
218
258
function pressEscape ( details ) {
219
- const escapeEvent = document . createEvent ( 'Event' )
220
- escapeEvent . initEvent ( 'keydown' , true , true )
221
- escapeEvent . key = 'Escape'
222
- details . dispatchEvent ( escapeEvent )
259
+ triggerEvent ( details , 'keydown' , 'Escape' )
223
260
}
224
261
225
262
function pressTab ( details ) {
226
- const escapeEvent = document . createEvent ( 'Event' )
227
- escapeEvent . initEvent ( 'keydown' , true , true )
228
- escapeEvent . key = 'Tab'
229
- details . dispatchEvent ( escapeEvent )
263
+ triggerEvent ( details , 'keydown' , 'Tab' )
230
264
}
0 commit comments