Merge "Add a MediaSessionCompat test case for setCallback(null)" into oc-mr1-jetpack-dev
diff --git a/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java b/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java
index 2cda242..9911c11 100644
--- a/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java
+++ b/media-compat/tests/src/android/support/v4/media/session/MediaSessionCompatTest.java
@@ -502,6 +502,29 @@
}
/**
+ * Tests {@link MediaSessionCompat#setCallback} with {@code null}. No callback will be called
+ * once {@code setCallback(null)} is done.
+ */
+ @Test
+ @SmallTest
+ public void testSetCallbackWithNull() throws Exception {
+ MediaSessionCallback sessionCallback = new MediaSessionCallback();
+ mSession.setFlags(MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
+ mSession.setActive(true);
+ mSession.setCallback(sessionCallback, mHandler);
+
+ MediaControllerCompat controller = mSession.getController();
+ setPlaybackState(PlaybackStateCompat.STATE_PLAYING);
+
+ sessionCallback.reset(1);
+ mSession.setCallback(null, mHandler);
+
+ controller.getTransportControls().pause();
+ assertFalse(sessionCallback.await(WAIT_TIME_MS));
+ assertFalse("Callback shouldn't be called.", sessionCallback.mOnPauseCalled);
+ }
+
+ /**
* Tests {@link MediaSessionCompat#setPlaybackToLocal} and
* {@link MediaSessionCompat#setPlaybackToRemote}.
*/
@@ -716,22 +739,6 @@
}
}
- @Test
- @SmallTest
- public void testSetNullCallback() throws Throwable {
- getInstrumentation().runOnMainSync(new Runnable() {
- @Override
- public void run() {
- try {
- MediaSessionCompat session = new MediaSessionCompat(getContext(), "TEST");
- session.setCallback(null);
- } catch (Exception e) {
- fail("Fail with an exception: " + e);
- }
- }
- });
- }
-
/**
* Tests {@link MediaSessionCompat.QueueItem}.
*/