@@ -371,4 +371,53 @@ suite('include-fragment-element', function() {
371371 assert . equal ( document . querySelector ( '#replaced' ) . textContent , 'hello' )
372372 } )
373373 } )
374+
375+ test . only ( 'fires replaced event' , function ( ) {
376+ const elem = document . createElement ( 'include-fragment' )
377+ document . body . appendChild ( elem )
378+
379+ setTimeout ( function ( ) {
380+ elem . src = '/hello'
381+ } , 10 )
382+
383+ return when ( elem , 'include-fragment-replaced' ) . then ( ( ) => {
384+ assert . equal ( document . querySelector ( 'include-fragment' ) , null )
385+ assert . equal ( document . querySelector ( '#replaced' ) . textContent , 'hello' )
386+ } )
387+ } )
388+
389+ test . only ( 'fires events for include-fragment node replacement operations for fragment manipulation' , function ( ) {
390+ const elem = document . createElement ( 'include-fragment' )
391+ document . body . appendChild ( elem )
392+
393+ setTimeout ( function ( ) {
394+ elem . src = '/hello'
395+ } , 10 )
396+
397+ elem . addEventListener ( 'include-fragment-replace' , event => {
398+ event . detail . fragment . querySelector ( '*' ) . textContent = 'hey'
399+ } )
400+
401+ return when ( elem , 'include-fragment-replaced' ) . then ( ( ) => {
402+ assert . equal ( document . querySelector ( 'include-fragment' ) , null )
403+ assert . equal ( document . querySelector ( '#replaced' ) . textContent , 'hey' )
404+ } )
405+ } )
406+
407+ test . only ( 'does not replace node if event was canceled ' , function ( ) {
408+ const elem = document . createElement ( 'include-fragment' )
409+ document . body . appendChild ( elem )
410+
411+ setTimeout ( function ( ) {
412+ elem . src = '/hello'
413+ } , 10 )
414+
415+ elem . addEventListener ( 'include-fragment-replace' , event => {
416+ event . preventDefault ( )
417+ } )
418+
419+ return when ( elem , 'load' ) . then ( ( ) => {
420+ assert ( document . querySelector ( 'include-fragment' ) , 'Node should not be replaced' )
421+ } )
422+ } )
374423} )
0 commit comments