| Index: third_party/WebKit/LayoutTests/media/track/track-language-preference.html
|
| diff --git a/third_party/WebKit/LayoutTests/media/track/track-language-preference.html b/third_party/WebKit/LayoutTests/media/track/track-language-preference.html
|
| index 02ca7009040c1bffc81b7da4479945786f1a48c9..2ccaf3ccf2271f96e5759c697a578590cc371b67 100644
|
| --- a/third_party/WebKit/LayoutTests/media/track/track-language-preference.html
|
| +++ b/third_party/WebKit/LayoutTests/media/track/track-language-preference.html
|
| @@ -1,121 +1,87 @@
|
| <!DOCTYPE html>
|
| -<html>
|
| - <head>
|
| - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
| -
|
| - <style>
|
| - video { background-color: yellow; width: 320px; height: 240px;}
|
| - </style>
|
| - <script src=../media-file.js></script>
|
| - <!-- TODO(philipj): Convert test to testharness.js. crbug.com/588956
|
| - (Please avoid writing new tests using video-test.js) -->
|
| - <script src=../video-test.js></script>
|
| - <script>
|
| -
|
| - var timer = null;
|
| - var expectedLanguage;
|
| - var testList =
|
| - {
|
| - current : -1,
|
| - tests :
|
| - [
|
| - {
|
| - description: "a track language matches one of the user's preferred languages exactly",
|
| - languages : ['fr', 'en', 'jp'],
|
| - expectedLanguage : "jp",
|
| - },
|
| - {
|
| - description: "a track language without locale exactly matches one of the user's preferred languages",
|
| - languages : ['fr-CH', 'da'],
|
| - expectedLanguage : "fr-CH",
|
| - },
|
| - {
|
| - description: "a track language without locale matches one of the user's preferred languages without locale",
|
| - languages : ['fr', 'es-MX'],
|
| - expectedLanguage : "es-MX",
|
| - },
|
| - {
|
| - description: "no track language matches any of the user's preferred languages",
|
| - languages : ['fa', 'ru', 'no'],
|
| - expectedLanguage : "fa",
|
| - },
|
| - ]
|
| - };
|
| -
|
| - function runNextTest()
|
| - {
|
| - consoleWrite("");
|
| - testList.current++;
|
| - if (testList.current >= testList.tests.length) {
|
| - var tracks = document.querySelectorAll('track');
|
| - testExpected("video.textTracks.length", tracks.length);
|
| - endTest();
|
| - return;
|
| - }
|
| -
|
| - consoleWrite("<b>Test: </b> <em>"+ testList.tests[testList.current].description + ".</em>");
|
| - createTrackElements(testList.tests[testList.current].languages);
|
| - }
|
| -
|
| - function trackLoaded()
|
| - {
|
| - consoleWrite("EVENT(load)");
|
| -
|
| - // Don't log the event name because the order of the two events in not predictable.
|
| - track = event.target;
|
| - testExpected("track.readyState", HTMLTrackElement.LOADED);
|
| - testExpected("track.srclang", testList.tests[testList.current].expectedLanguage);
|
| -
|
| - timer = setTimeout(runNextTest, 200);
|
| - }
|
| -
|
| - function setPreferences()
|
| +<title>Tests that the user's preferred languages are honored.</title>
|
| +<video></video>
|
| +<script src="../media-file.js"></script>
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<script>
|
| +async_test(function(t) {
|
| + var video = document.querySelector("video");
|
| +
|
| + // Set user preferred languages.
|
| + internals.setUserPreferredLanguages(['jp', 'es-ES', 'en', 'fr']);
|
| + internals.settings.setTextTrackKindUserPreference('captions');
|
| +
|
| + var timer;
|
| + var expectedLanguage;
|
| + var testList =
|
| + {
|
| + currentTestIndex : -1,
|
| + tests :
|
| + [
|
| {
|
| - if (!window.internals) {
|
| - consoleWrite("<b>** This test only works in DRT! **<" + "/b>");
|
| - return;
|
| - }
|
| -
|
| - consoleWrite("<i>**Set user preferred languages<" + "/i>");
|
| - run("internals.setUserPreferredLanguages(['jp', 'es-ES', 'en', 'fr'])");
|
| - window.internals.settings.setTextTrackKindUserPreference('captions');
|
| - }
|
| -
|
| - function createTrackElement(language, src)
|
| + // A track language matches one of the user's preferred languages exactly.
|
| + languages : ['fr', 'en', 'jp'],
|
| + expectedLanguage : "jp"
|
| + },
|
| {
|
| - var track = document.createElement('track');
|
| - track.setAttribute('kind', "captions");
|
| - track.setAttribute('src', src);
|
| - track.setAttribute('srclang', language);
|
| - track.setAttribute('onload', 'trackLoaded()');
|
| - video.appendChild(track);
|
| - }
|
| -
|
| - function createTrackElements(languages)
|
| + // A track language without locale exactly matches
|
| + // one of the user's preferred languages.
|
| + languages : ['fr-CH', 'da'],
|
| + expectedLanguage : "fr-CH"
|
| + },
|
| {
|
| - var tracks = document.querySelectorAll('track');
|
| - for (var ndx = 0; ndx < tracks.length; ++ndx)
|
| - video.removeChild(tracks[ndx]);
|
| -
|
| - consoleWrite("<i>- creating tracks for: [" + languages + "].<" + "/i>");
|
| - for (var ndx = 0; ndx < languages.length; ++ndx)
|
| - createTrackElement(languages[ndx], "captions-webvtt/tc004-webvtt-file.vtt");
|
| - }
|
| -
|
| - function setup()
|
| + // A track language without locale matches one of
|
| + // the user's preferred languages without locale.
|
| + languages : ['fr', 'es-MX'],
|
| + expectedLanguage : "es-MX"
|
| + },
|
| {
|
| - findMediaElement();
|
| -
|
| - setPreferences();
|
| -
|
| - runNextTest();
|
| + // No track language matches any of the user's preferred languages.
|
| + languages : ['fa', 'ru', 'no'],
|
| + expectedLanguage : "fa"
|
| }
|
| -
|
| - </script>
|
| - </head>
|
| - <body onload="setup()">
|
| - <p>Tests that the user's preferred languages are honored.</p>
|
| - <video>
|
| - </video>
|
| - </body>
|
| -</html>
|
| + ]
|
| + };
|
| +
|
| + runNextTest();
|
| +
|
| + function runNextTest() {
|
| + testList.currentTestIndex++;
|
| + if (testList.currentTestIndex >= testList.tests.length) {
|
| + var tracks = document.querySelectorAll('track');
|
| + assert_equals(video.textTracks.length, tracks.length);
|
| + t.done();
|
| + return;
|
| + }
|
| +
|
| + createTrackElements(testList.tests[testList.currentTestIndex].languages);
|
| + }
|
| +
|
| + function createTrackElements(languages) {
|
| + var tracks = document.querySelectorAll('track');
|
| + for (var index = 0; index < tracks.length; ++index)
|
| + video.removeChild(tracks[index]);
|
| +
|
| + for (var index = 0; index < languages.length; ++index)
|
| + createTrackElement(languages[index], "captions-webvtt/tc004-webvtt-file.vtt");
|
| + }
|
| +
|
| + function createTrackElement(language, src) {
|
| + var track = document.createElement('track');
|
| + track.setAttribute('kind', "captions");
|
| + track.setAttribute('src', src);
|
| + track.setAttribute('srclang', language);
|
| + track.onload = t.step_func(trackLoaded);
|
| + video.appendChild(track);
|
| + }
|
| +
|
| + function trackLoaded() {
|
| + var track = event.target;
|
| + assert_equals(track.readyState, HTMLTrackElement.LOADED);
|
| + assert_equals(track.srclang, testList.tests[testList.currentTestIndex].expectedLanguage);
|
| +
|
| + timer = setTimeout(runNextTest, 200);
|
| + }
|
| +});
|
| +</script>
|
|
|