| <!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 mock; |
| |
| var expectations = [ |
| "play", |
| "pause", |
| "previoustrack", |
| "nexttrack", |
| "seekbackward", |
| "seekforward", |
| ]; |
| |
| var nextExpectation = 0; |
| |
| function checkExpectation(t, action) { |
| var expectedEvent = expectations[nextExpectation]; |
| assert_equals(expectedEvent, action); |
| if (++nextExpectation >= expectations.length) |
| t.done(); |
| } |
| |
| function runTests(t) { |
| window.navigator.mediaSession.setActionHandler( |
| "play", t.step_func(checkExpectation.bind(null, t, "play"))); |
| window.navigator.mediaSession.setActionHandler( |
| "pause", t.step_func(checkExpectation.bind(null, t, "pause"))); |
| window.navigator.mediaSession.setActionHandler( |
| "previoustrack", t.step_func(checkExpectation.bind(null, t, "previoustrack"))); |
| window.navigator.mediaSession.setActionHandler( |
| "nexttrack", t.step_func(checkExpectation.bind(null, t, "nexttrack"))); |
| window.navigator.mediaSession.setActionHandler( |
| "seekbackward", t.step_func(checkExpectation.bind(null, t, "seekbackward"))); |
| window.navigator.mediaSession.setActionHandler( |
| "seekforward", t.step_func(checkExpectation.bind(null, t, "seekforward"))); |
| |
| mock.getClient().didReceiveAction(MediaSessionAction.PLAY); |
| mock.getClient().didReceiveAction(MediaSessionAction.PAUSE); |
| mock.getClient().didReceiveAction(MediaSessionAction.PREVIOUS_TRACK); |
| mock.getClient().didReceiveAction(MediaSessionAction.NEXT_TRACK); |
| mock.getClient().didReceiveAction(MediaSessionAction.SEEK_BACKWARD); |
| mock.getClient().didReceiveAction(MediaSessionAction.SEEK_FORWARD); |
| } |
| |
| // Use async_test to do asynchronous setup since setup() only works for |
| // synchronous setup. |
| async_test(function(t) { |
| mock = mediaSessionServiceMock; |
| mock.setClientCallback(t.step_func(runTests.bind(null, t))); |
| // Touch window.navigator.mediaSession to start the service. |
| window.navigator.mediaSession.metadata = null; |
| }, "test that the mock service is setup"); |
| |
| </script> |