summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-02-07 23:28:57 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-02-07 23:28:57 +0000
commit2f2cae9438ffb36a7f4338850c9e7515b854e1b4 (patch)
tree9ac7d2889b35601c5b79185d5715124955f7756b
parent5b2fe9661018221de9c07c0fef0c48d9fc963a57 (diff)
parent1ba81d6fcf6ac08e3c0b8b5d338effca1c8c61d9 (diff)
Merge "Fix tag skip and add tests for component-override"
-rw-r--r--core/java/com/android/server/SystemConfig.java6
-rw-r--r--services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java34
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