Loading packages/MediaComponents/test/src/android/media/MediaBrowser2Test.java +24 −19 Original line number Diff line number Diff line Loading @@ -339,7 +339,9 @@ public class MediaBrowser2Test extends MediaController2Test { final CountDownLatch latch = new CountDownLatch(1); final SessionCallbackProxy callbackProxy = new SessionCallbackProxy(mContext) { @Override public void onSubscribe(ControllerInfo info, String parentId, Bundle extras) { public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId, @Nullable Bundle extras) { if (Process.myUid() == info.getUid()) { assertEquals(testParentId, parentId); assertTrue(TestUtils.equals(testExtras, extras)); Loading @@ -361,7 +363,8 @@ public class MediaBrowser2Test extends MediaController2Test { final CountDownLatch latch = new CountDownLatch(1); final SessionCallbackProxy callbackProxy = new SessionCallbackProxy(mContext) { @Override public void onUnsubscribe(ControllerInfo info, String parentId) { public void onUnsubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId) { if (Process.myUid() == info.getUid()) { assertEquals(testParentId, parentId); latch.countDown(); Loading @@ -387,21 +390,29 @@ public class MediaBrowser2Test extends MediaController2Test { final CountDownLatch latch = new CountDownLatch(3); final SessionCallbackProxy sessionCallbackProxy = new SessionCallbackProxy(mContext) { @Override public CommandGroup onConnect(ControllerInfo controller) { final MockMediaLibraryService2 service = (MockMediaLibraryService2) TestServiceRegistry.getInstance().getServiceInstance(); final MediaLibrarySession session = (MediaLibrarySession) service.getSession(); public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { if (Process.myUid() == controller.getUid()) { assertTrue(session instanceof MediaLibrarySession); if (mSession != null) { mSession.close(); } mSession = session; // Shouldn't trigger onChildrenChanged() for the browser, because it hasn't // subscribed. session.notifyChildrenChanged(testParentId1, testChildrenCount, null); session.notifyChildrenChanged(controller, testParentId1, testChildrenCount, null); return super.onConnect(controller); ((MediaLibrarySession) session).notifyChildrenChanged( testParentId1, testChildrenCount, null); ((MediaLibrarySession) session).notifyChildrenChanged( controller, testParentId1, testChildrenCount, null); } return super.onConnect(session, controller); } @Override public void onSubscribe(ControllerInfo info, String parentId, Bundle extras) { public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId, @Nullable Bundle extras) { if (Process.myUid() == info.getUid()) { final MediaLibrarySession session = (MediaLibrarySession) mSession; session.notifyChildrenChanged(testParentId2, testChildrenCount, null); session.notifyChildrenChanged(info, testParentId2, testChildrenCount, testExtras); Loading Loading @@ -435,12 +446,6 @@ public class MediaBrowser2Test extends MediaController2Test { final SessionToken2 token = MockMediaLibraryService2.getToken(mContext); final MediaBrowser2 browser = (MediaBrowser2) createController( token, true, controllerCallbackProxy); final MockMediaLibraryService2 service = (MockMediaLibraryService2) TestServiceRegistry.getInstance().getServiceInstance(); if (mSession != null) { mSession.close(); } mSession = service.getSession(); assertTrue(mSession instanceof MediaLibrarySession); browser.subscribe(testParentId2, null); // This ensures that onChildrenChanged() is only called for the expected reasons. Loading packages/MediaComponents/test/src/android/media/MediaController2Test.java +14 −12 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Handler; import android.os.HandlerThread; import android.os.Process; import android.os.ResultReceiver; import android.support.annotation.NonNull; import android.support.test.filters.FlakyTest; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; Loading Loading @@ -656,15 +657,6 @@ public class MediaController2Test extends MediaSession2TestBase { assertEquals(SessionToken2.TYPE_SESSION_SERVICE, token.getType()); } private void connectToService(SessionToken2 token) throws InterruptedException { if (mSession != null) { mSession.close(); } mController = createController(token); mSession = TestServiceRegistry.getInstance().getServiceInstance().getSession(); mPlayer = (MockPlayer) mSession.getPlayer(); } @Test public void testConnectToService_sessionService() throws InterruptedException { testConnectToService(MockMediaSessionService2.ID); Loading @@ -680,17 +672,24 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallbackProxy proxy = new SessionCallbackProxy(mContext) { @Override public CommandGroup onConnect(ControllerInfo controller) { public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { if (Process.myUid() == controller.getUid()) { if (mSession != null) { mSession.close(); } mSession = session; mPlayer = (MockPlayer) session.getPlayer(); assertEquals(mContext.getPackageName(), controller.getPackageName()); assertFalse(controller.isTrusted()); latch.countDown(); } return super.onConnect(controller); return super.onConnect(session, controller); } }; TestServiceRegistry.getInstance().setSessionCallbackProxy(proxy); connectToService(TestUtils.getServiceToken(mContext, id)); mController = createController(TestUtils.getServiceToken(mContext, id)); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); // Test command from controller to session service Loading Loading @@ -718,11 +717,14 @@ public class MediaController2Test extends MediaSession2TestBase { testControllerAfterSessionIsGone(mSession.getToken().getId()); } // TODO(jaewan): Re-enable this test @Ignore @Test public void testControllerAfterSessionIsGone_sessionService() throws InterruptedException { /* connectToService(TestUtils.getServiceToken(mContext, MockMediaSessionService2.ID)); testControllerAfterSessionIsGone(MockMediaSessionService2.ID); */ } @Test Loading packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java +13 −10 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessio import android.media.TestServiceRegistry.SessionCallbackProxy; import android.media.TestUtils.SyncHandler; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.Log; import java.io.FileDescriptor; Loading Loading @@ -96,8 +98,8 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 { @Override public void onCreate() { super.onCreate(); TestServiceRegistry.getInstance().setServiceInstance(this); super.onCreate(); } @Override Loading Loading @@ -144,9 +146,9 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 { } @Override public CommandGroup onConnect(MediaSession2 session, ControllerInfo controller) { return mCallbackProxy.onConnect(controller); public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { return mCallbackProxy.onConnect(session, controller); } @Override Loading Loading @@ -211,15 +213,16 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 { } @Override public void onSubscribe(MediaLibrarySession session, ControllerInfo controller, String parentId, Bundle extras) { mCallbackProxy.onSubscribe(controller, parentId, extras); public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo controller, @NonNull String parentId, @Nullable Bundle extras) { mCallbackProxy.onSubscribe(session, controller, parentId, extras); } @Override public void onUnsubscribe(MediaLibrarySession session, ControllerInfo controller, String parentId) { mCallbackProxy.onUnsubscribe(controller, parentId); public void onUnsubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo controller, String parentId) { mCallbackProxy.onUnsubscribe(session, controller, parentId); } } Loading packages/MediaComponents/test/src/android/media/MockMediaSessionService2.java +5 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.media.MediaSession2.ControllerInfo; import android.media.MediaSession2.SessionCallback; import android.media.TestServiceRegistry.SessionCallbackProxy; import android.media.TestUtils.SyncHandler; import android.support.annotation.NonNull; import java.util.concurrent.Executor; Loading @@ -46,8 +47,8 @@ public class MockMediaSessionService2 extends MediaSessionService2 { @Override public void onCreate() { super.onCreate(); TestServiceRegistry.getInstance().setServiceInstance(this); super.onCreate(); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); } Loading Loading @@ -103,9 +104,9 @@ public class MockMediaSessionService2 extends MediaSessionService2 { } @Override public CommandGroup onConnect(MediaSession2 session, ControllerInfo controller) { return mCallbackProxy.onConnect(controller); public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { return mCallbackProxy.onConnect(session, controller); } } } packages/MediaComponents/test/src/android/media/TestServiceRegistry.java +10 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.media; import static org.junit.Assert.fail; import android.content.Context; import android.media.MediaLibraryService2.MediaLibrarySession; import android.media.MediaSession2.CommandGroup; import android.media.MediaSession2.ControllerInfo; import android.media.TestUtils.SyncHandler; Loading @@ -26,6 +27,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Process; import android.support.annotation.GuardedBy; import android.support.annotation.NonNull; import android.support.annotation.Nullable; /** * Keeps the instance of currently running {@link MockMediaSessionService2}. And also provides Loading @@ -36,7 +39,7 @@ import android.support.annotation.GuardedBy; public class TestServiceRegistry { /** * Proxy for both {@link MediaSession2.SessionCallback} and * {@link MediaLibraryService2.MediaLibrarySessionCallback}. * {@link MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback}. */ public static abstract class SessionCallbackProxy { private final Context mContext; Loading @@ -56,7 +59,8 @@ public class TestServiceRegistry { * @param controller * @return */ public CommandGroup onConnect(ControllerInfo controller) { public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { if (Process.myUid() == controller.getUid()) { CommandGroup commands = new CommandGroup(mContext); commands.addAllPredefinedCommands(); Loading @@ -75,8 +79,10 @@ public class TestServiceRegistry { */ public void onServiceDestroyed() { } public void onSubscribe(ControllerInfo info, String parentId, Bundle extra) { } public void onUnsubscribe(ControllerInfo info, String parentId) { } public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId, @Nullable Bundle extra) { } public void onUnsubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId) { } } @GuardedBy("TestServiceRegistry.class") Loading Loading
packages/MediaComponents/test/src/android/media/MediaBrowser2Test.java +24 −19 Original line number Diff line number Diff line Loading @@ -339,7 +339,9 @@ public class MediaBrowser2Test extends MediaController2Test { final CountDownLatch latch = new CountDownLatch(1); final SessionCallbackProxy callbackProxy = new SessionCallbackProxy(mContext) { @Override public void onSubscribe(ControllerInfo info, String parentId, Bundle extras) { public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId, @Nullable Bundle extras) { if (Process.myUid() == info.getUid()) { assertEquals(testParentId, parentId); assertTrue(TestUtils.equals(testExtras, extras)); Loading @@ -361,7 +363,8 @@ public class MediaBrowser2Test extends MediaController2Test { final CountDownLatch latch = new CountDownLatch(1); final SessionCallbackProxy callbackProxy = new SessionCallbackProxy(mContext) { @Override public void onUnsubscribe(ControllerInfo info, String parentId) { public void onUnsubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId) { if (Process.myUid() == info.getUid()) { assertEquals(testParentId, parentId); latch.countDown(); Loading @@ -387,21 +390,29 @@ public class MediaBrowser2Test extends MediaController2Test { final CountDownLatch latch = new CountDownLatch(3); final SessionCallbackProxy sessionCallbackProxy = new SessionCallbackProxy(mContext) { @Override public CommandGroup onConnect(ControllerInfo controller) { final MockMediaLibraryService2 service = (MockMediaLibraryService2) TestServiceRegistry.getInstance().getServiceInstance(); final MediaLibrarySession session = (MediaLibrarySession) service.getSession(); public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { if (Process.myUid() == controller.getUid()) { assertTrue(session instanceof MediaLibrarySession); if (mSession != null) { mSession.close(); } mSession = session; // Shouldn't trigger onChildrenChanged() for the browser, because it hasn't // subscribed. session.notifyChildrenChanged(testParentId1, testChildrenCount, null); session.notifyChildrenChanged(controller, testParentId1, testChildrenCount, null); return super.onConnect(controller); ((MediaLibrarySession) session).notifyChildrenChanged( testParentId1, testChildrenCount, null); ((MediaLibrarySession) session).notifyChildrenChanged( controller, testParentId1, testChildrenCount, null); } return super.onConnect(session, controller); } @Override public void onSubscribe(ControllerInfo info, String parentId, Bundle extras) { public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId, @Nullable Bundle extras) { if (Process.myUid() == info.getUid()) { final MediaLibrarySession session = (MediaLibrarySession) mSession; session.notifyChildrenChanged(testParentId2, testChildrenCount, null); session.notifyChildrenChanged(info, testParentId2, testChildrenCount, testExtras); Loading Loading @@ -435,12 +446,6 @@ public class MediaBrowser2Test extends MediaController2Test { final SessionToken2 token = MockMediaLibraryService2.getToken(mContext); final MediaBrowser2 browser = (MediaBrowser2) createController( token, true, controllerCallbackProxy); final MockMediaLibraryService2 service = (MockMediaLibraryService2) TestServiceRegistry.getInstance().getServiceInstance(); if (mSession != null) { mSession.close(); } mSession = service.getSession(); assertTrue(mSession instanceof MediaLibrarySession); browser.subscribe(testParentId2, null); // This ensures that onChildrenChanged() is only called for the expected reasons. Loading
packages/MediaComponents/test/src/android/media/MediaController2Test.java +14 −12 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Handler; import android.os.HandlerThread; import android.os.Process; import android.os.ResultReceiver; import android.support.annotation.NonNull; import android.support.test.filters.FlakyTest; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; Loading Loading @@ -656,15 +657,6 @@ public class MediaController2Test extends MediaSession2TestBase { assertEquals(SessionToken2.TYPE_SESSION_SERVICE, token.getType()); } private void connectToService(SessionToken2 token) throws InterruptedException { if (mSession != null) { mSession.close(); } mController = createController(token); mSession = TestServiceRegistry.getInstance().getServiceInstance().getSession(); mPlayer = (MockPlayer) mSession.getPlayer(); } @Test public void testConnectToService_sessionService() throws InterruptedException { testConnectToService(MockMediaSessionService2.ID); Loading @@ -680,17 +672,24 @@ public class MediaController2Test extends MediaSession2TestBase { final CountDownLatch latch = new CountDownLatch(1); final SessionCallbackProxy proxy = new SessionCallbackProxy(mContext) { @Override public CommandGroup onConnect(ControllerInfo controller) { public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { if (Process.myUid() == controller.getUid()) { if (mSession != null) { mSession.close(); } mSession = session; mPlayer = (MockPlayer) session.getPlayer(); assertEquals(mContext.getPackageName(), controller.getPackageName()); assertFalse(controller.isTrusted()); latch.countDown(); } return super.onConnect(controller); return super.onConnect(session, controller); } }; TestServiceRegistry.getInstance().setSessionCallbackProxy(proxy); connectToService(TestUtils.getServiceToken(mContext, id)); mController = createController(TestUtils.getServiceToken(mContext, id)); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); // Test command from controller to session service Loading Loading @@ -718,11 +717,14 @@ public class MediaController2Test extends MediaSession2TestBase { testControllerAfterSessionIsGone(mSession.getToken().getId()); } // TODO(jaewan): Re-enable this test @Ignore @Test public void testControllerAfterSessionIsGone_sessionService() throws InterruptedException { /* connectToService(TestUtils.getServiceToken(mContext, MockMediaSessionService2.ID)); testControllerAfterSessionIsGone(MockMediaSessionService2.ID); */ } @Test Loading
packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java +13 −10 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessio import android.media.TestServiceRegistry.SessionCallbackProxy; import android.media.TestUtils.SyncHandler; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.Log; import java.io.FileDescriptor; Loading Loading @@ -96,8 +98,8 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 { @Override public void onCreate() { super.onCreate(); TestServiceRegistry.getInstance().setServiceInstance(this); super.onCreate(); } @Override Loading Loading @@ -144,9 +146,9 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 { } @Override public CommandGroup onConnect(MediaSession2 session, ControllerInfo controller) { return mCallbackProxy.onConnect(controller); public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { return mCallbackProxy.onConnect(session, controller); } @Override Loading Loading @@ -211,15 +213,16 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 { } @Override public void onSubscribe(MediaLibrarySession session, ControllerInfo controller, String parentId, Bundle extras) { mCallbackProxy.onSubscribe(controller, parentId, extras); public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo controller, @NonNull String parentId, @Nullable Bundle extras) { mCallbackProxy.onSubscribe(session, controller, parentId, extras); } @Override public void onUnsubscribe(MediaLibrarySession session, ControllerInfo controller, String parentId) { mCallbackProxy.onUnsubscribe(controller, parentId); public void onUnsubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo controller, String parentId) { mCallbackProxy.onUnsubscribe(session, controller, parentId); } } Loading
packages/MediaComponents/test/src/android/media/MockMediaSessionService2.java +5 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.media.MediaSession2.ControllerInfo; import android.media.MediaSession2.SessionCallback; import android.media.TestServiceRegistry.SessionCallbackProxy; import android.media.TestUtils.SyncHandler; import android.support.annotation.NonNull; import java.util.concurrent.Executor; Loading @@ -46,8 +47,8 @@ public class MockMediaSessionService2 extends MediaSessionService2 { @Override public void onCreate() { super.onCreate(); TestServiceRegistry.getInstance().setServiceInstance(this); super.onCreate(); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); } Loading Loading @@ -103,9 +104,9 @@ public class MockMediaSessionService2 extends MediaSessionService2 { } @Override public CommandGroup onConnect(MediaSession2 session, ControllerInfo controller) { return mCallbackProxy.onConnect(controller); public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { return mCallbackProxy.onConnect(session, controller); } } }
packages/MediaComponents/test/src/android/media/TestServiceRegistry.java +10 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.media; import static org.junit.Assert.fail; import android.content.Context; import android.media.MediaLibraryService2.MediaLibrarySession; import android.media.MediaSession2.CommandGroup; import android.media.MediaSession2.ControllerInfo; import android.media.TestUtils.SyncHandler; Loading @@ -26,6 +27,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Process; import android.support.annotation.GuardedBy; import android.support.annotation.NonNull; import android.support.annotation.Nullable; /** * Keeps the instance of currently running {@link MockMediaSessionService2}. And also provides Loading @@ -36,7 +39,7 @@ import android.support.annotation.GuardedBy; public class TestServiceRegistry { /** * Proxy for both {@link MediaSession2.SessionCallback} and * {@link MediaLibraryService2.MediaLibrarySessionCallback}. * {@link MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback}. */ public static abstract class SessionCallbackProxy { private final Context mContext; Loading @@ -56,7 +59,8 @@ public class TestServiceRegistry { * @param controller * @return */ public CommandGroup onConnect(ControllerInfo controller) { public CommandGroup onConnect(@NonNull MediaSession2 session, @NonNull ControllerInfo controller) { if (Process.myUid() == controller.getUid()) { CommandGroup commands = new CommandGroup(mContext); commands.addAllPredefinedCommands(); Loading @@ -75,8 +79,10 @@ public class TestServiceRegistry { */ public void onServiceDestroyed() { } public void onSubscribe(ControllerInfo info, String parentId, Bundle extra) { } public void onUnsubscribe(ControllerInfo info, String parentId) { } public void onSubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId, @Nullable Bundle extra) { } public void onUnsubscribe(@NonNull MediaLibrarySession session, @NonNull ControllerInfo info, @NonNull String parentId) { } } @GuardedBy("TestServiceRegistry.class") Loading