Loading media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java +88 −88 Original line number Diff line number Diff line Loading @@ -34,12 +34,10 @@ import static com.android.mediaroutertest.StubMediaRoute2ProviderService.ROUTE_I import static com.android.mediaroutertest.StubMediaRoute2ProviderService.ROUTE_ID_VARIABLE_VOLUME; import static com.android.mediaroutertest.StubMediaRoute2ProviderService.VOLUME_MAX; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import android.Manifest; import android.app.UiAutomation; Loading Loading @@ -206,9 +204,8 @@ public class MediaRouter2ManagerTest { }); mService.addRoutes(routes); assertTrue( "Added routes not found or onRoutesUpdated() never called.", addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertWithMessage("Added routes not found or onRoutesUpdated() never called.") .that(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); MediaRoute2Info newRoute2 = new MediaRoute2Info.Builder(routes.get(1)) Loading @@ -216,18 +213,16 @@ public class MediaRouter2ManagerTest { .build(); routes.set(1, newRoute2); mService.addRoute(routes.get(1)); assertTrue( "Modified route not found or onRoutesUpdated() never called.", changedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertWithMessage("Modified route not found or onRoutesUpdated() never called.") .that(changedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<String> routeIds = new ArrayList<>(); routeIds.add(routeId0); routeIds.add(routeId1); mService.removeRoutes(routeIds); assertTrue( "Removed routes not found or onRoutesUpdated() never called.", removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertWithMessage("Removed routes not found or onRoutesUpdated() never called.") .that(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } private static boolean checkRoutesMatch( Loading @@ -242,9 +237,10 @@ public class MediaRouter2ManagerTest { if (matchingRoute == null) { return false; } assertTrue(TextUtils.equals(expectedRoute.getName(), matchingRoute.getName())); assertEquals(expectedRoute.getFeatures(), matchingRoute.getFeatures()); assertEquals(expectedRoute.getConnectionState(), matchingRoute.getConnectionState()); assertThat(TextUtils.equals(expectedRoute.getName(), matchingRoute.getName())).isTrue(); assertThat(matchingRoute.getFeatures()).isEqualTo(expectedRoute.getFeatures()); assertThat(matchingRoute.getConnectionState()) .isEqualTo(expectedRoute.getConnectionState()); } return true; Loading Loading @@ -288,19 +284,19 @@ public class MediaRouter2ManagerTest { Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info routeToRemove = routes.get(ROUTE_ID2); assertNotNull(routeToRemove); assertThat(routeToRemove).isNotNull(); mService.removeRoute(ROUTE_ID2); // Wait until the route is removed. assertTrue(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); Map<String, MediaRoute2Info> newRoutes = waitAndGetRoutesWithManager(FEATURES_ALL); assertNull(newRoutes.get(ROUTE_ID2)); assertThat(newRoutes.get(ROUTE_ID2)).isNull(); // Revert the removal. mService.addRoute(routeToRemove); assertTrue(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); mRouter2.unregisterRouteCallback(routeCallback); } Loading @@ -318,8 +314,8 @@ public class MediaRouter2ManagerTest { } } assertEquals(1, routeCount); assertNotNull(routes.get(ROUTE_ID_SPECIAL_FEATURE)); assertThat(routeCount).isEqualTo(1); assertThat(routes.get(ROUTE_ID_SPECIAL_FEATURE)).isNotNull(); } @Test Loading @@ -337,7 +333,7 @@ public class MediaRouter2ManagerTest { } } assertEquals(0, remoteRouteCount); assertThat(remoteRouteCount).isEqualTo(0); } @Test Loading @@ -355,7 +351,7 @@ public class MediaRouter2ManagerTest { } } assertTrue(remoteRouteCount > 0); assertThat(remoteRouteCount > 0).isTrue(); } /** Loading Loading @@ -384,11 +380,11 @@ public class MediaRouter2ManagerTest { }); MediaRoute2Info routeToSelect = routes.get(ROUTE_ID1); assertNotNull(routeToSelect); assertThat(routeToSelect).isNotNull(); mManager.selectRoute(mPackageName, routeToSelect); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertEquals(1, mManager.getRemoteSessions().size()); assertThat(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(mManager.getRemoteSessions().size()).isEqualTo(1); } @Test Loading @@ -410,20 +406,20 @@ public class MediaRouter2ManagerTest { } }); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); mManager.selectRoute(mPackageName, routeToSelect); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<RoutingSessionInfo> sessions = mManager.getRoutingSessions(mPackageName); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); RoutingSessionInfo sessionInfo = sessions.get(1); awaitOnRouteChangedManager( () -> mManager.releaseSession(sessionInfo), ROUTE_ID1, route -> TextUtils.equals(route.getClientPackageName(), null)); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); } @Test Loading @@ -437,7 +433,7 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); onSessionCreatedLatch.countDown(); } @Override Loading @@ -452,8 +448,8 @@ public class MediaRouter2ManagerTest { .build(); mManager.transfer(mManager.getSystemRoutingSession(null), unknownRoute); assertFalse(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertTrue(onTransferFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); assertThat(onTransferFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } @Test Loading @@ -463,7 +459,7 @@ public class MediaRouter2ManagerTest { Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info routeToSelect = routes.get(ROUTE_ID1); assertNotNull(routeToSelect); assertThat(routeToSelect).isNotNull(); addRouterCallback(new RouteCallback() {}); addManagerCallback(new MediaRouter2Manager.Callback() { Loading @@ -481,20 +477,20 @@ public class MediaRouter2ManagerTest { } }); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertEquals(1, mRouter2.getControllers().size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); assertThat(mRouter2.getControllers().size()).isEqualTo(1); mManager.transfer(mManager.getRoutingSessions(mPackageName).get(0), routeToSelect); assertTrue(transferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(transferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertEquals(2, mManager.getRoutingSessions(mPackageName).size()); assertEquals(2, mRouter2.getControllers().size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(2); assertThat(mRouter2.getControllers().size()).isEqualTo(2); mRouter2.getControllers().get(1).release(); assertTrue(releaseLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(releaseLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertEquals(1, mRouter2.getControllers().size()); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertThat(mRouter2.getControllers().size()).isEqualTo(1); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); } /** Loading @@ -511,7 +507,7 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); onSessionCreatedLatch.countDown(); } }); Loading @@ -519,11 +515,11 @@ public class MediaRouter2ManagerTest { () -> mManager.selectRoute(mPackageName, routes.get(ROUTE_ID1)), ROUTE_ID1, route -> TextUtils.equals(route.getClientPackageName(), mPackageName)); assertTrue(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<RoutingSessionInfo> sessions = mManager.getRoutingSessions(mPackageName); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); RoutingSessionInfo sessionInfo = sessions.get(1); awaitOnRouteChangedManager( Loading Loading @@ -582,30 +578,33 @@ public class MediaRouter2ManagerTest { MediaRoute2Info route1 = routes.get(ROUTE_ID1); MediaRoute2Info route2 = routes.get(ROUTE_ID2); assertNotNull(route1); assertNotNull(route2); assertThat(route1).isNotNull(); assertThat(route2).isNotNull(); mManager.selectRoute(mPackageName, route1); assertTrue(successLatch1.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(successLatch1.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); mManager.selectRoute(mPackageName, route2); assertTrue(successLatch2.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(successLatch2.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); // onTransferFailed/onSessionReleased should not be called. assertFalse(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertFalse(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); assertThat(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)) .isFalse(); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); List<String> remoteSessionIds = mManager.getRemoteSessions().stream() .map(RoutingSessionInfo::getId) .collect(Collectors.toList()); // The old session shouldn't appear on the session list. assertFalse(remoteSessionIds.contains(sessions.get(0).getId())); assertTrue(remoteSessionIds.contains(sessions.get(1).getId())); assertThat(remoteSessionIds.contains(sessions.get(0).getId())).isFalse(); assertThat(remoteSessionIds.contains(sessions.get(1).getId())).isTrue(); assertFalse(serviceOnReleaseSessionLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(serviceOnReleaseSessionLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)) .isFalse(); mManager.releaseSession(sessions.get(0)); assertTrue(serviceOnReleaseSessionLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertFalse(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(serviceOnReleaseSessionLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)) .isFalse(); } @Test Loading Loading @@ -633,9 +632,9 @@ public class MediaRouter2ManagerTest { RoutingSessionInfo targetSession = sessions.get(sessions.size() - 1); mManager.transfer(targetSession, routes.get(ROUTE_ID6_TO_BE_IGNORED)); assertFalse(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertTrue(onFailedLatch.await(MediaRouter2Manager.TRANSFER_TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); assertThat(onFailedLatch.await(MediaRouter2Manager.TRANSFER_TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } @Test Loading @@ -647,7 +646,7 @@ public class MediaRouter2ManagerTest { mManager.getSystemRoutingSession(mPackageName).getSelectedRoutes().get(0)); Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info volRoute = routes.get(selectedSystemRouteId); assertNotNull(volRoute); assertThat(volRoute).isNotNull(); int originalVolume = volRoute.getVolume(); int targetVolume = originalVolume == volRoute.getVolumeMax() Loading Loading @@ -697,16 +696,16 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); onSessionCreatedLatch.countDown(); } }); mManager.selectRoute(mPackageName, routes.get(ROUTE_ID1)); assertTrue(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<RoutingSessionInfo> sessions = mManager.getRoutingSessions(mPackageName); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); // test setSessionVolume RoutingSessionInfo sessionInfo = sessions.get(1); Loading Loading @@ -741,7 +740,7 @@ public class MediaRouter2ManagerTest { try { mRouter2.registerControllerCallback(mExecutor, controllerCallback); mManager.setSessionVolume(sessionInfo, targetVolume); assertTrue(volumeChangedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(volumeChangedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } finally { mRouter2.unregisterControllerCallback(controllerCallback); } Loading @@ -768,8 +767,8 @@ public class MediaRouter2ManagerTest { addManagerCallback(new MediaRouter2Manager.Callback() {}); mManager.setRouteVolume(volRoute, 0); assertTrue(onSetRouteVolumeLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertFalse(requestIds.isEmpty()); assertThat(onSetRouteVolumeLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(requestIds.isEmpty()).isFalse(); final int failureReason = REASON_REJECTED; final CountDownLatch onRequestFailedLatch = new CountDownLatch(1); Loading @@ -789,16 +788,17 @@ public class MediaRouter2ManagerTest { final long invalidRequestId = REQUEST_ID_NONE; mService.notifyRequestFailed(invalidRequestId, failureReason); assertFalse(onRequestFailedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(onRequestFailedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); final long validRequestId = requestIds.get(0); mService.notifyRequestFailed(validRequestId, failureReason); assertTrue(onRequestFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onRequestFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); // Test calling notifyRequestFailed() multiple times with the same valid requestId. // onRequestFailed() shouldn't be called since the requestId has been already handled. mService.notifyRequestFailed(validRequestId, failureReason); assertFalse(onRequestFailedSecondCallLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onRequestFailedSecondCallLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) .isFalse(); } @Test Loading @@ -808,9 +808,9 @@ public class MediaRouter2ManagerTest { MediaRoute2Info fixedVolumeRoute = routes.get(ROUTE_ID_FIXED_VOLUME); MediaRoute2Info variableVolumeRoute = routes.get(ROUTE_ID_VARIABLE_VOLUME); assertEquals(PLAYBACK_VOLUME_FIXED, fixedVolumeRoute.getVolumeHandling()); assertEquals(PLAYBACK_VOLUME_VARIABLE, variableVolumeRoute.getVolumeHandling()); assertEquals(VOLUME_MAX, variableVolumeRoute.getVolumeMax()); assertThat(fixedVolumeRoute.getVolumeHandling()).isEqualTo(PLAYBACK_VOLUME_FIXED); assertThat(variableVolumeRoute.getVolumeHandling()).isEqualTo(PLAYBACK_VOLUME_VARIABLE); assertThat(variableVolumeRoute.getVolumeMax()).isEqualTo(VOLUME_MAX); } @Test Loading @@ -819,7 +819,7 @@ public class MediaRouter2ManagerTest { addRouterCallback(new RouteCallback() {}); MediaRoute2Info route = routes.get(ROUTE_ID1); assertNotNull(route); assertThat(route).isNotNull(); final Bundle controllerHints = new Bundle(); controllerHints.putString(TEST_KEY, TEST_VALUE); Loading @@ -837,13 +837,13 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSession, RoutingSessionInfo newSession) { assertTrue(newSession.getSelectedRoutes().contains(route.getId())); assertThat(newSession.getSelectedRoutes().contains(route.getId())).isTrue(); // The StubMediaRoute2ProviderService is supposed to set control hints // with the given controllerHints. Bundle controlHints = newSession.getControlHints(); assertNotNull(controlHints); assertTrue(controlHints.containsKey(TEST_KEY)); assertEquals(TEST_VALUE, controlHints.getString(TEST_KEY)); assertThat(controlHints).isNotNull(); assertThat(controlHints.containsKey(TEST_KEY)).isTrue(); assertThat(controlHints.getString(TEST_KEY)).isEqualTo(TEST_VALUE); successLatch.countDown(); } Loading @@ -857,10 +857,10 @@ public class MediaRouter2ManagerTest { mRouter2.setOnGetControllerHintsListener(listener); mManager.selectRoute(mPackageName, route); assertTrue(hintLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertTrue(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(hintLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertFalse(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); } @Test Loading @@ -885,24 +885,24 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); List<String> selectedRoutes = mManager.getSelectedRoutes(newSessionInfo).stream() .map(MediaRoute2Info::getId) .collect(Collectors.toList()); for (MediaRoute2Info selectableRoute : mManager.getSelectableRoutes(newSessionInfo)) { assertFalse(selectedRoutes.contains(selectableRoute.getId())); assertThat(selectedRoutes.contains(selectableRoute.getId())).isFalse(); } for (MediaRoute2Info deselectableRoute : mManager.getDeselectableRoutes(newSessionInfo)) { assertTrue(selectedRoutes.contains(deselectableRoute.getId())); assertThat(selectedRoutes.contains(deselectableRoute.getId())).isTrue(); } onSessionCreatedLatch.countDown(); } }); mManager.selectRoute(mPackageName, routes.get(ROUTE_ID4_TO_SELECT_AND_DESELECT)); assertTrue(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } Map<String, MediaRoute2Info> waitAndGetRoutesWithManager(List<String> routeFeatures) Loading Loading @@ -984,7 +984,7 @@ public class MediaRouter2ManagerTest { mManager.registerCallback(mExecutor, callback); try { task.run(); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } finally { mManager.unregisterCallback(callback); } Loading Loading
media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java +88 −88 Original line number Diff line number Diff line Loading @@ -34,12 +34,10 @@ import static com.android.mediaroutertest.StubMediaRoute2ProviderService.ROUTE_I import static com.android.mediaroutertest.StubMediaRoute2ProviderService.ROUTE_ID_VARIABLE_VOLUME; import static com.android.mediaroutertest.StubMediaRoute2ProviderService.VOLUME_MAX; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import android.Manifest; import android.app.UiAutomation; Loading Loading @@ -206,9 +204,8 @@ public class MediaRouter2ManagerTest { }); mService.addRoutes(routes); assertTrue( "Added routes not found or onRoutesUpdated() never called.", addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertWithMessage("Added routes not found or onRoutesUpdated() never called.") .that(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); MediaRoute2Info newRoute2 = new MediaRoute2Info.Builder(routes.get(1)) Loading @@ -216,18 +213,16 @@ public class MediaRouter2ManagerTest { .build(); routes.set(1, newRoute2); mService.addRoute(routes.get(1)); assertTrue( "Modified route not found or onRoutesUpdated() never called.", changedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertWithMessage("Modified route not found or onRoutesUpdated() never called.") .that(changedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<String> routeIds = new ArrayList<>(); routeIds.add(routeId0); routeIds.add(routeId1); mService.removeRoutes(routeIds); assertTrue( "Removed routes not found or onRoutesUpdated() never called.", removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertWithMessage("Removed routes not found or onRoutesUpdated() never called.") .that(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } private static boolean checkRoutesMatch( Loading @@ -242,9 +237,10 @@ public class MediaRouter2ManagerTest { if (matchingRoute == null) { return false; } assertTrue(TextUtils.equals(expectedRoute.getName(), matchingRoute.getName())); assertEquals(expectedRoute.getFeatures(), matchingRoute.getFeatures()); assertEquals(expectedRoute.getConnectionState(), matchingRoute.getConnectionState()); assertThat(TextUtils.equals(expectedRoute.getName(), matchingRoute.getName())).isTrue(); assertThat(matchingRoute.getFeatures()).isEqualTo(expectedRoute.getFeatures()); assertThat(matchingRoute.getConnectionState()) .isEqualTo(expectedRoute.getConnectionState()); } return true; Loading Loading @@ -288,19 +284,19 @@ public class MediaRouter2ManagerTest { Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info routeToRemove = routes.get(ROUTE_ID2); assertNotNull(routeToRemove); assertThat(routeToRemove).isNotNull(); mService.removeRoute(ROUTE_ID2); // Wait until the route is removed. assertTrue(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(removedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); Map<String, MediaRoute2Info> newRoutes = waitAndGetRoutesWithManager(FEATURES_ALL); assertNull(newRoutes.get(ROUTE_ID2)); assertThat(newRoutes.get(ROUTE_ID2)).isNull(); // Revert the removal. mService.addRoute(routeToRemove); assertTrue(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(addedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); mRouter2.unregisterRouteCallback(routeCallback); } Loading @@ -318,8 +314,8 @@ public class MediaRouter2ManagerTest { } } assertEquals(1, routeCount); assertNotNull(routes.get(ROUTE_ID_SPECIAL_FEATURE)); assertThat(routeCount).isEqualTo(1); assertThat(routes.get(ROUTE_ID_SPECIAL_FEATURE)).isNotNull(); } @Test Loading @@ -337,7 +333,7 @@ public class MediaRouter2ManagerTest { } } assertEquals(0, remoteRouteCount); assertThat(remoteRouteCount).isEqualTo(0); } @Test Loading @@ -355,7 +351,7 @@ public class MediaRouter2ManagerTest { } } assertTrue(remoteRouteCount > 0); assertThat(remoteRouteCount > 0).isTrue(); } /** Loading Loading @@ -384,11 +380,11 @@ public class MediaRouter2ManagerTest { }); MediaRoute2Info routeToSelect = routes.get(ROUTE_ID1); assertNotNull(routeToSelect); assertThat(routeToSelect).isNotNull(); mManager.selectRoute(mPackageName, routeToSelect); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertEquals(1, mManager.getRemoteSessions().size()); assertThat(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(mManager.getRemoteSessions().size()).isEqualTo(1); } @Test Loading @@ -410,20 +406,20 @@ public class MediaRouter2ManagerTest { } }); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); mManager.selectRoute(mPackageName, routeToSelect); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<RoutingSessionInfo> sessions = mManager.getRoutingSessions(mPackageName); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); RoutingSessionInfo sessionInfo = sessions.get(1); awaitOnRouteChangedManager( () -> mManager.releaseSession(sessionInfo), ROUTE_ID1, route -> TextUtils.equals(route.getClientPackageName(), null)); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); } @Test Loading @@ -437,7 +433,7 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); onSessionCreatedLatch.countDown(); } @Override Loading @@ -452,8 +448,8 @@ public class MediaRouter2ManagerTest { .build(); mManager.transfer(mManager.getSystemRoutingSession(null), unknownRoute); assertFalse(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertTrue(onTransferFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); assertThat(onTransferFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } @Test Loading @@ -463,7 +459,7 @@ public class MediaRouter2ManagerTest { Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info routeToSelect = routes.get(ROUTE_ID1); assertNotNull(routeToSelect); assertThat(routeToSelect).isNotNull(); addRouterCallback(new RouteCallback() {}); addManagerCallback(new MediaRouter2Manager.Callback() { Loading @@ -481,20 +477,20 @@ public class MediaRouter2ManagerTest { } }); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertEquals(1, mRouter2.getControllers().size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); assertThat(mRouter2.getControllers().size()).isEqualTo(1); mManager.transfer(mManager.getRoutingSessions(mPackageName).get(0), routeToSelect); assertTrue(transferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(transferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertEquals(2, mManager.getRoutingSessions(mPackageName).size()); assertEquals(2, mRouter2.getControllers().size()); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(2); assertThat(mRouter2.getControllers().size()).isEqualTo(2); mRouter2.getControllers().get(1).release(); assertTrue(releaseLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(releaseLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertEquals(1, mRouter2.getControllers().size()); assertEquals(1, mManager.getRoutingSessions(mPackageName).size()); assertThat(mRouter2.getControllers().size()).isEqualTo(1); assertThat(mManager.getRoutingSessions(mPackageName).size()).isEqualTo(1); } /** Loading @@ -511,7 +507,7 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); onSessionCreatedLatch.countDown(); } }); Loading @@ -519,11 +515,11 @@ public class MediaRouter2ManagerTest { () -> mManager.selectRoute(mPackageName, routes.get(ROUTE_ID1)), ROUTE_ID1, route -> TextUtils.equals(route.getClientPackageName(), mPackageName)); assertTrue(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<RoutingSessionInfo> sessions = mManager.getRoutingSessions(mPackageName); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); RoutingSessionInfo sessionInfo = sessions.get(1); awaitOnRouteChangedManager( Loading Loading @@ -582,30 +578,33 @@ public class MediaRouter2ManagerTest { MediaRoute2Info route1 = routes.get(ROUTE_ID1); MediaRoute2Info route2 = routes.get(ROUTE_ID2); assertNotNull(route1); assertNotNull(route2); assertThat(route1).isNotNull(); assertThat(route2).isNotNull(); mManager.selectRoute(mPackageName, route1); assertTrue(successLatch1.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(successLatch1.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); mManager.selectRoute(mPackageName, route2); assertTrue(successLatch2.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(successLatch2.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); // onTransferFailed/onSessionReleased should not be called. assertFalse(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertFalse(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); assertThat(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)) .isFalse(); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); List<String> remoteSessionIds = mManager.getRemoteSessions().stream() .map(RoutingSessionInfo::getId) .collect(Collectors.toList()); // The old session shouldn't appear on the session list. assertFalse(remoteSessionIds.contains(sessions.get(0).getId())); assertTrue(remoteSessionIds.contains(sessions.get(1).getId())); assertThat(remoteSessionIds.contains(sessions.get(0).getId())).isFalse(); assertThat(remoteSessionIds.contains(sessions.get(1).getId())).isTrue(); assertFalse(serviceOnReleaseSessionLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(serviceOnReleaseSessionLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)) .isFalse(); mManager.releaseSession(sessions.get(0)); assertTrue(serviceOnReleaseSessionLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertFalse(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(serviceOnReleaseSessionLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(managerOnSessionReleasedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)) .isFalse(); } @Test Loading Loading @@ -633,9 +632,9 @@ public class MediaRouter2ManagerTest { RoutingSessionInfo targetSession = sessions.get(sessions.size() - 1); mManager.transfer(targetSession, routes.get(ROUTE_ID6_TO_BE_IGNORED)); assertFalse(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertTrue(onFailedLatch.await(MediaRouter2Manager.TRANSFER_TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); assertThat(onFailedLatch.await(MediaRouter2Manager.TRANSFER_TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } @Test Loading @@ -647,7 +646,7 @@ public class MediaRouter2ManagerTest { mManager.getSystemRoutingSession(mPackageName).getSelectedRoutes().get(0)); Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_ALL); MediaRoute2Info volRoute = routes.get(selectedSystemRouteId); assertNotNull(volRoute); assertThat(volRoute).isNotNull(); int originalVolume = volRoute.getVolume(); int targetVolume = originalVolume == volRoute.getVolumeMax() Loading Loading @@ -697,16 +696,16 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); onSessionCreatedLatch.countDown(); } }); mManager.selectRoute(mPackageName, routes.get(ROUTE_ID1)); assertTrue(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); List<RoutingSessionInfo> sessions = mManager.getRoutingSessions(mPackageName); assertEquals(2, sessions.size()); assertThat(sessions.size()).isEqualTo(2); // test setSessionVolume RoutingSessionInfo sessionInfo = sessions.get(1); Loading Loading @@ -741,7 +740,7 @@ public class MediaRouter2ManagerTest { try { mRouter2.registerControllerCallback(mExecutor, controllerCallback); mManager.setSessionVolume(sessionInfo, targetVolume); assertTrue(volumeChangedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(volumeChangedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } finally { mRouter2.unregisterControllerCallback(controllerCallback); } Loading @@ -768,8 +767,8 @@ public class MediaRouter2ManagerTest { addManagerCallback(new MediaRouter2Manager.Callback() {}); mManager.setRouteVolume(volRoute, 0); assertTrue(onSetRouteVolumeLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertFalse(requestIds.isEmpty()); assertThat(onSetRouteVolumeLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(requestIds.isEmpty()).isFalse(); final int failureReason = REASON_REJECTED; final CountDownLatch onRequestFailedLatch = new CountDownLatch(1); Loading @@ -789,16 +788,17 @@ public class MediaRouter2ManagerTest { final long invalidRequestId = REQUEST_ID_NONE; mService.notifyRequestFailed(invalidRequestId, failureReason); assertFalse(onRequestFailedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(onRequestFailedLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); final long validRequestId = requestIds.get(0); mService.notifyRequestFailed(validRequestId, failureReason); assertTrue(onRequestFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onRequestFailedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); // Test calling notifyRequestFailed() multiple times with the same valid requestId. // onRequestFailed() shouldn't be called since the requestId has been already handled. mService.notifyRequestFailed(validRequestId, failureReason); assertFalse(onRequestFailedSecondCallLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onRequestFailedSecondCallLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) .isFalse(); } @Test Loading @@ -808,9 +808,9 @@ public class MediaRouter2ManagerTest { MediaRoute2Info fixedVolumeRoute = routes.get(ROUTE_ID_FIXED_VOLUME); MediaRoute2Info variableVolumeRoute = routes.get(ROUTE_ID_VARIABLE_VOLUME); assertEquals(PLAYBACK_VOLUME_FIXED, fixedVolumeRoute.getVolumeHandling()); assertEquals(PLAYBACK_VOLUME_VARIABLE, variableVolumeRoute.getVolumeHandling()); assertEquals(VOLUME_MAX, variableVolumeRoute.getVolumeMax()); assertThat(fixedVolumeRoute.getVolumeHandling()).isEqualTo(PLAYBACK_VOLUME_FIXED); assertThat(variableVolumeRoute.getVolumeHandling()).isEqualTo(PLAYBACK_VOLUME_VARIABLE); assertThat(variableVolumeRoute.getVolumeMax()).isEqualTo(VOLUME_MAX); } @Test Loading @@ -819,7 +819,7 @@ public class MediaRouter2ManagerTest { addRouterCallback(new RouteCallback() {}); MediaRoute2Info route = routes.get(ROUTE_ID1); assertNotNull(route); assertThat(route).isNotNull(); final Bundle controllerHints = new Bundle(); controllerHints.putString(TEST_KEY, TEST_VALUE); Loading @@ -837,13 +837,13 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSession, RoutingSessionInfo newSession) { assertTrue(newSession.getSelectedRoutes().contains(route.getId())); assertThat(newSession.getSelectedRoutes().contains(route.getId())).isTrue(); // The StubMediaRoute2ProviderService is supposed to set control hints // with the given controllerHints. Bundle controlHints = newSession.getControlHints(); assertNotNull(controlHints); assertTrue(controlHints.containsKey(TEST_KEY)); assertEquals(TEST_VALUE, controlHints.getString(TEST_KEY)); assertThat(controlHints).isNotNull(); assertThat(controlHints.containsKey(TEST_KEY)).isTrue(); assertThat(controlHints.getString(TEST_KEY)).isEqualTo(TEST_VALUE); successLatch.countDown(); } Loading @@ -857,10 +857,10 @@ public class MediaRouter2ManagerTest { mRouter2.setOnGetControllerHintsListener(listener); mManager.selectRoute(mPackageName, route); assertTrue(hintLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertTrue(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(hintLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertThat(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); assertFalse(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)); assertThat(failureLatch.await(WAIT_TIME_MS, TimeUnit.MILLISECONDS)).isFalse(); } @Test Loading @@ -885,24 +885,24 @@ public class MediaRouter2ManagerTest { @Override public void onTransferred(RoutingSessionInfo oldSessionInfo, RoutingSessionInfo newSessionInfo) { assertNotNull(newSessionInfo); assertThat(newSessionInfo).isNotNull(); List<String> selectedRoutes = mManager.getSelectedRoutes(newSessionInfo).stream() .map(MediaRoute2Info::getId) .collect(Collectors.toList()); for (MediaRoute2Info selectableRoute : mManager.getSelectableRoutes(newSessionInfo)) { assertFalse(selectedRoutes.contains(selectableRoute.getId())); assertThat(selectedRoutes.contains(selectableRoute.getId())).isFalse(); } for (MediaRoute2Info deselectableRoute : mManager.getDeselectableRoutes(newSessionInfo)) { assertTrue(selectedRoutes.contains(deselectableRoute.getId())); assertThat(selectedRoutes.contains(deselectableRoute.getId())).isTrue(); } onSessionCreatedLatch.countDown(); } }); mManager.selectRoute(mPackageName, routes.get(ROUTE_ID4_TO_SELECT_AND_DESELECT)); assertTrue(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(onSessionCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } Map<String, MediaRoute2Info> waitAndGetRoutesWithManager(List<String> routeFeatures) Loading Loading @@ -984,7 +984,7 @@ public class MediaRouter2ManagerTest { mManager.registerCallback(mExecutor, callback); try { task.run(); assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)); assertThat(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue(); } finally { mManager.unregisterCallback(callback); } Loading