Fix resource by name lookup

Test: added: '@' cases to ResourceUtilsTest
      pass: ./out/host/darwin-x86/nativetest/libandroidfw_tests/libandroidfw_tests
      pass: ./out/host/darwin-x86/nativetest/aapt2_tests/aapt2_tests
      pass: cts-tradefed run cts-dev -m CtsAppSecurityHostTestCases
                -t android.appsecurity.cts.PermissionsHostTest

Bug: 74612500

Change-Id: I144e4ca1b63b9cce71052fc02089bb6092739889
diff --git a/libs/androidfw/tests/ResourceUtils_test.cpp b/libs/androidfw/tests/ResourceUtils_test.cpp
index b64a884..a02f166 100644
--- a/libs/androidfw/tests/ResourceUtils_test.cpp
+++ b/libs/androidfw/tests/ResourceUtils_test.cpp
@@ -27,23 +27,48 @@
   EXPECT_EQ("string", type);
   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));
   EXPECT_EQ("", package);
   EXPECT_EQ("string", type);
   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));
   EXPECT_EQ("", package);
   EXPECT_EQ("", type);
   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));
   EXPECT_EQ("android", package);
   EXPECT_EQ("", type);
   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("/foo", &package, &type, &entry));
+
+  EXPECT_FALSE(ExtractResourceName("@/foo", &package, &type, &entry));
 }
 
 }  // namespace android