Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b327db1 authored by Ryan Mitchell's avatar Ryan Mitchell Committed by Android (Google) Code Review
Browse files

Merge "AAPT2: Fix raw string parsing"

parents 62b8bc04 633d7966
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -777,7 +777,8 @@ std::unique_ptr<Item> ResourceParser::ParseXml(xml::XmlPullParser* parser,
  if (allow_raw_value) {
    // We can't parse this so return a RawString if we are allowed.
    return util::make_unique<RawString>(
        table_->string_pool.MakeRef(raw_value, StringPool::Context(config_)));
        table_->string_pool.MakeRef(util::TrimWhitespace(raw_value),
                                    StringPool::Context(config_)));
  }
  return {};
}
+18 −0
Original line number Diff line number Diff line
@@ -497,6 +497,24 @@ TEST_F(ResourceParserTest, ParseStyleWithPackageAliasedItems) {
  EXPECT_THAT(style->entries[0].key.name, Eq(make_value(test::ParseNameOrDie("android:attr/bar"))));
}

TEST_F(ResourceParserTest, ParseStyleWithRawStringItem) {
  std::string input = R"(
      <style name="foo">
        <item name="bar">
          com.helloworld.AppClass
        </item>
      </style>)";
  ASSERT_TRUE(TestParse(input));

  Style* style = test::GetValue<Style>(&table_, "style/foo");
  ASSERT_THAT(style, NotNull());
  EXPECT_THAT(style->entries[0].value, NotNull());
  RawString* value = ValueCast<RawString>(style->entries[0].value.get());
  EXPECT_THAT(value, NotNull());
  EXPECT_THAT(*value->value, StrEq(R"(com.helloworld.AppClass)"));
}


TEST_F(ResourceParserTest, ParseStyleWithInferredParent) {
  ASSERT_TRUE(TestParse(R"(<style name="foo.bar"/>)"));