| Index: third_party/WebKit/LayoutTests/media/audio-concurrent-supported.html
|
| diff --git a/third_party/WebKit/LayoutTests/media/audio-concurrent-supported.html b/third_party/WebKit/LayoutTests/media/audio-concurrent-supported.html
|
| index 5f1aa0809ffa6552ed846a14f05259d993551c0f..ecffca88243a5bb8509988d01a02e50f81349f89 100644
|
| --- a/third_party/WebKit/LayoutTests/media/audio-concurrent-supported.html
|
| +++ b/third_party/WebKit/LayoutTests/media/audio-concurrent-supported.html
|
| @@ -1,72 +1,52 @@
|
| -<html>
|
| - <title>Test of concurrent HTML5 audio</title>
|
| - <body>
|
| -
|
| - <p>Test that multiple audio elements can play concurrently.</p>
|
| -
|
| - <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956
|
| - (Please avoid writing new tests using video-test.js) -->
|
| - <script src=video-test.js></script>
|
| - <script src=media-file.js></script>
|
| - <script>
|
| - var maxPlayers = 2; // Number of concurrent audio elements to test. For larger values a longer media file is needed.
|
| - var audioElementCount = 0;
|
| -
|
| - function errorListener(event)
|
| - {
|
| - logResult(false, "Element " + audioElementCount + " caught 'error' event, audio.error.code = " + this.error.code);
|
| - endTest();
|
| - }
|
| -
|
| - function canplaythroughListener(event)
|
| - {
|
| - consoleWrite("EVENT(" + audioElementCount + ", canplaythrough)");
|
| - testElement = this;
|
| - testExpected(audioElementCount + ", testElement.currentTime", 0);
|
| - this.play();
|
| - }
|
| -
|
| - function playingListener(event)
|
| - {
|
| - consoleWrite("EVENT(" + audioElementCount + ", playing)");
|
| - }
|
| -
|
| - function timeupdateListener(event)
|
| - {
|
| - testElement = this;
|
| - testExpected(audioElementCount + ", testElement.currentTime", 0, '>');
|
| - this.removeEventListener('timeupdate', timeupdateListener);
|
| - if (++audioElementCount >= maxPlayers) {
|
| - // All audio elements have been started playing. Make sure
|
| - // all of them are still playing.
|
| - consoleWrite("Making sure all " + maxPlayers + " audio elements are in playing state:");
|
| +<!DOCTYPE html>
|
| +<title>Test that multiple audio elements can play concurrently.</title>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script src="media-file.js"></script>
|
| +<script>
|
| +async_test(function(t) {
|
| + // Number of concurrent audio elements to test.
|
| + // For larger values a longer media file is needed.
|
| + var maxPlayers = 2;
|
| + var audioElementCount = 0;
|
| +
|
| + for (var i = 0; i < maxPlayers; i++) {
|
| + var audio = document.createElement("audio");
|
| + document.documentElement.appendChild(audio);
|
| + }
|
| +
|
| + testAudioElement(0);
|
| +
|
| + function testAudioElement(count) {
|
| + var audioElement = document.querySelectorAll("audio")[count];
|
| + audioElement.onerror = t.unreached_func();
|
| + audioElement.onplaying = t.step_func(function() {});
|
| +
|
| + audioElement.oncanplaythrough = t.step_func(function(event) {
|
| + var currentAudio = event.target;
|
| + assert_equals(currentAudio.currentTime, 0, "audio element " + (audioElementCount + 1) + " at start of playback");
|
| + currentAudio.play();
|
| + });
|
| +
|
| + audioElement.ontimeupdate = t.step_func(function(event) {
|
| + var currentAudio = event.target;
|
| + assert_greater_than(currentAudio.currentTime, 0, "audio element " + (audioElementCount + 1) + " during playback");
|
| + currentAudio.ontimeupdate = null;
|
| + if (++audioElementCount == maxPlayers) {
|
| + // All audio elements have been started playing.
|
| + // Make sure all of them are still playing.
|
| for (var i = 0; i < maxPlayers; i++) {
|
| - testElement = document.getElementsByTagName('audio')[i];
|
| - testExpected(i + ", testElement.paused", false);
|
| + currentAudio = document.getElementsByTagName('audio')[i];
|
| + assert_false(currentAudio.paused, "audio element " + (i + 1) + " during playback");
|
| }
|
| - endTest();
|
| + t.done();
|
| } else {
|
| - // Start the next audio element
|
| + // Start the next audio element.
|
| testAudioElement(audioElementCount);
|
| }
|
| - }
|
| -
|
| - function testAudioElement(count)
|
| - {
|
| - var audioElement = document.getElementsByTagName('audio')[count];
|
| - audioElement.addEventListener('error', errorListener);
|
| - audioElement.addEventListener('canplaythrough', canplaythroughListener);
|
| - audioElement.addEventListener('timeupdate', timeupdateListener);
|
| - audioElement.addEventListener('playing', playingListener);
|
| - audioElement.src = findMediaFile("audio", "content/silence");
|
| - }
|
| -
|
| - consoleWrite("Starting a total of " + maxPlayers + " concurrent audio elements.");
|
| - for (var i = 0; i < maxPlayers; i++)
|
| - document.write("<audio controls></audio>");
|
| -
|
| - testAudioElement(0);
|
| - </script>
|
| + });
|
|
|
| - </body>
|
| -</html>
|
| + audioElement.src = findMediaFile("audio", "content/silence");
|
| + }
|
| +});
|
| +</script>
|
|
|