Fix NPE during unit test

As of ag/3932176 the slice indexer now queries getSummary() for each
controller. So we need to create all necessary objects before
getSummary(). In this case, the PSCD object.

Change-Id: I0162996be37d740f1e450880bf4698acd94ca0ad
Fixes: 78897071
Test: atest
This commit is contained in:
Fan Zhang
2018-04-30 13:41:56 -07:00
parent 8efbe6e255
commit 16de45d8ec
11 changed files with 63 additions and 63 deletions

View File

@@ -20,7 +20,6 @@ import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.content.Intent;
import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -34,6 +33,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import androidx.preference.Preference;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowPrivacySettingsUtils.class})
public class DataManagementPreferenceControllerTest {
@@ -56,7 +57,7 @@ public class DataManagementPreferenceControllerTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
mPSCD = new PrivacySettingsConfigData();
mPSCD = PrivacySettingsConfigData.getInstance();
mController = new DataManagementPreferenceController(mContext, KEY);
mPreference = new Preference(mContext);
mTitle = "Title";
@@ -68,26 +69,25 @@ public class DataManagementPreferenceControllerTest {
mPSCD.setBackupGray(false);
mPSCD.setManageIntent(mIntent);
mPSCD.setManageLabel(mTitle);
mController.setPrivacySettingsConfigData(mPSCD);
mController.updateState(mPreference);
assertThat(mPreference.getTitle())
.isEqualTo(mTitle);
}
@Test
public void getAvailabilityStatus_isAdmiUser_backupEnabled_hadManageIntent_shouldBeAvailable() {
public void getAvailabilityStatus_isAdmin_backupEnabled_hadManageIntent_shouldBeAvailable() {
ShadowPrivacySettingsUtils.setIsAdminUser(true);
mPSCD.setBackupEnabled(true);
mPSCD.setBackupGray(false);
mPSCD.setManageIntent(mIntent);
mPSCD.setManageLabel(mTitle);
mController.setPrivacySettingsConfigData(mPSCD);
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
public void getAvailabilityStatus_isnotAdmiUser_shouldBeDisabledForUser() {
public void getAvailabilityStatus_isNotAdminUser_shouldBeDisabledForUser() {
ShadowPrivacySettingsUtils.setIsAdminUser(false);
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.DISABLED_FOR_USER);
@@ -95,13 +95,13 @@ public class DataManagementPreferenceControllerTest {
@Test
public void
getAvailabilityStatus_isAdmiUser_backupEnabled_nullManageIntent_shouldBeDisabledUnsupported() {
getAvailabilityStatus_isAdminUser_backupEnabled_nullManageIntent_shouldBeDisabledUnsupported() {
ShadowPrivacySettingsUtils.setIsAdminUser(true);
mPSCD.setBackupEnabled(true);
mPSCD.setBackupGray(false);
mPSCD.setManageIntent(null);
mPSCD.setManageLabel(mTitle);
mController.setPrivacySettingsConfigData(mPSCD);
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.DISABLED_UNSUPPORTED);
}