Commit 9ce071e2 authored by Solomon Kinard's avatar Solomon Kinard Committed by Chromium LUCI CQ

[Extensions][web_accessible_resources] Add wildcard test for clarity.

This should make it easier to for casual readers to see which wildcards
are allowed. Reference:
https://developer.chrome.com/docs/extensions/mv2/match_patterns/

Bug: 1133624
Change-Id: Ifd5b26e7b052f07c62dc0846cff4dfe922d52134
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2613512
Commit-Queue: Solomon Kinard <solomonkinard@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843313}
parent 657104c8
...@@ -17,10 +17,10 @@ class WebAccessibleResourcesManifestTest : public ChromeManifestTest { ...@@ -17,10 +17,10 @@ class WebAccessibleResourcesManifestTest : public ChromeManifestTest {
int manifest_version = 3) { int manifest_version = 3) {
constexpr char kManifestStub[] = constexpr char kManifestStub[] =
R"({ R"({
"name": "Test", "name": "Test",
"version": "0.1", "version": "0.1",
"manifest_version": %d, "manifest_version": %d,
"web_accessible_resources": %s "web_accessible_resources": %s
})"; })";
base::Value manifest_value = base::test::ParseJson(base::StringPrintf( base::Value manifest_value = base::test::ParseJson(base::StringPrintf(
kManifestStub, manifest_version, web_accessible_resources.c_str())); kManifestStub, manifest_version, web_accessible_resources.c_str()));
...@@ -225,12 +225,13 @@ TEST_F(WebAccessibleResourcesManifestTest, WebAccessibleResourcesV3Invalid) { ...@@ -225,12 +225,13 @@ TEST_F(WebAccessibleResourcesManifestTest, WebAccessibleResourcesV3Invalid) {
// Succeed if site requesting resource exists in matches. // Succeed if site requesting resource exists in matches.
TEST_F(WebAccessibleResourcesManifestTest, TEST_F(WebAccessibleResourcesManifestTest,
WebAccessibleResourcesOriginRequestingResourceExistsInMatches) { WebAccessibleResourcesOriginRequestingResourceExistsInMatches) {
scoped_refptr<Extension> extension(LoadAndExpectSuccess(GetManifestData(R"([ scoped_refptr<Extension> extension(LoadAndExpectSuccess(GetManifestData(
{ R"([
"resources": ["test"], {
"matches": ["https://allowed.example/*"] "resources": ["test"],
} "matches": ["https://allowed.example/*"]
])"))); }
])")));
EXPECT_TRUE( EXPECT_TRUE(
WebAccessibleResourcesInfo::HasWebAccessibleResources(extension.get())); WebAccessibleResourcesInfo::HasWebAccessibleResources(extension.get()));
EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible(
...@@ -252,7 +253,7 @@ TEST_F(WebAccessibleResourcesManifestTest, ...@@ -252,7 +253,7 @@ TEST_F(WebAccessibleResourcesManifestTest,
"resources": ["test"], "resources": ["test"],
"matches": ["https://error.example/*"], "matches": ["https://error.example/*"],
} }
])"; ])";
LoadAndExpectError(GetManifestData(kWebAccessibleResources, 2), LoadAndExpectError(GetManifestData(kWebAccessibleResources, 2),
"Invalid value for 'web_accessible_resources[0]'. Value " "Invalid value for 'web_accessible_resources[0]'. Value "
"is not a string."); "is not a string.");
...@@ -274,16 +275,16 @@ TEST_F(WebAccessibleResourcesManifestTest, ...@@ -274,16 +275,16 @@ TEST_F(WebAccessibleResourcesManifestTest,
"abcdefghijklmnopabcdefghijklmnop") { "abcdefghijklmnopabcdefghijklmnop") {
constexpr char kManifestStub[] = constexpr char kManifestStub[] =
R"({ R"({
"name": "Test", "name": "Test",
"version": "0.1", "version": "0.1",
"manifest_version": 3, "manifest_version": 3,
"web_accessible_resources": [ "web_accessible_resources": [
{ {
"resources": ["test"], "resources": ["test"],
"extension_ids": ["%s"] "extension_ids": ["%s"]
} }
] ]
})"; })";
base::Value manifest_value = base::test::ParseJson( base::Value manifest_value = base::test::ParseJson(
base::StringPrintf(kManifestStub, extension_id.c_str())); base::StringPrintf(kManifestStub, extension_id.c_str()));
EXPECT_EQ(base::Value::Type::DICTIONARY, manifest_value.type()); EXPECT_EQ(base::Value::Type::DICTIONARY, manifest_value.type());
...@@ -301,3 +302,36 @@ TEST_F(WebAccessibleResourcesManifestTest, ...@@ -301,3 +302,36 @@ TEST_F(WebAccessibleResourcesManifestTest,
EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible(
extension1.get(), "test", initiator_origin)); extension1.get(), "test", initiator_origin));
} }
// Tests wildcards
TEST_F(WebAccessibleResourcesManifestTest, WebAccessibleResourcesWildcard) {
struct {
const char* title;
const char* web_accessible_resources;
} test_cases[] = {
{"Succeed if text based wildcard is used.",
R"([
{
"resources": ["test"],
"matches": ["<all_urls>"]
}
])"},
{"Succeed if asterisk based wildcard is used.",
R"([
{
"resources": ["test"],
"matches": ["*://*/*"]
}
])"},
};
for (const auto& test_case : test_cases) {
SCOPED_TRACE(base::StringPrintf("Error: '%s'", test_case.title));
scoped_refptr<Extension> extension(LoadAndExpectSuccess(
GetManifestData(test_case.web_accessible_resources)));
EXPECT_TRUE(
WebAccessibleResourcesInfo::HasWebAccessibleResources(extension.get()));
EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible(
extension.get(), "test",
url::Origin::Create(GURL("https://allowed.example"))));
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment