Update web-platform-tests to revision c26470dac73f2df9d4822a0d3482f7eb1ebf57d9

This commit is contained in:
Anthony Ramine 2018-01-10 14:28:20 +01:00
parent 7de87c487b
commit 4d3c932c47
648 changed files with 9014 additions and 4821 deletions

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<title>A 'change' event is fired when a TextTrack's mode changes</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(function(t) {
var video = document.createElement('video');
var track = video.addTextTrack('subtitles', 'test', 'en');
// addTextTrack() defaults to "hidden", so settings
// mode to "showing" should trigger a "change" event.
track.mode = 'showing';
assert_equals(video.textTracks.length, 1);
video.textTracks.onchange = t.step_func_done(function() {
assert_equals(event.target, video.textTracks);
assert_true(event instanceof Event, 'instanceof');
assert_not_exists(event, 'track');
});
});
</script>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
:cue { color: red; }
:cue(i) { color: red; }
</style>
<script>
test(function() {
assert_equals(document.styleSheets[0].cssRules.length, 0);
}, ":cue pseudo-class is not supported and dropped during parsing");
</script>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<title>Negative timestamps</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track src="resources/settings.vtt" default>
<script>
async_test(function(t) {
var testTrack = document.querySelector("track");
testTrack.onload = t.step_func_done(function() {
assert_equals(testTrack.track.cues.length, 4);
// Add cue with negative startTime.
var cue = new VTTCue(-3439332606, 3.4, "Sausage?");
testTrack.track.addCue(cue);
assert_equals(testTrack.track.cues.length, 5);
// Add cue with negative startTime and negative endTime.
cue = new VTTCue(-110, -3.4, "Pepperoni?");
testTrack.track.addCue(cue);
assert_equals(testTrack.track.cues.length, 6);
// Set startTime and endTime to negative values.
var testCue = testTrack.track.cues[2];
assert_equals(testCue.startTime, 0);
testCue.startTime = -5;
assert_equals(testCue.startTime, -5);
assert_equals(testCue.endTime, 30.5);
testCue.endTime = -3439332606;
assert_equals(testCue.endTime, -3439332606);
});
});
</script>
</video>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<title>Empty cues</title>
<script src="/common/media.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(function(t) {
var video = document.createElement("video");
video.src = getVideoURI("/media/test");
video.addTextTrack("captions", "regular captions track", "en");
video.textTracks[0].addCue(new VTTCue(0, 4, ""));
video.onplaying = t.step_func_done();
video.play();
});
</script>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<title>A track with the "default" attribute loads automatically</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track kind="captions" src="resources/default-styles.vtt">
<track kind="captions" src="resources/metadata-area.vtt">
<track kind="captions" src="resources/webvtt-file.vtt" id="default" default>
<script>
async_test(function(t) {
var timer = null;
var tracks = document.querySelectorAll("track");
for (var track of tracks) {
track.onload = t.step_func(function() {
assert_equals(event.target.readyState, HTMLTrackElement.LOADED);
assert_equals(event.target.id, "default");
assert_true(event.target.default);
// End the test after a brief pause so we allow other tracks to load if they will.
if (timer)
clearTimeout(timer);
timer = t.step_timeout(t.step_func_done(), 200);
});
}
});
</script>
</video>

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<title>Track deletion during setup</title>
<script src="/common/media.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track src="resources/metadata.vtt">
</video>
<script>
async_test(function(t) {
var video = document.querySelector("video");
var track = document.querySelector("track");
t.step_timeout(function() {
video.parentNode.removeChild(video);
}, 61);
track.onload = t.step_func(function() {
var track2 = document.createElement("track");
video.appendChild(track2);
t.step_timeout(t.step_func_done(), 100);
});
assert_equals(track.readyState, HTMLTrackElement.NONE);
assert_equals(track.track.mode, "disabled");
track.track.mode = "hidden";
video.src = getVideoURI("/media/test");
});
</script>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<title>TextTrack "id" attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track id="LoremIpsum" src="resources/captions-fast.vtt" default>
<script>
test(function() {
var video = document.querySelector("video");
var track = document.querySelector("track");
var textTrack = track.track;
// Test default attribute value.
assert_equals(textTrack.id, "LoremIpsum");
assert_equals(video.textTracks[0].id, "LoremIpsum");
// Make sure we can look up tracks by id.
assert_equals(video.textTracks.getTrackById("LoremIpsum"), textTrack);
// Test that it's readonly.
textTrack.id = "newvalue";
assert_equals(textTrack.id, "LoremIpsum");
});
</script>
</video>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<title>Inserting a track element immediately after video load</title>
<script src="/common/media.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(function(t) {
var video = document.createElement('video');
video.src = getVideoURI('/media/test');
video.load();
video.appendChild(document.createElement('track'));
video.onloadedmetadata = t.step_func_done();
});
</script>

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<title>Add and remove track node</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<script>
test(function() {
var video = document.createElement('video');
var tracka = document.createElement('track');
video.appendChild(tracka);
var trackb = document.createElement('track');
video.appendChild(trackb);
// Adding tracks outside the DOM tree.
assert_array_equals(video.textTracks, [tracka.track, trackb.track]);
// Inserting the parent video element into the document.
document.body.appendChild(video);
assert_array_equals(video.textTracks, [tracka.track, trackb.track]);
// Inserting and removing another track in the document.
var trackc = document.createElement('track');
video.appendChild(trackc);
assert_array_equals(video.textTracks, [tracka.track, trackb.track, trackc.track]);
trackb.parentNode.removeChild(trackb);
assert_array_equals(video.textTracks, [tracka.track, trackc.track]);
// Removing the video from the document.
document.body.removeChild(video);
assert_array_equals(video.textTracks, [tracka.track, trackc.track]);
tracka.parentNode.removeChild(tracka);
assert_array_equals(video.textTracks, [trackc.track]);
});
</script>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<title>Multiple 'metadata' tracks with 'default'</title>
<script src="/common/media.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track kind="metadata" src="resources/default-styles.vtt" id="t1">
<track kind="metadata" src="resources/class.vtt" default id="t2hidden">
<track kind="metadata" src="resources/metadata-area.vtt" id="t3">
<track kind="metadata" src="resources/webvtt-file.vtt" default id="t4hidden">
<script>
async_test(function() {
var video = document.querySelector('video');
video.onloadstart = this.step_func_done(function() {
assert_equals(video.textTracks.length, 4);
for (var track of video.textTracks) {
assert_equals(track.kind, 'metadata');
var trackElement = document.getElementById(track.id);
if (track.id.indexOf('hidden') != -1) {
assert_true(trackElement.default);
assert_equals(track.mode, 'hidden');
} else {
assert_false(trackElement.default);
assert_equals(track.mode, 'disabled');
}
}
});
video.src = getVideoURI("/media/test");
});
</script>
</video>

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<title>TextTrackCueList functionality: length, operator[], and getCueById()</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track src="resources/settings.vtt" kind="captions" default>
<script>
async_test(function(t) {
var testTrack = document.querySelector("track");
testTrack.onload = t.step_func_done(function() {
var cues = testTrack.track.cues;
// Testing TextTrackCueList length.
assert_equals(cues.length, 4);
// Testing TextTrackCueList [] operator.
assert_equals(cues[0].id, "1");
assert_equals(cues[3].id, "4");
assert_object_equals(cues[4], undefined);
// Testing TextTrackCueList getCueById().
assert_equals(cues.getCueById("1").startTime, 0);
assert_equals(cues.getCueById("4").startTime, 121);
assert_object_equals(cues.getCueById("junk"), undefined);
});
});
</script>
</video>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<title>TextTracks in a TextTrackList are kept in the correct order</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track kind="captions" src="resources/webvtt-file.vtt">
</video>
<script>
test(function() {
var video = document.querySelector("video");
// Add a track with video.addTextTrack().
video.addTextTrack("descriptions", "Descriptions Track", "en");
// Add a track element with DOM API.
var trackElement = document.createElement("track");
trackElement.setAttribute("kind", "chapters");
video.appendChild(trackElement);
// Verify track order.
assert_equals(video.textTracks.length, 3);
assert_equals(video.textTracks[0].kind, "captions");
assert_equals(video.textTracks[1].kind, "chapters");
assert_equals(video.textTracks[2].kind, "descriptions");
// Verify the default parameters of the text track object
// returned by addTextTrack().
assert_equals(video.textTracks[2].mode, "hidden");
assert_not_equals(video.textTracks[2].cues, null);
assert_equals(video.textTracks[2].cues.length, 0);
// Add another track element, it should insert
// before the addTextTrack() track.
trackElement = document.createElement("track");
trackElement.setAttribute("kind", "metadata");
video.appendChild(trackElement);
assert_equals(video.textTracks.length, 4);
assert_equals(video.textTracks[0].kind, "captions");
assert_equals(video.textTracks[1].kind, "chapters");
assert_equals(video.textTracks[2].kind, "metadata");
assert_equals(video.textTracks[3].kind, "descriptions");
});
</script>

View file

@ -0,0 +1,28 @@
<!doctype html>
<title>Float precision of VTTCue attributes line, position and size</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
test(function() {
var cue = new VTTCue(0, 1, 'text');
// Assign a value which is exactly representable as double but not float.
var doubleValue = 1.000000000000004;
cue.line = doubleValue;
assert_equals(cue.line, doubleValue);
cue.position = doubleValue;
assert_equals(cue.position, doubleValue);
cue.size = doubleValue;
assert_equals(cue.size, doubleValue);
// Assign a value which is exactly representable as float but is non-integral.
var floatValue = 1.5;
cue.line = floatValue;
assert_equals(cue.line, floatValue);
cue.position = floatValue;
assert_equals(cue.position, floatValue);
cue.size = floatValue;
assert_equals(cue.size, floatValue);
}, document.title+', stored as floats');
</script>