mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision c26470dac73f2df9d4822a0d3482f7eb1ebf57d9
This commit is contained in:
parent
7de87c487b
commit
4d3c932c47
648 changed files with 9014 additions and 4821 deletions
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
Loading…
Add table
Add a link
Reference in a new issue