Chromium Code Reviews| 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..06a3c21751481664b3959350ea492797fdbfa41d 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" |
|
mlamouri (slow - plz ping)
2016/05/04 14:11:41
Interesting.
|
| + }, |
| { |
| - 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() { |
| + track = event.target; |
|
mlamouri (slow - plz ping)
2016/05/04 14:11:41
`var track`
|
| + assert_equals(track.readyState, HTMLTrackElement.LOADED); |
| + assert_equals(track.srclang, testList.tests[testList.currentTestIndex].expectedLanguage); |
| + |
| + timer = setTimeout(runNextTest, 200); |
| + } |
| +}); |
| +</script> |