summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceParser_test.cpp
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2017-08-23 13:03:56 -0700
committerAdam Lesinski <adamlesinski@google.com>2017-08-29 11:10:01 -0700
commit46c4d72bf0c30d3bc2071b84e2741e404c45e2b7 (patch)
tree0e1e7f7c6ded02ae61ab78f66e2eee8554ef4aca /tools/aapt2/ResourceParser_test.cpp
parentd48474969e786eaf911ac51bcd05faa3399b788a (diff)
AAPT2: Add <overlayable> tag support
This doesn't actually do anything yet, but makes sure it is not a syntax error and allows teams to start marking their resources as overlayable. The syntax form marking a set of resources as overlayable looks like: <overlayable policy="system"> <item type="string" name="foo" /> <item type="style" name="bar" /> </overlayable> Currently, the only supported policy is "system", meaning only the system will be able to overlay the resources. Leaving out the policy attribute defaults to "system". Bug: 64980941 Test: make aapt2_tests Change-Id: Ied7a9ddae87a4a0af6a0f4d1c213bfce8a0ed612
Diffstat (limited to 'tools/aapt2/ResourceParser_test.cpp')
-rw-r--r--tools/aapt2/ResourceParser_test.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp
index 144ebd22e105..f08b03e7b8af 100644
--- a/tools/aapt2/ResourceParser_test.cpp
+++ b/tools/aapt2/ResourceParser_test.cpp
@@ -790,4 +790,49 @@ TEST_F(ResourceParserTest, ParsePlatformIndependentNewline) {
ASSERT_TRUE(TestParse(R"(<string name="foo">%1$s %n %2$s</string>)"));
}
+TEST_F(ResourceParserTest, ParseOverlayableTagWithSystemPolicy) {
+ std::string input = R"(
+ <overlayable policy="illegal_policy">
+ <item type="string" name="foo" />
+ </overlayable>)";
+ EXPECT_FALSE(TestParse(input));
+
+ input = R"(
+ <overlayable policy="system">
+ <item name="foo" />
+ </overlayable>)";
+ EXPECT_FALSE(TestParse(input));
+
+ input = R"(
+ <overlayable policy="system">
+ <item type="attr" />
+ </overlayable>)";
+ EXPECT_FALSE(TestParse(input));
+
+ input = R"(
+ <overlayable policy="system">
+ <item type="bad_type" name="foo" />
+ </overlayable>)";
+ EXPECT_FALSE(TestParse(input));
+
+ input = R"(<overlayable policy="system" />)";
+ EXPECT_TRUE(TestParse(input));
+
+ input = R"(<overlayable />)";
+ EXPECT_TRUE(TestParse(input));
+
+ input = R"(
+ <overlayable policy="system">
+ <item type="string" name="foo" />
+ <item type="dimen" name="foo" />
+ </overlayable>)";
+ ASSERT_TRUE(TestParse(input));
+
+ input = R"(
+ <overlayable>
+ <item type="string" name="bar" />
+ </overlayable>)";
+ ASSERT_TRUE(TestParse(input));
+}
+
} // namespace aapt