| Index: LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues.html
|
| diff --git a/LayoutTests/media/track/opera/interfaces/TextTrack/cues.html b/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues.html
|
| similarity index 54%
|
| copy from LayoutTests/media/track/opera/interfaces/TextTrack/cues.html
|
| copy to LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues.html
|
| index c89316a28da21481c3362daac1ac6fdd33866ca2..c9d98db127a33b720e74bb0decddafdebd13d8ba 100644
|
| --- a/LayoutTests/media/track/opera/interfaces/TextTrack/cues.html
|
| +++ b/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues.html
|
| @@ -1,39 +1,45 @@
|
| <!doctype html>
|
| <title>TextTrack.cues</title>
|
| -<script src=../../../../../resources/testharness.js></script>
|
| -<script src=../../../../../resources/testharnessreport.js></script>
|
| +<script src=../../../../../../../../resources/testharness.js></script>
|
| +<script src=../../../../../../../../resources/testharnessreport.js></script>
|
| <div id=log></div>
|
| <script>
|
| -setup(function(){
|
| - window.video = document.createElement('video');
|
| - window.t1 = video.addTextTrack('subtitles');
|
| - window.track = document.createElement('track');
|
| - track['default'] = true;
|
| - video.appendChild(track); // queues a task to "honor user preferences...", media element event task source
|
| - window.t2 = track.track;
|
| - window.t1_cues = t1.cues
|
| - window.t2_cues = t2.cues
|
| -});
|
| test(function(){
|
| - assert_equals(t1.cues, t1_cues, 't1.cues should return same object');
|
| + var video = document.createElement('video');
|
| + var t1 = video.addTextTrack('subtitles');
|
| + assert_equals(t1.cues, t1.cues, 't1.cues should return same object');
|
| assert_not_equals(t1.cues, null, 't1.cues should not be null');
|
| - assert_equals(t1.cues.length, 0, 't1.cues should have length 0');
|
| + assert_true(t1.cues instanceof TextTrackCueList, 't1.cues instanceof TextTrackCueList');
|
| + assert_equals(t1.cues.length, 0, 't1.cues.length');
|
| }, document.title+', empty list');
|
| +
|
| +function addCue(texttrack, start, end, text, id) {
|
| + var c = new VTTCue(start, end, text);
|
| + c.id = id;
|
| + texttrack.addCue(c);
|
| + return c;
|
| +}
|
| +
|
| test(function(){
|
| - var c = new VTTCue(0, 1, "text");
|
| - c.id = "id";
|
| - t1.addCue(c);
|
| + var video = document.createElement('video');
|
| + var t1 = video.addTextTrack('subtitles');
|
| + var t1_cues = t1.cues;
|
| + var c = addCue(t1, 0, 1, 'text', 'id');
|
| assert_equals(t1.cues, t1_cues, "t1.cues should return same object");
|
| assert_equals(t1.cues.length, 1, "t1.cues.length");
|
| - var c2 = new VTTCue(1, 2, "text2");
|
| - c2.id = "id2";
|
| - t1.addCue(c2);
|
| + var c2 = addCue(t1, 1, 2, 'text2', 'id2');
|
| assert_equals(t1.cues, t1_cues, "t1.cues should return the same object after adding a second cue");
|
| assert_equals(t1.cues.length, 2, "t1.cues.length after adding a second cue");
|
| assert_equals(t1.cues[0].id, "id");
|
| assert_equals(t1.cues[1].id, "id2");
|
| }, document.title+', after addCue()');
|
| +
|
| test(function(){
|
| + var video = document.createElement('video');
|
| + var t1 = video.addTextTrack('subtitles');
|
| + var t1_cues = t1.cues;
|
| + var c = addCue(t1, 0, 1, 'text', 'id');
|
| + var c2 = addCue(t1, 1, 2, 'text2', 'id2');
|
| t1.mode = 'showing';
|
| assert_equals(t1.cues, t1_cues, "t1.cues should return the same object after setting mode to 'showing'");
|
| t1.mode = 'hidden';
|
| @@ -53,7 +59,13 @@ test(function(){
|
| t1.mode = 'showing';
|
| assert_equals(t1.cues, t1_cues, "t1.cues should return the same object after setting mode to 'disabled' and then 'showing'");
|
| }, document.title+', different modes');
|
| +
|
| test(function(){
|
| + var video = document.createElement('video');
|
| + var t1 = video.addTextTrack('subtitles');
|
| + var t1_cues = t1.cues;
|
| + var c = addCue(t1, 0, 1, 'text', 'id');
|
| + var c2 = addCue(t1, 1, 2, 'text2', 'id2');
|
| t1.mode = 'showing';
|
| t1.cues[1].startTime = 0; // this should change the text track cue order
|
| assert_equals(t1.cues[0].id, 'id2');
|
| @@ -62,17 +74,27 @@ test(function(){
|
| assert_equals(t1.cues[0].id, 'id');
|
| assert_equals(t1.cues[1].id, 'id2');
|
| }, document.title+', changing order');
|
| -// FIXME: disabled because it requires a newer testharness.js
|
| -//async_test(function(){
|
| -// t1.mode = 'showing';
|
| -// assert_equals(t2.cues, null, 't2.cues should be null');
|
| -// video.onplay = this.step_func(function(){
|
| -// assert_equals(t2.cues, t2_cues, 't2.cues should return same object');
|
| -// assert_not_equals(t1.cues, t2.cues, 't1.cues and t2.cues should be different objects');
|
| -// assert_not_equals(t2.cues, null, 't2.cues should not be null');
|
| -// assert_equals(t2.cues.length, 0, 't2.cues should have length 0');
|
| -// this.done();
|
| -// });
|
| -// video.play(); // queues a task to fire 'play', media element event task source
|
| -//}, document.title+', default attribute');
|
| +
|
| +async_test(function(){
|
| + var video = document.createElement('video');
|
| + var t1 = video.addTextTrack('subtitles');
|
| + var t1_cues = t1.cues;
|
| + t1.mode = 'showing';
|
| + var track = document.createElement('track');
|
| + track['default'] = true;
|
| + video.appendChild(track); // queues a task to "honor user preferences...", media element event task source
|
| + var t2 = track.track;
|
| + assert_equals(t2.cues, null, 't2.cues should be null');
|
| + // We need to wait until the "honor user preferences..." steps have run so we invoke play()
|
| + // which queues an event with the same task source.
|
| + video.onplay = this.step_func(function(){
|
| + assert_equals(t2.cues, t2.cues, 't2.cues should return same object');
|
| + assert_not_equals(t1.cues, t2.cues, 't1.cues and t2.cues should be different objects');
|
| + assert_not_equals(t2.cues, null, 't2.cues should not be null');
|
| + assert_true(t2.cues instanceof TextTrackCueList, 't2.cues instanceof TextTrackCueList');
|
| + assert_equals(t2.cues.length, 0, 't2.cues should have length 0');
|
| + this.done();
|
| + });
|
| + video.play(); // queues a task to fire 'play', media element event task source
|
| +}, document.title+', default attribute');
|
| </script>
|
|
|