@@ -429,19 +429,33 @@ suite('include-fragment-element', function() {
429
429
test ( 'loading events fire in guaranteed order' , function ( ) {
430
430
const elem = document . createElement ( 'include-fragment' )
431
431
const order = [ ]
432
+ const connected = [ ]
432
433
const events = [
433
- when ( elem , 'loadend' ) . then ( ( ) => order . push ( 'loadend' ) ) ,
434
- when ( elem , 'load' ) . then ( ( ) => order . push ( 'load' ) ) ,
435
- when ( elem , 'loadstart' ) . then ( ( ) => order . push ( 'loadstart' ) )
434
+ when ( elem , 'loadend' ) . then ( ( ) => {
435
+ order . push ( 'loadend' )
436
+ connected . push ( elem . isConnected )
437
+ } ) ,
438
+ when ( elem , 'load' ) . then ( ( ) => {
439
+ order . push ( 'load' )
440
+ connected . push ( elem . isConnected )
441
+ } ) ,
442
+ when ( elem , 'loadstart' ) . then ( ( ) => {
443
+ order . push ( 'loadstart' )
444
+ connected . push ( elem . isConnected )
445
+ } )
436
446
]
437
447
elem . src = '/hello'
448
+
449
+ // Emulate some kind of timer clamping
438
450
const originalSetTimeout = window . setTimeout
439
451
let i = 60
440
452
window . setTimeout = ( fn , ms , ...rest ) => originalSetTimeout . call ( window , fn , ms + ( i -= 20 ) , ...rest )
441
- elem . load ( )
453
+
454
+ document . body . appendChild ( elem )
442
455
return Promise . all ( events ) . then ( ( ) => {
443
456
window . setTimeout = originalSetTimeout
444
457
assert . deepStrictEqual ( order , [ 'loadstart' , 'load' , 'loadend' ] )
458
+ assert . deepStrictEqual ( connected , [ true , false , false ] )
445
459
} )
446
460
} )
447
461
0 commit comments