Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1227)

Unified Diff: net/reporting/reporting_cache_unittest.cc

Issue 2779983002: Reporting: Properly support endpoints with includeSubdomains. (Closed)
Patch Set: Make requested changes. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/reporting/reporting_cache.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/reporting/reporting_cache_unittest.cc
diff --git a/net/reporting/reporting_cache_unittest.cc b/net/reporting/reporting_cache_unittest.cc
index 08cd2734ba43e75d820ba0bf7830307f5907d41a..73023400392fa0f02b19c874ec057e609842176f 100644
--- a/net/reporting/reporting_cache_unittest.cc
+++ b/net/reporting/reporting_cache_unittest.cc
@@ -296,5 +296,109 @@ TEST_F(ReportingCacheTest, RemoveAllClients) {
EXPECT_TRUE(clients.empty());
}
+TEST_F(ReportingCacheTest, ExcludeSubdomainsDifferentPort) {
+ const url::Origin kOrigin(GURL("https://example/"));
+ const url::Origin kDifferentPortOrigin(GURL("https://example:444/"));
+
+ cache()->SetClient(kDifferentPortOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::EXCLUDE, kGroup1_,
+ kExpires1_);
+
+ std::vector<const ReportingClient*> clients;
+ cache()->GetClientsForOriginAndGroup(kOrigin, kGroup1_, &clients);
+ EXPECT_TRUE(clients.empty());
+}
+
+TEST_F(ReportingCacheTest, ExcludeSubdomainsSuperdomain) {
+ const url::Origin kOrigin(GURL("https://foo.example/"));
+ const url::Origin kSuperOrigin(GURL("https://example/"));
+
+ cache()->SetClient(kSuperOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::EXCLUDE, kGroup1_,
+ kExpires1_);
+
+ std::vector<const ReportingClient*> clients;
+ cache()->GetClientsForOriginAndGroup(kOrigin, kGroup1_, &clients);
+ EXPECT_TRUE(clients.empty());
+}
+
+TEST_F(ReportingCacheTest, IncludeSubdomainsDifferentPort) {
+ const url::Origin kOrigin(GURL("https://example/"));
+ const url::Origin kDifferentPortOrigin(GURL("https://example:444/"));
+
+ cache()->SetClient(kDifferentPortOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::INCLUDE, kGroup1_,
+ kExpires1_);
+
+ std::vector<const ReportingClient*> clients;
+ cache()->GetClientsForOriginAndGroup(kOrigin, kGroup1_, &clients);
+ ASSERT_EQ(1u, clients.size());
+ EXPECT_EQ(kDifferentPortOrigin, clients[0]->origin);
+}
+
+TEST_F(ReportingCacheTest, IncludeSubdomainsSuperdomain) {
+ const url::Origin kOrigin(GURL("https://foo.example/"));
+ const url::Origin kSuperOrigin(GURL("https://example/"));
+
+ cache()->SetClient(kSuperOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::INCLUDE, kGroup1_,
+ kExpires1_);
+
+ std::vector<const ReportingClient*> clients;
+ cache()->GetClientsForOriginAndGroup(kOrigin, kGroup1_, &clients);
+ ASSERT_EQ(1u, clients.size());
+ EXPECT_EQ(kSuperOrigin, clients[0]->origin);
+}
+
+TEST_F(ReportingCacheTest, IncludeSubdomainsPreferOriginToDifferentPort) {
+ const url::Origin kOrigin(GURL("https://foo.example/"));
+ const url::Origin kDifferentPortOrigin(GURL("https://example:444/"));
+
+ cache()->SetClient(kOrigin, kEndpoint1_, ReportingClient::Subdomains::INCLUDE,
+ kGroup1_, kExpires1_);
+ cache()->SetClient(kDifferentPortOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::INCLUDE, kGroup1_,
+ kExpires1_);
+
+ std::vector<const ReportingClient*> clients;
+ cache()->GetClientsForOriginAndGroup(kOrigin, kGroup1_, &clients);
+ ASSERT_EQ(1u, clients.size());
+ EXPECT_EQ(kOrigin, clients[0]->origin);
+}
+
+TEST_F(ReportingCacheTest, IncludeSubdomainsPreferOriginToSuperdomain) {
+ const url::Origin kOrigin(GURL("https://foo.example/"));
+ const url::Origin kSuperOrigin(GURL("https://example/"));
+
+ cache()->SetClient(kOrigin, kEndpoint1_, ReportingClient::Subdomains::INCLUDE,
+ kGroup1_, kExpires1_);
+ cache()->SetClient(kSuperOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::INCLUDE, kGroup1_,
+ kExpires1_);
+
+ std::vector<const ReportingClient*> clients;
+ cache()->GetClientsForOriginAndGroup(kOrigin, kGroup1_, &clients);
+ ASSERT_EQ(1u, clients.size());
+ EXPECT_EQ(kOrigin, clients[0]->origin);
+}
+
+TEST_F(ReportingCacheTest, IncludeSubdomainsPreferMoreSpecificSuperdomain) {
+ const url::Origin kOrigin(GURL("https://foo.bar.example/"));
+ const url::Origin kSuperOrigin(GURL("https://bar.example/"));
+ const url::Origin kSuperSuperOrigin(GURL("https://example/"));
+
+ cache()->SetClient(kSuperOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::INCLUDE, kGroup1_,
+ kExpires1_);
+ cache()->SetClient(kSuperSuperOrigin, kEndpoint1_,
+ ReportingClient::Subdomains::INCLUDE, kGroup1_,
+ kExpires1_);
+
+ std::vector<const ReportingClient*> clients;
+ cache()->GetClientsForOriginAndGroup(kOrigin, kGroup1_, &clients);
+ ASSERT_EQ(1u, clients.size());
+ EXPECT_EQ(kSuperOrigin, clients[0]->origin);
+}
+
} // namespace
} // namespace net
« no previous file with comments | « net/reporting/reporting_cache.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698