summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceParser_test.cpp
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2017-05-16 12:18:08 -0700
committerAdam Lesinski <adamlesinski@google.com>2017-05-16 12:18:53 -0700
commitd5fd76a2ff78400505ade936fc36e707d69ecf72 (patch)
tree155ab260deffffbe41c40bd5185bd1db462a4115 /tools/aapt2/ResourceParser_test.cpp
parent4b2cecbb53aaa74c506ea0b318ede05f84756843 (diff)
AAPT2: Respect format attr in <array> resource
Bug: 38152130 Test: make aapt2_tests Change-Id: I84f352afb1a8fd2f329354f789aaa36c5ef88e47
Diffstat (limited to 'tools/aapt2/ResourceParser_test.cpp')
-rw-r--r--tools/aapt2/ResourceParser_test.cpp33
1 files changed, 29 insertions, 4 deletions
diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp
index 8062c2e6afea..faa660729237 100644
--- a/tools/aapt2/ResourceParser_test.cpp
+++ b/tools/aapt2/ResourceParser_test.cpp
@@ -571,14 +571,39 @@ TEST_F(ResourceParserTest, ParseArray) {
}
TEST_F(ResourceParserTest, ParseStringArray) {
- std::string input =
- "<string-array name=\"foo\">\n"
- " <item>\"Werk\"</item>\n"
- "</string-array>\n";
+ std::string input = R"EOF(
+ <string-array name="foo">
+ <item>"Werk"</item>"
+ </string-array>)EOF";
ASSERT_TRUE(TestParse(input));
EXPECT_NE(nullptr, test::GetValue<Array>(&table_, "array/foo"));
}
+TEST_F(ResourceParserTest, ParseArrayWithFormat) {
+ std::string input = R"EOF(
+ <array name="foo" format="string">
+ <item>100</item>
+ </array>)EOF";
+ ASSERT_TRUE(TestParse(input));
+
+ Array* array = test::GetValue<Array>(&table_, "array/foo");
+ ASSERT_NE(nullptr, array);
+
+ ASSERT_EQ(1u, array->items.size());
+
+ String* str = ValueCast<String>(array->items[0].get());
+ ASSERT_NE(nullptr, str);
+ EXPECT_EQ(std::string("100"), *str->value);
+}
+
+TEST_F(ResourceParserTest, ParseArrayWithBadFormat) {
+ std::string input = R"EOF(
+ <array name="foo" format="integer">
+ <item>Hi</item>
+ </array>)EOF";
+ ASSERT_FALSE(TestParse(input));
+}
+
TEST_F(ResourceParserTest, ParsePlural) {
std::string input =
"<plurals name=\"foo\">\n"