@@ -279,7 +279,9 @@ QUnit.test('does not fire cuechange before Tech is ready', function(assert) {
279
279
return 0 ;
280
280
} ;
281
281
282
+ // `playing` would trigger rvfc or raf, `timeupdate` for fallback
282
283
player . tech_ . trigger ( 'playing' ) ;
284
+ player . tech_ . trigger ( 'timeupdate' ) ;
283
285
assert . equal ( changes , 0 , 'a cuechange event is not triggered' ) ;
284
286
285
287
player . tech_ . on ( 'ready' , function ( ) {
@@ -292,6 +294,11 @@ QUnit.test('does not fire cuechange before Tech is ready', function(assert) {
292
294
293
295
assert . equal ( changes , 2 , 'a cuechange event trigger addEventListener and oncuechange' ) ;
294
296
297
+ player . tech_ . trigger ( 'timeupdate' ) ;
298
+ clock . tick ( 1 ) ;
299
+
300
+ assert . equal ( changes , 2 , 'a cuechange event trigger not duplicated by timeupdate' ) ;
301
+
295
302
tt . off ( ) ;
296
303
player . dispose ( ) ;
297
304
clock . restore ( ) ;
@@ -311,31 +318,45 @@ QUnit.test('fires cuechange when cues become active and inactive', function(asse
311
318
const cuechangeHandler = function ( ) {
312
319
changes ++ ;
313
320
} ;
321
+ let fakeCurrentTime = 0 ;
322
+
323
+ player . tech_ . currentTime = function ( ) {
324
+ return fakeCurrentTime ;
325
+ } ;
314
326
315
327
tt . addCue ( {
316
328
id : '1' ,
317
329
startTime : 1 ,
318
330
endTime : 5
319
331
} ) ;
332
+ tt . addCue ( {
333
+ id : '2' ,
334
+ startTime : 11 ,
335
+ endTime : 14
336
+ } ) ;
320
337
321
338
tt . oncuechange = cuechangeHandler ;
322
339
tt . addEventListener ( 'cuechange' , cuechangeHandler ) ;
323
340
324
- player . tech_ . currentTime = function ( ) {
325
- return 2 ;
326
- } ;
341
+ fakeCurrentTime = 2 ;
342
+ player . tech_ . trigger ( 'playing' ) ;
327
343
344
+ assert . equal ( changes , 2 , 'a cuechange event trigger addEventListener and oncuechange (rvfc/raf)' ) ;
345
+
346
+ fakeCurrentTime = 7 ;
328
347
player . tech_ . trigger ( 'playing' ) ;
329
348
330
- assert . equal ( changes , 2 , 'a cuechange event trigger addEventListener and oncuechange' ) ;
349
+ assert . equal ( changes , 4 , 'a cuechange event trigger addEventListener and oncuechange (rvfc/raf) ' ) ;
331
350
332
- player . tech_ . currentTime = function ( ) {
333
- return 7 ;
334
- } ;
351
+ fakeCurrentTime = 12 ;
352
+ player . tech_ . trigger ( 'timeupdate' ) ;
335
353
336
- player . tech_ . trigger ( 'playing' ) ;
354
+ assert . equal ( changes , 6 , 'a cuechange event trigger addEventListener and oncuechange (timeupdate)' ) ;
355
+
356
+ fakeCurrentTime = 17 ;
357
+ player . tech_ . trigger ( 'timeupdate' ) ;
337
358
338
- assert . equal ( changes , 4 , 'a cuechange event trigger addEventListener and oncuechange' ) ;
359
+ assert . equal ( changes , 8 , 'a cuechange event trigger addEventListener and oncuechange (timeupdate) ' ) ;
339
360
340
361
tt . off ( ) ;
341
362
player . dispose ( ) ;
@@ -365,6 +386,7 @@ QUnit.test('enabled and disabled cuechange handler when changing mode to hidden'
365
386
return 2 ;
366
387
} ;
367
388
player . tech_ . trigger ( 'playing' ) ;
389
+ player . tech_ . trigger ( 'timeupdate' ) ;
368
390
369
391
assert . equal ( changes , 1 , 'a cuechange event trigger' ) ;
370
392
@@ -376,6 +398,7 @@ QUnit.test('enabled and disabled cuechange handler when changing mode to hidden'
376
398
return 7 ;
377
399
} ;
378
400
player . tech_ . trigger ( 'playing' ) ;
401
+ player . tech_ . trigger ( 'timeupdate' ) ;
379
402
380
403
assert . equal ( changes , 0 , 'NO cuechange event trigger' ) ;
381
404
0 commit comments