diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml index f437f966b32..f160c8b6498 100644 --- a/tests/robotests/res/values-mcc999/config.xml +++ b/tests/robotests/res/values-mcc999/config.xml @@ -20,6 +20,7 @@ false false false + true false false false diff --git a/tests/robotests/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceControllerTest.java new file mode 100644 index 00000000000..e5708ba607f --- /dev/null +++ b/tests/robotests/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceControllerTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.settings.deviceinfo; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; + +import com.android.settings.R; +import com.android.settings.TestConfig; +import com.android.settings.testutils.SettingsRobolectricTestRunner; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +@RunWith(SettingsRobolectricTestRunner.class) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +public class AdditionalSystemUpdatePreferenceControllerTest { + + private Context mContext; + private AdditionalSystemUpdatePreferenceController mController; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + + mContext = RuntimeEnvironment.application; + mController = new AdditionalSystemUpdatePreferenceController(mContext); + } + + @Test + public void displayPrefs_ifNotAvailable_shouldNotDisplay() { + assertThat(mController.isAvailable()).isFalse(); + } + + @Test + @Config(qualifiers = "mcc999") + public void displayPrefs_ifAvailable_shouldDisplay() { + assertThat(mController.isAvailable()).isTrue(); + } +} diff --git a/tests/robotests/src/com/android/settings/deviceinfo/SystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/SystemUpdatePreferenceControllerTest.java index 1fd543042c1..81d07719a3e 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/SystemUpdatePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/SystemUpdatePreferenceControllerTest.java @@ -66,12 +66,9 @@ public class SystemUpdatePreferenceControllerTest { } @Test - public void updateNonIndexable_bothAvailable_shouldNotUpdate() { + public void updateNonIndexable_ifAvailable_shouldNotUpdate() { final List keys = new ArrayList<>(); when(mUserManager.isAdminUser()).thenReturn(true); - when(mContext.getResources().getBoolean( - R.bool.config_additional_system_update_setting_enable)) - .thenReturn(true); mController.updateNonIndexableKeys(keys); @@ -79,7 +76,8 @@ public class SystemUpdatePreferenceControllerTest { } @Test - public void updateNonIndexable_nothingAvailable_shouldUpdateWith2Prefs() { + public void updateNonIndexable_ifNotAvailable_shouldUpdate() { + // mUserManager.isAdminUser() returns false here final List keys = new ArrayList<>(); mController.updateNonIndexableKeys(keys); @@ -88,12 +86,22 @@ public class SystemUpdatePreferenceControllerTest { } @Test - public void displayPrefs_nothingAvailable_shouldNotDisplay() { + public void displayPrefs_ifNotAvailable_shouldNotDisplay() { + // mUserManager.isAdminUser() returns false here mController.displayPreference(mScreen); assertThat(mPreference.isVisible()).isFalse(); } + @Test + public void displayPrefs_ifAvailable_shouldDisplay() { + when(mUserManager.isAdminUser()).thenReturn(true); + + mController.displayPreference(mScreen); + + assertThat(mPreference.isVisible()).isTrue(); + } + @Test public void updateState_shouldSetToAndroidVersion() { mController = new SystemUpdatePreferenceController(RuntimeEnvironment.application); @@ -104,15 +112,4 @@ public class SystemUpdatePreferenceControllerTest { .isEqualTo(RuntimeEnvironment.application.getString(R.string.about_summary, Build.VERSION.RELEASE)); } - - @Test - public void displayPrefs_oneAvailable_shouldDisplayOne() { - when(mContext.getResources().getBoolean( - R.bool.config_additional_system_update_setting_enable)) - .thenReturn(true); - - mController.displayPreference(mScreen); - - assertThat(mPreference.isVisible()).isFalse(); - } }