| <!DOCTYPE html> |
| <title>MediaSession Mojo Test</title> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> |
| <script src="file:///gen/third_party/WebKit/public/platform/modules/mediasession/media_session.mojom.js"></script> |
| <script src="resources/mediasessionservice-mock.js"></script> |
| <script src="resources/utils.js"></script> |
| <script> |
| |
| var inputStates = ["none", "paused", "playing", "invalid", "none"]; |
| var expectations; |
| var nextExpectation = 0; |
| |
| // Delay the initialization since the initialization of MediaSessionPlaybackState is delayed. |
| function getExpectations() { |
| if (!expectations) { |
| expectations = [ |
| MediaSessionPlaybackState.NONE, |
| MediaSessionPlaybackState.PAUSED, |
| MediaSessionPlaybackState.PLAYING, |
| MediaSessionPlaybackState.NONE, |
| ]; |
| } |
| return expectations; |
| } |
| |
| async_test(function(t) { |
| let m = mediaSessionServiceMock; |
| m.setPlaybackStateCallback(t.step_func(function(state) { |
| assert_equals(state, getExpectations()[nextExpectation++]); |
| if (nextExpectation == getExpectations().length) |
| t.done(); |
| })); |
| for (let state of inputStates) |
| window.navigator.mediaSession.playbackState = state; |
| }, "test that MediaSession.playbackState is correctly propagated"); |
| |
| </script> |