@Override
public void updateState(Preference preference) {
super.updateState(preference);
- mPreference.setChecked(mOemLockManager.isOemUnlockAllowed());
+ mPreference.setChecked(isOemUnlockedAllowed());
updateOemUnlockSettingDescription();
// Showing mEnableOemUnlock preference as device has persistent data block.
mPreference.setDisabledByAdmin(null);
/**
* Returns {@code true} if the bootloader has been unlocked. Otherwise, returns {code false}.
*/
- private boolean isBootloaderUnlocked() {
+ @VisibleForTesting
+ boolean isBootloaderUnlocked() {
return mOemLockManager.isDeviceOemUnlocked();
}
userHandle);
}
+ @VisibleForTesting
+ boolean isOemUnlockedAllowed() {
+ return mOemLockManager.isOemUnlockAllowed();
+ }
+
}
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class OemUnlockPreferenceControllerTest {
@Mock
doReturn(false).when(mController).showKeyguardConfirmation(mResources,
REQUEST_CODE_ENABLE_OEM_UNLOCK);
doNothing().when(mController).confirmEnableOemUnlock();
+
mController.onPreferenceChange(null, true);
verify(mController).confirmEnableOemUnlock();
@Test
public void onPreferenceChanged_turnOffUnlock() {
+ mController = spy(mController);
mController.onPreferenceChange(null, false);
- verify(mOemLockManager).setOemUnlockAllowedByUser(false);
+ doReturn(false).when(mController).isBootloaderUnlocked();
+
verify(mFragment).getChildFragmentManager();
}
@Test
public void updateState_preferenceShouldBeCheckedAndShouldBeDisabled() {
mController = spy(mController);
- when(mOemLockManager.isOemUnlockAllowed()).thenReturn(true);
+ doReturn(true).when(mController).isOemUnlockedAllowed();
doReturn(true).when(mController).isOemUnlockAllowedByUserAndCarrier();
- when(mOemLockManager.isDeviceOemUnlocked()).thenReturn(true);
+ doReturn(true).when(mController).isBootloaderUnlocked();
+
mController.updateState(mPreference);
verify(mPreference).setChecked(true);
@Test
public void updateState_preferenceShouldBeUncheckedAndShouldBeDisabled() {
mController = spy(mController);
- when(mOemLockManager.isOemUnlockAllowed()).thenReturn(false);
+ doReturn(false).when(mController).isOemUnlockedAllowed();
doReturn(true).when(mController).isOemUnlockAllowedByUserAndCarrier();
- when(mOemLockManager.isDeviceOemUnlocked()).thenReturn(true);
+ doReturn(true).when(mController).isBootloaderUnlocked();
+
mController.updateState(mPreference);
verify(mPreference).setChecked(false);
@Test
public void updateState_preferenceShouldBeCheckedAndShouldBeEnabled() {
mController = spy(mController);
- when(mOemLockManager.isOemUnlockAllowed()).thenReturn(true);
+ doReturn(true).when(mController).isOemUnlockedAllowed();
doReturn(true).when(mController).isOemUnlockAllowedByUserAndCarrier();
- when(mOemLockManager.isDeviceOemUnlocked()).thenReturn(false);
+ doReturn(false).when(mController).isBootloaderUnlocked();
+
mController.updateState(mPreference);
verify(mPreference).setChecked(true);
public void onDeveloperOptionsEnabled_preferenceShouldCheckRestriction() {
mController = spy(mController);
doReturn(false).when(mController).isOemUnlockAllowedByUserAndCarrier();
+ doReturn(false).when(mController).isBootloaderUnlocked();
when(mPreference.isEnabled()).thenReturn(true);
+
mController.onDeveloperOptionsEnabled();
verify(mPreference).checkRestrictionAndSetDisabled(UserManager.DISALLOW_FACTORY_RESET);
@Test
public void onDeveloperOptionsDisabled_preferenceShouldCheckRestriction() {
mController = spy(mController);
+ doReturn(true).when(mController).isOemUnlockedAllowed();
doReturn(false).when(mController).isOemUnlockAllowedByUserAndCarrier();
+ doReturn(false).when(mController).isBootloaderUnlocked();
when(mPreference.isEnabled()).thenReturn(true);
+
mController.onDeveloperOptionsDisabled();
verify(mPreference).checkRestrictionAndSetDisabled(UserManager.DISALLOW_FACTORY_RESET);