Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(533)

Side by Side Diff: third_party/WebKit/LayoutTests/media/audio-concurrent-supported.html

Issue 2114243002: Convert audio*, media* and video* tests to testharness.js (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <html> 1 <!DOCTYPE html>
2 <title>Test of concurrent HTML5 audio</title> 2 <title>Test that multiple audio elements can play concurrently.</title>
3 <body> 3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script src="media-file.js"></script>
6 <script>
7 async_test(function(t) {
8 // Number of concurrent audio elements to test.
9 // For larger values a longer media file is needed.
10 var maxPlayers = 2;
11 var audioElementCount = 0;
4 12
5 <p>Test that multiple audio elements can play concurrently.</p> 13 for (var i = 0; i < maxPlayers; i++)
14 document.write("<audio controls></audio>");
fs 2016/07/02 18:33:45 I don't see a reason to use document.write here (m
Srirama 2016/07/03 04:31:33 Done.
6 15
7 <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 16 testAudioElement(0);
8 (Please avoid writing new tests using video-test.js) -->
9 <script src=video-test.js></script>
10 <script src=media-file.js></script>
11 <script>
12 var maxPlayers = 2; // Number of concurrent audio elements to test. For larger values a longer media file is needed.
13 var audioElementCount = 0;
14 17
15 function errorListener(event) 18 function testAudioElement(count) {
16 { 19 var audioElement = document.querySelectorAll("audio")[count];
17 logResult(false, "Element " + audioElementCount + " caught 'error' event, audio.error.code = " + this.error.code); 20 audioElement.onerror = t.unreached_func();
18 endTest(); 21 audioElement.onplaying = t.step_func(function() {});
19 }
20 22
21 function canplaythroughListener(event) 23 audioElement.oncanplaythrough = t.step_func(function(event) {
22 { 24 var currentAudio = event.target;
23 consoleWrite("EVENT(" + audioElementCount + ", canplaythrough)"); 25 assert_equals(currentAudio.currentTime, 0, "audioElement: " + audio ElementCount);
fs 2016/07/02 18:33:45 "audioElement: "... => "audio element " + (i + 1)
Srirama 2016/07/03 04:31:33 Done.
24 testElement = this; 26 currentAudio.play();
25 testExpected(audioElementCount + ", testElement.currentTime", 0); 27 });
26 this.play();
27 }
28 28
29 function playingListener(event) 29 audioElement.ontimeupdate = t.step_func(function(event) {
30 { 30 var currentAudio = event.target;
31 consoleWrite("EVENT(" + audioElementCount + ", playing)"); 31 assert_greater_than(currentAudio.currentTime, 0, "audioElement: " + audioElementCount);
32 } 32 currentAudio.ontimeupdate = null;
33 33 if (++audioElementCount == maxPlayers) {
34 function timeupdateListener(event) 34 // All audio elements have been started playing.
35 { 35 // Make sure all of them are still playing.
36 testElement = this;
37 testExpected(audioElementCount + ", testElement.currentTime", 0, '>' );
38 this.removeEventListener('timeupdate', timeupdateListener);
39 if (++audioElementCount >= maxPlayers) {
40 // All audio elements have been started playing. Make sure
41 // all of them are still playing.
42 consoleWrite("Making sure all " + maxPlayers + " audio elements are in playing state:");
43 for (var i = 0; i < maxPlayers; i++) { 36 for (var i = 0; i < maxPlayers; i++) {
44 testElement = document.getElementsByTagName('audio')[i]; 37 currentAudio = document.getElementsByTagName('audio')[i];
45 testExpected(i + ", testElement.paused", false); 38 assert_false(currentAudio.paused, "audioElement: " + i);
46 } 39 }
47 endTest(); 40 t.done();
48 } else { 41 } else {
49 // Start the next audio element 42 // Start the next audio element.
50 testAudioElement(audioElementCount); 43 testAudioElement(audioElementCount);
51 } 44 }
52 } 45 });
53 46
54 function testAudioElement(count) 47 audioElement.src = findMediaFile("audio", "content/silence");
55 { 48 }
56 var audioElement = document.getElementsByTagName('audio')[count]; 49 });
57 audioElement.addEventListener('error', errorListener); 50 </script>
58 audioElement.addEventListener('canplaythrough', canplaythroughListen er);
59 audioElement.addEventListener('timeupdate', timeupdateListener);
60 audioElement.addEventListener('playing', playingListener);
61 audioElement.src = findMediaFile("audio", "content/silence");
62 }
63
64 consoleWrite("Starting a total of " + maxPlayers + " concurrent audio el ements.");
65 for (var i = 0; i < maxPlayers; i++)
66 document.write("<audio controls></audio>");
67
68 testAudioElement(0);
69 </script>
70
71 </body>
72 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698