Merge changes I88978ab8,I07137c92,Ifdd4db51

* changes:
  Move display test package to sdk 26
  Update AppGridViewTest to sdk 26
  Update AmbientDisplayAlwaysOnPrefTest to sdk 26
This commit is contained in:
TreeHugger Robot
2017-11-29 00:09:31 +00:00
committed by Android (Google) Code Review
14 changed files with 74 additions and 35 deletions

View File

@@ -21,6 +21,7 @@ import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.annotation.VisibleForTesting;
import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R; import com.android.settings.R;
@@ -81,7 +82,7 @@ public class AmbientDisplayAlwaysOnPreferenceController extends
@Override @Override
public boolean isAvailable() { public boolean isAvailable() {
return isAvailable(mConfig); return alwaysOnAvailableForUser(mConfig);
} }
public static boolean isAvailable(AmbientDisplayConfiguration config) { public static boolean isAvailable(AmbientDisplayConfiguration config) {
@@ -102,4 +103,9 @@ public class AmbientDisplayAlwaysOnPreferenceController extends
ResultPayload.SettingsSource.SECURE, ON /* onValue */, intent, isAvailable(), ResultPayload.SettingsSource.SECURE, ON /* onValue */, intent, isAvailable(),
ON /* defaultValue */); ON /* defaultValue */);
} }
@VisibleForTesting
boolean alwaysOnAvailableForUser(AmbientDisplayConfiguration config) {
return isAvailable(config);
}
} }

View File

@@ -17,7 +17,11 @@
package com.android.settings.display; package com.android.settings.display;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -41,22 +45,27 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O,
shadows = {ShadowSecureSettings.class}) shadows = {ShadowSecureSettings.class})
public class AmbientDisplayAlwaysOnPreferenceControllerTest { public class AmbientDisplayAlwaysOnPreferenceControllerTest {
@Mock Context mContext; @Mock
@Mock AmbientDisplayConfiguration mConfig; private Context mContext;
@Mock SwitchPreference mSwitchPreference; @Mock
private AmbientDisplayConfiguration mConfig;
@Mock
private SwitchPreference mSwitchPreference;
AmbientDisplayAlwaysOnPreferenceController mController; private AmbientDisplayAlwaysOnPreferenceController mController;
boolean mCallbackInvoked; private boolean mCallbackInvoked;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mController = new AmbientDisplayAlwaysOnPreferenceController(mContext, mConfig, mController = new AmbientDisplayAlwaysOnPreferenceController(mContext, mConfig,
() -> { mCallbackInvoked = true; }); () -> {
mCallbackInvoked = true;
});
} }
@Test @Test
@@ -104,34 +113,40 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
@Test @Test
public void isAvailable_available() throws Exception { public void isAvailable_available() throws Exception {
when(mConfig.alwaysOnAvailableForUser(anyInt())) mController = spy(mController);
.thenReturn(true); doReturn(true).when(mController).alwaysOnAvailableForUser(any());
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@Test @Test
public void isAvailable_unavailable() throws Exception { public void isAvailable_unavailable() throws Exception {
when(mConfig.alwaysOnAvailableForUser(anyInt())) mController = spy(mController);
.thenReturn(false); doReturn(false).when(mController).alwaysOnAvailableForUser(any());
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
} }
@Test @Test
public void testPreferenceController_ProperResultPayloadType() { public void testPreferenceController_ProperResultPayloadType() {
mController = spy(mController);
doReturn(false).when(mController).alwaysOnAvailableForUser(any());
assertThat(mController.getResultPayload()).isInstanceOf(InlineSwitchPayload.class); assertThat(mController.getResultPayload()).isInstanceOf(InlineSwitchPayload.class);
} }
@Test @Test
@Config(shadows = ShadowSecureSettings.class) @Config(shadows = ShadowSecureSettings.class)
public void testSetValue_updatesCorrectly() { public void testSetValue_updatesCorrectly() {
int newValue = 1; mController = spy(mController);
ContentResolver resolver = mContext.getContentResolver(); doReturn(false).when(mController).alwaysOnAvailableForUser(any());
Settings.Secure.putInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, 0); final int newValue = 1;
final ContentResolver resolver = mContext.getContentResolver();
Settings.Secure.putInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, 0 /* value */);
((InlinePayload) mController.getResultPayload()).setValue(mContext, newValue); ((InlinePayload) mController.getResultPayload()).setValue(mContext, newValue);
int updatedValue = Settings.Secure.getInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, 1); final int updatedValue = Settings.Secure.getInt(resolver,
Settings.Secure.DOZE_ALWAYS_ON, 1 /* default */);
assertThat(updatedValue).isEqualTo(newValue); assertThat(updatedValue).isEqualTo(newValue);
} }
@@ -139,11 +154,13 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
@Test @Test
@Config(shadows = ShadowSecureSettings.class) @Config(shadows = ShadowSecureSettings.class)
public void testGetValue_correctValueReturned() { public void testGetValue_correctValueReturned() {
int currentValue = 1; mController = spy(mController);
ContentResolver resolver = mContext.getContentResolver(); doReturn(false).when(mController).alwaysOnAvailableForUser(any());
final int currentValue = 1;
final ContentResolver resolver = mContext.getContentResolver();
Settings.Secure.putInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, currentValue); Settings.Secure.putInt(resolver, Settings.Secure.DOZE_ALWAYS_ON, currentValue);
int newValue = ((InlinePayload) mController.getResultPayload()).getValue(mContext); final int newValue = ((InlinePayload) mController.getResultPayload()).getValue(mContext);
assertThat(newValue).isEqualTo(currentValue); assertThat(newValue).isEqualTo(currentValue);
} }

View File

@@ -46,7 +46,7 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O,
shadows = {ShadowSecureSettings.class}) shadows = {ShadowSecureSettings.class})
public class AmbientDisplayNotificationsPreferenceControllerTest { public class AmbientDisplayNotificationsPreferenceControllerTest {

View File

@@ -39,7 +39,7 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O,
shadows = {ShadowSecureSettings.class}) shadows = {ShadowSecureSettings.class})
public class AmbientDisplayPreferenceControllerTest { public class AmbientDisplayPreferenceControllerTest {

View File

@@ -18,9 +18,16 @@ package com.android.settings.display;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.util.IconDrawableFactory; import android.util.IconDrawableFactory;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
@@ -35,13 +42,19 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class AppGridViewTest { public class AppGridViewTest {
@Mock @Mock
private ResolveInfo mInfo; private ResolveInfo mInfo;
@Mock @Mock
private ActivityInfo mActivityInfo; private ActivityInfo mActivityInfo;
@Mock
private ApplicationInfo mApplicationInfo;
@Mock
private Drawable mIcon;
@Mock
private PackageManager mPackageManager;
private Context mContext; private Context mContext;
private IconDrawableFactory mIconFactory; private IconDrawableFactory mIconFactory;
@@ -49,13 +62,16 @@ public class AppGridViewTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mInfo.activityInfo = mActivityInfo; mInfo.activityInfo = mActivityInfo;
mContext = RuntimeEnvironment.application; mInfo.activityInfo.applicationInfo = mApplicationInfo;
mContext = spy(RuntimeEnvironment.application);
doReturn(mPackageManager).when(mContext).getPackageManager();
mIconFactory = IconDrawableFactory.newInstance(mContext); mIconFactory = IconDrawableFactory.newInstance(mContext);
} }
@Test @Test
public void appEntry_shouldLoadIcon() { public void appEntry_shouldLoadIcon() {
when(mPackageManager.loadUnbadgedItemIcon(mActivityInfo, mApplicationInfo)).thenReturn(
mIcon);
final AppGridView.ActivityEntry activityEntry = new AppGridView.ActivityEntry( final AppGridView.ActivityEntry activityEntry = new AppGridView.ActivityEntry(
mInfo, "label", mIconFactory); mInfo, "label", mIconFactory);

View File

@@ -48,7 +48,7 @@ import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config( @Config(
manifest = TestConfig.MANIFEST_PATH, manifest = TestConfig.MANIFEST_PATH,
sdk = TestConfig.SDK_VERSION, sdk = TestConfig.SDK_VERSION_O,
shadows = ShadowSystemSettings.class shadows = ShadowSystemSettings.class
) )
public class AutoRotatePreferenceControllerTest { public class AutoRotatePreferenceControllerTest {

View File

@@ -31,7 +31,7 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class BatteryPercentagePreferenceControllerTest { public class BatteryPercentagePreferenceControllerTest {
@Mock private Context mContext; @Mock private Context mContext;
private BatteryPercentagePreferenceController mController; private BatteryPercentagePreferenceController mController;

View File

@@ -46,7 +46,7 @@ import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowContentResolver; import org.robolectric.shadows.ShadowContentResolver;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class BrightnessLevelPreferenceControllerTest { public class BrightnessLevelPreferenceControllerTest {
@Mock @Mock
private Context mContext; private Context mContext;

View File

@@ -46,7 +46,7 @@ import org.robolectric.util.ReflectionHelpers;
import java.util.List; import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class ColorModePreferenceFragmentTest { public class ColorModePreferenceFragmentTest {
private ColorModePreferenceFragment mFragment; private ColorModePreferenceFragment mFragment;

View File

@@ -36,7 +36,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class ShowOperatorNamePreferenceControllerTest { public class ShowOperatorNamePreferenceControllerTest {
private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name"; private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name";

View File

@@ -47,7 +47,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class ThemePreferenceControllerTest { public class ThemePreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS) @Mock(answer = Answers.RETURNS_DEEP_STUBS)

View File

@@ -33,7 +33,7 @@ import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class TimeoutPreferenceControllerTest { public class TimeoutPreferenceControllerTest {
private static final int TIMEOUT = 30; private static final int TIMEOUT = 30;
@Mock(answer = Answers.RETURNS_DEEP_STUBS) @Mock(answer = Answers.RETURNS_DEEP_STUBS)

View File

@@ -39,7 +39,7 @@ import org.robolectric.annotation.Config;
import java.util.List; import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class VrDisplayPreferencePickerTest { public class VrDisplayPreferencePickerTest {
private VrDisplayPreferencePicker mPicker; private VrDisplayPreferencePicker mPicker;

View File

@@ -43,7 +43,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O)
public class WallpaperPreferenceControllerTest { public class WallpaperPreferenceControllerTest {
private static final String WALLPAPER_PACKAGE = "TestPkg"; private static final String WALLPAPER_PACKAGE = "TestPkg";