From 4456a865cc0db7bdbfd01072f309d6dad3da5c1c Mon Sep 17 00:00:00 2001 From: christosts Date: Fri, 4 Mar 2022 14:24:42 +0000 Subject: [PATCH] Misc cleanup in session tests PiperOrigin-RevId: 432430345 (cherry picked from commit 8e98187a1e08167cbef08c94e632c8d84a4667f1) --- .../session/MediaSessionKeyEventTest.java | 20 ++-- .../session/MediaSessionPermissionTest.java | 98 +++++++++---------- .../session/MediaSessionPlayerTest.java | 7 +- .../media3/session/MediaSessionTest.java | 11 +++ 4 files changed, 73 insertions(+), 63 deletions(-) diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java index 5ea89cf1b5..b1b14a3aa5 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionKeyEventTest.java @@ -119,7 +119,7 @@ public class MediaSessionKeyEventTest { } @After - public void cleanUp() throws Exception { + public void tearDown() throws Exception { handler.postAndSync( () -> { if (mediaPlayer != null) { @@ -130,15 +130,6 @@ public class MediaSessionKeyEventTest { session.release(); } - private void dispatchMediaKeyEvent(int keyCode, boolean doubleTap) { - audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, keyCode)); - audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keyCode)); - if (doubleTap) { - audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, keyCode)); - audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keyCode)); - } - } - @Test public void playKeyEvent() throws Exception { dispatchMediaKeyEvent(KeyEvent.KEYCODE_MEDIA_PLAY, false); @@ -202,6 +193,15 @@ public class MediaSessionKeyEventTest { assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_PAUSE)).isFalse(); } + private void dispatchMediaKeyEvent(int keyCode, boolean doubleTap) { + audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, keyCode)); + audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keyCode)); + if (doubleTap) { + audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, keyCode)); + audioManager.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keyCode)); + } + } + private static class TestSessionCallback implements MediaSession.SessionCallback { @Override diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java index 68a6fb6830..f0f129a49f 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPermissionTest.java @@ -88,7 +88,7 @@ public class MediaSessionPermissionTest { } @After - public void cleanUp() { + public void tearDown() { if (session != null) { session.release(); session = null; @@ -97,54 +97,6 @@ public class MediaSessionPermissionTest { callback = null; } - private void createSessionWithAvailableCommands( - SessionCommands sessionCommands, Player.Commands playerCommands) { - player = - new MockPlayer.Builder() - .setApplicationLooper(threadTestRule.getHandler().getLooper()) - .build(); - callback = - new MySessionCallback() { - @Override - public MediaSession.ConnectionResult onConnect( - MediaSession session, ControllerInfo controller) { - if (!TextUtils.equals(SUPPORT_APP_PACKAGE_NAME, controller.getPackageName())) { - return MediaSession.ConnectionResult.reject(); - } - return MediaSession.ConnectionResult.accept(sessionCommands, playerCommands); - } - }; - if (this.session != null) { - this.session.release(); - } - this.session = - new MediaSession.Builder(context, player) - .setId(SESSION_ID) - .setSessionCallback(callback) - .build(); - } - - private SessionCommands createSessionCommandsWith(SessionCommand command) { - return new SessionCommands.Builder().add(command).build(); - } - - private void testOnCommandRequest(int commandCode, PermissionTestTask runnable) throws Exception { - createSessionWithAvailableCommands( - SessionCommands.EMPTY, createPlayerCommandsWith(commandCode)); - runnable.run(controllerTestRule.createRemoteController(session.getToken())); - - assertThat(callback.countDownLatch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); - assertThat(callback.onCommandRequestCalled).isTrue(); - assertThat(callback.command).isEqualTo(commandCode); - - createSessionWithAvailableCommands( - SessionCommands.EMPTY, createPlayerCommandsWithout(commandCode)); - runnable.run(controllerTestRule.createRemoteController(session.getToken())); - - assertThat(callback.countDownLatch.await(NO_RESPONSE_TIMEOUT_MS, MILLISECONDS)).isFalse(); - assertThat(callback.onCommandRequestCalled).isFalse(); - } - @Test public void play() throws Exception { testOnCommandRequest(COMMAND_PLAY_PAUSE, RemoteMediaController::play); @@ -408,4 +360,52 @@ public class MediaSessionPermissionTest { return Futures.immediateFuture(new SessionResult(RESULT_SUCCESS)); } } + + private void createSessionWithAvailableCommands( + SessionCommands sessionCommands, Player.Commands playerCommands) { + player = + new MockPlayer.Builder() + .setApplicationLooper(threadTestRule.getHandler().getLooper()) + .build(); + callback = + new MySessionCallback() { + @Override + public MediaSession.ConnectionResult onConnect( + MediaSession session, ControllerInfo controller) { + if (!TextUtils.equals(SUPPORT_APP_PACKAGE_NAME, controller.getPackageName())) { + return MediaSession.ConnectionResult.reject(); + } + return MediaSession.ConnectionResult.accept(sessionCommands, playerCommands); + } + }; + if (this.session != null) { + this.session.release(); + } + this.session = + new MediaSession.Builder(context, player) + .setId(SESSION_ID) + .setSessionCallback(callback) + .build(); + } + + private SessionCommands createSessionCommandsWith(SessionCommand command) { + return new SessionCommands.Builder().add(command).build(); + } + + private void testOnCommandRequest(int commandCode, PermissionTestTask runnable) throws Exception { + createSessionWithAvailableCommands( + SessionCommands.EMPTY, createPlayerCommandsWith(commandCode)); + runnable.run(controllerTestRule.createRemoteController(session.getToken())); + + assertThat(callback.countDownLatch.await(TIMEOUT_MS, MILLISECONDS)).isTrue(); + assertThat(callback.onCommandRequestCalled).isTrue(); + assertThat(callback.command).isEqualTo(commandCode); + + createSessionWithAvailableCommands( + SessionCommands.EMPTY, createPlayerCommandsWithout(commandCode)); + runnable.run(controllerTestRule.createRemoteController(session.getToken())); + + assertThat(callback.countDownLatch.await(NO_RESPONSE_TIMEOUT_MS, MILLISECONDS)).isFalse(); + assertThat(callback.onCommandRequestCalled).isFalse(); + } } diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java index 8006eb4012..442a84f3c2 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionPlayerTest.java @@ -84,10 +84,9 @@ public class MediaSessionPlayerTest { } @After - public void cleanUp() { - if (session != null) { - session.release(); - } + public void tearDown() throws Exception { + controller.release(); + session.release(); } @Test diff --git a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java index 11dad583ac..e79f809572 100644 --- a/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java +++ b/libraries/test_session_current/src/androidTest/java/androidx/media3/session/MediaSessionTest.java @@ -47,6 +47,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; +import org.junit.After; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; @@ -106,6 +107,16 @@ public class MediaSessionTest { .get(TIMEOUT_MS, MILLISECONDS); } + @After + public void tearDown() throws Exception { + if ((controller != null)) { + threadTestRule.getHandler().postAndSync(() -> controller.release()); + } + if (session != null) { + session.release(); + } + } + @Test public void builder() { MediaSession.Builder builder;