@@ -200,6 +200,39 @@ describe('details-dialog-element', function() {
200200 assert ( ! details . open )
201201 } )
202202 } )
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+ } )
203236 } )
204237} )
205238
@@ -215,16 +248,17 @@ function waitForToggleEvent(details) {
215248 } )
216249}
217250
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+
218258function 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' )
223260}
224261
225262function 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' )
230264}
0 commit comments