| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src=../media-file.js></script> |
| <script src=../video-test.js></script> |
| <script> |
| var tests = []; |
| |
| function go() |
| { |
| findMediaElement(); |
| tests.push(testNoAlternateGroup); |
| tests.push(testSomeInAlternateGroup); |
| tests.push(testAlternateGroupWithFallback); |
| nextTest(); |
| } |
| |
| function nextTest() |
| { |
| if (!tests.length) { |
| endTest(); |
| return; |
| } |
| tests.shift()(); |
| } |
| |
| function testNoAlternateGroup() |
| { |
| consoleWrite(''); |
| consoleWrite('Test that media containing three audio tracks with no alternate group results in three AudioTracks') |
| run('video.src = findMediaFile("video", "../content/audio-tracks-no-alternate-group")'); |
| waitForEventOnce('canplaythrough', e => { |
| testExpected('video.audioTracks.length', 3); |
| Array.prototype.forEach.call(video.audioTracks, track => { |
| consoleWrite(`TRACK id:${ track.id } kind:${ track.kind } language:${ track.language}`); |
| }); |
| nextTest(); |
| }); |
| } |
| |
| function testSomeInAlternateGroup() |
| { |
| consoleWrite(''); |
| consoleWrite('Test that media containing two audio tracks in one alternate group and one track without an alternate group results in two AudioTracks') |
| run('video.src = findMediaFile("video", "../content/audio-tracks-some-in-alternate-group")'); |
| waitForEventOnce('canplaythrough', e => { |
| testExpected('video.audioTracks.length', 2); |
| Array.prototype.forEach.call(video.audioTracks, track => { |
| consoleWrite(`TRACK id:${ track.id } kind:${ track.kind } language:${ track.language}`); |
| }); |
| nextTest(); |
| }); |
| } |
| |
| function testAlternateGroupWithFallback() |
| { |
| consoleWrite(''); |
| consoleWrite('Test that media containing six audio tracks, with three audio tracks each referring to a separate track as a fallback track, all in one alternate group, results in three AudioTracks') |
| run('video.src = findMediaFile("video", "../content/audio-tracks-alternate-group-with-fallback")'); |
| waitForEventOnce('canplaythrough', e => { |
| testExpected('video.audioTracks.length', 3); |
| Array.prototype.forEach.call(video.audioTracks, track => { |
| consoleWrite(`TRACK id:${ track.id } kind:${ track.kind } language:${ track.language}`); |
| }); |
| nextTest(); |
| }); |
| } |
| |
| </script> |
| </head> |
| <body onload="go()"> |
| <video controls></video> |
| <p>Video elements containing audio tracks with alternate groups.</p> |
| </body> |
| </html> |