Merge changes from topic "sound" into main
* changes: Fix IntentReceiver leaked on Sound & vibration Get rid of VolumeSeekBarPreferenceController.setCallback
This commit is contained in:
@@ -31,14 +31,18 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class VolumeSeekBarPreferenceControllerTest {
|
||||
@Rule
|
||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||
|
||||
@Mock
|
||||
private Context mContext;
|
||||
@@ -47,8 +51,6 @@ public class VolumeSeekBarPreferenceControllerTest {
|
||||
@Mock
|
||||
private VolumeSeekBarPreference mPreference;
|
||||
@Mock
|
||||
private VolumeSeekBarPreference.Callback mCallback;
|
||||
@Mock
|
||||
private VolumeSeekBarPreference.Listener mListener;
|
||||
@Mock
|
||||
private AudioHelper mHelper;
|
||||
@@ -57,10 +59,9 @@ public class VolumeSeekBarPreferenceControllerTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(mScreen.findPreference(nullable(String.class))).thenReturn(mPreference);
|
||||
when(mPreference.getKey()).thenReturn("key");
|
||||
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback, true,
|
||||
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, true,
|
||||
mPreference.getKey(), mListener);
|
||||
mController.setAudioHelper(mHelper);
|
||||
}
|
||||
@@ -69,7 +70,6 @@ public class VolumeSeekBarPreferenceControllerTest {
|
||||
public void displayPreference_available_shouldUpdatePreference() {
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
verify(mPreference).setCallback(mCallback);
|
||||
verify(mPreference).setStream(VolumeSeekBarPreferenceControllerTestable.AUDIO_STREAM);
|
||||
verify(mPreference).setMuteIcon(VolumeSeekBarPreferenceControllerTestable.MUTE_ICON);
|
||||
verify(mPreference).setListener(mListener);
|
||||
@@ -77,7 +77,7 @@ public class VolumeSeekBarPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void displayPreference_notAvailable_shouldNotUpdatePreference() {
|
||||
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, mCallback, false,
|
||||
mController = new VolumeSeekBarPreferenceControllerTestable(mContext, false,
|
||||
mPreference.getKey(), mListener);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
@@ -88,24 +88,6 @@ public class VolumeSeekBarPreferenceControllerTest {
|
||||
verify(mPreference, never()).setListener(mListener);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onResume_shouldResumePreference() {
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
mController.onResume();
|
||||
|
||||
verify(mPreference).onActivityResume();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPause_shouldPausePreference() {
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
mController.onPause();
|
||||
|
||||
verify(mPreference).onActivityPause();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sliderMethods_handleNullPreference() {
|
||||
when(mHelper.getStreamVolume(mController.getAudioStream())).thenReturn(4);
|
||||
@@ -152,19 +134,17 @@ public class VolumeSeekBarPreferenceControllerTest {
|
||||
assertThat(mController.getSliderPosition()).isEqualTo(7);
|
||||
}
|
||||
|
||||
private class VolumeSeekBarPreferenceControllerTestable
|
||||
extends VolumeSeekBarPreferenceController {
|
||||
private static class VolumeSeekBarPreferenceControllerTestable extends
|
||||
VolumeSeekBarPreferenceController {
|
||||
|
||||
private final static int AUDIO_STREAM = 1;
|
||||
private final static int MUTE_ICON = 2;
|
||||
private static final int AUDIO_STREAM = 1;
|
||||
private static final int MUTE_ICON = 2;
|
||||
|
||||
private boolean mAvailable;
|
||||
private final boolean mAvailable;
|
||||
|
||||
VolumeSeekBarPreferenceControllerTestable(Context context,
|
||||
VolumeSeekBarPreference.Callback callback, boolean available, String key,
|
||||
VolumeSeekBarPreferenceControllerTestable(Context context, boolean available, String key,
|
||||
VolumeSeekBarPreference.Listener listener) {
|
||||
super(context, key);
|
||||
setCallback(callback);
|
||||
mAvailable = available;
|
||||
mVolumePreferenceListener = listener;
|
||||
}
|
||||
|
||||
@@ -32,12 +32,14 @@ import android.preference.SeekBarVolumizer;
|
||||
import android.widget.SeekBar;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
import java.util.Locale;
|
||||
@@ -47,6 +49,10 @@ public class VolumeSeekBarPreferenceTest {
|
||||
|
||||
private static final CharSequence CONTENT_DESCRIPTION = "TEST";
|
||||
private static final int STREAM = 5;
|
||||
|
||||
@Rule
|
||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||
|
||||
@Mock
|
||||
private AudioManager mAudioManager;
|
||||
@Mock
|
||||
@@ -70,10 +76,10 @@ public class VolumeSeekBarPreferenceTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(mContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mAudioManager);
|
||||
when(mSeekBarVolumizerFactory.create(eq(STREAM), eq(null), mSbvc.capture()))
|
||||
.thenReturn(mVolumizer);
|
||||
doCallRealMethod().when(mPreference).createSeekBarVolumizer();
|
||||
doCallRealMethod().when(mPreference).setStream(anyInt());
|
||||
doCallRealMethod().when(mPreference).updateContentDescription(CONTENT_DESCRIPTION);
|
||||
mPreference.mSeekBar = mSeekBar;
|
||||
@@ -99,50 +105,50 @@ public class VolumeSeekBarPreferenceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void init_listenerIsCalled() {
|
||||
public void onBindViewHolder_listenerIsCalled() {
|
||||
when(mPreference.isEnabled()).thenReturn(true);
|
||||
doCallRealMethod().when(mPreference).setListener(mListener);
|
||||
doCallRealMethod().when(mPreference).init();
|
||||
doCallRealMethod().when(mPreference).onBindViewHolder();
|
||||
|
||||
mPreference.setStream(STREAM);
|
||||
mPreference.setListener(mListener);
|
||||
mPreference.init();
|
||||
mPreference.onBindViewHolder();
|
||||
|
||||
verify(mPreference).updateContentDescription(CONTENT_DESCRIPTION);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void init_listenerNotSet_noException() {
|
||||
public void onBindViewHolder_listenerNotSet_noException() {
|
||||
when(mPreference.isEnabled()).thenReturn(true);
|
||||
doCallRealMethod().when(mPreference).init();
|
||||
doCallRealMethod().when(mPreference).onBindViewHolder();
|
||||
|
||||
mPreference.setStream(STREAM);
|
||||
mPreference.init();
|
||||
mPreference.onBindViewHolder();
|
||||
|
||||
verify(mPreference, never()).updateContentDescription(CONTENT_DESCRIPTION);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void init_preferenceIsDisabled_shouldNotInvokeListener() {
|
||||
public void onBindViewHolder_preferenceIsDisabled_shouldNotInvokeListener() {
|
||||
when(mPreference.isEnabled()).thenReturn(false);
|
||||
doCallRealMethod().when(mPreference).setListener(mListener);
|
||||
doCallRealMethod().when(mPreference).init();
|
||||
doCallRealMethod().when(mPreference).onBindViewHolder();
|
||||
|
||||
mPreference.setStream(STREAM);
|
||||
mPreference.init();
|
||||
mPreference.onBindViewHolder();
|
||||
|
||||
verify(mPreference, never()).updateContentDescription(CONTENT_DESCRIPTION);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void init_changeProgress_overrideStateDescriptionCalled() {
|
||||
public void onBindViewHolder_changeProgress_overrideStateDescriptionCalled() {
|
||||
final int progress = 4;
|
||||
when(mPreference.isEnabled()).thenReturn(true);
|
||||
when(mPreference.formatStateDescription(progress)).thenReturn(CONTENT_DESCRIPTION);
|
||||
doCallRealMethod().when(mPreference).init();
|
||||
doCallRealMethod().when(mPreference).onBindViewHolder();
|
||||
|
||||
mPreference.setStream(STREAM);
|
||||
mPreference.init();
|
||||
mPreference.onBindViewHolder();
|
||||
|
||||
verify(mSeekBarVolumizerFactory).create(eq(STREAM), eq(null), mSbvc.capture());
|
||||
|
||||
@@ -166,10 +172,10 @@ public class VolumeSeekBarPreferenceTest {
|
||||
when(mContext.getResources()).thenReturn(mRes);
|
||||
when(mRes.getConfiguration()).thenReturn(mConfig);
|
||||
when(mConfig.getLocales()).thenReturn(new LocaleList(Locale.US));
|
||||
doCallRealMethod().when(mPreference).init();
|
||||
doCallRealMethod().when(mPreference).onBindViewHolder();
|
||||
|
||||
mPreference.setStream(STREAM);
|
||||
mPreference.init();
|
||||
mPreference.onBindViewHolder();
|
||||
|
||||
verify(mSeekBarVolumizerFactory).create(eq(STREAM), eq(null), mSbvc.capture());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user