Fix DeviceStateManagerServiceTests and add to presubmit.
1. The addition of the CONTROL_DEVICE_STATE permission broke the test as
the permission was not granted to the test APK.
2. Publishing of the binder service was previously wrapped with a
SecurityException catch which failed gracefully in the test. This
prevents registering the binder service in the test.
Test: atest DeviceStateManagerServiceTests
Bug: 159401801
Change-Id: Ifc24ba370a30a86121ca1fa531b8a396f7513b97
diff --git a/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java b/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java
index fe6e60f..c51c38d 100644
--- a/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java
+++ b/services/core/java/com/android/server/devicestate/DeviceStateManagerService.java
@@ -16,8 +16,8 @@
package com.android.server.devicestate;
-import static android.hardware.devicestate.DeviceStateManager.INVALID_DEVICE_STATE;
import static android.Manifest.permission.CONTROL_DEVICE_STATE;
+import static android.hardware.devicestate.DeviceStateManager.INVALID_DEVICE_STATE;
import android.annotation.NonNull;
import android.content.Context;
@@ -96,11 +96,11 @@
DeviceStateManagerService(@NonNull Context context, @NonNull DeviceStatePolicy policy) {
super(context);
mDeviceStatePolicy = policy;
+ mDeviceStatePolicy.getDeviceStateProvider().setListener(new DeviceStateProviderListener());
}
@Override
public void onStart() {
- mDeviceStatePolicy.getDeviceStateProvider().setListener(new DeviceStateProviderListener());
publishBinderService(Context.DEVICE_STATE_SERVICE, new BinderService());
}
diff --git a/services/tests/servicestests/AndroidManifest.xml b/services/tests/servicestests/AndroidManifest.xml
index 26fd0a2..6ead95c 100644
--- a/services/tests/servicestests/AndroidManifest.xml
+++ b/services/tests/servicestests/AndroidManifest.xml
@@ -85,6 +85,7 @@
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_VIBRATOR_STATE"/>
<uses-permission android:name="android.permission.VIBRATE_ALWAYS_ON"/>
+ <uses-permission android:name="android.permission.CONTROL_DEVICE_STATE"/>
<!-- Uses API introduced in O (26) -->
<uses-sdk android:minSdkVersion="1"
diff --git a/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java
index 9b182a7..0e58be3 100644
--- a/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicestate/DeviceStateManagerServiceTest.java
@@ -21,6 +21,8 @@
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertThrows;
+import android.platform.test.annotations.Presubmit;
+
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
@@ -33,6 +35,7 @@
* <p/>
* Run with <code>atest DeviceStateManagerServiceTest</code>.
*/
+@Presubmit
@RunWith(AndroidJUnit4.class)
public final class DeviceStateManagerServiceTest {
private static final int DEFAULT_DEVICE_STATE = 0;
@@ -48,7 +51,6 @@
mProvider = new TestDeviceStateProvider();
mPolicy = new TestDeviceStatePolicy(mProvider);
mService = new DeviceStateManagerService(InstrumentationRegistry.getContext(), mPolicy);
- mService.onStart();
}
@Test