Loading services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,8 @@ import java.util.function.BiConsumer; @RunWith(AndroidJUnit4.class) public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceImplTestsBase { private static final String OVERLAY = "com.dummy.overlay"; private static final String TARGET = "com.dummy.target"; private static final String OVERLAY = "com.test.overlay"; private static final String TARGET = "com.test.target"; private static final int USER = 0; private static final String OVERLAY2 = OVERLAY + "2"; Loading services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTests.java +24 −24 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ import java.util.Map; @RunWith(AndroidJUnit4.class) public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTestsBase { private static final String OVERLAY = "com.dummy.overlay"; private static final String TARGET = "com.dummy.target"; private static final String OVERLAY = "com.test.overlay"; private static final String TARGET = "com.test.target"; private static final int USER = 0; private static final String OVERLAY2 = OVERLAY + "2"; Loading @@ -50,7 +50,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes private static final String OVERLAY3 = OVERLAY + "3"; private static final int USER3 = USER2 + 1; private static final String CONFIG_SIGNATURE_REFERENCE_PKG = "com.dummy.ref"; private static final String CONFIG_SIGNATURE_REFERENCE_PKG = "com.test.ref"; private static final String CERT_CONFIG_OK = "config_certificate_ok"; private static final String CERT_CONFIG_NOK = "config_certificate_nok"; Loading Loading @@ -149,7 +149,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(overlay(OVERLAY, TARGET), USER); assertState(STATE_MISSING_TARGET, OVERLAY, USER); final DummyDeviceState.PackageBuilder target = target(TARGET); final FakeDeviceState.PackageBuilder target = target(TARGET); installNewPackage(target, USER); assertState(STATE_DISABLED, OVERLAY, USER); Loading @@ -169,9 +169,9 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes @Test public void testOnOverlayPackageUpgraded() { final DummyListener listener = getListener(); final DummyDeviceState.PackageBuilder target = target(TARGET); final DummyDeviceState.PackageBuilder overlay = overlay(OVERLAY, TARGET); final FakeListener listener = getListener(); final FakeDeviceState.PackageBuilder target = target(TARGET); final FakeDeviceState.PackageBuilder overlay = overlay(OVERLAY, TARGET); installNewPackage(target, USER); installNewPackage(overlay, USER); listener.count = 0; Loading @@ -181,7 +181,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes // upgrade to a version where the overlay has changed its target // expect once for the old target package, once for the new target package listener.count = 0; final DummyDeviceState.PackageBuilder overlay2 = overlay(OVERLAY, "some.other.target"); final FakeDeviceState.PackageBuilder overlay2 = overlay(OVERLAY, "some.other.target"); upgradePackage(overlay2, USER); assertEquals(3, listener.count); Loading @@ -193,7 +193,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes @Test public void testListener() { final OverlayManagerServiceImpl impl = getImpl(); final DummyListener listener = getListener(); final FakeListener listener = getListener(); installNewPackage(overlay(OVERLAY, TARGET), USER); assertEquals(1, listener.count); listener.count = 0; Loading @@ -219,12 +219,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_OK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == CONFIG_SIGNATURE); } Loading @@ -237,12 +237,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } Loading @@ -252,12 +252,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } Loading @@ -266,12 +266,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } Loading @@ -284,12 +284,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } } services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTestsBase.java +38 −38 Original line number Diff line number Diff line Loading @@ -48,19 +48,19 @@ import java.util.stream.Collectors; /** Base class for creating {@link OverlayManagerServiceImplTests} tests. */ class OverlayManagerServiceImplTestsBase { private OverlayManagerServiceImpl mImpl; private DummyDeviceState mState; private DummyListener mListener; private DummyPackageManagerHelper mPackageManager; private DummyIdmapDaemon mIdmapDaemon; private FakeDeviceState mState; private FakeListener mListener; private FakePackageManagerHelper mPackageManager; private FakeIdmapDaemon mIdmapDaemon; private OverlayConfig mOverlayConfig; private String mConfigSignaturePackageName; @Before public void setUp() { mState = new DummyDeviceState(); mListener = new DummyListener(); mPackageManager = new DummyPackageManagerHelper(mState); mIdmapDaemon = new DummyIdmapDaemon(mState); mState = new FakeDeviceState(); mListener = new FakeListener(); mPackageManager = new FakePackageManagerHelper(mState); mIdmapDaemon = new FakeIdmapDaemon(mState); mOverlayConfig = mock(OverlayConfig.class); when(mOverlayConfig.getPriority(any())).thenReturn(OverlayConfig.DEFAULT_PRIORITY); when(mOverlayConfig.isEnabled(any())).thenReturn(false); Loading @@ -81,15 +81,15 @@ class OverlayManagerServiceImplTestsBase { return mImpl; } DummyListener getListener() { FakeListener getListener() { return mListener; } DummyIdmapDaemon getIdmapd() { FakeIdmapDaemon getIdmapd() { return mIdmapDaemon; } DummyDeviceState getState() { FakeDeviceState getState() { return mState; } Loading @@ -116,27 +116,27 @@ class OverlayManagerServiceImplTestsBase { assertEquals(expected, actual); } DummyDeviceState.PackageBuilder app(String packageName) { return new DummyDeviceState.PackageBuilder(packageName, null /* targetPackageName */, FakeDeviceState.PackageBuilder app(String packageName) { return new FakeDeviceState.PackageBuilder(packageName, null /* targetPackageName */, null /* targetOverlayableName */, "data"); } DummyDeviceState.PackageBuilder target(String packageName) { return new DummyDeviceState.PackageBuilder(packageName, null /* targetPackageName */, FakeDeviceState.PackageBuilder target(String packageName) { return new FakeDeviceState.PackageBuilder(packageName, null /* targetPackageName */, null /* targetOverlayableName */, ""); } DummyDeviceState.PackageBuilder overlay(String packageName, String targetPackageName) { FakeDeviceState.PackageBuilder overlay(String packageName, String targetPackageName) { return overlay(packageName, targetPackageName, null /* targetOverlayableName */); } DummyDeviceState.PackageBuilder overlay(String packageName, String targetPackageName, FakeDeviceState.PackageBuilder overlay(String packageName, String targetPackageName, String targetOverlayableName) { return new DummyDeviceState.PackageBuilder(packageName, targetPackageName, return new FakeDeviceState.PackageBuilder(packageName, targetPackageName, targetOverlayableName, ""); } void addPackage(DummyDeviceState.PackageBuilder pkg, int userId) { void addPackage(FakeDeviceState.PackageBuilder pkg, int userId) { mState.add(pkg, userId); } Loading @@ -155,7 +155,7 @@ class OverlayManagerServiceImplTestsBase { * * @throws IllegalStateException if the package is currently installed */ void installNewPackage(DummyDeviceState.PackageBuilder pkg, int userId) { void installNewPackage(FakeDeviceState.PackageBuilder pkg, int userId) { if (mState.select(pkg.packageName, userId) != null) { throw new IllegalStateException("package " + pkg.packageName + " already installed"); } Loading @@ -178,8 +178,8 @@ class OverlayManagerServiceImplTestsBase { * * @throws IllegalStateException if the package is not currently installed */ void upgradePackage(DummyDeviceState.PackageBuilder pkg, int userId) { final DummyDeviceState.Package replacedPackage = mState.select(pkg.packageName, userId); void upgradePackage(FakeDeviceState.PackageBuilder pkg, int userId) { final FakeDeviceState.Package replacedPackage = mState.select(pkg.packageName, userId); if (replacedPackage == null) { throw new IllegalStateException("package " + pkg.packageName + " not installed"); } Loading @@ -204,7 +204,7 @@ class OverlayManagerServiceImplTestsBase { * @throws IllegalStateException if the package is not currently installed */ void uninstallPackage(String packageName, int userId) { final DummyDeviceState.Package pkg = mState.select(packageName, userId); final FakeDeviceState.Package pkg = mState.select(packageName, userId); if (pkg == null) { throw new IllegalStateException("package " + packageName+ " not installed"); } Loading @@ -217,7 +217,7 @@ class OverlayManagerServiceImplTestsBase { } /** Represents the state of packages installed on a fake device. */ static class DummyDeviceState { static class FakeDeviceState { private ArrayMap<String, Package> mPackages = new ArrayMap<>(); void add(PackageBuilder pkgBuilder, int userId) { Loading Loading @@ -333,16 +333,16 @@ class OverlayManagerServiceImplTestsBase { } } final class DummyPackageManagerHelper implements PackageManagerHelper { private final DummyDeviceState mState; final class FakePackageManagerHelper implements PackageManagerHelper { private final FakeDeviceState mState; private DummyPackageManagerHelper(DummyDeviceState state) { private FakePackageManagerHelper(FakeDeviceState state) { mState = state; } @Override public PackageInfo getPackageInfo(@NonNull String packageName, int userId) { final DummyDeviceState.Package pkg = mState.select(packageName, userId); final FakeDeviceState.Package pkg = mState.select(packageName, userId); if (pkg == null) { return null; } Loading @@ -353,15 +353,15 @@ class OverlayManagerServiceImplTestsBase { pi.packageName = pkg.packageName; pi.overlayTarget = pkg.targetPackageName; pi.targetOverlayableName = pkg.targetOverlayableName; pi.overlayCategory = "dummy-category-" + pkg.targetPackageName; pi.overlayCategory = "Fake-category-" + pkg.targetPackageName; return pi; } @Override public boolean signaturesMatching(@NonNull String packageName1, @NonNull String packageName2, int userId) { final DummyDeviceState.Package pkg1 = mState.select(packageName1, userId); final DummyDeviceState.Package pkg2 = mState.select(packageName2, userId); final FakeDeviceState.Package pkg1 = mState.select(packageName1, userId); final FakeDeviceState.Package pkg2 = mState.select(packageName2, userId); return pkg1 != null && pkg2 != null && pkg1.certificate.equals(pkg2.certificate); } Loading @@ -382,7 +382,7 @@ class OverlayManagerServiceImplTestsBase { @Override public OverlayableInfo getOverlayableForTarget(@NonNull String packageName, @NonNull String targetOverlayableName, int userId) { final DummyDeviceState.Package pkg = mState.select(packageName, userId); final FakeDeviceState.Package pkg = mState.select(packageName, userId); if (pkg == null || !pkg.overlayableNames.contains(targetOverlayableName)) { return null; } Loading @@ -403,7 +403,7 @@ class OverlayManagerServiceImplTestsBase { @Override public boolean doesTargetDefineOverlayable(String targetPackageName, int userId) { final DummyDeviceState.Package pkg = mState.select(targetPackageName, userId); final FakeDeviceState.Package pkg = mState.select(targetPackageName, userId); return pkg != null && pkg.overlayableNames.contains(targetPackageName); } Loading @@ -413,16 +413,16 @@ class OverlayManagerServiceImplTestsBase { } } static class DummyIdmapDaemon extends IdmapDaemon { private final DummyDeviceState mState; static class FakeIdmapDaemon extends IdmapDaemon { private final FakeDeviceState mState; private final ArrayMap<String, IdmapHeader> mIdmapFiles = new ArrayMap<>(); DummyIdmapDaemon(DummyDeviceState state) { FakeIdmapDaemon(FakeDeviceState state) { this.mState = state; } private int getCrc(@NonNull final String path) { final DummyDeviceState.Package pkg = mState.selectFromPath(path); final FakeDeviceState.Package pkg = mState.selectFromPath(path); Assert.assertNotNull(pkg); return pkg.versionCode; } Loading Loading @@ -486,7 +486,7 @@ class OverlayManagerServiceImplTestsBase { } } static class DummyListener implements OverlayManagerServiceImpl.OverlayChangeListener { static class FakeListener implements OverlayManagerServiceImpl.OverlayChangeListener { public int count; public void onOverlaysChanged(@NonNull String targetPackage, int userId) { Loading services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java +28 −28 Original line number Diff line number Diff line Loading @@ -50,55 +50,55 @@ public class OverlayManagerSettingsTests { private OverlayManagerSettings mSettings; private static final OverlayInfo OVERLAY_A0 = new OverlayInfo( "com.dummy.overlay_a", "com.dummy.target", "com.test.overlay_a", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_a-1/base.apk", "/data/app/com.test.overlay_a-1/base.apk", STATE_DISABLED, 0, 0, true); private static final OverlayInfo OVERLAY_B0 = new OverlayInfo( "com.dummy.overlay_b", "com.dummy.target", "com.test.overlay_b", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_b-1/base.apk", "/data/app/com.test.overlay_b-1/base.apk", STATE_DISABLED, 0, 0, true); private static final OverlayInfo OVERLAY_C0 = new OverlayInfo( "com.dummy.overlay_c", "com.dummy.target", "com.test.overlay_c", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_c-1/base.apk", "/data/app/com.test.overlay_c-1/base.apk", STATE_DISABLED, 0, 0, true); private static final OverlayInfo OVERLAY_A1 = new OverlayInfo( "com.dummy.overlay_a", "com.dummy.target", "com.test.overlay_a", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_a-1/base.apk", "/data/app/com.test.overlay_a-1/base.apk", STATE_DISABLED, 1, 0, true); private static final OverlayInfo OVERLAY_B1 = new OverlayInfo( "com.dummy.overlay_b", "com.dummy.target", "com.test.overlay_b", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_b-1/base.apk", "/data/app/com.test.overlay_b-1/base.apk", STATE_DISABLED, 1, 0, Loading Loading @@ -230,11 +230,11 @@ public class OverlayManagerSettingsTests { assertListsAreEqual(list, OVERLAY_A0, OVERLAY_C0, OVERLAY_B0); OverlayInfo otherTarget = new OverlayInfo( "com.dummy.overlay_other", "com.dummy.some.other.target", "com.test.overlay_other", "com.test.some.other.target", null, "some-category", "/data/app/com.dummy.overlay_other-1/base.apk", "/data/app/com.test.overlay_other-1/base.apk", STATE_DISABLED, 0, 0, Loading Loading @@ -350,7 +350,7 @@ public class OverlayManagerSettingsTests { ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8")); mSettings.restore(is); assertDoesNotContain(mSettings, "com.dummy.overlay", 0); assertDoesNotContain(mSettings, "com.test.overlay", 0); } @Test Loading @@ -359,27 +359,27 @@ public class OverlayManagerSettingsTests { final String xml = "<?xml version='1.0' encoding='utf-8' standalone='yes'?>\n" + "<overlays version='" + version + "'>\n" + "<item packageName='com.dummy.overlay'\n" + "<item packageName='com.test.overlay'\n" + " userId='1234'\n" + " targetPackageName='com.dummy.target'\n" + " baseCodePath='/data/app/com.dummy.overlay-1/base.apk'\n" + " targetPackageName='com.test.target'\n" + " baseCodePath='/data/app/com.test.overlay-1/base.apk'\n" + " state='" + STATE_DISABLED + "'\n" + " isEnabled='false'\n" + " category='dummy-category'\n" + " category='test-category'\n" + " isStatic='false'\n" + " priority='0' />\n" + "</overlays>\n"; ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8")); mSettings.restore(is); OverlayInfo oi = mSettings.getOverlayInfo("com.dummy.overlay", 1234); OverlayInfo oi = mSettings.getOverlayInfo("com.test.overlay", 1234); assertNotNull(oi); assertEquals("com.dummy.overlay", oi.packageName); assertEquals("com.dummy.target", oi.targetPackageName); assertEquals("/data/app/com.dummy.overlay-1/base.apk", oi.baseCodePath); assertEquals("com.test.overlay", oi.packageName); assertEquals("com.test.target", oi.targetPackageName); assertEquals("/data/app/com.test.overlay-1/base.apk", oi.baseCodePath); assertEquals(1234, oi.userId); assertEquals(STATE_DISABLED, oi.state); assertFalse(mSettings.getEnabled("com.dummy.overlay", 1234)); assertFalse(mSettings.getEnabled("com.test.overlay", 1234)); } @Test Loading Loading
services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplRebootTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,8 @@ import java.util.function.BiConsumer; @RunWith(AndroidJUnit4.class) public class OverlayManagerServiceImplRebootTests extends OverlayManagerServiceImplTestsBase { private static final String OVERLAY = "com.dummy.overlay"; private static final String TARGET = "com.dummy.target"; private static final String OVERLAY = "com.test.overlay"; private static final String TARGET = "com.test.target"; private static final int USER = 0; private static final String OVERLAY2 = OVERLAY + "2"; Loading
services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTests.java +24 −24 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ import java.util.Map; @RunWith(AndroidJUnit4.class) public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTestsBase { private static final String OVERLAY = "com.dummy.overlay"; private static final String TARGET = "com.dummy.target"; private static final String OVERLAY = "com.test.overlay"; private static final String TARGET = "com.test.target"; private static final int USER = 0; private static final String OVERLAY2 = OVERLAY + "2"; Loading @@ -50,7 +50,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes private static final String OVERLAY3 = OVERLAY + "3"; private static final int USER3 = USER2 + 1; private static final String CONFIG_SIGNATURE_REFERENCE_PKG = "com.dummy.ref"; private static final String CONFIG_SIGNATURE_REFERENCE_PKG = "com.test.ref"; private static final String CERT_CONFIG_OK = "config_certificate_ok"; private static final String CERT_CONFIG_NOK = "config_certificate_nok"; Loading Loading @@ -149,7 +149,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(overlay(OVERLAY, TARGET), USER); assertState(STATE_MISSING_TARGET, OVERLAY, USER); final DummyDeviceState.PackageBuilder target = target(TARGET); final FakeDeviceState.PackageBuilder target = target(TARGET); installNewPackage(target, USER); assertState(STATE_DISABLED, OVERLAY, USER); Loading @@ -169,9 +169,9 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes @Test public void testOnOverlayPackageUpgraded() { final DummyListener listener = getListener(); final DummyDeviceState.PackageBuilder target = target(TARGET); final DummyDeviceState.PackageBuilder overlay = overlay(OVERLAY, TARGET); final FakeListener listener = getListener(); final FakeDeviceState.PackageBuilder target = target(TARGET); final FakeDeviceState.PackageBuilder overlay = overlay(OVERLAY, TARGET); installNewPackage(target, USER); installNewPackage(overlay, USER); listener.count = 0; Loading @@ -181,7 +181,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes // upgrade to a version where the overlay has changed its target // expect once for the old target package, once for the new target package listener.count = 0; final DummyDeviceState.PackageBuilder overlay2 = overlay(OVERLAY, "some.other.target"); final FakeDeviceState.PackageBuilder overlay2 = overlay(OVERLAY, "some.other.target"); upgradePackage(overlay2, USER); assertEquals(3, listener.count); Loading @@ -193,7 +193,7 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes @Test public void testListener() { final OverlayManagerServiceImpl impl = getImpl(); final DummyListener listener = getListener(); final FakeListener listener = getListener(); installNewPackage(overlay(OVERLAY, TARGET), USER); assertEquals(1, listener.count); listener.count = 0; Loading @@ -219,12 +219,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_OK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == CONFIG_SIGNATURE); } Loading @@ -237,12 +237,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } Loading @@ -252,12 +252,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } Loading @@ -266,12 +266,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } Loading @@ -284,12 +284,12 @@ public class OverlayManagerServiceImplTests extends OverlayManagerServiceImplTes installNewPackage(target(TARGET), USER); installNewPackage(overlay(OVERLAY, TARGET).setCertificate(CERT_CONFIG_NOK), USER); final DummyIdmapDaemon idmapd = getIdmapd(); final DummyDeviceState state = getState(); final FakeIdmapDaemon idmapd = getIdmapd(); final FakeDeviceState state = getState(); String overlayPath = state.select(OVERLAY, USER).apkPath; assertTrue(idmapd.idmapExists(overlayPath, USER)); DummyIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); FakeIdmapDaemon.IdmapHeader idmap = idmapd.getIdmap(overlayPath); assertTrue((CONFIG_SIGNATURE & idmap.policies) == 0); } }
services/tests/servicestests/src/com/android/server/om/OverlayManagerServiceImplTestsBase.java +38 −38 Original line number Diff line number Diff line Loading @@ -48,19 +48,19 @@ import java.util.stream.Collectors; /** Base class for creating {@link OverlayManagerServiceImplTests} tests. */ class OverlayManagerServiceImplTestsBase { private OverlayManagerServiceImpl mImpl; private DummyDeviceState mState; private DummyListener mListener; private DummyPackageManagerHelper mPackageManager; private DummyIdmapDaemon mIdmapDaemon; private FakeDeviceState mState; private FakeListener mListener; private FakePackageManagerHelper mPackageManager; private FakeIdmapDaemon mIdmapDaemon; private OverlayConfig mOverlayConfig; private String mConfigSignaturePackageName; @Before public void setUp() { mState = new DummyDeviceState(); mListener = new DummyListener(); mPackageManager = new DummyPackageManagerHelper(mState); mIdmapDaemon = new DummyIdmapDaemon(mState); mState = new FakeDeviceState(); mListener = new FakeListener(); mPackageManager = new FakePackageManagerHelper(mState); mIdmapDaemon = new FakeIdmapDaemon(mState); mOverlayConfig = mock(OverlayConfig.class); when(mOverlayConfig.getPriority(any())).thenReturn(OverlayConfig.DEFAULT_PRIORITY); when(mOverlayConfig.isEnabled(any())).thenReturn(false); Loading @@ -81,15 +81,15 @@ class OverlayManagerServiceImplTestsBase { return mImpl; } DummyListener getListener() { FakeListener getListener() { return mListener; } DummyIdmapDaemon getIdmapd() { FakeIdmapDaemon getIdmapd() { return mIdmapDaemon; } DummyDeviceState getState() { FakeDeviceState getState() { return mState; } Loading @@ -116,27 +116,27 @@ class OverlayManagerServiceImplTestsBase { assertEquals(expected, actual); } DummyDeviceState.PackageBuilder app(String packageName) { return new DummyDeviceState.PackageBuilder(packageName, null /* targetPackageName */, FakeDeviceState.PackageBuilder app(String packageName) { return new FakeDeviceState.PackageBuilder(packageName, null /* targetPackageName */, null /* targetOverlayableName */, "data"); } DummyDeviceState.PackageBuilder target(String packageName) { return new DummyDeviceState.PackageBuilder(packageName, null /* targetPackageName */, FakeDeviceState.PackageBuilder target(String packageName) { return new FakeDeviceState.PackageBuilder(packageName, null /* targetPackageName */, null /* targetOverlayableName */, ""); } DummyDeviceState.PackageBuilder overlay(String packageName, String targetPackageName) { FakeDeviceState.PackageBuilder overlay(String packageName, String targetPackageName) { return overlay(packageName, targetPackageName, null /* targetOverlayableName */); } DummyDeviceState.PackageBuilder overlay(String packageName, String targetPackageName, FakeDeviceState.PackageBuilder overlay(String packageName, String targetPackageName, String targetOverlayableName) { return new DummyDeviceState.PackageBuilder(packageName, targetPackageName, return new FakeDeviceState.PackageBuilder(packageName, targetPackageName, targetOverlayableName, ""); } void addPackage(DummyDeviceState.PackageBuilder pkg, int userId) { void addPackage(FakeDeviceState.PackageBuilder pkg, int userId) { mState.add(pkg, userId); } Loading @@ -155,7 +155,7 @@ class OverlayManagerServiceImplTestsBase { * * @throws IllegalStateException if the package is currently installed */ void installNewPackage(DummyDeviceState.PackageBuilder pkg, int userId) { void installNewPackage(FakeDeviceState.PackageBuilder pkg, int userId) { if (mState.select(pkg.packageName, userId) != null) { throw new IllegalStateException("package " + pkg.packageName + " already installed"); } Loading @@ -178,8 +178,8 @@ class OverlayManagerServiceImplTestsBase { * * @throws IllegalStateException if the package is not currently installed */ void upgradePackage(DummyDeviceState.PackageBuilder pkg, int userId) { final DummyDeviceState.Package replacedPackage = mState.select(pkg.packageName, userId); void upgradePackage(FakeDeviceState.PackageBuilder pkg, int userId) { final FakeDeviceState.Package replacedPackage = mState.select(pkg.packageName, userId); if (replacedPackage == null) { throw new IllegalStateException("package " + pkg.packageName + " not installed"); } Loading @@ -204,7 +204,7 @@ class OverlayManagerServiceImplTestsBase { * @throws IllegalStateException if the package is not currently installed */ void uninstallPackage(String packageName, int userId) { final DummyDeviceState.Package pkg = mState.select(packageName, userId); final FakeDeviceState.Package pkg = mState.select(packageName, userId); if (pkg == null) { throw new IllegalStateException("package " + packageName+ " not installed"); } Loading @@ -217,7 +217,7 @@ class OverlayManagerServiceImplTestsBase { } /** Represents the state of packages installed on a fake device. */ static class DummyDeviceState { static class FakeDeviceState { private ArrayMap<String, Package> mPackages = new ArrayMap<>(); void add(PackageBuilder pkgBuilder, int userId) { Loading Loading @@ -333,16 +333,16 @@ class OverlayManagerServiceImplTestsBase { } } final class DummyPackageManagerHelper implements PackageManagerHelper { private final DummyDeviceState mState; final class FakePackageManagerHelper implements PackageManagerHelper { private final FakeDeviceState mState; private DummyPackageManagerHelper(DummyDeviceState state) { private FakePackageManagerHelper(FakeDeviceState state) { mState = state; } @Override public PackageInfo getPackageInfo(@NonNull String packageName, int userId) { final DummyDeviceState.Package pkg = mState.select(packageName, userId); final FakeDeviceState.Package pkg = mState.select(packageName, userId); if (pkg == null) { return null; } Loading @@ -353,15 +353,15 @@ class OverlayManagerServiceImplTestsBase { pi.packageName = pkg.packageName; pi.overlayTarget = pkg.targetPackageName; pi.targetOverlayableName = pkg.targetOverlayableName; pi.overlayCategory = "dummy-category-" + pkg.targetPackageName; pi.overlayCategory = "Fake-category-" + pkg.targetPackageName; return pi; } @Override public boolean signaturesMatching(@NonNull String packageName1, @NonNull String packageName2, int userId) { final DummyDeviceState.Package pkg1 = mState.select(packageName1, userId); final DummyDeviceState.Package pkg2 = mState.select(packageName2, userId); final FakeDeviceState.Package pkg1 = mState.select(packageName1, userId); final FakeDeviceState.Package pkg2 = mState.select(packageName2, userId); return pkg1 != null && pkg2 != null && pkg1.certificate.equals(pkg2.certificate); } Loading @@ -382,7 +382,7 @@ class OverlayManagerServiceImplTestsBase { @Override public OverlayableInfo getOverlayableForTarget(@NonNull String packageName, @NonNull String targetOverlayableName, int userId) { final DummyDeviceState.Package pkg = mState.select(packageName, userId); final FakeDeviceState.Package pkg = mState.select(packageName, userId); if (pkg == null || !pkg.overlayableNames.contains(targetOverlayableName)) { return null; } Loading @@ -403,7 +403,7 @@ class OverlayManagerServiceImplTestsBase { @Override public boolean doesTargetDefineOverlayable(String targetPackageName, int userId) { final DummyDeviceState.Package pkg = mState.select(targetPackageName, userId); final FakeDeviceState.Package pkg = mState.select(targetPackageName, userId); return pkg != null && pkg.overlayableNames.contains(targetPackageName); } Loading @@ -413,16 +413,16 @@ class OverlayManagerServiceImplTestsBase { } } static class DummyIdmapDaemon extends IdmapDaemon { private final DummyDeviceState mState; static class FakeIdmapDaemon extends IdmapDaemon { private final FakeDeviceState mState; private final ArrayMap<String, IdmapHeader> mIdmapFiles = new ArrayMap<>(); DummyIdmapDaemon(DummyDeviceState state) { FakeIdmapDaemon(FakeDeviceState state) { this.mState = state; } private int getCrc(@NonNull final String path) { final DummyDeviceState.Package pkg = mState.selectFromPath(path); final FakeDeviceState.Package pkg = mState.selectFromPath(path); Assert.assertNotNull(pkg); return pkg.versionCode; } Loading Loading @@ -486,7 +486,7 @@ class OverlayManagerServiceImplTestsBase { } } static class DummyListener implements OverlayManagerServiceImpl.OverlayChangeListener { static class FakeListener implements OverlayManagerServiceImpl.OverlayChangeListener { public int count; public void onOverlaysChanged(@NonNull String targetPackage, int userId) { Loading
services/tests/servicestests/src/com/android/server/om/OverlayManagerSettingsTests.java +28 −28 Original line number Diff line number Diff line Loading @@ -50,55 +50,55 @@ public class OverlayManagerSettingsTests { private OverlayManagerSettings mSettings; private static final OverlayInfo OVERLAY_A0 = new OverlayInfo( "com.dummy.overlay_a", "com.dummy.target", "com.test.overlay_a", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_a-1/base.apk", "/data/app/com.test.overlay_a-1/base.apk", STATE_DISABLED, 0, 0, true); private static final OverlayInfo OVERLAY_B0 = new OverlayInfo( "com.dummy.overlay_b", "com.dummy.target", "com.test.overlay_b", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_b-1/base.apk", "/data/app/com.test.overlay_b-1/base.apk", STATE_DISABLED, 0, 0, true); private static final OverlayInfo OVERLAY_C0 = new OverlayInfo( "com.dummy.overlay_c", "com.dummy.target", "com.test.overlay_c", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_c-1/base.apk", "/data/app/com.test.overlay_c-1/base.apk", STATE_DISABLED, 0, 0, true); private static final OverlayInfo OVERLAY_A1 = new OverlayInfo( "com.dummy.overlay_a", "com.dummy.target", "com.test.overlay_a", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_a-1/base.apk", "/data/app/com.test.overlay_a-1/base.apk", STATE_DISABLED, 1, 0, true); private static final OverlayInfo OVERLAY_B1 = new OverlayInfo( "com.dummy.overlay_b", "com.dummy.target", "com.test.overlay_b", "com.test.target", null, "some-category", "/data/app/com.dummy.overlay_b-1/base.apk", "/data/app/com.test.overlay_b-1/base.apk", STATE_DISABLED, 1, 0, Loading Loading @@ -230,11 +230,11 @@ public class OverlayManagerSettingsTests { assertListsAreEqual(list, OVERLAY_A0, OVERLAY_C0, OVERLAY_B0); OverlayInfo otherTarget = new OverlayInfo( "com.dummy.overlay_other", "com.dummy.some.other.target", "com.test.overlay_other", "com.test.some.other.target", null, "some-category", "/data/app/com.dummy.overlay_other-1/base.apk", "/data/app/com.test.overlay_other-1/base.apk", STATE_DISABLED, 0, 0, Loading Loading @@ -350,7 +350,7 @@ public class OverlayManagerSettingsTests { ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8")); mSettings.restore(is); assertDoesNotContain(mSettings, "com.dummy.overlay", 0); assertDoesNotContain(mSettings, "com.test.overlay", 0); } @Test Loading @@ -359,27 +359,27 @@ public class OverlayManagerSettingsTests { final String xml = "<?xml version='1.0' encoding='utf-8' standalone='yes'?>\n" + "<overlays version='" + version + "'>\n" + "<item packageName='com.dummy.overlay'\n" + "<item packageName='com.test.overlay'\n" + " userId='1234'\n" + " targetPackageName='com.dummy.target'\n" + " baseCodePath='/data/app/com.dummy.overlay-1/base.apk'\n" + " targetPackageName='com.test.target'\n" + " baseCodePath='/data/app/com.test.overlay-1/base.apk'\n" + " state='" + STATE_DISABLED + "'\n" + " isEnabled='false'\n" + " category='dummy-category'\n" + " category='test-category'\n" + " isStatic='false'\n" + " priority='0' />\n" + "</overlays>\n"; ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes("utf-8")); mSettings.restore(is); OverlayInfo oi = mSettings.getOverlayInfo("com.dummy.overlay", 1234); OverlayInfo oi = mSettings.getOverlayInfo("com.test.overlay", 1234); assertNotNull(oi); assertEquals("com.dummy.overlay", oi.packageName); assertEquals("com.dummy.target", oi.targetPackageName); assertEquals("/data/app/com.dummy.overlay-1/base.apk", oi.baseCodePath); assertEquals("com.test.overlay", oi.packageName); assertEquals("com.test.target", oi.targetPackageName); assertEquals("/data/app/com.test.overlay-1/base.apk", oi.baseCodePath); assertEquals(1234, oi.userId); assertEquals(STATE_DISABLED, oi.state); assertFalse(mSettings.getEnabled("com.dummy.overlay", 1234)); assertFalse(mSettings.getEnabled("com.test.overlay", 1234)); } @Test Loading