Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Side by Side Diff: third_party/WebKit/LayoutTests/media/mediasession/mojo/media-control-set-handler-notifies-service.html

Issue 2589893002: [Blink>MediaSession] Use setActionCallback() instead of event listeners for media control actions (Closed)
Patch Set: rebased and more tests Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <title>Test that setting MediaSession event handler should notify the service</t itle> 2 <title>Test that setting MediaSession event handler should notify the service</t itle>
3 <script src="../../../resources/testharness.js"></script> 3 <script src="../../../resources/testharness.js"></script>
4 <script src="../../../resources/testharnessreport.js"></script> 4 <script src="../../../resources/testharnessreport.js"></script>
5 <script src="../../../resources/mojo-helpers.js"></script> 5 <script src="../../../resources/mojo-helpers.js"></script>
6 <script src="resources/mediasessionservice-mock.js"></script> 6 <script src="resources/mediasessionservice-mock.js"></script>
7 <script src="resources/utils.js"></script> 7 <script src="resources/utils.js"></script>
8 <script> 8 <script>
9 9
10 var expectations; 10 var expectations;
11 11
12 var nextExpectation = 0; 12 var nextExpectation = 0;
13 13
14 // Delay the initialization since the initialization of MediaSessionAction is de layed. 14 // Delay the initialization since the initialization of MediaSessionAction is de layed.
15 function getExpectations() { 15 function getExpectations() {
16 if (!expectations) { 16 if (!expectations) {
17 expectations = [ 17 expectations = [
18 [ MediaSessionAction.PLAY, true ], 18 [ MediaSessionAction.PLAY, true ],
19 [ MediaSessionAction.PAUSE, true ], 19 [ MediaSessionAction.PAUSE, true ],
20 [ MediaSessionAction.PREVIOUS_TRACK, true ], 20 [ MediaSessionAction.PREVIOUS_TRACK, true ],
21 [ MediaSessionAction.NEXT_TRACK, true ], 21 [ MediaSessionAction.NEXT_TRACK, true ],
22 [ MediaSessionAction.SEEK_BACKWARD, true ], 22 [ MediaSessionAction.SEEK_BACKWARD, true ],
23 [ MediaSessionAction.SEEK_FORWARD, true ], 23 [ MediaSessionAction.SEEK_FORWARD, true ],
24 [ MediaSessionAction.PLAY, false ], 24 [ MediaSessionAction.PLAY, false ],
25 [ MediaSessionAction.PLAY, true ],
26 [ MediaSessionAction.PAUSE, false ],
27 [ MediaSessionAction.PAUSE, true ],
28 [ MediaSessionAction.PREVIOUS_TRACK, false ],
29 [ MediaSessionAction.PREVIOUS_TRACK, true ],
30 [ MediaSessionAction.NEXT_TRACK, false ],
31 [ MediaSessionAction.NEXT_TRACK, true ],
32 [ MediaSessionAction.SEEK_BACKWARD, false ],
33 [ MediaSessionAction.SEEK_BACKWARD, true ],
34 [ MediaSessionAction.SEEK_FORWARD, false ],
35 [ MediaSessionAction.SEEK_FORWARD, true ],
36 [ MediaSessionAction.PLAY, false ],
37 [ MediaSessionAction.PAUSE, false ], 25 [ MediaSessionAction.PAUSE, false ],
38 [ MediaSessionAction.PREVIOUS_TRACK, false ], 26 [ MediaSessionAction.PREVIOUS_TRACK, false ],
39 [ MediaSessionAction.NEXT_TRACK, false ], 27 [ MediaSessionAction.NEXT_TRACK, false ],
40 [ MediaSessionAction.SEEK_BACKWARD, false ], 28 [ MediaSessionAction.SEEK_BACKWARD, false ],
41 [ MediaSessionAction.SEEK_FORWARD, false ], 29 [ MediaSessionAction.SEEK_FORWARD, false ],
30 [ MediaSessionAction.PLAY, true ],
31 [ MediaSessionAction.PAUSE, true ],
32 [ MediaSessionAction.PREVIOUS_TRACK, true ],
33 [ MediaSessionAction.NEXT_TRACK, true ],
34 [ MediaSessionAction.SEEK_BACKWARD, true ],
35 [ MediaSessionAction.SEEK_FORWARD, true ],
42 ]; 36 ];
43 } 37 }
44 return expectations; 38 return expectations;
45 } 39 }
46 40
47 async_test(function(t) { 41 async_test(function(t) {
48 mediaSessionServiceMock.then(m => { 42 mediaSessionServiceMock.then(m => {
49 m.setEnableDisableActionCallback(t.step_func(function(action, isEnabled) { 43 m.setEnableDisableActionCallback(t.step_func(function(action, isEnabled) {
44 console.log(action + " " + isEnabled);
mlamouri (slow - plz ping) 2016/12/23 12:13:58 Should you remove this?
Zhiqiang Zhang (Slow) 2017/01/05 09:29:15 Done.
50 var expectedAction = getExpectations()[nextExpectation][0]; 45 var expectedAction = getExpectations()[nextExpectation][0];
51 var expectedIsEnabled = getExpectations()[nextExpectation][1]; 46 var expectedIsEnabled = getExpectations()[nextExpectation][1];
52 assert_equals(expectedAction, action); 47 assert_equals(expectedAction, action);
53 assert_equals(expectedIsEnabled, isEnabled); 48 assert_equals(expectedIsEnabled, isEnabled);
54 if (++nextExpectation >= getExpectations().length) 49 if (++nextExpectation >= getExpectations().length)
55 t.done(); 50 t.done();
56 })); 51 }));
57 52
58 // Setting handlers 53 // Setting handlers should notify the service.
59 window.navigator.mediaSession.onresize = _ => {}; // Unknown event. 54 window.navigator.mediaSession.setActionHandler("play", _ => {});
60 window.navigator.mediaSession.onplay = _ => {}; 55 window.navigator.mediaSession.setActionHandler("pause", _ => {});
61 window.navigator.mediaSession.onpause = _ => {}; 56 window.navigator.mediaSession.setActionHandler("previoustrack", _ => {});
62 window.navigator.mediaSession.onprevioustrack = _ => {}; 57 window.navigator.mediaSession.setActionHandler("nexttrack", _ => {});
63 window.navigator.mediaSession.onnexttrack = _ => {}; 58 window.navigator.mediaSession.setActionHandler("seekbackward", _ => {});
64 window.navigator.mediaSession.onseekbackward = _ => {}; 59 window.navigator.mediaSession.setActionHandler("seekforward", _ => {});
65 window.navigator.mediaSession.onseekforward = _ => {};
66 60
67 // Resetting handlers 61 // Setting handlers again should not notify the service.
68 window.navigator.mediaSession.onresize = _ => {}; // Unknown event. 62 window.navigator.mediaSession.setActionHandler("play", _ => {});
69 window.navigator.mediaSession.onplay = _ => {}; 63 window.navigator.mediaSession.setActionHandler("pause", _ => {});
70 window.navigator.mediaSession.onpause = _ => {}; 64 window.navigator.mediaSession.setActionHandler("previoustrack", _ => {});
71 window.navigator.mediaSession.onprevioustrack = _ => {}; 65 window.navigator.mediaSession.setActionHandler("nexttrack", _ => {});
72 window.navigator.mediaSession.onnexttrack = _ => {}; 66 window.navigator.mediaSession.setActionHandler("seekbackward", _ => {});
73 window.navigator.mediaSession.onseekbackward = _ => {}; 67 window.navigator.mediaSession.setActionHandler("seekforward", _ => {});
74 window.navigator.mediaSession.onseekforward = _ => {};
75 68
76 // Unsetting handlers 69 // Unsetting handlers should notify the service.
77 window.navigator.mediaSession.onresize = null; // Unknown event. 70 window.navigator.mediaSession.setActionHandler("play", null);
78 window.navigator.mediaSession.onplay = null; 71 window.navigator.mediaSession.setActionHandler("pause", null);
79 window.navigator.mediaSession.onpause = null; 72 window.navigator.mediaSession.setActionHandler("previoustrack", null);
80 window.navigator.mediaSession.onprevioustrack = null; 73 window.navigator.mediaSession.setActionHandler("nexttrack", null);
81 window.navigator.mediaSession.onnexttrack = null; 74 window.navigator.mediaSession.setActionHandler("seekbackward", null);
82 window.navigator.mediaSession.onseekbackward = null; 75 window.navigator.mediaSession.setActionHandler("seekforward", null);
83 window.navigator.mediaSession.onseekforward = null; 76
77 // Unsetting handlers should not notify the service.
78 window.navigator.mediaSession.setActionHandler("play", null);
79 window.navigator.mediaSession.setActionHandler("pause", null);
80 window.navigator.mediaSession.setActionHandler("previoustrack", null);
81 window.navigator.mediaSession.setActionHandler("nexttrack", null);
82 window.navigator.mediaSession.setActionHandler("seekbackward", null);
83 window.navigator.mediaSession.setActionHandler("seekforward", null);
84
85 // Setting handlers again should notify the service.
86 window.navigator.mediaSession.setActionHandler("play", _ => {});
87 window.navigator.mediaSession.setActionHandler("pause", _ => {});
88 window.navigator.mediaSession.setActionHandler("previoustrack", _ => {});
89 window.navigator.mediaSession.setActionHandler("nexttrack", _ => {});
90 window.navigator.mediaSession.setActionHandler("seekbackward", _ => {});
91 window.navigator.mediaSession.setActionHandler("seekforward", _ => {});
84 }); 92 });
85 }, "test that setting event handler notifies the mojo service"); 93 }, "test that setting event handler notifies the mojo service");
86 94
87 </script> 95 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698