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

Commit 90940293 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix resource by name lookup" into pi-dev

parents 4341a66b 3f085422
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,9 @@ bool ExtractResourceName(const StringPiece& str, StringPiece* out_package, Strin
  bool has_type_separator = false;
  bool has_type_separator = false;
  const char* start = str.data();
  const char* start = str.data();
  const char* end = start + str.size();
  const char* end = start + str.size();
  if (start[0] == '@') {
      start++;
  }
  const char* current = start;
  const char* current = start;
  while (current != end) {
  while (current != end) {
    if (out_type->size() == 0 && *current == '/') {
    if (out_type->size() == 0 && *current == '/') {
+25 −0
Original line number Original line Diff line number Diff line
@@ -27,23 +27,48 @@ TEST(ResourceUtilsTest, ExtractResourceName) {
  EXPECT_EQ("string", type);
  EXPECT_EQ("string", type);
  EXPECT_EQ("foo", entry);
  EXPECT_EQ("foo", entry);


  ASSERT_TRUE(ExtractResourceName("@android:string/foo", &package, &type, &entry));
  EXPECT_EQ("android", package);
  EXPECT_EQ("string", type);
  EXPECT_EQ("foo", entry);

  ASSERT_TRUE(ExtractResourceName("string/foo", &package, &type, &entry));
  ASSERT_TRUE(ExtractResourceName("string/foo", &package, &type, &entry));
  EXPECT_EQ("", package);
  EXPECT_EQ("", package);
  EXPECT_EQ("string", type);
  EXPECT_EQ("string", type);
  EXPECT_EQ("foo", entry);
  EXPECT_EQ("foo", entry);


  ASSERT_TRUE(ExtractResourceName("@string/foo", &package, &type, &entry));
  EXPECT_EQ("", package);
  EXPECT_EQ("string", type);
  EXPECT_EQ("foo", entry);

  ASSERT_TRUE(ExtractResourceName("foo", &package, &type, &entry));
  ASSERT_TRUE(ExtractResourceName("foo", &package, &type, &entry));
  EXPECT_EQ("", package);
  EXPECT_EQ("", package);
  EXPECT_EQ("", type);
  EXPECT_EQ("", type);
  EXPECT_EQ("foo", entry);
  EXPECT_EQ("foo", entry);


  ASSERT_TRUE(ExtractResourceName("@foo", &package, &type, &entry));
  EXPECT_EQ("", package);
  EXPECT_EQ("", type);
  EXPECT_EQ("foo", entry);

  ASSERT_TRUE(ExtractResourceName("android:foo", &package, &type, &entry));
  ASSERT_TRUE(ExtractResourceName("android:foo", &package, &type, &entry));
  EXPECT_EQ("android", package);
  EXPECT_EQ("android", package);
  EXPECT_EQ("", type);
  EXPECT_EQ("", type);
  EXPECT_EQ("foo", entry);
  EXPECT_EQ("foo", entry);


//  ASSERT_TRUE(ExtractResourceName("@android:foo", &package, &type, &entry));
//  EXPECT_EQ("android", package);
//  EXPECT_EQ("", type);
//  EXPECT_EQ("foo", entry);

  EXPECT_FALSE(ExtractResourceName(":string/foo", &package, &type, &entry));
  EXPECT_FALSE(ExtractResourceName(":string/foo", &package, &type, &entry));

  EXPECT_FALSE(ExtractResourceName("@:string/foo", &package, &type, &entry));

  EXPECT_FALSE(ExtractResourceName("/foo", &package, &type, &entry));
  EXPECT_FALSE(ExtractResourceName("/foo", &package, &type, &entry));

  EXPECT_FALSE(ExtractResourceName("@/foo", &package, &type, &entry));
}
}


}  // namespace android
}  // namespace android