From 2a63861a52ddfe1e6ac9a9a72030007f391e0d00 Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Tue, 23 Jan 2018 12:01:19 -0800 Subject: [PATCH] Clean up SystemUpdatePreferences tests. SystemUpdatePrefenceControllerTest had some logic that seemed irrelevant to its testing class, which seems to have moved to AdditionalSystemUpdatePreferenceController. Removed the irrelevant test cases and added additional test coverage on AdditionalSystemUpdatePreferenceController. Bug: None Test: RunSettingsRoboTests Change-Id: I5224900bc3449a9f329a1d02ee3cb597b4748d91 --- tests/robotests/res/values-mcc999/config.xml | 1 + ...lSystemUpdatePreferenceControllerTest.java | 59 +++++++++++++++++++ .../SystemUpdatePreferenceControllerTest.java | 31 +++++----- 3 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 tests/robotests/src/com/android/settings/deviceinfo/AdditionalSystemUpdatePreferenceControllerTest.java 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(); - } }