| Index: third_party/WebKit/LayoutTests/imported/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrack/activeCues.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrack/activeCues.html b/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrack/activeCues.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..689ec12be0c098ccba748260517b21a974745f47
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/html/semantics/embedded-content/media-elements/interfaces/TextTrack/activeCues.html
|
| @@ -0,0 +1,104 @@
|
| +<!doctype html>
|
| +<title>TextTrack.activeCues</title>
|
| +<script src=/resources/testharness.js></script>
|
| +<script src=/resources/testharnessreport.js></script>
|
| +<script src=/common/media.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);
|
| + window.t2 = track.track;
|
| + t2.mode = 'showing';
|
| + window.t1_cues = t1.activeCues;
|
| + window.t2_cues = t2.activeCues;
|
| + document.body.appendChild(video);
|
| + if (!t1)
|
| + throw new Error('t1 was undefined')
|
| +}, {timeout:25000});
|
| +function smoke_test() {
|
| + assert_true('HTMLTrackElement' in window, 'track not supported');
|
| +}
|
| +
|
| +test(function(){
|
| + smoke_test();
|
| + assert_equals(t1.activeCues, t1_cues, 't1.activeCues should return same object');
|
| + assert_equals(t2.activeCues, t2_cues, 't2.activeCues should return same object');
|
| + assert_not_equals(t1.activeCues, t2.activeCues, 't1.activeCues and t2.activeCues should be different objects');
|
| + assert_not_equals(t1.activeCues, null, 't1.activeCues should not be null');
|
| + assert_not_equals(t2.activeCues, null, 't2.activeCues should not be null');
|
| + assert_equals(t1.activeCues.length, 0, 't1.activeCues should have length 0');
|
| + assert_equals(t2.activeCues.length, 0, 't2.activeCues should have length 0');
|
| +}, document.title+', empty list');
|
| +test(function(){
|
| + smoke_test();
|
| + var c = new VTTCue(0, 1, "text");
|
| + t1.addCue(c);
|
| + assert_equals(t1.activeCues, t1_cues, "t1.activeCues should return same object");
|
| + assert_equals(t1.activeCues.length, 0, "t1.activeCues.length");
|
| + var c2 = new VTTCue(1, 2, "text2");
|
| + t1.addCue(c2);
|
| + assert_equals(t1.activeCues, t1_cues, "t1.activeCues should return the same object after adding a second cue");
|
| + assert_equals(t1.activeCues.length, 0, "t1.activeCues.length after adding a second cue");
|
| +}, document.title+', after addCue()');
|
| +test(function(){
|
| + smoke_test();
|
| + t1.mode = 'showing';
|
| + assert_equals(t1.activeCues, t1_cues, "t1.activeCues should return the same object after setting mode to showing");
|
| + t1.mode = 'hidden';
|
| + assert_equals(t1.activeCues, t1_cues, "t1.activeCues should return the same object after setting mode to hidden");
|
| + t1.mode = 'disabled';
|
| + assert_equals(t1.activeCues, null, "t1.activeCues should be null when mode is disabled");
|
| + assert_equals(t1_cues.length, 0, "t1_cues should still be intact after setting mode to disabled");
|
| +}, document.title+', different modes');
|
| +
|
| +// ok now let's load in a video
|
| +var test1 = async_test(document.title+', video loading', {timeout:20000});
|
| +var test2 = async_test(document.title+', video playing', {timeout:20000});
|
| +var test3 = async_test(document.title+', adding cue during playback', {timeout:20000});
|
| +test1.step(smoke_test);
|
| +test2.step(smoke_test);
|
| +test3.step(smoke_test);
|
| +test1.step(function(){
|
| + t1.mode = 'showing';
|
| + video.onloadeddata = test1.step_func(function(e) {
|
| + video.onplaying = test2.step_func(function(e) {
|
| + try {
|
| + assert_equals(t1.activeCues, t1_cues, "t1.activeCues should return the same object after playing a video");
|
| + assert_equals(t1.activeCues.length, 1, "t1.activeCues.length after the video has started playing");
|
| + } catch(ex) {
|
| + test2.step(function() { throw ex; });
|
| + test3.step(function() { assert_unreached(); });
|
| + return;
|
| + }
|
| + test3.step(function(){
|
| + var c3 = new VTTCue(0, 2, "text3");
|
| + t1.addCue(c3);
|
| + assert_equals(t1.activeCues.length, 1, "t1.activeCues.length after adding a cue in the same script");
|
| + setTimeout(test3.step_func(function(){
|
| + assert_equals(t1.activeCues.length, 2, "t1.activeCues.length after the event loop has spun");
|
| + test3.done();
|
| + }, 0));
|
| + });
|
| + test2.done();
|
| + });
|
| + try {
|
| + assert_equals(t1.activeCues, t1_cues, "t1.activeCues should return the same object after loading a video");
|
| + assert_equals(t2.activeCues, t2_cues, "t2.activeCues should return the same object after loading a video");
|
| + assert_equals(t1.activeCues.length, 0, "t1.activeCues.length before the video has started playing");
|
| + assert_equals(t2.activeCues.length, 0, "t1.activeCues.length before the video has started playing");
|
| + } catch(ex) {
|
| + test1.step(function() { throw ex; });
|
| + test2.step(function() { assert_unreached(); });
|
| + test3.step(function() { assert_unreached(); });
|
| + return;
|
| + }
|
| + video.play();
|
| + test1.done();
|
| + });
|
| + video.src = getVideoURI("/media/movie_5");
|
| +});
|
| +</script>
|
|
|