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

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallbackTest.java

Issue 1840093002: [Android, Cast] Take onRouteChanged() into account to discover compatible Cast devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added a check for matching the selector when route changes Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallback.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/junit/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallbackTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallbackTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallbackTest.java
index dd469534d3c71048c403d666ececc2b4fa680c76..529f8d34b40af4439e2ad844a4cd7c0eb253f707 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallbackTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallbackTest.java
@@ -4,14 +4,19 @@
package org.chromium.chrome.browser.media.router.cast;
-import static org.chromium.chrome.browser.media.router.cast.TestUtils.createMockRouteInfo;
import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import android.support.v7.media.MediaRouteSelector;
+import android.support.v7.media.MediaRouter;
+
import org.chromium.base.test.util.Feature;
import org.chromium.chrome.browser.media.router.ChromeMediaRouterTestBase;
import org.chromium.chrome.browser.media.router.DiscoveryDelegate;
@@ -45,7 +50,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testInitCallbackWithEmptyKnownSinks() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
verify(mDiscoveryDelegate).onSinksReceived(eq(SOURCE_ID1), eq(knownSinks));
}
@@ -56,7 +61,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
MediaSink sink = new MediaSink(SINK_ID1, SINK_NAME1, null);
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
verify(mDiscoveryDelegate).onSinksReceived(eq(SOURCE_ID1), eq(knownSinks));
}
@@ -66,7 +71,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackAddOneSink() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
List<MediaSink> expectedSinks = new ArrayList<MediaSink>();
@@ -79,7 +84,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackAddTwoSinks() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID2, SINK_NAME2));
@@ -94,7 +99,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackAddDuplicateSink() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
@@ -109,7 +114,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackRemoveSink() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.onRouteRemoved(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
@@ -124,7 +129,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackRemoveNonexistingSink() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.onRouteRemoved(null, createMockRouteInfo(SINK_ID2, SINK_NAME2));
@@ -136,10 +141,42 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
@Test
@Feature({"MediaRouter"})
+ public void testCallbackChangeRouteAddsOneSink() {
+ List<MediaSink> knownSinks = new ArrayList<MediaSink>();
+ DiscoveryCallback callback = new DiscoveryCallback(
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
+
+ callback.onRouteChanged(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
+ List<MediaSink> expectedSinks = new ArrayList<MediaSink>();
+ expectedSinks.add(new MediaSink(SINK_ID1, SINK_NAME1, null));
+ verify(mDiscoveryDelegate).onSinksReceived(eq(SOURCE_ID1), eq(expectedSinks));
+ }
+
+ @Test
+ @Feature({"MediaRouter"})
+ public void testCallbackRemoveSinkAfterRouteChanged() {
+ List<MediaSink> knownSinks = new ArrayList<MediaSink>();
+ DiscoveryCallback callback = new DiscoveryCallback(
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
+
+ MediaRouter.RouteInfo info = createMockRouteInfo(SINK_ID1, SINK_NAME1);
+ callback.onRouteChanged(null, info);
+
+ doReturn(false).when(info).matchesSelector(any(MediaRouteSelector.class));
+ callback.onRouteChanged(null, info);
+
+ List<MediaSink> expectedSinks = new ArrayList<MediaSink>();
+ // One time for init, one time for remove.
+ verify(mDiscoveryDelegate, times(2)).onSinksReceived(eq(SOURCE_ID1), eq(expectedSinks));
+ }
+
+
+ @Test
+ @Feature({"MediaRouter"})
public void testCallbackAddSourceUrn() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.addSourceUrn(SOURCE_ID2);
@@ -154,7 +191,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackAddDuplicateSourceUrn() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.addSourceUrn(SOURCE_ID1);
@@ -170,7 +207,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackRemoveSourceUrn() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.removeSourceUrn(SOURCE_ID1);
@@ -185,7 +222,7 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
public void testCallbackRemoveNonexistingSourceUrn() {
List<MediaSink> knownSinks = new ArrayList<MediaSink>();
DiscoveryCallback callback = new DiscoveryCallback(
- SOURCE_ID1, knownSinks, mDiscoveryDelegate);
+ SOURCE_ID1, knownSinks, mDiscoveryDelegate, null);
callback.onRouteAdded(null, createMockRouteInfo(SINK_ID1, SINK_NAME1));
callback.removeSourceUrn(SOURCE_ID2);
@@ -194,4 +231,10 @@ public class DiscoveryCallbackTest extends ChromeMediaRouterTestBase {
// Only the one time for init.
verify(mDiscoveryDelegate, never()).onSinksReceived(eq(SOURCE_ID2), eq(expectedSinks));
}
+
+ private MediaRouter.RouteInfo createMockRouteInfo(String sinkId, String sinkName) {
+ MediaRouter.RouteInfo route = spy(TestUtils.createMockRouteInfo(sinkId, sinkName));
+ doReturn(true).when(route).matchesSelector(any(MediaRouteSelector.class));
+ return route;
+ }
}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/DiscoveryCallback.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698