AAPT2: Accept aliases defined for external resource types
Resource types that are typically stored outside of the resource table
(like layout, xml, drawable) can only have aliases (reference to another
resource).
Change-Id: Idb768801f02bb142e5be5e438904f221499bd756
diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp
index b3ad031..b59eb95 100644
--- a/tools/aapt2/ResourceParser_test.cpp
+++ b/tools/aapt2/ResourceParser_test.cpp
@@ -521,4 +521,12 @@
EXPECT_EQ(ResourceId(0x01010041), actualId);
}
+TEST_F(ResourceParserTest, ExternalTypesShouldOnlyBeReferences) {
+ std::string input = R"EOF(<item type="layout" name="foo">@layout/bar</item>)EOF";
+ ASSERT_TRUE(testParse(input));
+
+ input = R"EOF(<item type="layout" name="bar">"this is a string"</item>)EOF";
+ ASSERT_FALSE(testParse(input));
+}
+
} // namespace aapt