| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="media-file.js"></script> |
| <script src="video-test.js"></script> |
| <script> |
| function go() |
| { |
| runNextTest(); |
| } |
| |
| function runNextTest() |
| { |
| if (tests.length) |
| tests.shift()(); |
| else |
| endTest(); |
| } |
| |
| function testPlaysInline(requiresPlaysInline, hasWebkitPlaysInline, expectedDisplayingFullscreen) |
| { |
| run(`internals.settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute(${requiresPlaysInline})`); |
| video = media = document.createElement('video'); |
| document.body.appendChild(video); |
| video.controls = true; |
| video.src = findMediaFile('video', 'content/test'); |
| run(`video.${hasWebkitPlaysInline ? 'set' : 'remove'}Attribute("webkit-playsinline", "")`); |
| waitForEventOnce('canplaythrough', () => { |
| runWithKeyDown(() => { |
| run('video.play()'); |
| }); |
| }) |
| waitForEventOnce('playing', async () => { |
| if (expectedDisplayingFullscreen) |
| await testExpectedEventually('internals.isChangingPresentationMode(video)', false); |
| |
| testExpected('video.webkitDisplayingFullscreen', expectedDisplayingFullscreen); |
| document.body.removeChild(video); |
| runNextTest(); |
| }); |
| } |
| |
| function testRequiresPlaysInlineAndDoesntHaveIt() |
| { |
| testPlaysInline(true, false, true); |
| } |
| |
| function testRequiresPlaysInlineAndDoesHaveIt() |
| { |
| testPlaysInline(true, true, true); |
| } |
| |
| function testDoesNotRequirePlaysInlineAndDoesntHaveIt() |
| { |
| testPlaysInline(false, false, false); |
| } |
| |
| function testDoesNotRequirePlaysInlineAndDoesHaveIt() |
| { |
| testPlaysInline(false, true, false); |
| } |
| |
| var tests = [ |
| testRequiresPlaysInlineAndDoesntHaveIt, |
| testRequiresPlaysInlineAndDoesHaveIt, |
| testDoesNotRequirePlaysInlineAndDoesntHaveIt, |
| testDoesNotRequirePlaysInlineAndDoesHaveIt, |
| ]; |
| |
| </script> |
| </head> |
| <body onload="go()"> |
| </body> |
| </html> |