Merge "Modify the privacy controller to be selectable in the next updateState()"

This commit is contained in:
Weng Su
2020-10-19 09:51:23 +00:00
committed by Android (Google) Code Review
4 changed files with 86 additions and 5 deletions

View File

@@ -73,4 +73,46 @@ public class WifiNetworkDetailsFragment2Test {
verify(menuItem).setIcon(com.android.internal.R.drawable.ic_mode_edit);
}
@Test
public void refreshPreferences_shouldUpdatePreferenceStates() {
final FakeWifiNetworkDetailsFragment2 fakeFragment = new FakeWifiNetworkDetailsFragment2();
fakeFragment.refreshPreferences();
assertThat(fakeFragment.isUpdatePreferenceStatesCalled()).isTrue();
}
@Test
public void refreshPreferences_shouldDisplayPreferenceControllers() {
final FakeWifiNetworkDetailsFragment2 fakeFragment = new FakeWifiNetworkDetailsFragment2();
fakeFragment.refreshPreferences();
assertThat(fakeFragment.isDisplayPreferenceControllersCalled()).isTrue();
}
// Fake WifiNetworkDetailsFragment2 to verify the protected functions
public class FakeWifiNetworkDetailsFragment2 extends WifiNetworkDetailsFragment2 {
private boolean mUpdatePreferenceStatesCalled;
private boolean mDisplayPreferenceControllersCalled;
@Override
protected void updatePreferenceStates() {
mUpdatePreferenceStatesCalled = true;
}
@Override
protected void displayPreferenceControllers() {
mDisplayPreferenceControllersCalled = true;
}
public boolean isUpdatePreferenceStatesCalled() {
return mUpdatePreferenceStatesCalled;
}
public boolean isDisplayPreferenceControllersCalled() {
return mDisplayPreferenceControllersCalled;
}
}
}

View File

@@ -105,4 +105,38 @@ public class WifiPrivacyPreferenceController2Test {
assertThat(mDropDownPreference.isSelectable()).isFalse();
}
@Test
public void testUpdateState_canSetPrivacyInNextUpdate_shouldBeSelectable() {
// Return false in WifiEntry#canSetPrivacy to make preference un-selectable first.
when(mMockWifiEntry.canSetPrivacy()).thenReturn(false);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isFalse();
// Return true in WifiEntry#canSetPrivacy to verify preference back to selectable.
when(mMockWifiEntry.canSetPrivacy()).thenReturn(true);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isTrue();
}
@Test
public void testUpdateState_canNotSetPrivacyInNextUpdate_shouldNotSelectable() {
// Return true in WifiEntry#canSetPrivacy to make preference selectable first.
when(mMockWifiEntry.canSetPrivacy()).thenReturn(true);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isTrue();
// Return false in WifiEntry#canSetPrivacy to verify preference back to un-selectable.
when(mMockWifiEntry.canSetPrivacy()).thenReturn(false);
mPreferenceController.updateState(mDropDownPreference);
assertThat(mDropDownPreference.isSelectable()).isFalse();
}
}