| Index: LayoutTests/media/track/track-kind-user-preference.html
|
| diff --git a/LayoutTests/media/track/track-kind-user-preference.html b/LayoutTests/media/track/track-kind-user-preference.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..aa83078b7611da4291bcf4dc1ad1482c5c29b0a3
|
| --- /dev/null
|
| +++ b/LayoutTests/media/track/track-kind-user-preference.html
|
| @@ -0,0 +1,96 @@
|
| +<!DOCTYPE html>
|
| +<script src=../media-file.js></script>
|
| +<script src=../video-test.js></script>
|
| +<script src=../media-controls.js></script>
|
| +<script>
|
| +
|
| + var tracks;
|
| + var expectedTrack;
|
| + function setPreferences() {
|
| + if (!window.internals) {
|
| + consoleWrite("<b>** This test only works in DRT! **<" + "/b>");
|
| + return;
|
| + }
|
| + run("internals.setUserPreferredLanguages(['jp', 'es', 'en', 'fr'])");
|
| + }
|
| +
|
| + function checkExpected(mode, kind, language) {
|
| + testExpected("expectedTrack.mode", mode);
|
| + testExpected("expectedTrack.kind", kind);
|
| + testExpected("expectedTrack.language", language);
|
| + }
|
| +
|
| + function runTests() {
|
| + consoleWrite("");
|
| + tracks = video.textTracks;
|
| + testExpected("tracks.length", 7);
|
| + testUserPrefersDefault();
|
| + testUserPrefersSubtitles();
|
| + testUserPrefersCaptions();
|
| + }
|
| +
|
| + function testUserPrefersDefault() {
|
| + consoleWrite("");
|
| + // User preference is initialized to pick tracks marked as default.
|
| + // When multiple default tracks exist, pick the first default track.
|
| + expectedTrack = tracks[5];
|
| + checkExpected("showing", "subtitles", "ar");
|
| + }
|
| +
|
| + function testUserPrefersSubtitles() {
|
| + if (window.internals)
|
| + internals.settings.setTextTrackKindUserPreference("subtitles");
|
| + consoleWrite("");
|
| + // Displays subtitle track over caption track when both exist in the same language.
|
| + expectedTrack = tracks[4];
|
| + checkExpected("showing", "subtitles", "es");
|
| + }
|
| +
|
| + function testUserPrefersCaptions() {
|
| + if (window.internals)
|
| + internals.settings.setTextTrackKindUserPreference("captions");
|
| + consoleWrite("");
|
| + expectedTrack = tracks[1];
|
| + checkExpected("showing", "captions", "es");
|
| +
|
| + consoleWrite("");
|
| + // Add a subtitle track in user's first preferred language "jp". This track must
|
| + // be displayed over a caption track with a language less preferred by the user.
|
| + var track = document.createElement('track');
|
| + track.setAttribute('kind', "subtitles");
|
| + track.setAttribute('src', "captions-webvtt/styling.vtt");
|
| + track.setAttribute('srclang', "jp");
|
| + track.setAttribute('onload', 'trackLoaded()');
|
| + video.appendChild(track);
|
| + }
|
| +
|
| + function trackLoaded() {
|
| + consoleWrite("EVENT(load)");
|
| +
|
| + // Don't log the event name because the order of the two events in not predictable.
|
| + track = event.target;
|
| + expectedTrack = track.track;
|
| + testExpected("track.readyState", HTMLTrackElement.LOADED);
|
| + checkExpected("showing", "subtitles", "jp");
|
| + consoleWrite("");
|
| + endTest();
|
| + }
|
| +
|
| + window.onload = function() {
|
| + consoleWrite("Test that user preference for text track kind is honored");
|
| + findMediaElement();
|
| + setPreferences();
|
| + video.src = findMediaFile('video', '../content/test');
|
| + video.currentTime = 0.1;
|
| + waitForEvent('canplaythrough', runTests);
|
| + }
|
| +</script>
|
| +<video>
|
| + <track src="captions-webvtt/styling.vtt" kind="captions" srclang="de">
|
| + <track src="captions-webvtt/styling.vtt" kind="captions" srclang="es">
|
| + <track src="captions-webvtt/styling.vtt" kind="captions" srclang="en">
|
| + <track src="captions-webvtt/styling.vtt" kind="subtitles" srclang="fr">
|
| + <track src="captions-webvtt/styling.vtt" kind="subtitles" srclang="es">
|
| + <track src="captions-webvtt/styling.vtt" kind="subtitles" srclang="ar" default>
|
| + <track src="captions-webvtt/styling.vtt" kind="captions" srclang="fr" default>
|
| +</video>
|
|
|