summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceParser_test.cpp
diff options
context:
space:
mode:
authorRyan Mitchell <rtmitchell@google.com>2018-03-28 18:22:57 -0700
committerRyan Mitchell <rtmitchell@google.com>2018-04-04 15:54:05 +0000
commit9beaa9cfe3bd8c7c59eed053ff6ca18951c34a86 (patch)
tree0a14c76b75c770328fadb68b75d83751121637e7 /tools/aapt2/ResourceParser_test.cpp
parenta926126a8bc89c1a6bd7fa8a76332476eba0d954 (diff)
Changed AAPT2 to abide by AAPT resource whitespace triming.
Bug: b/74331008 Test: Created tests in ResourceParser_test.cpp Change-Id: Id7b387692b795774cd77452ca8cf06a8447bf3be (cherry picked from commit a04880771254f5169a1fe460ff40b565d9dceb0d)
Diffstat (limited to 'tools/aapt2/ResourceParser_test.cpp')
-rw-r--r--tools/aapt2/ResourceParser_test.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceParser_test.cpp b/tools/aapt2/ResourceParser_test.cpp
index c98c0b95b69b..fc1aeaa58fe2 100644
--- a/tools/aapt2/ResourceParser_test.cpp
+++ b/tools/aapt2/ResourceParser_test.cpp
@@ -164,6 +164,39 @@ TEST_F(ResourceParserTest, ParseStringWithWhitespace) {
EXPECT_THAT(*str, StrValueEq(" This is what I think "));
}
+TEST_F(ResourceParserTest, ParseStringTruncateASCII) {
+ // Tuncate leading and trailing whitespace
+ EXPECT_TRUE(TestParse(R"(<string name="foo">&#32;Hello&#32;</string>)"));
+
+ String* str = test::GetValue<String>(&table_, "string/foo");
+ ASSERT_THAT(str, NotNull());
+ EXPECT_THAT(*str->value, StrEq("Hello"));
+ EXPECT_THAT(str->untranslatable_sections, IsEmpty());
+
+ // AAPT does not truncate unicode whitespace
+ EXPECT_TRUE(TestParse(R"(<string name="foo2">\u0020\Hello\u0020</string>)"));
+
+ str = test::GetValue<String>(&table_, "string/foo2");
+ ASSERT_THAT(str, NotNull());
+ EXPECT_THAT(*str->value, StrEq(" Hello "));
+ EXPECT_THAT(str->untranslatable_sections, IsEmpty());
+
+ // Preserve non-ASCII whitespace including extended ASCII characters
+ EXPECT_TRUE(TestParse(R"(<string name="foo3">&#160;Hello&#160;</string>)"));
+
+ str = test::GetValue<String>(&table_, "string/foo3");
+ ASSERT_THAT(str, NotNull());
+ EXPECT_THAT(*str->value, StrEq("\xC2\xA0Hello\xC2\xA0"));
+ EXPECT_THAT(str->untranslatable_sections, IsEmpty());
+
+ EXPECT_TRUE(TestParse(R"(<string name="foo4">2005年6月1日</string>)"));
+
+ str = test::GetValue<String>(&table_, "string/foo4");
+ ASSERT_THAT(str, NotNull());
+ EXPECT_THAT(*str->value, StrEq("2005年6月1日"));
+ EXPECT_THAT(str->untranslatable_sections, IsEmpty());
+}
+
TEST_F(ResourceParserTest, ParseStyledStringWithWhitespace) {
std::string input = R"(<string name="foo"> <b> My <i> favorite</i> string </b> </string>)";
ASSERT_TRUE(TestParse(input));