Loading services/core/java/com/android/server/devicestate/DeviceStatePolicy.java +8 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.content.Context; import android.content.res.Resources; import android.text.TextUtils; import android.util.Slog; import com.android.server.policy.DeviceStatePolicyImpl; Loading Loading @@ -92,11 +93,16 @@ public abstract class DeviceStatePolicy { try { return (DeviceStatePolicy.Provider) Class.forName(name).newInstance(); } catch (ReflectiveOperationException | ClassCastException e) { } catch (ClassCastException e) { throw new IllegalStateException("Couldn't instantiate class " + name + " for config_deviceSpecificDeviceStatePolicyProvider:" + " make sure it has a public zero-argument constructor" + " and implements DeviceStatePolicy.Provider", e); + " and implements DeviceStatePolicy.Provider"); } catch (ReflectiveOperationException e) { Slog.e("DeviceStatePolicy", "Couldn't instantiate class " + name + " for config_deviceSpecificDeviceStatePolicyProvider:" + " using default provider", e); return new DeviceStatePolicy.DefaultProvider(); } } } Loading services/tests/servicestests/src/com/android/server/devicestate/DeviceStatePolicyProviderTest.java +16 −18 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.devicestate; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.testng.Assert.assertThrows; Loading @@ -24,8 +26,6 @@ import android.content.Context; import android.content.res.Resources; import android.platform.test.annotations.Presubmit; import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Test; /** Loading @@ -39,37 +39,35 @@ public class DeviceStatePolicyProviderTest { @Test public void test_emptyPolicyProvider() { Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider("")), Matchers.instanceOf(DeviceStatePolicy.DefaultProvider.class)); assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider("")), instanceOf(DeviceStatePolicy.DefaultProvider.class)); } @Test public void test_nullPolicyProvider() { Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(null)), Matchers.instanceOf(DeviceStatePolicy.DefaultProvider.class)); assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(null)), instanceOf(DeviceStatePolicy.DefaultProvider.class)); } @Test public void test_customPolicyProvider() { Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( TestProvider.class.getName())), Matchers.instanceOf(TestProvider.class)); instanceOf(TestProvider.class)); } @Test public void test_badPolicyProvider_notImplementingProviderInterface() { assertThrows(IllegalStateException.class, () -> { assertThrows(IllegalStateException.class, () -> DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( Object.class.getName())); }); Object.class.getName()))); } @Test public void test_badPolicyProvider_doesntExist() { assertThrows(IllegalStateException.class, () -> { DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( "com.android.devicestate.nonexistent.policy")); }); public void test_badPolicyProvider_returnsDefault() { assertThat(DeviceStatePolicy.Provider.fromResources( resourcesWithProvider("com.android.devicestate.nonexistent.policy")), instanceOf(DeviceStatePolicy.DefaultProvider.class)); } private static Resources resourcesWithProvider(String provider) { Loading Loading
services/core/java/com/android/server/devicestate/DeviceStatePolicy.java +8 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.content.Context; import android.content.res.Resources; import android.text.TextUtils; import android.util.Slog; import com.android.server.policy.DeviceStatePolicyImpl; Loading Loading @@ -92,11 +93,16 @@ public abstract class DeviceStatePolicy { try { return (DeviceStatePolicy.Provider) Class.forName(name).newInstance(); } catch (ReflectiveOperationException | ClassCastException e) { } catch (ClassCastException e) { throw new IllegalStateException("Couldn't instantiate class " + name + " for config_deviceSpecificDeviceStatePolicyProvider:" + " make sure it has a public zero-argument constructor" + " and implements DeviceStatePolicy.Provider", e); + " and implements DeviceStatePolicy.Provider"); } catch (ReflectiveOperationException e) { Slog.e("DeviceStatePolicy", "Couldn't instantiate class " + name + " for config_deviceSpecificDeviceStatePolicyProvider:" + " using default provider", e); return new DeviceStatePolicy.DefaultProvider(); } } } Loading
services/tests/servicestests/src/com/android/server/devicestate/DeviceStatePolicyProviderTest.java +16 −18 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.devicestate; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.testng.Assert.assertThrows; Loading @@ -24,8 +26,6 @@ import android.content.Context; import android.content.res.Resources; import android.platform.test.annotations.Presubmit; import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Test; /** Loading @@ -39,37 +39,35 @@ public class DeviceStatePolicyProviderTest { @Test public void test_emptyPolicyProvider() { Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider("")), Matchers.instanceOf(DeviceStatePolicy.DefaultProvider.class)); assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider("")), instanceOf(DeviceStatePolicy.DefaultProvider.class)); } @Test public void test_nullPolicyProvider() { Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(null)), Matchers.instanceOf(DeviceStatePolicy.DefaultProvider.class)); assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider(null)), instanceOf(DeviceStatePolicy.DefaultProvider.class)); } @Test public void test_customPolicyProvider() { Assert.assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( assertThat(DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( TestProvider.class.getName())), Matchers.instanceOf(TestProvider.class)); instanceOf(TestProvider.class)); } @Test public void test_badPolicyProvider_notImplementingProviderInterface() { assertThrows(IllegalStateException.class, () -> { assertThrows(IllegalStateException.class, () -> DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( Object.class.getName())); }); Object.class.getName()))); } @Test public void test_badPolicyProvider_doesntExist() { assertThrows(IllegalStateException.class, () -> { DeviceStatePolicy.Provider.fromResources(resourcesWithProvider( "com.android.devicestate.nonexistent.policy")); }); public void test_badPolicyProvider_returnsDefault() { assertThat(DeviceStatePolicy.Provider.fromResources( resourcesWithProvider("com.android.devicestate.nonexistent.policy")), instanceOf(DeviceStatePolicy.DefaultProvider.class)); } private static Resources resourcesWithProvider(String provider) { Loading