Make volume sliders sliceable

Test: make -j RunSettingsRoboTests
Change-Id: I8495770792dfdada54174ca61937f336e4fc219c
Fixes: 67997207
This commit is contained in:
Julia Reynolds
2018-04-03 13:48:55 -04:00
parent a8c53f7dcb
commit 560637970f
16 changed files with 200 additions and 102 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.notification;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
@@ -46,6 +47,8 @@ public class VolumeSeekBarPreferenceControllerTest {
private VolumeSeekBarPreference mPreference;
@Mock
private VolumeSeekBarPreference.Callback mCallback;
@Mock
private AudioHelper mHelper;
private VolumeSeekBarPreferenceControllerTestable mController;
@@ -53,7 +56,10 @@ public class VolumeSeekBarPreferenceControllerTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
when(mScreen.findPreference(nullable(String.class))).thenReturn(mPreference);
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback);
when(mPreference.getKey()).thenReturn("key");
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback,
mPreference.getKey());
mController.setAudioHelper(mHelper);
}
@Test
@@ -67,7 +73,8 @@ public class VolumeSeekBarPreferenceControllerTest {
@Test
public void displayPreference_notAvailable_shouldNotUpdatePreference() {
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback, false);
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback, false,
mPreference.getKey());
mController.displayPreference(mScreen);
@@ -94,6 +101,42 @@ public class VolumeSeekBarPreferenceControllerTest {
verify(mPreference).onActivityPause();
}
@Test
public void sliderMethods_handleNullPreference() {
when(mHelper.getStreamVolume(mController.getAudioStream())).thenReturn(4);
when(mHelper.getMaxVolume(mController.getAudioStream())).thenReturn(10);
assertThat(mController.getMaxSteps()).isEqualTo(10);
assertThat(mController.getSliderPosition()).isEqualTo(4);
mController.setSliderPosition(9);
verify(mHelper).setStreamVolume(mController.getAudioStream(), 9);
}
@Test
public void setSliderPosition_passesAlongValue() {
mController.displayPreference(mScreen);
mController.setSliderPosition(2);
verify(mPreference).setProgress(2);
}
@Test
public void getMaxSteps_passesAlongValue() {
when(mPreference.getMax()).thenReturn(6);
mController.displayPreference(mScreen);
assertThat(mController.getMaxSteps()).isEqualTo(6);
}
@Test
public void getSliderPosition_passesAlongValue() {
when(mPreference.getProgress()).thenReturn(7);
mController.displayPreference(mScreen);
assertThat(mController.getSliderPosition()).isEqualTo(7);
}
private class VolumeSeekBarPreferenceControllerTestable
extends VolumeSeekBarPreferenceController {
@@ -103,19 +146,20 @@ public class VolumeSeekBarPreferenceControllerTest {
private boolean mAvailable;
VolumeSeekBarPreferenceControllerTestable(Context context,
VolumeSeekBarPreference.Callback callback) {
this(context, callback, true);
VolumeSeekBarPreference.Callback callback, String key) {
this(context, callback, true, key);
}
VolumeSeekBarPreferenceControllerTestable(Context context,
VolumeSeekBarPreference.Callback callback, boolean available) {
super(context, callback, null);
VolumeSeekBarPreference.Callback callback, boolean available, String key) {
super(context, key);
setCallback(callback);
mAvailable = available;
}
@Override
public String getPreferenceKey() {
return null;
return "key";
}
@Override
@@ -124,8 +168,8 @@ public class VolumeSeekBarPreferenceControllerTest {
}
@Override
public boolean isAvailable() {
return mAvailable;
public int getAvailabilityStatus() {
return mAvailable ? AVAILABLE : DISABLED_UNSUPPORTED;
}
@Override