Index: chrome/common/extensions/manifest_handlers/externally_connectable_unittest.cc |
diff --git a/chrome/common/extensions/manifest_handlers/externally_connectable_unittest.cc b/chrome/common/extensions/manifest_handlers/externally_connectable_unittest.cc |
index c2da186b59b5bdb8da8b2830b38bb58aa4720225..f40c0188faf16c5ece9c927c869606f0d8a7a79e 100644 |
--- a/chrome/common/extensions/manifest_handlers/externally_connectable_unittest.cc |
+++ b/chrome/common/extensions/manifest_handlers/externally_connectable_unittest.cc |
@@ -22,6 +22,13 @@ class ExternallyConnectableTest : public ExtensionManifestTest { |
public: |
ExternallyConnectableTest() : channel_(chrome::VersionInfo::CHANNEL_DEV) {} |
+ protected: |
+ ExternallyConnectableInfo* GetExternallyConnectableInfo( |
+ scoped_refptr<Extension> extension) { |
+ return static_cast<ExternallyConnectableInfo*>(extension->GetManifestData( |
+ extension_manifest_keys::kExternallyConnectable)); |
+ } |
+ |
private: |
Feature::ScopedCurrentChannel channel_; |
}; |
@@ -192,75 +199,87 @@ TEST_F(ExternallyConnectableTest, IdCanConnect) { |
} |
TEST_F(ExternallyConnectableTest, ErrorWrongFormat) { |
- RunTestcase(Testcase("externally_connectable_error_wrong_format.json", |
- errors::kErrorInvalid), |
- EXPECT_TYPE_ERROR); |
+ LoadAndExpectError("externally_connectable_error_wrong_format.json", |
+ errors::kErrorInvalid); |
} |
TEST_F(ExternallyConnectableTest, ErrorBadID) { |
- RunTestcase(Testcase("externally_connectable_bad_id.json", |
- ErrorUtils::FormatErrorMessage(errors::kErrorInvalidId, |
- "badid")), |
- EXPECT_TYPE_ERROR); |
+ LoadAndExpectError( |
+ "externally_connectable_bad_id.json", |
+ ErrorUtils::FormatErrorMessage(errors::kErrorInvalidId, "badid")); |
} |
TEST_F(ExternallyConnectableTest, ErrorBadMatches) { |
- RunTestcase( |
- Testcase("externally_connectable_error_bad_matches.json", |
- ErrorUtils::FormatErrorMessage(errors::kErrorInvalidMatchPattern, |
- "www.yahoo.com")), |
- EXPECT_TYPE_ERROR); |
+ LoadAndExpectError( |
+ "externally_connectable_error_bad_matches.json", |
+ ErrorUtils::FormatErrorMessage(errors::kErrorInvalidMatchPattern, |
+ "www.yahoo.com")); |
} |
-TEST_F(ExternallyConnectableTest, ErrorNoAllURLs) { |
- RunTestcase( |
- Testcase( |
- "externally_connectable_error_all_urls.json", |
- ErrorUtils::FormatErrorMessage(errors::kErrorWildcardHostsNotAllowed, |
- "<all_urls>")), |
- EXPECT_TYPE_ERROR); |
+TEST_F(ExternallyConnectableTest, WarningNoAllURLs) { |
+ scoped_refptr<Extension> extension = LoadAndExpectWarning( |
+ "externally_connectable_error_all_urls.json", |
+ ErrorUtils::FormatErrorMessage(errors::kErrorWildcardHostsNotAllowed, |
+ "<all_urls>")); |
+ ExternallyConnectableInfo* info = GetExternallyConnectableInfo(extension); |
+ EXPECT_FALSE(info->matches.ContainsPattern( |
+ URLPattern(URLPattern::SCHEME_ALL, "<all_urls>"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("https://example.com"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("http://build.chromium.org"))); |
} |
-TEST_F(ExternallyConnectableTest, ErrorWildcardHost) { |
- RunTestcase( |
- Testcase( |
- "externally_connectable_error_wildcard_host.json", |
- ErrorUtils::FormatErrorMessage(errors::kErrorWildcardHostsNotAllowed, |
- "http://*/*")), |
- EXPECT_TYPE_ERROR); |
+TEST_F(ExternallyConnectableTest, WarningWildcardHost) { |
+ scoped_refptr<Extension> extension = LoadAndExpectWarning( |
+ "externally_connectable_error_wildcard_host.json", |
+ ErrorUtils::FormatErrorMessage(errors::kErrorWildcardHostsNotAllowed, |
+ "http://*/*")); |
+ ExternallyConnectableInfo* info = GetExternallyConnectableInfo(extension); |
+ EXPECT_FALSE(info->matches.ContainsPattern( |
+ URLPattern(URLPattern::SCHEME_ALL, "http://*/*"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("https://example.com"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("http://build.chromium.org"))); |
} |
-TEST_F(ExternallyConnectableTest, ErrorNoTLD) { |
- RunTestcase( |
- Testcase( |
- "externally_connectable_error_tld.json", |
- ErrorUtils::FormatErrorMessage( |
- errors::kErrorTopLevelDomainsNotAllowed, |
- "co.uk", |
- "http://*.co.uk/*")), |
- EXPECT_TYPE_ERROR); |
+TEST_F(ExternallyConnectableTest, WarningNoTLD) { |
+ scoped_refptr<Extension> extension = LoadAndExpectWarning( |
+ "externally_connectable_error_tld.json", |
+ ErrorUtils::FormatErrorMessage( |
+ errors::kErrorTopLevelDomainsNotAllowed, |
+ "co.uk", |
+ "http://*.co.uk/*")); |
+ ExternallyConnectableInfo* info = GetExternallyConnectableInfo(extension); |
+ EXPECT_FALSE(info->matches.ContainsPattern( |
+ URLPattern(URLPattern::SCHEME_ALL, "http://*.co.uk/*"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("https://example.com"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("http://build.chromium.org"))); |
} |
-TEST_F(ExternallyConnectableTest, ErrorNoEffectiveTLD) { |
- RunTestcase( |
- Testcase( |
- "externally_connectable_error_effective_tld.json", |
- ErrorUtils::FormatErrorMessage( |
- errors::kErrorTopLevelDomainsNotAllowed, |
- "appspot.com", |
- "http://*.appspot.com/*")), |
- EXPECT_TYPE_ERROR); |
+TEST_F(ExternallyConnectableTest, WarningNoEffectiveTLD) { |
+ scoped_refptr<Extension> extension = LoadAndExpectWarning( |
+ "externally_connectable_error_effective_tld.json", |
+ ErrorUtils::FormatErrorMessage( |
+ errors::kErrorTopLevelDomainsNotAllowed, |
+ "appspot.com", |
+ "http://*.appspot.com/*")); |
+ ExternallyConnectableInfo* info = GetExternallyConnectableInfo(extension); |
+ EXPECT_FALSE(info->matches.ContainsPattern( |
+ URLPattern(URLPattern::SCHEME_ALL, "http://*.appspot.com/*"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("https://example.com"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("http://build.chromium.org"))); |
} |
-TEST_F(ExternallyConnectableTest, ErrorUnknownTLD) { |
- RunTestcase( |
- Testcase( |
- "externally_connectable_error_unknown_tld.json", |
- ErrorUtils::FormatErrorMessage( |
- errors::kErrorTopLevelDomainsNotAllowed, |
- "notatld", |
- "http://*.notatld/*")), |
- EXPECT_TYPE_ERROR); |
+TEST_F(ExternallyConnectableTest, WarningUnknownTLD) { |
+ scoped_refptr<Extension> extension = LoadAndExpectWarning( |
+ "externally_connectable_error_unknown_tld.json", |
+ ErrorUtils::FormatErrorMessage( |
+ errors::kErrorTopLevelDomainsNotAllowed, |
+ "notatld", |
+ "http://*.notatld/*")); |
+ ExternallyConnectableInfo* info = GetExternallyConnectableInfo(extension); |
+ EXPECT_FALSE(info->matches.ContainsPattern( |
+ URLPattern(URLPattern::SCHEME_ALL, "http://*.notatld/*"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("https://example.com"))); |
+ EXPECT_TRUE(info->matches.MatchesURL(GURL("http://build.chromium.org"))); |
} |
} // namespace extensions |