eric.carlson@apple.com | 1016295 | 2014-01-08 05:45:55 +0000 | [diff] [blame] | 1 | <html> |
| 2 | <head> |
| 3 | <script src=media-file.js></script> |
| 4 | <script src=video-test.js></script> |
| 5 | <script> |
| 6 | var state = 0; |
eric.carlson@apple.com | 8eea611 | 2015-02-10 15:47:51 +0000 | [diff] [blame] | 7 | var resumeCount = 0; |
eric.carlson@apple.com | 1016295 | 2014-01-08 05:45:55 +0000 | [diff] [blame] | 8 | |
| 9 | function checkState() |
| 10 | { |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 11 | switch (state) { |
| 12 | case "playing": |
| 13 | testExpected("video.paused", false); |
| 14 | state = "interrupted"; |
bfulgham@apple.com | c87aece | 2015-10-01 22:32:56 +0000 | [diff] [blame] | 15 | run("internals.beginMediaSessionInterruption('System')");; |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 16 | setTimeout(checkState, 100); |
eric.carlson@apple.com | 1016295 | 2014-01-08 05:45:55 +0000 | [diff] [blame] | 17 | consoleWrite(""); |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 18 | break; |
eric.carlson@apple.com | 8eea611 | 2015-02-10 15:47:51 +0000 | [diff] [blame] | 19 | |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 20 | case "interrupted": |
| 21 | consoleWrite("100ms timer fired..."); |
| 22 | testExpected("video.paused", true); |
| 23 | state = "resuming"; |
| 24 | run("internals.endMediaSessionInterruption('MayResumePlaying')"); |
| 25 | consoleWrite(""); |
| 26 | break; |
eric.carlson@apple.com | 8eea611 | 2015-02-10 15:47:51 +0000 | [diff] [blame] | 27 | |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 28 | case "resuming": |
| 29 | testExpected("video.paused", false); |
| 30 | consoleWrite(""); |
eric.carlson@apple.com | 8eea611 | 2015-02-10 15:47:51 +0000 | [diff] [blame] | 31 | if (++resumeCount == 2) |
| 32 | endTest(); |
| 33 | state = "playing"; |
| 34 | setTimeout(checkState, 100); |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 35 | break; |
eric.carlson@apple.com | 1016295 | 2014-01-08 05:45:55 +0000 | [diff] [blame] | 36 | } |
eric.carlson@apple.com | 1016295 | 2014-01-08 05:45:55 +0000 | [diff] [blame] | 37 | } |
| 38 | |
| 39 | function canplaythrough() |
| 40 | { |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 41 | state = "playing"; |
commit-queue@webkit.org | a9f2513 | 2014-02-04 15:52:21 +0000 | [diff] [blame] | 42 | run("video.play()"); |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 43 | consoleWrite(""); |
eric.carlson@apple.com | 1016295 | 2014-01-08 05:45:55 +0000 | [diff] [blame] | 44 | } |
| 45 | |
| 46 | function start() |
| 47 | { |
| 48 | if (!window.internals) { |
| 49 | failTest('This test requires window.internals.'); |
| 50 | return; |
| 51 | } |
| 52 | |
| 53 | findMediaElement(); |
| 54 | waitForEvent('canplaythrough', canplaythrough); |
eric.carlson@apple.com | 22d6660 | 2014-02-04 19:09:34 +0000 | [diff] [blame] | 55 | waitForEvent('playing', checkState); |
eric.carlson@apple.com | 1016295 | 2014-01-08 05:45:55 +0000 | [diff] [blame] | 56 | video.src = findMediaFile("video", "content/test"); |
| 57 | } |
| 58 | </script> |
| 59 | </head> |
| 60 | |
| 61 | <body onload="start()"> |
| 62 | <video controls ></video> |
| 63 | <p>Test that play() during interruption does nothing, ending interruption allows playback to resume.</p> |
| 64 | </body> |
| 65 | </html> |