Fix VisibilityPreferenceControllerTest.

The test was expecting an ArgumentCaptor for RestrictedDropDownPreference
(extends ListPreference).setEntryValues(CharSequence[]) to be passed an
array of Strings, when actually it should have expected an array of
CharSequences.

This CL fixes the test to use CharSequence. Since CharSequence.equals()
is not guaranteed to be in terms of value equality of the characters,
a private static helper method:

  List<String> toStringList(CharSequence[] charSequences) { ... }

is used.

Bug: 70504129
Test: EXPERIMENTAL_USE_OPENJDK9=1.8 make -j30 showcommands dist \
  RunSettingsRoboTests RunSettingsRoboTests-jacoco \
  RunSettingsLibRoboTests RunSettingsLibRoboTests-jacoco \
  RunSettingsGoogleRoboTests RunSettingsGoogleRoboTests-jacoco \
  RunSuwRoboTests RunSuwRoboTests-jacoco \
  RunTurboRoboTests \
  RunStorageManagerRoboTests \
  RunTvSettingsRoboTests RunTvSettingsRoboTests-jacoco

Change-Id: I347b03e6cb01715cd1c7f50b5f36567e5f375ad7
This commit is contained in:
Tobias Thierer
2017-12-11 16:51:07 +00:00
parent 2f7fd8c592
commit 8f68856823

View File

@@ -205,9 +205,10 @@ public class VisibilityPreferenceControllerTest {
RestrictedDropDownPreference pref = mock(RestrictedDropDownPreference.class);
mController.updateState(pref);
ArgumentCaptor<String[]> argumentCaptor = ArgumentCaptor.forClass(String[].class);
ArgumentCaptor<CharSequence[]> argumentCaptor =
ArgumentCaptor.forClass(CharSequence[].class);
verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
assertFalse(Arrays.asList(argumentCaptor.getValue())
assertFalse(toStringList(argumentCaptor.getValue())
.contains(VISIBILITY_NO_OVERRIDE));
}
@@ -223,9 +224,10 @@ public class VisibilityPreferenceControllerTest {
RestrictedDropDownPreference pref = mock(RestrictedDropDownPreference.class);
mController.updateState(pref);
ArgumentCaptor<String[]> argumentCaptor = ArgumentCaptor.forClass(String[].class);
ArgumentCaptor<CharSequence[]> argumentCaptor =
ArgumentCaptor.forClass(CharSequence[].class);
verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
assertFalse(Arrays.asList(argumentCaptor.getValue())
assertFalse(toStringList(argumentCaptor.getValue())
.contains(VISIBILITY_NO_OVERRIDE));
}
@@ -238,15 +240,24 @@ public class VisibilityPreferenceControllerTest {
RestrictedDropDownPreference pref = mock(RestrictedDropDownPreference.class);
mController.updateState(pref);
ArgumentCaptor<String[]> argumentCaptor = ArgumentCaptor.forClass(String[].class);
ArgumentCaptor<CharSequence[]> argumentCaptor =
ArgumentCaptor.forClass(CharSequence[].class);
verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
List<String> values = Arrays.asList(argumentCaptor.getValue());
List<String> values = toStringList(argumentCaptor.getValue());
assertEquals(3, values.size());
assertTrue(values.contains(String.valueOf(VISIBILITY_NO_OVERRIDE)));
assertTrue(values.contains(String.valueOf(Notification.VISIBILITY_PRIVATE)));
assertTrue(values.contains(String.valueOf(Notification.VISIBILITY_SECRET)));
}
private static List<String> toStringList(CharSequence[] charSequences) {
List<String> result = new ArrayList<>();
for (CharSequence charSequence : charSequences) {
result.add(charSequence.toString());
}
return result;
}
@Test
public void testUpdateState_noChannelOverride() throws Exception {
Settings.Secure.putInt(mContext.getContentResolver(),