summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceTable_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aapt2/ResourceTable_test.cpp')
-rw-r--r--tools/aapt2/ResourceTable_test.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceTable_test.cpp b/tools/aapt2/ResourceTable_test.cpp
index 4db40a6f4008..feaca4eef127 100644
--- a/tools/aapt2/ResourceTable_test.cpp
+++ b/tools/aapt2/ResourceTable_test.cpp
@@ -118,6 +118,39 @@ TEST(ResourceTableTest, OverrideWeakResourceValue) {
EXPECT_FALSE(attr->isWeak());
}
+TEST(ResourceTable, MergeStyleables) {
+ ResourceTable table;
+
+ ASSERT_TRUE(table.addResource(
+ test::parseNameOrDie("android:styleable/Foo"),
+ ConfigDescription{}, "",
+ test::StyleableBuilder()
+ .addItem("android:attr/bar")
+ .addItem("android:attr/foo")
+ .build(),
+ test::getDiagnostics()));
+
+ ASSERT_TRUE(table.addResource(
+ test::parseNameOrDie("android:styleable/Foo"),
+ ConfigDescription{}, "",
+ test::StyleableBuilder()
+ .addItem("android:attr/bat")
+ .addItem("android:attr/foo")
+ .build(),
+ test::getDiagnostics()));
+
+ Styleable* styleable = test::getValue<Styleable>(&table, "android:styleable/Foo");
+ ASSERT_NE(nullptr, styleable);
+
+ std::vector<Reference> expectedRefs = {
+ Reference(test::parseNameOrDie("android:attr/bar")),
+ Reference(test::parseNameOrDie("android:attr/bat")),
+ Reference(test::parseNameOrDie("android:attr/foo")),
+ };
+
+ EXPECT_EQ(expectedRefs, styleable->entries);
+}
+
TEST(ResourceTableTest, ProductVaryingValues) {
ResourceTable table;