diff options
Diffstat (limited to 'tools/aapt2/ResourceParser_test.cpp')
-rw-r--r-- | tools/aapt2/ResourceParser_test.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp index 53bfa0b37475..4a509be56776 100644 --- a/tools/aapt2/ResourceParser_test.cpp +++ b/tools/aapt2/ResourceParser_test.cpp @@ -840,6 +840,31 @@ TEST_F(ResourceParserTest, AutoIncrementIdsInPublicGroup) { EXPECT_THAT(result.value().entry->id.value(), Eq(ResourceId(0x01010041))); } +TEST_F(ResourceParserTest, StagingPublicGroup) { + std::string input = R"( + <staging-public-group type="attr" first-id="0x01ff0049"> + <public name="foo" /> + <public name="bar" /> + </staging-public-group>)"; + ASSERT_TRUE(TestParse(input)); + + Maybe<ResourceTable::SearchResult> result = table_.FindResource(test::ParseNameOrDie("attr/foo")); + ASSERT_TRUE(result); + + ASSERT_TRUE(result.value().entry->id); + EXPECT_THAT(result.value().entry->id.value(), Eq(ResourceId(0x01ff0049))); + EXPECT_THAT(result.value().entry->visibility.level, Eq(Visibility::Level::kPublic)); + EXPECT_TRUE(result.value().entry->visibility.staged_api); + + result = table_.FindResource(test::ParseNameOrDie("attr/bar")); + ASSERT_TRUE(result); + + ASSERT_TRUE(result.value().entry->id); + EXPECT_THAT(result.value().entry->id.value(), Eq(ResourceId(0x01ff004a))); + EXPECT_THAT(result.value().entry->visibility.level, Eq(Visibility::Level::kPublic)); + EXPECT_TRUE(result.value().entry->visibility.staged_api); +} + TEST_F(ResourceParserTest, StrongestSymbolVisibilityWins) { std::string input = R"( <!-- private --> |