| Index: third_party/WebKit/LayoutTests/media/mediasession/mojo/playback-state-propagated.html
|
| diff --git a/third_party/WebKit/LayoutTests/media/mediasession/mojo/playback-state-propagated.html b/third_party/WebKit/LayoutTests/media/mediasession/mojo/playback-state-propagated.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..559967968e1d58f82885768eee5882430209e6f1
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/media/mediasession/mojo/playback-state-propagated.html
|
| @@ -0,0 +1,39 @@
|
| +<!DOCTYPE html>
|
| +<title>MediaSession Mojo Test</title>
|
| +<script src="../../../resources/testharness.js"></script>
|
| +<script src="../../../resources/testharnessreport.js"></script>
|
| +<script src="../../../resources/mojo-helpers.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) {
|
| + mediaSessionServiceMock.then(m => {
|
| + 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>
|
|
|