diff options
| author | 2020-02-07 23:28:57 +0000 | |
|---|---|---|
| committer | 2020-02-07 23:28:57 +0000 | |
| commit | 2f2cae9438ffb36a7f4338850c9e7515b854e1b4 (patch) | |
| tree | 9ac7d2889b35601c5b79185d5715124955f7756b | |
| parent | 5b2fe9661018221de9c07c0fef0c48d9fc963a57 (diff) | |
| parent | 1ba81d6fcf6ac08e3c0b8b5d338effca1c8c61d9 (diff) | |
Merge "Fix tag skip and add tests for component-override"
| -rw-r--r-- | core/java/com/android/server/SystemConfig.java | 6 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java | 34 |
2 files changed, 35 insertions, 5 deletions
diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index 26d2f19b13b6..2fcc1de776fb 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -903,7 +903,6 @@ public class SystemConfig { } break; case "component-override": { readComponentOverrides(parser, permFile); - XmlUtils.skipCurrentTag(parser); } break; case "backup-transport-whitelisted-service": { if (allowFeatures) { @@ -1403,8 +1402,7 @@ public class SystemConfig { final int depth = parser.getDepth(); while (XmlUtils.nextElementWithin(parser, depth)) { - String name = parser.getName(); - if ("component".equals(name)) { + if ("component".equals(parser.getName())) { String clsname = parser.getAttributeValue(null, "class"); String enabled = parser.getAttributeValue(null, "enabled"); if (clsname == null) { @@ -1432,8 +1430,6 @@ public class SystemConfig { } componentEnabledStates.put(clsname, !"false".equals(enabled)); - } else { - XmlUtils.skipCurrentTag(parser); } } } diff --git a/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java b/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java index fde0ddffa365..4d0481be20b3 100644 --- a/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java +++ b/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java @@ -144,6 +144,40 @@ public class SystemConfigTest { assertEquals("Incorrect blacklist", expectedBlack, actualBlack); } + @Test + public void testComponentOverride() throws Exception { + final String contents = + "<permissions>" + + " <component-override package=\"com.android.package1\">\n" + + " <component class=\"com.android.package1.Full\" enabled=\"true\"/>" + + " <component class=\".Relative\" enabled=\"false\" />\n" + + " </component-override>" + + " <component-override package=\"com.android.package2\" >\n" + + " <component class=\"com.android.package3.Relative2\" enabled=\"yes\" />\n" + + " </component-override>\n" + + "</permissions>"; + + final File folder = createTempSubfolder("folder"); + createTempFile(folder, "component-override.xml", contents); + + mSysConfig.readPermissions(folder, /* No permission needed anyway */ 0); + + final ArrayMap<String, Boolean> packageOneExpected = new ArrayMap<>(); + packageOneExpected.put("com.android.package1.Full", true); + packageOneExpected.put("com.android.package1.Relative", false); + + final ArrayMap<String, Boolean> packageTwoExpected = new ArrayMap<>(); + packageTwoExpected.put("com.android.package3.Relative2", true); + + final Map<String, Boolean> packageOne = mSysConfig.getComponentsEnabledStates( + "com.android.package1"); + assertEquals(packageOneExpected, packageOne); + + final Map<String, Boolean> packageTwo = mSysConfig.getComponentsEnabledStates( + "com.android.package2"); + assertEquals(packageTwoExpected, packageTwo); + } + /** * Creates folderName/fileName in the mTemporaryFolder and fills it with the contents. * @param folderName subdirectory of mTemporaryFolder to put the file, creating if needed |