Loading services/tests/servicestests/src/com/android/server/VibratorServiceTest.java +6 −13 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import androidx.test.InstrumentationRegistry; import com.android.internal.util.test.FakeSettingsProvider; import com.android.internal.util.test.FakeSettingsProviderRule; import com.android.server.vibrator.FakeVibrator; import com.android.server.vibrator.FakeVibratorControllerProvider; import com.android.server.vibrator.VibratorController; Loading Loading @@ -114,8 +115,6 @@ public class VibratorServiceTest { @Mock private PackageManagerInternal mPackageManagerInternalMock; @Mock private PowerManagerInternal mPowerManagerInternalMock; // TODO(b/131311651): replace with a FakeVibrator instead. @Mock private Vibrator mVibratorMock; @Mock private AppOpsManager mAppOpsManagerMock; @Mock private IVibratorStateListener mVibratorStateListenerMock; @Mock private IInputManager mIInputManagerMock; Loading @@ -124,26 +123,22 @@ public class VibratorServiceTest { private TestLooper mTestLooper; private ContextWrapper mContextSpy; private PowerManagerInternal.LowPowerModeListener mRegisteredPowerModeListener; private FakeVibrator mFakeVibrator; private FakeVibratorControllerProvider mVibratorProvider; @Before public void setUp() throws Exception { mTestLooper = new TestLooper(); mFakeVibrator = new FakeVibrator(); mVibratorProvider = new FakeVibratorControllerProvider(mTestLooper.getLooper()); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getContext())); InputManager inputManager = InputManager.resetInstance(mIInputManagerMock); ContentResolver contentResolver = mSettingsProviderRule.mockContentResolver(mContextSpy); when(mContextSpy.getContentResolver()).thenReturn(contentResolver); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mVibratorMock); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mFakeVibrator); when(mContextSpy.getSystemService(eq(Context.INPUT_SERVICE))).thenReturn(inputManager); when(mContextSpy.getSystemService(Context.APP_OPS_SERVICE)).thenReturn(mAppOpsManagerMock); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorStateListenerMock.asBinder()).thenReturn(mVibratorStateListenerBinderMock); when(mPackageManagerInternalMock.getSystemUiServiceComponent()) .thenReturn(new ComponentName("", "")); Loading Loading @@ -586,8 +581,7 @@ public class VibratorServiceTest { @Test public void scale_withOneShotAndWaveform_usesScaleLevelOnAmplitude() throws Exception { when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Loading Loading @@ -617,8 +611,7 @@ public class VibratorServiceTest { @Test public void scale_withComposed_usesScaleLevelOnPrimitiveScaleValues() throws Exception { when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Loading services/tests/servicestests/src/com/android/server/vibrator/FakeVibrator.java 0 → 100644 +79 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 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.server.vibrator; import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; import androidx.annotation.NonNull; /** Fake implementation of {@link Vibrator} for service tests. */ public final class FakeVibrator extends Vibrator { private int mDefaultHapticFeedbackIntensity = Vibrator.VIBRATION_INTENSITY_MEDIUM; private int mDefaultNotificationIntensity = Vibrator.VIBRATION_INTENSITY_MEDIUM; private int mDefaultRingIntensity = Vibrator.VIBRATION_INTENSITY_MEDIUM; @Override public int getDefaultHapticFeedbackIntensity() { return mDefaultHapticFeedbackIntensity; } @Override public int getDefaultNotificationVibrationIntensity() { return mDefaultNotificationIntensity; } @Override public int getDefaultRingVibrationIntensity() { return mDefaultRingIntensity; } public void setDefaultHapticFeedbackIntensity( @VibrationIntensity int defaultHapticFeedbackIntensity) { mDefaultHapticFeedbackIntensity = defaultHapticFeedbackIntensity; } public void setDefaultNotificationVibrationIntensity( @VibrationIntensity int defaultNotificationIntensity) { mDefaultNotificationIntensity = defaultNotificationIntensity; } public void setDefaultRingVibrationIntensity(@VibrationIntensity int defaultRingIntensity) { mDefaultRingIntensity = defaultRingIntensity; } @Override public boolean hasVibrator() { return true; } @Override public boolean hasAmplitudeControl() { return true; } @Override public void vibrate(int uid, String opPkg, @NonNull VibrationEffect vibe, String reason, @NonNull VibrationAttributes attributes) { } @Override public void cancel() { } } services/tests/servicestests/src/com/android/server/vibrator/VibrationScalerTest.java +13 −23 Original line number Diff line number Diff line Loading @@ -64,23 +64,23 @@ public class VibrationScalerTest { @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule(); @Rule public FakeSettingsProviderRule mSettingsProviderRule = FakeSettingsProvider.rule(); // TODO(b/131311651): replace with a FakeVibrator instead. @Mock private Vibrator mVibratorMock; @Mock private PowerManagerInternal mPowerManagerInternalMock; private TestLooper mTestLooper; private ContextWrapper mContextSpy; private FakeVibrator mFakeVibrator; private VibrationSettings mVibrationSettings; private VibrationScaler mVibrationScaler; @Before public void setUp() throws Exception { mTestLooper = new TestLooper(); mFakeVibrator = new FakeVibrator(); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getContext())); ContentResolver contentResolver = mSettingsProviderRule.mockContentResolver(mContextSpy); when(mContextSpy.getContentResolver()).thenReturn(contentResolver); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mVibratorMock); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mFakeVibrator); LocalServices.removeServiceForTest(PowerManagerInternal.class); LocalServices.addService(PowerManagerInternal.class, mPowerManagerInternalMock); Loading @@ -97,8 +97,7 @@ public class VibrationScalerTest { @Test public void testGetExternalVibrationScale() { when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); assertEquals(IExternalVibratorService.SCALE_VERY_HIGH, Loading @@ -114,13 +113,11 @@ public class VibrationScalerTest { assertEquals(IExternalVibratorService.SCALE_NONE, mVibrationScaler.getExternalVibrationScale(VibrationAttributes.USAGE_TOUCH)); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); assertEquals(IExternalVibratorService.SCALE_LOW, mVibrationScaler.getExternalVibrationScale(VibrationAttributes.USAGE_TOUCH)); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); assertEquals(IExternalVibratorService.SCALE_VERY_LOW, mVibrationScaler.getExternalVibrationScale(VibrationAttributes.USAGE_TOUCH)); Loading Loading @@ -222,8 +219,7 @@ public class VibrationScalerTest { @Test public void scale_withOneShotAndWaveform_resolvesAmplitude() { // No scale, default amplitude still resolved when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); Loading @@ -241,16 +237,13 @@ public class VibrationScalerTest { @Test public void scale_withOneShotWaveform_scalesAmplitude() { when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM); Loading @@ -273,16 +266,13 @@ public class VibrationScalerTest { @Test public void scale_withComposed_scalesPrimitives() { when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM); Loading services/tests/servicestests/src/com/android/server/vibrator/VibrationSettingsTest.java +9 −16 Original line number Diff line number Diff line Loading @@ -76,26 +76,25 @@ public class VibrationSettingsTest { @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule(); @Rule public FakeSettingsProviderRule mSettingsProviderRule = FakeSettingsProvider.rule(); // TODO(b/131311651): replace with a FakeVibrator instead. @Mock private Vibrator mVibratorMock; @Mock private VibrationSettings.OnVibratorSettingsChanged mListenerMock; @Mock private PowerManagerInternal mPowerManagerInternalMock; private TestLooper mTestLooper; private ContextWrapper mContextSpy; private AudioManager mAudioManager; private FakeVibrator mFakeVibrator; private VibrationSettings mVibrationSettings; private PowerManagerInternal.LowPowerModeListener mRegisteredPowerModeListener; @Before public void setUp() throws Exception { mTestLooper = new TestLooper(); mFakeVibrator = new FakeVibrator(); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getContext())); ContentResolver contentResolver = mSettingsProviderRule.mockContentResolver(mContextSpy); when(mContextSpy.getContentResolver()).thenReturn(contentResolver); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mVibratorMock); when(mVibratorMock.hasVibrator()).thenReturn(true); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mFakeVibrator); doAnswer(invocation -> { mRegisteredPowerModeListener = invocation.getArgument(0); return null; Loading Loading @@ -305,12 +304,9 @@ public class VibrationSettingsTest { @Test public void getDefaultIntensity_returnsIntensityFromVibratorService() { when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF); Loading @@ -336,12 +332,9 @@ public class VibrationSettingsTest { @Test public void getCurrentIntensity_returnsIntensityFromSettings() { when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_OFF); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_OFF); when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_OFF); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_OFF); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_OFF); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_OFF); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); Loading Loading
services/tests/servicestests/src/com/android/server/VibratorServiceTest.java +6 −13 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import androidx.test.InstrumentationRegistry; import com.android.internal.util.test.FakeSettingsProvider; import com.android.internal.util.test.FakeSettingsProviderRule; import com.android.server.vibrator.FakeVibrator; import com.android.server.vibrator.FakeVibratorControllerProvider; import com.android.server.vibrator.VibratorController; Loading Loading @@ -114,8 +115,6 @@ public class VibratorServiceTest { @Mock private PackageManagerInternal mPackageManagerInternalMock; @Mock private PowerManagerInternal mPowerManagerInternalMock; // TODO(b/131311651): replace with a FakeVibrator instead. @Mock private Vibrator mVibratorMock; @Mock private AppOpsManager mAppOpsManagerMock; @Mock private IVibratorStateListener mVibratorStateListenerMock; @Mock private IInputManager mIInputManagerMock; Loading @@ -124,26 +123,22 @@ public class VibratorServiceTest { private TestLooper mTestLooper; private ContextWrapper mContextSpy; private PowerManagerInternal.LowPowerModeListener mRegisteredPowerModeListener; private FakeVibrator mFakeVibrator; private FakeVibratorControllerProvider mVibratorProvider; @Before public void setUp() throws Exception { mTestLooper = new TestLooper(); mFakeVibrator = new FakeVibrator(); mVibratorProvider = new FakeVibratorControllerProvider(mTestLooper.getLooper()); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getContext())); InputManager inputManager = InputManager.resetInstance(mIInputManagerMock); ContentResolver contentResolver = mSettingsProviderRule.mockContentResolver(mContextSpy); when(mContextSpy.getContentResolver()).thenReturn(contentResolver); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mVibratorMock); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mFakeVibrator); when(mContextSpy.getSystemService(eq(Context.INPUT_SERVICE))).thenReturn(inputManager); when(mContextSpy.getSystemService(Context.APP_OPS_SERVICE)).thenReturn(mAppOpsManagerMock); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorStateListenerMock.asBinder()).thenReturn(mVibratorStateListenerBinderMock); when(mPackageManagerInternalMock.getSystemUiServiceComponent()) .thenReturn(new ComponentName("", "")); Loading Loading @@ -586,8 +581,7 @@ public class VibratorServiceTest { @Test public void scale_withOneShotAndWaveform_usesScaleLevelOnAmplitude() throws Exception { when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Loading Loading @@ -617,8 +611,7 @@ public class VibratorServiceTest { @Test public void scale_withComposed_usesScaleLevelOnPrimitiveScaleValues() throws Exception { when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Loading
services/tests/servicestests/src/com/android/server/vibrator/FakeVibrator.java 0 → 100644 +79 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 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.server.vibrator; import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; import androidx.annotation.NonNull; /** Fake implementation of {@link Vibrator} for service tests. */ public final class FakeVibrator extends Vibrator { private int mDefaultHapticFeedbackIntensity = Vibrator.VIBRATION_INTENSITY_MEDIUM; private int mDefaultNotificationIntensity = Vibrator.VIBRATION_INTENSITY_MEDIUM; private int mDefaultRingIntensity = Vibrator.VIBRATION_INTENSITY_MEDIUM; @Override public int getDefaultHapticFeedbackIntensity() { return mDefaultHapticFeedbackIntensity; } @Override public int getDefaultNotificationVibrationIntensity() { return mDefaultNotificationIntensity; } @Override public int getDefaultRingVibrationIntensity() { return mDefaultRingIntensity; } public void setDefaultHapticFeedbackIntensity( @VibrationIntensity int defaultHapticFeedbackIntensity) { mDefaultHapticFeedbackIntensity = defaultHapticFeedbackIntensity; } public void setDefaultNotificationVibrationIntensity( @VibrationIntensity int defaultNotificationIntensity) { mDefaultNotificationIntensity = defaultNotificationIntensity; } public void setDefaultRingVibrationIntensity(@VibrationIntensity int defaultRingIntensity) { mDefaultRingIntensity = defaultRingIntensity; } @Override public boolean hasVibrator() { return true; } @Override public boolean hasAmplitudeControl() { return true; } @Override public void vibrate(int uid, String opPkg, @NonNull VibrationEffect vibe, String reason, @NonNull VibrationAttributes attributes) { } @Override public void cancel() { } }
services/tests/servicestests/src/com/android/server/vibrator/VibrationScalerTest.java +13 −23 Original line number Diff line number Diff line Loading @@ -64,23 +64,23 @@ public class VibrationScalerTest { @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule(); @Rule public FakeSettingsProviderRule mSettingsProviderRule = FakeSettingsProvider.rule(); // TODO(b/131311651): replace with a FakeVibrator instead. @Mock private Vibrator mVibratorMock; @Mock private PowerManagerInternal mPowerManagerInternalMock; private TestLooper mTestLooper; private ContextWrapper mContextSpy; private FakeVibrator mFakeVibrator; private VibrationSettings mVibrationSettings; private VibrationScaler mVibrationScaler; @Before public void setUp() throws Exception { mTestLooper = new TestLooper(); mFakeVibrator = new FakeVibrator(); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getContext())); ContentResolver contentResolver = mSettingsProviderRule.mockContentResolver(mContextSpy); when(mContextSpy.getContentResolver()).thenReturn(contentResolver); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mVibratorMock); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mFakeVibrator); LocalServices.removeServiceForTest(PowerManagerInternal.class); LocalServices.addService(PowerManagerInternal.class, mPowerManagerInternalMock); Loading @@ -97,8 +97,7 @@ public class VibrationScalerTest { @Test public void testGetExternalVibrationScale() { when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); assertEquals(IExternalVibratorService.SCALE_VERY_HIGH, Loading @@ -114,13 +113,11 @@ public class VibrationScalerTest { assertEquals(IExternalVibratorService.SCALE_NONE, mVibrationScaler.getExternalVibrationScale(VibrationAttributes.USAGE_TOUCH)); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); assertEquals(IExternalVibratorService.SCALE_LOW, mVibrationScaler.getExternalVibrationScale(VibrationAttributes.USAGE_TOUCH)); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); assertEquals(IExternalVibratorService.SCALE_VERY_LOW, mVibrationScaler.getExternalVibrationScale(VibrationAttributes.USAGE_TOUCH)); Loading Loading @@ -222,8 +219,7 @@ public class VibrationScalerTest { @Test public void scale_withOneShotAndWaveform_resolvesAmplitude() { // No scale, default amplitude still resolved when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); Loading @@ -241,16 +237,13 @@ public class VibrationScalerTest { @Test public void scale_withOneShotWaveform_scalesAmplitude() { when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM); Loading @@ -273,16 +266,13 @@ public class VibrationScalerTest { @Test public void scale_withComposed_scalesPrimitives() { when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW); when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM); Loading
services/tests/servicestests/src/com/android/server/vibrator/VibrationSettingsTest.java +9 −16 Original line number Diff line number Diff line Loading @@ -76,26 +76,25 @@ public class VibrationSettingsTest { @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule(); @Rule public FakeSettingsProviderRule mSettingsProviderRule = FakeSettingsProvider.rule(); // TODO(b/131311651): replace with a FakeVibrator instead. @Mock private Vibrator mVibratorMock; @Mock private VibrationSettings.OnVibratorSettingsChanged mListenerMock; @Mock private PowerManagerInternal mPowerManagerInternalMock; private TestLooper mTestLooper; private ContextWrapper mContextSpy; private AudioManager mAudioManager; private FakeVibrator mFakeVibrator; private VibrationSettings mVibrationSettings; private PowerManagerInternal.LowPowerModeListener mRegisteredPowerModeListener; @Before public void setUp() throws Exception { mTestLooper = new TestLooper(); mFakeVibrator = new FakeVibrator(); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getContext())); ContentResolver contentResolver = mSettingsProviderRule.mockContentResolver(mContextSpy); when(mContextSpy.getContentResolver()).thenReturn(contentResolver); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mVibratorMock); when(mVibratorMock.hasVibrator()).thenReturn(true); when(mContextSpy.getSystemService(eq(Context.VIBRATOR_SERVICE))).thenReturn(mFakeVibrator); doAnswer(invocation -> { mRegisteredPowerModeListener = invocation.getArgument(0); return null; Loading Loading @@ -305,12 +304,9 @@ public class VibrationSettingsTest { @Test public void getDefaultIntensity_returnsIntensityFromVibratorService() { when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_HIGH); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_MEDIUM); when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_LOW); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_HIGH); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_MEDIUM); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_LOW); setUserSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF); Loading @@ -336,12 +332,9 @@ public class VibrationSettingsTest { @Test public void getCurrentIntensity_returnsIntensityFromSettings() { when(mVibratorMock.getDefaultHapticFeedbackIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_OFF); when(mVibratorMock.getDefaultNotificationVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_OFF); when(mVibratorMock.getDefaultRingVibrationIntensity()) .thenReturn(Vibrator.VIBRATION_INTENSITY_OFF); mFakeVibrator.setDefaultHapticFeedbackIntensity(Vibrator.VIBRATION_INTENSITY_OFF); mFakeVibrator.setDefaultNotificationVibrationIntensity(Vibrator.VIBRATION_INTENSITY_OFF); mFakeVibrator.setDefaultRingVibrationIntensity(Vibrator.VIBRATION_INTENSITY_OFF); setUserSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH); Loading