| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>video-buffering-allowed</title> |
| <script src=media-file.js></script> |
| <script src=video-test.js></script> |
| <script> |
| async function runTest() { |
| findMediaElement(); |
| |
| run('video.src = findMediaFile("video", "content/test")'); |
| await waitFor(video, 'canplaythrough'); |
| testExpected('internals.elementShouldBufferData(video)', true); |
| |
| consoleWrite('* Remove the video element from the document.'); |
| run('video.parentNode.removeChild(video)'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', false); |
| |
| consoleWrite('* Play the video.'); |
| run ('video.play()'); |
| await waitFor(video, 'playing'); |
| testExpected('internals.elementShouldBufferData(video)', true); |
| |
| consoleWrite('* Pause the video.'); |
| run('video.pause()'); |
| await waitFor(video, 'pause'); |
| testExpected('internals.elementShouldBufferData(video)', true); |
| |
| consoleWrite('* Re-insert the video element into the document.'); |
| run('document.body.insertBefore(video, document.body.firstChild)'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', true); |
| |
| consoleWrite('* Simulate the view becoming invisible.'); |
| run('internals.setPageVisibility(false)'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', false); |
| |
| consoleWrite('* Simulate the view becoming visible.'); |
| run('internals.setPageVisibility(true)'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', true); |
| |
| consoleWrite('* display:none the video element.'); |
| run('video.style.display = "none"'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', true); |
| |
| consoleWrite('* Simulate the view becoming invisible.'); |
| run('internals.setPageVisibility(false)'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', false); |
| |
| consoleWrite('* Simulate the view becoming visible.'); |
| run('internals.setPageVisibility(true)'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', false); |
| |
| consoleWrite('* Remove display:none from the video element.'); |
| run('video.style.removeProperty("display")'); |
| await testExpectedEventually('internals.elementShouldBufferData(video)', true); |
| |
| endTest(); |
| } |
| window.addEventListener('load', runTest); |
| </script> |
| </head> |
| <body> |
| <video controls></video> |
| </body> |
| </html> |