From 8f6885682359a430131d4ff61b4152fbda22ec73 Mon Sep 17 00:00:00 2001 From: Tobias Thierer Date: Mon, 11 Dec 2017 16:51:07 +0000 Subject: [PATCH] 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 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 --- .../VisibilityPreferenceControllerTest.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java index cdd1e9e16a5..d0d8a25de9f 100644 --- a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java @@ -205,9 +205,10 @@ public class VisibilityPreferenceControllerTest { RestrictedDropDownPreference pref = mock(RestrictedDropDownPreference.class); mController.updateState(pref); - ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(String[].class); + ArgumentCaptor 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 argumentCaptor = ArgumentCaptor.forClass(String[].class); + ArgumentCaptor 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 argumentCaptor = ArgumentCaptor.forClass(String[].class); + ArgumentCaptor argumentCaptor = + ArgumentCaptor.forClass(CharSequence[].class); verify(pref, times(1)).setEntryValues(argumentCaptor.capture()); - List values = Arrays.asList(argumentCaptor.getValue()); + List 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 toStringList(CharSequence[] charSequences) { + List 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(),