Close panel when media stop

-Add forceClose callback to finish panel
-Add test cases

Bug: 151396986
Test: make -j50 RunSettingsRoboTests
Change-Id: Ic0ac2880a4ff412382816ccb41b4fbb60dbdf519
This commit is contained in:
Tim Peng
2020-03-18 10:50:43 +08:00
parent 7430932305
commit 650eda307b
5 changed files with 59 additions and 3 deletions

View File

@@ -22,6 +22,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -30,6 +31,7 @@ import android.content.Context;
import android.media.MediaMetadata;
import android.media.session.MediaController;
import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState;
import android.net.Uri;
import com.android.settings.R;
@@ -67,6 +69,8 @@ public class MediaOutputPanelTest {
private LocalMediaManager mLocalMediaManager;
@Mock
private PanelContentCallback mCallback;
@Mock
private PlaybackState mPlaybackState;
private MediaOutputPanel mPanel;
private Context mContext;
@@ -259,4 +263,19 @@ public class MediaOutputPanelTest {
verify(mCallback).onHeaderChanged();
}
@Test
public void onPlaybackStateChanged_stateFromPlayingToStopped_verifyCallForceClose() {
mPanel.onStart();
verify(mMediaController).registerCallback(mControllerCbs.capture());
final MediaController.Callback controllerCallbacks = mControllerCbs.getValue();
when(mPlaybackState.getState()).thenReturn(PlaybackState.STATE_PLAYING);
controllerCallbacks.onPlaybackStateChanged(mPlaybackState);
verify(mCallback, never()).forceClose();
when(mPlaybackState.getState()).thenReturn(PlaybackState.STATE_STOPPED);
controllerCallbacks.onPlaybackStateChanged(mPlaybackState);
verify(mCallback).forceClose();
}
}