| Index: third_party/WebKit/LayoutTests/media/track/track-mode-not-changed-by-new-track.html | 
| diff --git a/third_party/WebKit/LayoutTests/media/track/track-mode-not-changed-by-new-track.html b/third_party/WebKit/LayoutTests/media/track/track-mode-not-changed-by-new-track.html | 
| index 4bdbcf67431eda241e0df82f282e48a09c9d5346..5a455b154d82a5f6b10e59ea049ef4497e25fe70 100644 | 
| --- a/third_party/WebKit/LayoutTests/media/track/track-mode-not-changed-by-new-track.html | 
| +++ b/third_party/WebKit/LayoutTests/media/track/track-mode-not-changed-by-new-track.html | 
| @@ -1,102 +1,73 @@ | 
| <!DOCTYPE html> | 
| -<html> | 
| -    <head> | 
| -        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | 
| +<title>Tests that a track appended after the initial track configuration does not change other tracks.</title> | 
| +<script src="../media-file.js"></script> | 
| +<script src="../../resources/testharness.js"></script> | 
| +<script src="../../resources/testharnessreport.js"></script> | 
| +<video> | 
| +    <track kind="metadata" src="captions-webvtt/metadata.vtt"> | 
| +</video> | 
| +<script> | 
| +async_test(function(t) { | 
| +    var video = document.querySelector('video'); | 
|  | 
| -        <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 track1 = document.querySelectorAll('track')[0]; | 
| +    assert_equals(track1.readyState, HTMLTrackElement.NONE); | 
| +    assert_equals(track1.track.mode, 'disabled'); | 
|  | 
| -            function trackAdded() | 
| -            { | 
| -                consoleWrite("EVENT(" + event.type + ")"); | 
| -                consoleWrite("<i>**check that metadata track state has not changed<" + "/i>"); | 
| -                testExpected("track1.readyState", HTMLTrackElement.LOADED); | 
| -                testExpected("track1.track.mode", "hidden"); | 
| -                consoleWrite("<i>**and that the caption track state has not changed<" + "/i>"); | 
| -                testExpected("track2.readyState", HTMLTrackElement.LOADED); | 
| -                testExpected("track2.track.mode", "showing"); | 
| -                consoleWrite("<i>**and that the subtitle track state is correct<" + "/i>"); | 
| -                testExpected("event.target", video.textTracks); | 
| -                testExpected("event instanceof window.TrackEvent", true); | 
| -                testExpected("event.track", video.textTracks[video.textTracks.length - 1]); | 
| -                testExpected("track3.mode", "showing"); | 
| +    video.src = findMediaFile('video', '../content/test'); | 
| +    video.oncanplaythrough = t.step_func(canplaythrough); | 
| +    track1.onload = t.step_func(metadataTrackLoaded); | 
|  | 
| -                consoleWrite(""); | 
| -                endTest(); | 
| -            } | 
| +    function canplaythrough() { | 
| +        // check initial metadata track state. | 
| +        assert_equals(track1.readyState, HTMLTrackElement.NONE); | 
| +        assert_equals(track1.track.mode, 'disabled'); | 
| +        assert_equals(track1.track.cues, null); | 
| +        track1.track.mode = 'hidden'; | 
| +    } | 
|  | 
| -            function captionsTrackLoaded() | 
| -            { | 
| -                consoleWrite("EVENT(load) -- <track kind='captions' >"); | 
| -                consoleWrite("<i>**check that metadata track state has not changed<" + "/i>"); | 
| -                testExpected("track1.readyState", HTMLTrackElement.LOADED); | 
| -                testExpected("track1.track.mode", "hidden"); | 
| -                consoleWrite("<i>**and that the caption track state is correct<" + "/i>"); | 
| -                testExpected("track2.readyState", HTMLTrackElement.LOADED); | 
| -                testExpected("track2.track.mode", "showing"); | 
| -                consoleWrite(""); | 
| +    function metadataTrackLoaded() { | 
| +        // check metadata track state. | 
| +        assert_equals(track1.readyState, HTMLTrackElement.LOADED); | 
| +        assert_equals(track1.track.mode, 'hidden'); | 
| +        assert_equals(track1.track.cues.length, 12); | 
| +        assert_equals(track1.track.cues[11].startTime, 22); | 
|  | 
| -                video.textTracks.addEventListener("addtrack", trackAdded); | 
| -                consoleWrite("<i>**add a subtitle track with video.addTextTrack()<" + "/i>"); | 
| -                run("track3 = video.addTextTrack('subtitles', 'Subtitle Track', 'en')"); | 
| -                run("track3.mode = 'showing'"); | 
| +        // Add a caption track, configured to load automatically. | 
| +        track2 = document.createElement('track'); | 
| +        track2.setAttribute('kind', 'captions'); | 
| +        track2.setAttribute('default', 'default'); | 
| +        track2.setAttribute('src', 'captions-webvtt/tc004-webvtt-file.vtt'); | 
| +        track2.onload = t.step_func(captionsTrackLoaded); | 
| +        video.appendChild(track2); | 
| +    } | 
|  | 
| -                consoleWrite(""); | 
| -            } | 
| +    function captionsTrackLoaded() { | 
| +        // Check that metadata track state has not changed. | 
| +        assert_equals(track1.readyState, HTMLTrackElement.LOADED); | 
| +        assert_equals(track1.track.mode, 'hidden'); | 
| +        // and that the caption track state is correct. | 
| +        assert_equals(track2.readyState, HTMLTrackElement.LOADED); | 
| +        assert_equals(track2.track.mode, 'showing'); | 
|  | 
| -            function metadataTrackLoaded() | 
| -            { | 
| -                consoleWrite("EVENT(load) -- <track kind='metadata' >"); | 
| -                consoleWrite("<i>**check metadata track state<" + "/i>"); | 
| -                testExpected("track1.readyState", HTMLTrackElement.LOADED); | 
| -                testExpected("track1.track.mode", "hidden"); | 
| -                testExpected("track1.track.cues.length", 12); | 
| -                testExpected("track1.track.cues[11].startTime", 22); | 
| +        video.textTracks.onaddtrack = t.step_func_done(trackAdded); | 
| +        // add a subtitle track with video.addTextTrack(). | 
| +        track3 = video.addTextTrack('subtitles', 'Subtitle Track', 'en'); | 
| +        track3.mode = 'showing'; | 
| +    } | 
|  | 
| -                consoleWrite("<br><i>**add a caption track, configured to load automatically<" + "/i>"); | 
| -                run("track2 = document.createElement('track')"); | 
| -                run("track2.setAttribute('kind', 'captions')"); | 
| -                run("track2.setAttribute('default', 'default')"); | 
| -                run("track2.setAttribute('onload', 'captionsTrackLoaded()')"); | 
| -                run("track2.setAttribute('src', 'captions-webvtt/tc004-webvtt-file.vtt')"); | 
| -                run("video.appendChild(track2)"); | 
| - | 
| -                consoleWrite(""); | 
| -            } | 
| - | 
| -            function canplaythrough() | 
| -            { | 
| -                consoleWrite("EVENT(canplaythrough) -- <video>"); | 
| -                consoleWrite("<i>**check initial metadata track state<" + "/i>"); | 
| -                testExpected("track1.readyState", HTMLTrackElement.NONE); | 
| -                testExpected("track1.track.mode", "disabled"); | 
| -                testExpected("track1.track.cues", null); | 
| -                run("track1.track.mode = 'hidden'"); | 
| -                consoleWrite(""); | 
| -            } | 
| - | 
| -            function start() | 
| -            { | 
| -                consoleWrite("<br>EVENT(load) -- <body>"); | 
| -                findMediaElement(); | 
| - | 
| -                track1 = document.querySelectorAll('track')[0]; | 
| -                testExpected("track1.readyState", HTMLTrackElement.NONE); | 
| -                testExpected("track1.track.mode", "disabled"); | 
| - | 
| -                video.src = findMediaFile("video", "../content/test"); | 
| -                consoleWrite(""); | 
| -            } | 
| -        </script> | 
| -    </head> | 
| - | 
| -    <body onload="start()"> | 
| -        <p>Tests that a track appended after the initial track configuration does not change other tracks.</p> | 
| -        <video oncanplaythrough="canplaythrough()" > | 
| -            <track kind="metadata" src="captions-webvtt/metadata.vtt" onload="metadataTrackLoaded()"> | 
| -        </video> | 
| -    </body> | 
| -</html> | 
| +    function trackAdded() { | 
| +        // Check that metadata track state has not changed. | 
| +        assert_equals(track1.readyState, HTMLTrackElement.LOADED); | 
| +        assert_equals(track1.track.mode, 'hidden'); | 
| +        // and that the caption track state has not changed. | 
| +        assert_equals(track2.readyState, HTMLTrackElement.LOADED); | 
| +        assert_equals(track2.track.mode, 'showing'); | 
| +        // and that the subtitle track state is correct. | 
| +        assert_equals(event.target, video.textTracks); | 
| +        assert_true(event instanceof window.TrackEvent); | 
| +        assert_equals(event.track, video.textTracks[video.textTracks.length - 1]); | 
| +        assert_equals(track3.mode, 'showing'); | 
| +    } | 
| +}); | 
| +</script> | 
|  |