Merge "Change the title when in call/media state" into pi-dev

This commit is contained in:
Hugh Chen
2018-05-09 03:06:04 +00:00
committed by Android (Google) Code Review
5 changed files with 118 additions and 11 deletions

View File

@@ -19,6 +19,7 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.DISABLED_UNSUPPORTED;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
@@ -27,14 +28,21 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.pm.PackageManager;
import android.media.AudioManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.bluetooth.AvailableMediaBluetoothDeviceUpdater;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowAudioManager;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.BluetoothEventManager;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import org.junit.Before;
import org.junit.Test;
@@ -43,8 +51,13 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {
ShadowAudioManager.class,
ShadowBluetoothUtils.class}
)
public class AvailableMediaDeviceGroupControllerTest {
private static final String PREFERENCE_KEY_1 = "pref_key_1";
@@ -59,11 +72,17 @@ public class AvailableMediaDeviceGroupControllerTest {
private PreferenceManager mPreferenceManager;
@Mock
private PackageManager mPackageManager;
@Mock
private BluetoothEventManager mEventManager;
@Mock
private LocalBluetoothManager mLocalManager;
private PreferenceGroup mPreferenceGroup;
private Context mContext;
private Preference mPreference;
private AvailableMediaDeviceGroupController mAvailableMediaDeviceGroupController;
private LocalBluetoothManager mLocalBluetoothManager;
private ShadowAudioManager mShadowAudioManager;
@Before
public void setUp() {
@@ -78,6 +97,11 @@ public class AvailableMediaDeviceGroupControllerTest {
doReturn(mPackageManager).when(mContext).getPackageManager();
doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalManager;
mLocalBluetoothManager = ShadowBluetoothUtils.getLocalBtManager(mContext);
mShadowAudioManager = ShadowAudioManager.getShadow();
doReturn(mEventManager).when(mLocalBluetoothManager).getEventManager();
mAvailableMediaDeviceGroupController = new AvailableMediaDeviceGroupController(mContext);
mAvailableMediaDeviceGroupController.
setBluetoothDeviceUpdater(mAvailableMediaBluetoothDeviceUpdater);
@@ -127,6 +151,8 @@ public class AvailableMediaDeviceGroupControllerTest {
// register the callback in onStart()
mAvailableMediaDeviceGroupController.onStart();
verify(mAvailableMediaBluetoothDeviceUpdater).registerCallback();
verify(mLocalBluetoothManager.getEventManager()).registerCallback(
any(BluetoothCallback.class));
}
@Test
@@ -134,6 +160,8 @@ public class AvailableMediaDeviceGroupControllerTest {
// unregister the callback in onStop()
mAvailableMediaDeviceGroupController.onStop();
verify(mAvailableMediaBluetoothDeviceUpdater).unregisterCallback();
verify(mLocalBluetoothManager.getEventManager()).unregisterCallback(
any(BluetoothCallback.class));
}
@Test
@@ -151,4 +179,22 @@ public class AvailableMediaDeviceGroupControllerTest {
assertThat(mAvailableMediaDeviceGroupController.getAvailabilityStatus()).isEqualTo(
AVAILABLE);
}
@Test
public void setTitle_inCallState_showCallStateTitle() {
mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL);
mAvailableMediaDeviceGroupController.onAudioModeChanged();
assertThat(mPreferenceGroup.getTitle()).isEqualTo(
mContext.getText(R.string.connected_device_available_call_title));
}
@Test
public void setTitle_notInCallState_showMediaStateTitle() {
mShadowAudioManager.setMode(AudioManager.MODE_NORMAL);
mAvailableMediaDeviceGroupController.onAudioModeChanged();
assertThat(mPreferenceGroup.getTitle()).isEqualTo(
mContext.getText(R.string.connected_device_available_media_title));
}
}